mirror of
https://git.proxmox.com/git/mirror_ubuntu-kernels.git
synced 2025-12-06 03:59:37 +00:00
t1_fatal_err() is invoked from the interrupt handler. The bad part is that it invokes (via t1_sge_stop()) del_timer_sync() and tasklet_kill(). Both functions must not be called from an interrupt because it is possible that it will wait for the completion of the timer/tasklet it just interrupted. In case of a fatal error, use t1_interrupts_disable() to disable all interrupt sources and then wake the interrupt thread with F_PL_INTR_SGE_ERR as pending flag. The threaded-interrupt will stop the card via t1_sge_stop() and not re-enable the interrupts again. Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> Signed-off-by: Jakub Kicinski <kuba@kernel.org> |
||
|---|---|---|
| .. | ||
| common.h | ||
| cphy.h | ||
| cpl5_cmd.h | ||
| cxgb2.c | ||
| elmer0.h | ||
| espi.c | ||
| espi.h | ||
| fpga_defs.h | ||
| gmac.h | ||
| Makefile | ||
| mv88e1xxx.c | ||
| mv88e1xxx.h | ||
| mv88x201x.c | ||
| my3126.c | ||
| pm3393.c | ||
| regs.h | ||
| sge.c | ||
| sge.h | ||
| subr.c | ||
| suni1x10gexp_regs.h | ||
| tp.c | ||
| tp.h | ||
| vsc7326_reg.h | ||
| vsc7326.c | ||