summaryrefslogtreecommitdiff
path: root/net/openvswitch/dp_notify.c
diff options
context:
space:
mode:
authorStrashko, Grygorii <grygorii.strashko@ti.com>2016-12-08 17:33:10 -0600
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2017-08-06 19:19:44 -0700
commitfc6c41f0b921a7c6a8b4a14f63b0e22df9bc06de (patch)
tree6dbac212e4f9382e1bd0a1337945d4c7dff99239 /net/openvswitch/dp_notify.c
parent1704a969506259e6e363b6416f16e93a89e472fd (diff)
irqchip/keystone: Fix "scheduling while atomic" on rt
[ Upstream commit 2f884e6e688a0deb69e6c9552e51aef8b7e3f5f1 ] The below call chain generates "scheduling while atomic" backtrace and causes system crash when Keystone 2 IRQ chip driver is used with RT-kernel: gic_handle_irq() |-__handle_domain_irq() |-generic_handle_irq() |-keystone_irq_handler() |-regmap_read() |-regmap_lock_spinlock() |-rt_spin_lock() The reason is that Keystone driver dispatches IRQ using chained IRQ handler and accesses I/O memory through syscon->regmap(mmio) which is implemented as fast_io regmap and uses regular spinlocks for synchronization, but spinlocks transformed to rt_mutexes on RT. Hence, convert Keystone 2 IRQ driver to use generic irq handler instead of chained IRQ handler. This way it will be compatible with RT kernel where it will be forced thread IRQ handler while in non-RT kernel it still will be executed in HW IRQ context. Cc: Suman Anna <s-anna@ti.com> Signed-off-by: Grygorii Strashko <grygorii.strashko@ti.com> Tested-by: Suman Anna <s-anna@ti.com> Link: https://lkml.kernel.org/r/20161208233310.10329-1-grygorii.strashko@ti.com Signed-off-by: Jason Cooper <jason@lakedaemon.net> Signed-off-by: Sasha Levin <alexander.levin@verizon.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'net/openvswitch/dp_notify.c')
0 files changed, 0 insertions, 0 deletions