From: Ido Schimmel <idosch@xxxxxxxxxx> Date: Thu, 30 Apr 2020 22:38:45 +0300 > From: Ido Schimmel <idosch@xxxxxxxxxxxx> > > User space can request to delete a range of VLANs from a bridge slave in > one netlink request. For each deleted VLAN the FDB needs to be traversed > in order to flush all the affected entries. > > If a large range of VLANs is deleted and the number of FDB entries is > large or the FDB lock is contented, it is possible for the kernel to > loop through the deleted VLANs for a long time. In case preemption is > disabled, this can result in a soft lockup. > > Fix this by adding a schedule point after each VLAN is deleted to yield > the CPU, if needed. This is safe because the VLANs are traversed in > process context. > > Fixes: bdced7ef7838 ("bridge: support for multiple vlans and vlan ranges in setlink and dellink requests") > Signed-off-by: Ido Schimmel <idosch@xxxxxxxxxxxx> > Reported-by: Stefan Priebe - Profihost AG <s.priebe@xxxxxxxxxxxx> > Tested-by: Stefan Priebe - Profihost AG <s.priebe@xxxxxxxxxxxx> Applied and queued up for -stable.