Commit 43d01212 authored by Dan Carpenter's avatar Dan Carpenter Committed by David S. Miller

rocker: fix a sleeping in atomic bug

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: 936bd486 ("rocker: use FIB notifications instead of switchdev calls")
Signed-off-by: default avatarDan Carpenter <dan.carpenter@oracle.com>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent 44073187
...@@ -2783,7 +2783,8 @@ static void ofdpa_fib4_abort(struct rocker *rocker) ...@@ -2783,7 +2783,8 @@ static void ofdpa_fib4_abort(struct rocker *rocker)
if (!ofdpa_port) if (!ofdpa_port)
continue; continue;
nh->fib_nh_flags &= ~RTNH_F_OFFLOAD; 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); flow_entry);
} }
spin_unlock_irqrestore(&ofdpa->flow_tbl_lock, flags); spin_unlock_irqrestore(&ofdpa->flow_tbl_lock, flags);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment