linux-stable/drivers/misc
Wei Yongjun a39efff50c misc: lattice-ecp3-config: Fix task hung when firmware load failed
[ Upstream commit fcee5ce50b ]

When firmware load failed, kernel report task hung as follows:

INFO: task xrun:5191 blocked for more than 147 seconds.
      Tainted: G        W         5.16.0-rc5-next-20211220+ #11
"echo 0 > /proc/sys/kernel/hung_task_timeout_secs" disables this message.
task:xrun            state:D stack:    0 pid: 5191 ppid:   270 flags:0x00000004
Call Trace:
 __schedule+0xc12/0x4b50 kernel/sched/core.c:4986
 schedule+0xd7/0x260 kernel/sched/core.c:6369 (discriminator 1)
 schedule_timeout+0x7aa/0xa80 kernel/time/timer.c:1857
 wait_for_completion+0x181/0x290 kernel/sched/completion.c:85
 lattice_ecp3_remove+0x32/0x40 drivers/misc/lattice-ecp3-config.c:221
 spi_remove+0x72/0xb0 drivers/spi/spi.c:409

lattice_ecp3_remove() wait for signals from firmware loading, but when
load failed, firmware_load() does not send this signal. This cause
device remove hung. Fix it by sending signal even if load failed.

Fixes: 781551df57 ("misc: Add Lattice ECP3 FPGA configuration via SPI")
Reported-by: Hulk Robot <hulkci@huawei.com>
Signed-off-by: Wei Yongjun <weiyongjun1@huawei.com>
Link: https://lore.kernel.org/r/20211228125522.3122284-1-weiyongjun1@huawei.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2022-01-27 09:00:53 +01:00
..
altera-stapl
c2port
cb710 cb710: avoid NULL pointer subtraction 2021-10-20 10:42:03 +02:00
cxl cxl: Fix kobject memleak 2020-08-21 09:48:08 +02:00
echo
eeprom eeprom: idt_89hpesx: Put fwnode in matching case during ->probe() 2021-07-20 16:17:40 +02:00
genwqe
ibmasm misc/libmasm/module: Fix two use after free in ibmasm_init_one 2021-07-20 16:17:48 +02:00
lis3lv02d platform/x86: hp_accel: Avoid invoking _INI to speed up resume 2021-06-03 08:36:20 +02:00
mei mei: request autosuspend after sending rx flow control 2021-06-03 08:36:16 +02:00
mic misc: vop: add round_up(x,4) for vring_size to avoid kernel panic 2020-10-29 09:07:17 +01:00
sgi-gru
sgi-xp
ti-st
vmw_vmci VMCI: fix NULL pointer dereference when unmapping queue pair 2021-09-22 11:45:25 +02:00
ad525x_dpot-i2c.c
ad525x_dpot-spi.c
ad525x_dpot.c
ad525x_dpot.h
apds990x.c
apds9802als.c
aspeed-lpc-ctrl.c soc: aspeed: lpc-ctrl: Fix boundary check for mmap 2021-09-22 11:45:24 +02:00
aspeed-lpc-snoop.c
atmel-ssc.c
atmel_tclib.c
bh1770glc.c
cs5535-mfgpt.c
ds1682.c
dummy-irq.c
enclosure.c
fsa9480.c
hmc6352.c
hpilo.c
hpilo.h
ics932s401.c
ioc4.c
isl29003.c
isl29020.c
Kconfig
kgdbts.c kgdb: fix gcc-11 warnings harder 2021-06-03 08:36:15 +02:00
lattice-ecp3-config.c misc: lattice-ecp3-config: Fix task hung when firmware load failed 2022-01-27 09:00:53 +01:00
lkdtm.h
lkdtm_bugs.c
lkdtm_core.c
lkdtm_heap.c
lkdtm_perms.c
lkdtm_refcount.c
lkdtm_rodata.c
lkdtm_usercopy.c
Makefile
pch_phub.c
pci_endpoint_test.c
phantom.c
pti.c
qcom-coincell.c
spear13xx_pcie_gadget.c
sram-exec.c
sram.c
sram.h
ti_dac7512.c
tifm_7xx1.c
tifm_core.c
tsl2550.c
vexpress-syscfg.c
vmw_balloon.c