mirror of https://gitee.com/openkylin/linux.git
82154580a7
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> |
||
---|---|---|
.. | ||
Makefile | ||
common.h | ||
cphy.h | ||
cpl5_cmd.h | ||
cxgb2.c | ||
elmer0.h | ||
espi.c | ||
espi.h | ||
fpga_defs.h | ||
gmac.h | ||
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.c | ||
vsc7326_reg.h |