]> git.ipfire.org Git - thirdparty/kernel/stable.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)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 23 Jan 2025 16:15:50 +0000 (17:15 +0100)
[ Upstream commit 4c1224501e9d6c5fd12d83752f1c1b444e0e3418 ]

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>
Signed-off-by: Sasha Levin <sashal@kernel.org>
drivers/net/ethernet/chelsio/cxgb4/cxgb4_main.c

index 21afaa81697e695ff8e7ff617c12d14827b02493..47529c77654c8be0de623815c8988df109581c43 100644 (file)
@@ -1800,7 +1800,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;