Commit 3f6c02f
serial: stm32: Merge hard IRQ and threaded IRQ handling into single IRQ handler
Requesting an interrupt with IRQF_ONESHOT will run the primary handler
in the hard-IRQ context even in the force-threaded mode. The
force-threaded mode is used by PREEMPT_RT in order to avoid acquiring
sleeping locks (spinlock_t) in hard-IRQ context. This combination
makes it impossible and leads to "sleeping while atomic" warnings.
Use one interrupt handler for both handlers (primary and secondary)
and drop the IRQF_ONESHOT flag which is not needed.
Fixes: e359b44 ("serial: stm32: fix threaded interrupt handling")
Reviewed-by: Sebastian Andrzej Siewior <[email protected]>
Tested-by: Valentin Caron <[email protected]> # V3
Signed-off-by: Marek Vasut <[email protected]>
Cc: [email protected]
Link: https://lore.kernel.org/r/[email protected]
Signed-off-by: Greg Kroah-Hartman <[email protected]>1 parent 2241ab5 commit 3f6c02f
1 file changed
+5
-28
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
797 | 797 | | |
798 | 798 | | |
799 | 799 | | |
800 | | - | |
801 | | - | |
802 | | - | |
803 | | - | |
804 | | - | |
805 | | - | |
806 | | - | |
807 | | - | |
808 | | - | |
809 | | - | |
810 | | - | |
811 | | - | |
812 | | - | |
813 | | - | |
814 | 800 | | |
815 | | - | |
816 | | - | |
| 801 | + | |
| 802 | + | |
817 | 803 | | |
818 | | - | |
| 804 | + | |
819 | 805 | | |
820 | 806 | | |
821 | 807 | | |
| |||
1015 | 1001 | | |
1016 | 1002 | | |
1017 | 1003 | | |
1018 | | - | |
1019 | | - | |
1020 | | - | |
1021 | | - | |
| 1004 | + | |
| 1005 | + | |
1022 | 1006 | | |
1023 | 1007 | | |
1024 | 1008 | | |
| |||
1601 | 1585 | | |
1602 | 1586 | | |
1603 | 1587 | | |
1604 | | - | |
1605 | | - | |
1606 | | - | |
1607 | | - | |
1608 | | - | |
1609 | | - | |
1610 | | - | |
1611 | 1588 | | |
1612 | 1589 | | |
1613 | 1590 | | |
| |||
0 commit comments