]> www.infradead.org Git - users/hch/misc.git/commitdiff
cxgb4: Avoid removal of uninserted tid
authorAnumula Murali Mohan Reddy <anumula@chelsio.com>
Fri, 3 Jan 2025 09:23:27 +0000 (14:53 +0530)
committerJakub Kicinski <kuba@kernel.org>
Tue, 7 Jan 2025 00:47:18 +0000 (16:47 -0800)
During ARP failure, tid is not inserted but _c4iw_free_ep()
attempts to remove tid which results in error.
This patch fixes the issue by avoiding removal of uninserted tid.

Fixes: 59437d78f088 ("cxgb4/chtls: fix ULD connection failures due to wrong TID base")
Signed-off-by: Anumula Murali Mohan Reddy <anumula@chelsio.com>
Signed-off-by: Potnuri Bharat Teja <bharat@chelsio.com>
Link: https://patch.msgid.link/20250103092327.1011925-1-anumula@chelsio.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
drivers/net/ethernet/chelsio/cxgb4/cxgb4_main.c

index bc3af005440643db8e59f7209e09a08b5b1be181..604dcfd49aa4cedde7de582a92816a449df9b2aa 100644 (file)
@@ -1799,7 +1799,10 @@ void cxgb4_remove_tid(struct tid_info *t, unsigned int chan, unsigned int tid,
        struct adapter *adap = container_of(t, struct adapter, tids);
        struct sk_buff *skb;
 
-       WARN_ON(tid_out_of_range(&adap->tids, tid));
+       if (tid_out_of_range(&adap->tids, tid)) {
+               dev_err(adap->pdev_dev, "tid %d out of range\n", tid);
+               return;
+       }
 
        if (t->tid_tab[tid - adap->tids.tid_base]) {
                t->tid_tab[tid - adap->tids.tid_base] = NULL;