Commit 13c7853
serial: stm32: Return IRQ_NONE in the ISR if no handling happend
If there is a stuck irq that the handler doesn't address, returning
IRQ_HANDLED unconditionally makes it impossible for the irq core to
detect the problem and disable the irq. So only return IRQ_HANDLED if
an event was handled.
A stuck irq is still problematic, but with this change at least it only
makes the UART nonfunctional instead of occupying the (usually only) CPU
by 100% and so stall the whole machine.
Fixes: 48a6092 ("serial: stm32-usart: Add STM32 USART Driver")
Cc: stable@vger.kernel.org
Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
Link: https://lore.kernel.org/r/5f92603d0dfd8a5b8014b2b10a902d91e0bb881f.1713344161.git.u.kleine-koenig@pengutronix.de
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>1 parent 1aa4ad4 commit 13c7853
1 file changed
Lines changed: 10 additions & 2 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
861 | 861 | | |
862 | 862 | | |
863 | 863 | | |
| 864 | + | |
864 | 865 | | |
865 | 866 | | |
866 | 867 | | |
| |||
869 | 870 | | |
870 | 871 | | |
871 | 872 | | |
| 873 | + | |
872 | 874 | | |
873 | 875 | | |
874 | | - | |
| 876 | + | |
875 | 877 | | |
876 | 878 | | |
| 879 | + | |
| 880 | + | |
877 | 881 | | |
878 | 882 | | |
879 | 883 | | |
| |||
882 | 886 | | |
883 | 887 | | |
884 | 888 | | |
| 889 | + | |
885 | 890 | | |
886 | 891 | | |
887 | 892 | | |
| |||
896 | 901 | | |
897 | 902 | | |
898 | 903 | | |
| 904 | + | |
899 | 905 | | |
900 | 906 | | |
901 | 907 | | |
902 | 908 | | |
903 | 909 | | |
904 | 910 | | |
905 | 911 | | |
| 912 | + | |
906 | 913 | | |
907 | 914 | | |
908 | 915 | | |
| |||
912 | 919 | | |
913 | 920 | | |
914 | 921 | | |
| 922 | + | |
915 | 923 | | |
916 | 924 | | |
917 | | - | |
| 925 | + | |
918 | 926 | | |
919 | 927 | | |
920 | 928 | | |
| |||
0 commit comments