openwrt/package/kernel
Jan Hoffmann 290c13b7d7 ltq-vdsl-mei: add locking to interrupt handler
Some users noticed repeated resyncs at random intervals, which go away
when the MEI driver is configured to use polling instead of interrupts.
Debugging shows that this seems to be caused by concurrent calls to
MEI_ReadMailbox (in the interrupt handler) and MEI_WriteMailbox. This
appears to be mostly triggered when there is an interrupt for vectoring
error reports.

In polling mode, calls to MEI_ReadMailbox are protected by the same
semaphore as is used in MEI_WriteMailbox. When interrupts are used,
MEI_WriteMailbox appears to rely on MEI_DisableDeviceInt and
MEI_EnableDeviceInt to provide mutual exclusion with the interrupt
handler. These functions mask/unmask interrupts, and there is an
additional check of the mask in the interrupt handler itself. However,
this is not sufficient on systems with SMP, as the interrupt handler
may be running in parallel, and could already be past the interrupt
mask check at this point.

This adds a lock to the interrupt handler, and also acquires this lock
in MEI_DisableDeviceInt. This should make sure that after a call to
MEI_DisableDeviceInt the interrupt is masked, and the interrupt handler
is either not running, has alread finished its work, or is still before
the interrupt mask check, and is thus going to detect the change.

Tested-by: Martin Blumenstingl <martin.blumenstingl@googlemail.com>
Signed-off-by: Jan Hoffmann <jan@3e8.eu>
(cherry picked from commit 1700424553)
2022-06-07 21:36:58 +02:00
..
acx-mac80211 acx-mac80211: replace dead URLs with OpenWrt CDN 2021-02-07 11:26:36 -10:00
ath10k-ct ath10k-ct: Fix spectral scan NULL pointer 2021-11-29 21:48:03 +01:00
bcm27xx-gpu-fw bcm27xx-gpu-fw: update to latest version 2021-08-21 19:07:06 +02:00
bcm63xx-cfe bcm63xx-cfe: update to the latest master 2021-06-22 13:27:41 +02:00
bpf-headers bpf-headers: ship a modified version of stdarg.h from musl to fix ebpf build on glibc 2022-03-07 10:38:41 +01:00
broadcom-wl treewide: unify OpenWrt hosted source via @OPENWRT 2021-02-05 12:00:24 -10:00
button-hotplug kernel: replace SUBDIRS with M in package recipes 2020-02-22 16:38:41 +01:00
cryptodev-linux cryptodev-linux: update to 1.12 2021-09-29 22:56:59 +02:00
dtc/patches package: kernel: dtc: Add DTO support 2017-11-06 16:39:41 +01:00
gpio-button-hotplug gpio-button-hotplug: fix data race 2022-04-10 16:26:01 +01:00
gpio-nct5104d kernel: drop outdated kernel version switches for local code 2020-05-17 18:35:51 +02:00
hwmon-gsc kernel: update dependencies after 'imx6' -> 'imx' rename 2021-11-03 12:45:40 +01:00
ksmbd ksmbd: add out-of-tree module 2022-02-19 18:29:42 +01:00
lantiq ltq-vdsl-mei: add locking to interrupt handler 2022-06-07 21:36:58 +02:00
linux netfilter: move nf-log modules into separate packages 2022-04-19 23:57:14 +02:00
mac80211 mac80211: fix QCA9561 PA bias 2022-04-18 06:43:06 +02:00
mt76 mt76: update to the latest version 2022-03-15 10:46:10 +01:00
mt7621-qtn-rgmii mt7621-qtn-rgmii: enable RGMII connected Quantenna QV840 2020-07-08 16:07:05 +02:00
mwlwifi mwlwifi: add PKG_FLAGS:=nonshared 2021-03-24 15:26:31 +00:00
nat46 nat46: update to latest git HEAD 2021-12-05 18:40:19 +01:00
rtc-rv5c386a kernel: drop outdated kernel version switches for local code 2020-05-17 18:35:51 +02:00
rtl8812au-ct rtl8812au-ct: update driver to be ready for 5.15 2021-12-11 00:50:02 +01:00
trelay package: drop PKG_VERSION for purely local packages 2020-07-15 18:33:56 +02:00