octeontx2-af: Skip NIXLF check for bcast MCE entry
At the time of initial broadcast packet replication table init, NIXLFs are not yet attached to PF_FUNCs. Hence skipped checking NIXLF while submitting MCE entry init instruction to NIX admin queue. Also did a minor cleanup while installing bcast match entry in packet parser unit i.e NPC. Signed-off-by: Sunil Goutham <sgoutham@marvell.com> Signed-off-by: Jerin Jacob <jerinj@marvell.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
6e360f7331
commit
c5e4e4d106
|
@ -431,9 +431,8 @@ static int rvu_nix_aq_enq_inst(struct rvu *rvu, struct nix_aq_enq_req *req,
|
||||||
bool ena;
|
bool ena;
|
||||||
u64 cfg;
|
u64 cfg;
|
||||||
|
|
||||||
pfvf = rvu_get_pfvf(rvu, pcifunc);
|
|
||||||
blkaddr = rvu_get_blkaddr(rvu, BLKTYPE_NIX, pcifunc);
|
blkaddr = rvu_get_blkaddr(rvu, BLKTYPE_NIX, pcifunc);
|
||||||
if (!pfvf->nixlf || blkaddr < 0)
|
if (blkaddr < 0)
|
||||||
return NIX_AF_ERR_AF_LF_INVALID;
|
return NIX_AF_ERR_AF_LF_INVALID;
|
||||||
|
|
||||||
block = &hw->block[blkaddr];
|
block = &hw->block[blkaddr];
|
||||||
|
@ -443,9 +442,14 @@ static int rvu_nix_aq_enq_inst(struct rvu *rvu, struct nix_aq_enq_req *req,
|
||||||
return NIX_AF_ERR_AQ_ENQUEUE;
|
return NIX_AF_ERR_AQ_ENQUEUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
pfvf = rvu_get_pfvf(rvu, pcifunc);
|
||||||
nixlf = rvu_get_lf(rvu, block, pcifunc, 0);
|
nixlf = rvu_get_lf(rvu, block, pcifunc, 0);
|
||||||
if (nixlf < 0)
|
|
||||||
return NIX_AF_ERR_AF_LF_INVALID;
|
/* Skip NIXLF check for broadcast MCE entry init */
|
||||||
|
if (!(!rsp && req->ctype == NIX_AQ_CTYPE_MCE)) {
|
||||||
|
if (!pfvf->nixlf || nixlf < 0)
|
||||||
|
return NIX_AF_ERR_AF_LF_INVALID;
|
||||||
|
}
|
||||||
|
|
||||||
switch (req->ctype) {
|
switch (req->ctype) {
|
||||||
case NIX_AQ_CTYPE_RQ:
|
case NIX_AQ_CTYPE_RQ:
|
||||||
|
@ -1295,7 +1299,7 @@ static int nix_setup_mce(struct rvu *rvu, int mce, u8 op,
|
||||||
struct nix_aq_enq_req aq_req;
|
struct nix_aq_enq_req aq_req;
|
||||||
int err;
|
int err;
|
||||||
|
|
||||||
aq_req.hdr.pcifunc = pcifunc;
|
aq_req.hdr.pcifunc = 0;
|
||||||
aq_req.ctype = NIX_AQ_CTYPE_MCE;
|
aq_req.ctype = NIX_AQ_CTYPE_MCE;
|
||||||
aq_req.op = op;
|
aq_req.op = op;
|
||||||
aq_req.qidx = mce;
|
aq_req.qidx = mce;
|
||||||
|
|
|
@ -476,7 +476,7 @@ void rvu_npc_install_bcast_match_entry(struct rvu *rvu, u16 pcifunc,
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
entry.kw[0] = BIT_ULL(13) | chan;
|
entry.kw[0] = BIT_ULL(13) | chan;
|
||||||
entry.kw_mask[0] = ~entry.kw[0] & (BIT_ULL(13) | 0xFFFULL);
|
entry.kw_mask[0] = BIT_ULL(13) | 0xFFFULL;
|
||||||
|
|
||||||
*(u64 *)&action = 0x00;
|
*(u64 *)&action = 0x00;
|
||||||
#ifdef MCAST_MCE
|
#ifdef MCAST_MCE
|
||||||
|
|
Loading…
Reference in New Issue