android_kernel_motorola_sm6375/drivers
Repository files (latest commit first)
Filename Latest commit message Latest commit date
Adam Goldman 31279bbca4 firewire: ohci: mask bus reset interrupts between ISR and bottom half
[ Upstream commit 752e3c53de0fa3b7d817a83050b6699b8e9c6ec9 ]

In the FireWire OHCI interrupt handler, if a bus reset interrupt has
occurred, mask bus reset interrupts until bus_reset_work has serviced and
cleared the interrupt.

Normally, we always leave bus reset interrupts masked. We infer the bus
reset from the self-ID interrupt that happens shortly thereafter. A
scenario where we unmask bus reset interrupts was introduced in 2008 in
a007bb857e: If
OHCI_PARAM_DEBUG_BUSRESETS (8) is set in the debug parameter bitmask, we
will unmask bus reset interrupts so we can log them.

irq_handler logs the bus reset interrupt. However, we can't clear the bus
reset event flag in irq_handler, because we won't service the event until
later. irq_handler exits with the event flag still set. If the
corresponding interrupt is still unmasked, the first bus reset will
usually freeze the system due to irq_handler being called again each
time it exits. This freeze can be reproduced by loading firewire_ohci
with "modprobe firewire_ohci debug=-1" (to enable all debugging output).
Apparently there are also some cases where bus_reset_work will get called
soon enough to clear the event, and operation will continue normally.

This freeze was first reported a few months after a007bb85 was committed,
but until now it was never fixed. The debug level could safely be set
to -1 through sysfs after the module was loaded, but this would be
ineffectual in logging bus reset interrupts since they were only
unmasked during initialization.

irq_handler will now leave the event flag set but mask bus reset
interrupts, so irq_handler won't be called again and there will be no
freeze. If OHCI_PARAM_DEBUG_BUSRESETS is enabled, bus_reset_work will
unmask the interrupt after servicing the event, so future interrupts
will be caught as desired.

As a side effect to this change, OHCI_PARAM_DEBUG_BUSRESETS can now be
enabled through sysfs in addition to during initial module loading.
However, when enabled through sysfs, logging of bus reset interrupts will
be effective only starting with the second bus reset, after
bus_reset_work has executed.

