]> git.baikalelectronics.ru Git - kernel.git/commit
net: sched: don't disable bh when accessing action idr
authorVlad Buslov <vladbu@mellanox.com>
Mon, 21 May 2018 20:03:04 +0000 (23:03 +0300)
committerDavid S. Miller <davem@davemloft.net>
Tue, 22 May 2018 19:34:34 +0000 (15:34 -0400)
commit6ba108896b5f868bd913b8b4f946f48e6a923439
tree2d4c82f52352237e4edf0fb96d8e50088b4dc062
parent4b6564c18707779e501d7c90ea3bcd2ee21f561f
net: sched: don't disable bh when accessing action idr

Initial net_device implementation used ingress_lock spinlock to synchronize
ingress path of device. This lock was used in both process and bh context.
In some code paths action map lock was obtained while holding ingress_lock.
Commit 3c38b0adbf3f ("[NET_SCHED] protect action config/dump from irqs")
modified actions to always disable bh, while using action map lock, in
order to prevent deadlock on ingress_lock in softirq. This lock was removed
from net_device, so disabling bh, while accessing action map, is no longer
necessary.

Replace all action idr spinlock usage with regular calls that do not
disable bh.

Signed-off-by: Vlad Buslov <vladbu@mellanox.com>
Acked-by: Jamal Hadi Salim <jhs@mojatatu.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
net/sched/act_api.c