linux_dsm_epyc7002/drivers
Johan Hovold 0c3aae9bd5 USB: musb: fix late external abort on suspend
The musb delayed irq work was never flushed on suspend, something which
since 4.9 can lead to an external abort if the work is scheduled after
the grandparent's clock has been disabled:

PM: Suspending system (mem)
PM: suspend of devices complete after 125.224 msecs
PM: suspend devices took 0.132 seconds
PM: late suspend of devices complete after 7.423 msecs
PM: noirq suspend of devices complete after 7.083 msecs
suspend debug: Waiting for 5 second(s).
Unhandled fault: external abort on non-linefetch (0x1008) at 0xd0262c60
...
[<c054880c>] (musb_default_readb) from [<c0547b5c>] (musb_irq_work+0x48/0x220)
[<c0547b5c>] (musb_irq_work) from [<c014f8a4>] (process_one_work+0x1f4/0x758)
[<c014f8a4>] (process_one_work) from [<c014fe5c>] (worker_thread+0x54/0x514)
[<c014fe5c>] (worker_thread) from [<c015704c>] (kthread+0x128/0x158)
[<c015704c>] (kthread) from [<c0109330>] (ret_from_fork+0x14/0x24)

Commit 2bff3916fd ("usb: musb: Fix PM for hub disconnect") started
scheduling musb_irq_work with a delay of up to a second and with
retries thereby making this easy to trigger, for example, by suspending
shortly after a disconnect.

Note that we set a flag to prevent the irq work from rescheduling itself
during suspend and instead process a disconnect immediately. This takes
care of the case where we are disconnected shortly before suspending.

However, when in host mode, a disconnect while suspended will still
go unnoticed and thus prevent the controller from runtime suspending
upon resume as the session bit is always set. This will need to be
addressed separately.

Fixes: 550a7375fe ("USB: Add MUSB and TUSB support")
Fixes: 467d5c9807 ("usb: musb: Implement session bit based runtime PM for musb-core")
Fixes: 2bff3916fd ("usb: musb: Fix PM for hub disconnect")
Cc: stable <stable@vger.kernel.org>     # 4.9
Cc: Felipe Balbi <felipe.balbi@linux.intel.com>
Cc: Tony Lindgren <tony@atomide.com>
Signed-off-by: Johan Hovold <johan@kernel.org>
Tested-by: Tony Lindgren <tony@atomide.com>
Signed-off-by: Bin Liu <b-liu@ti.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2017-10-17 11:42:51 +02:00
..
accessibility
acpi ACPI: properties: Fix __acpi_node_get_property_reference() return codes 2017-10-11 21:16:37 +02:00
amba
android Char/Misc driver fixes for 4.14-rc5 2017-10-15 07:50:38 -04:00
ata ahci: don't ignore result code of ahci_reset_controller() 2017-10-02 12:21:30 -07:00
atm
auxdisplay
base mm: only display online cpus of the numa node 2017-10-13 16:18:32 -07:00
bcma
block Merge branch 'for-linus' of git://git.kernel.dk/linux-block 2017-10-06 12:13:50 -07:00
bluetooth
bus
cdrom
char
clk clk: samsung: exynos4: Enable VPLL and EPLL clocks for suspend/resume cycle 2017-10-04 09:19:13 -07:00
clocksource
connector
cpufreq
cpuidle
crypto crypto: stm32 - Try to fix hash padding 2017-10-07 12:04:31 +08:00
dax
dca
devfreq
dio
dma dmaengine: altera: fix spinlock usage 2017-09-28 13:11:46 +05:30
dma-buf sync_file: Return consistent status in SYNC_IOC_FILE_INFO 2017-10-09 13:09:19 -03:00
edac
eisa
extcon
firewire
firmware
fmc
fpga
fsi
gpio gpio: omap: Fix lost edge interrupts 2017-10-07 13:17:07 +02:00
gpu Merge tag 'drm-intel-fixes-2017-10-11' of git://anongit.freedesktop.org/drm/drm-intel into drm-fixes 2017-10-14 09:59:20 +10:00
hid Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/hid 2017-10-12 09:08:56 -07:00
hsi
hv Drivers: hv: vmbus: Fix bugs in rescind handling 2017-10-04 11:25:09 +02:00
hwmon hwmon: (xgene) Fix up error handling path mixup in 'xgene_hwmon_probe()' 2017-10-01 08:46:54 -07:00
hwspinlock
hwtracing
i2c Merge branch 'i2c/for-current-4.14' of git://git.kernel.org/pub/scm/linux/kernel/git/wsa/linux 2017-10-07 10:07:51 -07:00
ide ide: fix IRQ assignment for PCI bus order probing 2017-10-03 14:03:31 -05:00
idle
iio
infiniband i40iw: Fix port number for query QP 2017-10-04 15:28:49 -04:00
input
iommu iommu/amd: Finish TLB flush in amd_iommu_unmap() 2017-10-13 17:32:19 +02:00
ipack
irqchip
isdn
leds
lightnvm
macintosh
mailbox
mcb
md Merge branch 'for-linus' of git://git.kernel.dk/linux-block 2017-10-06 12:13:50 -07:00
media Update James Hogan's email address 2017-10-04 17:11:53 -07:00
memory
memstick
message
mfd
misc Char/Misc driver fixes for 4.14-rc5 2017-10-15 07:50:38 -04:00
mmc mmc: sdhci-xenon: Fix clock resource by adding an optional bus clock 2017-10-04 10:50:36 +02:00
mtd
mux
net cdc_ether: flag the u-blox TOBY-L2 and SARA-U2 as wwan 2017-10-09 16:03:32 -07:00
nfc
ntb
nubus
nvdimm
nvme nvme-pci: Use PCI bus address for data/queues in CMB 2017-10-04 11:42:53 +02:00
nvmem
of device property: preserve usecount for node passed to of_fwnode_graph_get_port_parent() 2017-10-12 12:26:14 -05:00
oprofile
parisc
parport
pci PCI: aardvark: Move to struct pci_host_bridge IRQ mapping functions 2017-10-10 21:17:43 -05:00
pcmcia
perf
phy phy: rockchip-typec: Check for errors from tcphy_phy_init() 2017-10-03 15:18:41 +05:30
pinctrl pinctrl: cherryview: fix issues caused by dynamic gpio irqs mapping 2017-10-08 02:32:59 +02:00
platform
pnp
power
powercap
pps
ps3
ptp
pwm
rapidio rapidio: remove global irq spinlocks from the subsystem 2017-10-03 17:54:24 -07:00
ras RAS/CEC: Use the right length for "cec_disable" 2017-10-05 14:23:06 +02:00
regulator
remoteproc remoteproc: imx_rproc: fix return value check in imx_rproc_addr_init() 2017-10-11 10:47:47 -07:00
reset
rpmsg rpmsg: glink: Fix memory leak in qcom_glink_alloc_intent() 2017-10-10 11:22:09 -07:00
rtc
s390
sbus
scsi SCSI fixes on 20171007 2017-10-07 12:34:16 -07:00
sfi
sh
sn
soc
spi
spmi
ssb
staging
target
tc
tee
thermal
thunderbolt
tty tty: fall back to N_NULL if switching to N_TTY fails during hangup 2017-10-13 16:18:33 -07:00
uio
usb USB: musb: fix late external abort on suspend 2017-10-17 11:42:51 +02:00
uwb
vfio
vhost
video
virt
virtio
vlynq
vme
w1
watchdog
xen xen: fixes for 4.14-rc3 2017-09-29 12:24:28 -07:00
zorro
Kconfig
Makefile