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)
commit290aa0ad74c995c60d94fb4f1d66d411efa13dd5
tree2d4c82f52352237e4edf0fb96d8e50088b4dc062
parent73bf1fc58dc4376d0111a4c1c9eab27e2759f468
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 e1e992e52faa ("[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