iio: sysfs-trigger: Mark irq_work to expire in hardirq context
authorLars-Peter Clausen <lars@metafoo.de>
Tue, 17 Nov 2020 10:37:51 +0000 (11:37 +0100)
committerJonathan Cameron <Jonathan.Cameron@huawei.com>
Thu, 3 Dec 2020 19:40:30 +0000 (19:40 +0000)
commit0449fc4eead7af2523cd12f312b856dfa93731ed
tree5dc36b8d3aca6446a303eca24a751d5f0f7eca6e
parent0178297c1e6898e2197fe169ef3be723e019b971
iio: sysfs-trigger: Mark irq_work to expire in hardirq context

Mark the IIO sysfs-trigger irq_work with IRQ_WORK_HARD_IRQ to ensure that
it is always executed in hard interrupt context, even with PREEMPT_RT=y.

The IIO sysfs-trigger irq_work needs to run in hard interrupt context since
it will end up calling generic_handle_irq() which has the requirement to
run in hard interrupt context.

Note that the IRQ_WORK_HARD_IRQ flag, while it exists, does not seem to do
anything in the mainline kernel yet. It does have an effect in the RT
patchset though and presumably this is sooner or later going to be added to
mainline as well.

Reported-by: Christian Eggers <ceggers@arri.de>
Signed-off-by: Lars-Peter Clausen <lars@metafoo.de>
Acked-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Link: https://lore.kernel.org/r/20201117103751.16131-2-lars@metafoo.de
Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
drivers/iio/trigger/iio-trig-sysfs.c