Openwrt/target/linux/lantiq/patches-4.4
Andrea Merello b81c04382b lantiq: fix sleep with spinlock held in xrx200 network driver
In the xrx200_close() function we call napi_disable(), that could
sleep, with priv->hw->chan[i].lock held. This could lead to deadlock
and causes the kernel to complain.

Look at the code I couldn't convince myself about why we
need to protect that specific code part with the lock. IMHO there
seems no reason to protect the refcount variables, because AFAIK
ndo_close() and ndo_open() callbacks are already called with a
semaphore held. Neither I could figure out why napi_disable() have to
be called with that lock held. The only remaining code part for
which I could guess the lock is useful for is ltq_dma_close()
function call.

This patch reduces the lock to the said function call, avoiding the
sleep-with-spinlock-held situation

Signed-off-by: Andrea Merello <andrea.merello@gmail.com>
[fold into 0025-NET-MIPS-lantiq-adds-xrx200-net.patch, backport to
kernel 4.4]
Signed-off-by: Mathias Kresin <dev@kresin.me>
2017-07-20 19:10:29 +02:00
..
122-MIPS-store-the-appended-dtb-address-in-a-variable.patch
0001-MIPS-lantiq-add-pcie-driver.patch
0004-MIPS-lantiq-add-atm-hack.patch
0008-MIPS-lantiq-backport-old-timer-code.patch
0012-pinctrl-lantiq-fix-up-pinmux.patch
0013-MTD-lantiq-xway-fix-invalid-operator.patch
0014-MTD-lantiq-xway-the-latched-command-should-be-persis.patch
0015-MTD-lantiq-xway-remove-endless-loop.patch
0016-MTD-lantiq-xway-add-missing-write_buf-and-read_buf-t.patch
0017-MTD-xway-fix-nand-locking.patch
0018-MTD-nand-lots-of-xrx200-fixes.patch
0020-MTD-lantiq-handle-NO_XIP-on-cfi0001-flash.patch
0022-MTD-m25p80-allow-loading-mtd-name-from-OF.patch
0024-NET-lantiq-adds-PHY11G-firmware-blobs.patch
0025-NET-MIPS-lantiq-adds-xrx200-net.patch
0026-NET-multi-phy-support.patch
0028-NET-lantiq-various-etop-fixes.patch
0030-GPIO-add-named-gpio-exports.patch
0031-I2C-MIPS-lantiq-add-FALC-ON-i2c-bus-master.patch
0035-owrt-lantiq-wifi-and-ethernet-eeprom-handling.patch
0040-USB-DWC2-enable-usb-power-gpio.patch
0042-arch-mips-increase-io_space_limit.patch
0044-pinctrl-lantiq-introduce-new-dedicated-devicetree-bi.patch
0045-pinctrl-lantiq-Fix-GPIO-Setup-of-GPIO-Port3.patch
0046-pinctrl-lantiq-2-pins-have-the-wrong-mux-list.patch
0047-irq-fixes.patch
0047-mtd-plat-nand-pass-of-node.patch
0047-poweroff.patch
0050-MIPS-Lantiq-Fix-cascaded-IRQ-setup.patch
0060-usb-dwc2-Add-support-for-Lantiq-ARX-and-XRX-SoCs.patch
0061-USB-DWC2-make-the-lantiq-settings-match-vendor-drive.patch
0065-MIPS-lantiq-improve-USB-initialization.patch
0100-spi-add-support-for-Lantiq-SPI-controller.patch
0101-find_active_root.patch
0120-MIPS-lantiq-add-support-for-device-tree-file-from-bo.patch
0121-MIPS-lantiq-make-it-possible-to-build-in-no-device-t.patch
0151-lantiq-ifxmips_pcie-use-of.patch
0152-lantiq-VPE.patch
0154-lantiq-pci-bar11mask-fix.patch
0155-lantiq-VPE-nosmp.patch
0160-owrt-lantiq-multiple-flash.patch
0170-MIPS-lantiq-lock-DMA-register-accesses-for-SMP.patch
0300-MTD-cfi-cmdset-0001-disable-buffered-writes.patch
0301-xrx200-add-gphy-clk-src-device-tree-binding.patch
0302-xrx200-add-sensors-driver.patch