When refilling freelists for the first time and if it fails, the rxq is freed and returns ENOMEM. There is a check while freeing hardware rxq to pass freelist context id if the freelist exists or 0xffff otherwise. The error path is only reached if freelist exists. So, fix is to remove the useless check for freelist existence.
Thanks to John McNamara <john.mcnamara at intel.com> for reporting it. Coverity issue: 107108 Fixes: 92c8a63223e5 ("cxgbe: add device configuration and Rx support") Signed-off-by: Rahul Lakkireddy <rahul.lakkireddy at chelsio.com> Signed-off-by: Kumar Sanghvi <kumaras at chelsio.com> --- drivers/net/cxgbe/sge.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/net/cxgbe/sge.c b/drivers/net/cxgbe/sge.c index 51449e0..3c62d03 100644 --- a/drivers/net/cxgbe/sge.c +++ b/drivers/net/cxgbe/sge.c @@ -1823,7 +1823,7 @@ int t4_sge_alloc_rxq(struct adapter *adap, struct sge_rspq *iq, bool fwevtq, refill_fl_err: t4_iq_free(adap, adap->mbox, adap->pf, 0, FW_IQ_TYPE_FL_INT_CAP, - iq->cntxt_id, fl ? fl->cntxt_id : 0xffff, 0xffff); + iq->cntxt_id, fl->cntxt_id, 0xffff); fl_nomem: ret = -ENOMEM; err: -- 2.5.3