]> git.proxmox.com Git - mirror_ubuntu-jammy-kernel.git/commitdiff
rocker: fix a sleeping in atomic bug
authorDan Carpenter <dan.carpenter@oracle.com>
Thu, 6 Jan 2022 11:57:54 +0000 (14:57 +0300)
committerPaolo Pisati <paolo.pisati@canonical.com>
Fri, 28 Jan 2022 09:59:49 +0000 (10:59 +0100)
BugLink: https://bugs.launchpad.net/bugs/1959376
[ Upstream commit 43d012123122cc69feacab55b71369f386c19566 ]

This code is holding the &ofdpa->flow_tbl_lock spinlock so it is not
allowed to sleep.  That means we have to pass the OFDPA_OP_FLAG_NOWAIT
flag to ofdpa_flow_tbl_del().

Fixes: 936bd486564a ("rocker: use FIB notifications instead of switchdev calls")
Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Sasha Levin <sashal@kernel.org>
Signed-off-by: Paolo Pisati <paolo.pisati@canonical.com>
drivers/net/ethernet/rocker/rocker_ofdpa.c

index 3e1ca7a8d02950977a87041f55e4005c4810f8a0..bc70c6abd6a5bfddc72bdec26e2aaee5b5313705 100644 (file)
@@ -2783,7 +2783,8 @@ static void ofdpa_fib4_abort(struct rocker *rocker)
                if (!ofdpa_port)
                        continue;
                nh->fib_nh_flags &= ~RTNH_F_OFFLOAD;
-               ofdpa_flow_tbl_del(ofdpa_port, OFDPA_OP_FLAG_REMOVE,
+               ofdpa_flow_tbl_del(ofdpa_port,
+                                  OFDPA_OP_FLAG_REMOVE | OFDPA_OP_FLAG_NOWAIT,
                                   flow_entry);
        }
        spin_unlock_irqrestore(&ofdpa->flow_tbl_lock, flags);