Message ID | 20230608114201.31112-2-naveenm@marvell.com (mailing list archive) |
---|---|
State | Accepted |
Commit | 4e635f9d86165e47f5440196f2ebdb258efb8341 |
Delegated to: | Netdev Maintainers |
Headers | show |
Series | RVU NIX AF driver fixes | expand |
On 6/8/2023 4:42 AM, Naveen Mamindlapalli wrote: > From: Satha Rao <skoteshwar@marvell.com> > > txschq_alloc response have two different arrays to store continuous > and non-continuous schedulers of each level. Requested count should > be checked for each array separately. > > Fixes: 5d9b976d4480 ("octeontx2-af: Support fixed transmit scheduler topology") > Signed-off-by: Satha Rao <skoteshwar@marvell.com> > Signed-off-by: Sunil Kovvuri Goutham <sgoutham@marvell.com> > Signed-off-by: Naveen Mamindlapalli <naveenm@marvell.com> Reviewed-by: Sridhar Samudrala <sridhar.samudrala@intel.com> > --- > drivers/net/ethernet/marvell/octeontx2/af/rvu_nix.c | 3 ++- > 1 file changed, 2 insertions(+), 1 deletion(-) > > diff --git a/drivers/net/ethernet/marvell/octeontx2/af/rvu_nix.c b/drivers/net/ethernet/marvell/octeontx2/af/rvu_nix.c > index 26e639e57dae..967370c0a649 100644 > --- a/drivers/net/ethernet/marvell/octeontx2/af/rvu_nix.c > +++ b/drivers/net/ethernet/marvell/octeontx2/af/rvu_nix.c > @@ -1864,7 +1864,8 @@ static int nix_check_txschq_alloc_req(struct rvu *rvu, int lvl, u16 pcifunc, > free_cnt = rvu_rsrc_free_count(&txsch->schq); > } > > - if (free_cnt < req_schq || req_schq > MAX_TXSCHQ_PER_FUNC) > + if (free_cnt < req_schq || req->schq[lvl] > MAX_TXSCHQ_PER_FUNC || > + req->schq_contig[lvl] > MAX_TXSCHQ_PER_FUNC) > return NIX_AF_ERR_TLX_ALLOC_FAIL; > > /* If contiguous queues are needed, check for availability */
diff --git a/drivers/net/ethernet/marvell/octeontx2/af/rvu_nix.c b/drivers/net/ethernet/marvell/octeontx2/af/rvu_nix.c index 26e639e57dae..967370c0a649 100644 --- a/drivers/net/ethernet/marvell/octeontx2/af/rvu_nix.c +++ b/drivers/net/ethernet/marvell/octeontx2/af/rvu_nix.c @@ -1864,7 +1864,8 @@ static int nix_check_txschq_alloc_req(struct rvu *rvu, int lvl, u16 pcifunc, free_cnt = rvu_rsrc_free_count(&txsch->schq); } - if (free_cnt < req_schq || req_schq > MAX_TXSCHQ_PER_FUNC) + if (free_cnt < req_schq || req->schq[lvl] > MAX_TXSCHQ_PER_FUNC || + req->schq_contig[lvl] > MAX_TXSCHQ_PER_FUNC) return NIX_AF_ERR_TLX_ALLOC_FAIL; /* If contiguous queues are needed, check for availability */