Signed-off-by: Adam Goldman <adamg@pobox.com>
Signed-off-by: Takashi Sakamoto <o-takashi@sakamocchi.jp>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2024-05-17 11:43:51 +02:00
..
accessibility
acpi Revert "ACPI: PM: Block ASUS B1400CEAE from suspend to idle by default" 2024-04-13 12:51:38 +02:00
amba amba: bus: fix refcount leak 2023-09-23 10:59:52 +02:00
android binder: check offset alignment in binder_get_object() 2024-05-02 16:18:31 +02:00
ata ata: sata_gemini: Check clk_enable() result 2024-05-17 11:43:51 +02:00
atm atm: idt77252: fix a memleak in open_card_ubr0 2024-02-23 08:25:06 +01:00
auxdisplay
base PM: sleep: wakeirq: fix wake irq warning in system suspend 2024-04-13 12:51:25 +02:00
bcma
block loop: loop_set_status_from_info() check before assignment 2024-04-13 12:51:30 +02:00
bluetooth Bluetooth: btusb: Add Realtek RTL8852BE support ID 0x0bda:0x4853 2024-05-02 16:18:36 +02:00
bus bus: tegra-aconnect: Update dependency to ARCH_TEGRA 2024-03-26 18:22:15 -04:00
cdrom
char hwrng: core - Fix page fault dead lock on mmap-ed hwrng 2024-02-23 08:24:48 +01:00
clk clk: sunxi-ng: h6: Reparent CPUX during PLL CPUX rate change 2024-05-17 11:43:50 +02:00
clocksource clocksource/drivers/timer-atmel-tcb: Fix initialization on SAM9 hardware 2023-11-28 16:50:13 +00:00
connector
counter
cpufreq cpufreq: imx6q: Don't disable 792 Mhz OPP unnecessarily 2023-12-08 08:44:28 +01:00
cpuidle
crypto crypto: qat - resolve race condition during AER recovery 2024-04-13 12:51:23 +02:00
dax
dca
devfreq PM / devfreq: Fix leak in devfreq_dev_release() 2023-09-23 10:59:54 +02:00
dio
dma dmaengine: Revert "dmaengine: pl330: issue_pending waits until WFP state" 2024-05-17 11:43:46 +02:00
dma-buf dma-buf/sw_sync: Avoid recursive lock during fence signal 2023-08-30 16:27:28 +02:00
edac EDAC/thunderx: Fix possible out-of-bounds string access 2024-01-25 14:34:21 -08:00
eisa
extcon
firewire firewire: ohci: mask bus reset interrupts between ISR and bottom half 2024-05-17 11:43:51 +02:00
firmware firmware: meson_sm: fix to avoid potential NULL pointer dereference 2024-04-13 12:51:40 +02:00
fpga
fsi fsi: master-ast-cf: Add MODULE_FIRMWARE macro 2023-09-23 10:59:37 +02:00
gnss
gpio gpio: 74x164: Enable output pins after registers are reset 2024-03-06 14:36:10 +00:00
gpu drm/amdgpu: Fix leak when GPU memory allocation fails 2024-05-02 16:18:36 +02:00
greybus
hid HID: i2c-hid: remove I2C_HID_READ_PENDING flag to prevent lock-up 2024-05-02 16:18:37 +02:00
hsi
hv
hwmon hwmon: (amc6821) add of_match table 2024-04-13 12:51:26 +02:00
hwspinlock
hwtracing coresight: etm4x: Fix width of CCITMIN field 2024-01-25 14:34:21 -08:00
i2c i2c: smbus: fix NULL function pointer dereference 2024-05-02 16:18:37 +02:00
i3c i3c: master: cdns: Update maximum prescaler value for i2c clock 2024-02-23 08:25:02 +01:00
ide
idle
iio iio: magnetometer: rm3100: add boundary check for the value read from RM3100_REG_TMRC 2024-02-23 08:25:11 +01:00
infiniband RDMA/mlx5: Fix port number for counter query in multi-port configuration 2024-05-02 16:18:30 +02:00
input Input: synaptics-rmi4 - fail probing if memory allocation for "phys" fails 2024-04-13 12:51:38 +02:00
interconnect interconnect: Treat xlate() returning NULL node as an error 2024-01-08 11:29:45 +01:00
iommu iommu/amd: Mark interrupt as managed 2024-03-26 18:22:15 -04:00
ipack
irqchip irqchip/gic-v3-its: Prevent double free on error 2024-05-02 16:18:36 +02:00
isdn mISDN: Update parameter type of dsp_cmx_send() 2023-08-16 18:19:23 +02:00
leds leds: trigger: panic: Don't register panic notifier if creating the trigger failed 2024-02-23 08:25:02 +01:00
lightnvm
macintosh
mailbox mailbox: ti-msgmgr: Fill non-message tx data fields with 0x0 2023-07-27 08:37:23 +02:00
mcb mcb: fix error handling for different scenarios when parsing 2023-11-28 16:50:19 +00:00
md dm: limit the number of targets and parameter size area 2024-05-02 16:18:37 +02:00
media media: sta2x11: fix irq handler cast 2024-04-13 12:51:38 +02:00
memory
memstick
message
mfd mfd: altera-sysmgr: Call of_node_put() only when of_parse_phandle() takes a ref 2024-03-26 18:22:21 -04:00
misc VMCI: Fix possible memcpy() run-time warning in vmci_datagram_invoke_guest_handler() 2024-04-13 12:51:40 +02:00
mmc mmc: core: Avoid negative index with array access 2024-04-13 12:51:31 +02:00
mtd mtd: diskonchip: work around ubsan link failure 2024-05-02 16:18:36 +02:00
mux
net net: bcmgenet: Reset RBUF on first open 2024-05-17 11:43:51 +02:00
nfc NFC: trf7970a: disable all regulators on removal 2024-05-02 16:18:33 +02:00
ntb ntb: Fix calculation ntb_transport_tx_free_entry() 2023-09-23 10:59:55 +02:00
nubus
nvdimm nd_btt: Make BTT lanes preemptible 2023-11-20 10:30:12 +01:00
nvme nvmet-fc: abort command when there is no binding 2024-03-01 13:13:34 +01:00
nvmem nvmem: meson-efuse: fix function pointer type mismatch 2024-04-13 12:51:26 +02:00
of of: gpio unittest kfree() wrong object 2024-02-23 08:25:15 +01:00
opp OPP: Fix passing 0 to PTR_ERR in _opp_attach_genpd() 2023-09-23 10:59:40 +02:00
oprofile
parisc parisc: iosapic.c: Fix sparse warnings 2023-10-10 21:46:39 +02:00
parport parport: parport_serial: Add Brainboxes device IDs and geometry 2024-01-25 14:34:21 -08:00
pci PCI/PM: Drain runtime-idle callbacks before driver removal 2024-04-13 12:51:25 +02:00
pcmcia pcmcia: ds: fix possible name leak in error path in pcmcia_device_add() 2023-11-20 10:30:14 +01:00
perf perf/smmuv3: Enable HiSilicon Erratum 162001900 quirk for HIP08/09 2023-09-23 11:00:03 +02:00
phy phy: ti: phy-omap-usb2: Fix NULL pointer dereference for SRP 2024-02-23 08:25:06 +01:00
pinctrl pinctrl: devicetree: fix refcount leak in pinctrl_dt_to_map() 2024-05-17 11:43:48 +02:00
platform platform/x86: intel_telemetry: Fix kernel doc descriptions 2023-12-20 15:41:21 +01:00
pnp PNP: ACPI: fix fortify warning 2024-02-23 08:24:54 +01:00
power power: rt9455: hide unused rt9455_boost_voltage_values 2024-05-17 11:43:48 +02:00
powercap
pps
ps3
ptp ptp: annotate data-race around q->head and q->tail 2023-11-28 16:50:16 +00:00
pwm pwm: brcmstb: Utilize appropriate clock APIs in suspend/resume 2023-11-20 10:30:15 +01:00
rapidio
ras
regulator regulator: pwm-regulator: Add validity checks in continuous .get_voltage 2024-03-01 13:13:34 +01:00
remoteproc
reset reset: hisilicon: hi6220: fix Wvoid-pointer-to-enum-cast warning 2024-01-25 14:34:20 -08:00
rpmsg rpmsg: virtio: Free driver_override when rpmsg_remove() 2024-02-23 08:24:48 +01:00
rtc rtc: mt6397: select IRQ_DOMAIN instead of depending on it 2024-03-26 18:22:24 -04:00
s390 s390/zcrypt: fix reference counting on zcrypt card objects 2024-04-13 12:51:27 +02:00
sbus
scsi scsi: bnx2fc: Remove spin_lock_bh while releasing resources after upload 2024-05-17 11:43:50 +02:00
sfi
sh
siox
slimbus slimbus: core: Remove usage of the deprecated ida_simple_xx() API 2024-04-13 12:51:26 +02:00
soc soc: fsl: qbman: Use raw spinlock for cgr_lock 2024-04-13 12:51:27 +02:00
soundwire soundwire: stream: fix NULL pointer dereference for multi_link 2023-12-20 15:41:24 +01:00
spi spi: spi-mt65xx: Fix NULL pointer access in interrupt handler 2024-03-26 18:22:25 -04:00
spmi
ssb
staging speakup: Avoid crash on very long word 2024-05-02 16:18:32 +02:00
target scsi: target: core: Add TMF to tmr_list handling 2024-03-01 13:13:33 +01:00
tc
tee
thermal thermal: core: prevent potential string overflow 2023-11-20 10:30:09 +01:00
thunderbolt
tty serial: mxs-auart: add spinlock around changing cts state 2024-05-02 16:18:35 +02:00
uio uio: Fix use-after-free in uio_open 2024-01-25 14:34:21 -08:00
usb usb: Disable USB3 LPM at shutdown 2024-05-02 16:18:32 +02:00
vfio vfio/platform: Create persistent IRQ handlers 2024-04-13 12:51:34 +02:00
vhost vhost: Add smp_rmb() in vhost_vq_avail_empty() 2024-05-02 16:18:29 +02:00
video fbmon: prevent division by zero in fb_videomode_from_videomode() 2024-04-13 12:51:39 +02:00
virt
virtio virtio: reenable config if freezing device failed 2024-04-13 12:51:40 +02:00
visorbus
vlynq
vme
w1
watchdog watchdog: stm32_iwdg: initialize default timeout 2024-03-26 18:22:24 -04:00
xen xen/events: close evtchn after mapping cleanup 2024-04-13 12:51:29 +02:00
zorro
Kconfig
Makefile