willy tarreau
290213667a
net: mvneta: do not schedule in mvneta_tx_timeout
...
If a queue timeout is reported, we can oops because of some
schedules while the caller is atomic, as shown below :
mvneta d0070000.ethernet eth0: tx timeout
BUG: scheduling while atomic: bash/1528/0x00000100
Modules linked in: slhttp_ethdiv(C) [last unloaded: slhttp_ethdiv]
CPU: 2 PID: 1528 Comm: bash Tainted: G WC 3.13.0-rc4-mvebu-nf #180
[<c0011bd9>] (unwind_backtrace+0x1/0x98) from [<c000f1ab>] (show_stack+0xb/0xc)
[<c000f1ab>] (show_stack+0xb/0xc) from [<c02ad323>] (dump_stack+0x4f/0x64)
[<c02ad323>] (dump_stack+0x4f/0x64) from [<c02abe67>] (__schedule_bug+0x37/0x4c)
[<c02abe67>] (__schedule_bug+0x37/0x4c) from [<c02ae261>] (__schedule+0x325/0x3ec)
[<c02ae261>] (__schedule+0x325/0x3ec) from [<c02adb97>] (schedule_timeout+0xb7/0x118)
[<c02adb97>] (schedule_timeout+0xb7/0x118) from [<c0020a67>] (msleep+0xf/0x14)
[<c0020a67>] (msleep+0xf/0x14) from [<c01dcbe5>] (mvneta_stop_dev+0x21/0x194)
[<c01dcbe5>] (mvneta_stop_dev+0x21/0x194) from [<c01dcfe9>] (mvneta_tx_timeout+0x19/0x24)
[<c01dcfe9>] (mvneta_tx_timeout+0x19/0x24) from [<c024afc7>] (dev_watchdog+0x18b/0x1c4)
[<c024afc7>] (dev_watchdog+0x18b/0x1c4) from [<c0020b53>] (call_timer_fn.isra.27+0x17/0x5c)
[<c0020b53>] (call_timer_fn.isra.27+0x17/0x5c) from [<c0020cad>] (run_timer_softirq+0x115/0x170)
[<c0020cad>] (run_timer_softirq+0x115/0x170) from [<c001ccb9>] (__do_softirq+0xbd/0x1a8)
[<c001ccb9>] (__do_softirq+0xbd/0x1a8) from [<c001cfad>] (irq_exit+0x61/0x98)
[<c001cfad>] (irq_exit+0x61/0x98) from [<c000d4bf>] (handle_IRQ+0x27/0x60)
[<c000d4bf>] (handle_IRQ+0x27/0x60) from [<c000843b>] (armada_370_xp_handle_irq+0x33/0xc8)
[<c000843b>] (armada_370_xp_handle_irq+0x33/0xc8) from [<c000fba9>] (__irq_usr+0x49/0x60)
Ben Hutchings attempted to propose a better fix consisting in using a
scheduled work for this, but while it fixed this panic, it caused other
random freezes and panics proving that the reset sequence in the driver
is unreliable and that additional fixes should be investigated.
When sending multiple streams over a link limited to 100 Mbps, Tx timeouts
happen from time to time, and the driver correctly recovers only when the
function is disabled.
Cc: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Cc: Gregory CLEMENT <gregory.clement@free-electrons.com>
Cc: Ben Hutchings <ben@decadent.org.uk>
Tested-by: Arnaud Ebalard <arno@natisbad.org>
Signed-off-by: Willy Tarreau <w@1wt.eu>
Signed-off-by: David S. Miller <davem@davemloft.net>
2014-01-16 15:15:42 -08:00
..
accessibility
acpi
Merge branches 'acpi-battery' and 'pm-cpufreq'
2014-01-06 22:49:08 +01:00
amba
ata
Merge branch 'for-3.13-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/libata
2014-01-09 09:08:23 +08:00
atm
atm: slight optimization of addr compare
2013-12-26 13:31:34 -05:00
auxdisplay
base
Revert "cpufreq: suspend governors on system suspend/hibernate"
2013-12-08 01:04:17 +01:00
bcma
Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-next into for-davem
2014-01-10 10:59:40 -05:00
block
Merge branch 'for-linus' of git://git.kernel.dk/linux-block
2013-12-24 10:06:03 -08:00
bluetooth
Merge branch 'for-upstream' of git://git.kernel.org/pub/scm/linux/kernel/git/bluetooth/bluetooth-next
2014-01-08 13:44:29 -05:00
bus
Merge branch 'for-linus' of git://git.linaro.org/people/rmk/linux-arm
2013-11-14 08:51:29 +09:00
cdrom
char
ACPI / TPM: fix memory leak when walking ACPI namespace
2014-01-05 15:54:21 +01:00
clk
clk: clk-divider: fix divisor > 255 bug
2014-01-08 08:33:12 -08:00
clocksource
clocksource: dw_apb_timer_of: Fix support for dts binding "snps,dw-apb-timer"
2013-12-10 19:49:18 +01:00
connector
connector: improved unaligned access error fix
2013-11-14 17:19:20 -05:00
cpufreq
intel_pstate: Add X86_FEATURE_APERFMPERF to cpu match parameters.
2014-01-06 22:16:14 +01:00
cpuidle
ARM/cpuidle: remove __init tag from Calxeda cpuidle probe function
2013-12-30 11:55:20 +01:00
crypto
crypto: ixp4xx - Fix kernel compile error
2014-01-01 14:06:23 +08:00
dca
devfreq
dio
dma
drivers/dma/ioat/dma.c: check DMA mapping error in ioat_dma_self_test()
2014-01-02 14:40:30 -08:00
edac
sb_edac: Shut up compiler warning when EDAC_DEBUG is enabled
2013-11-30 12:26:36 +01:00
eisa
extcon
extcon: remove freed groups caused the panic or warning in unregister flow
2013-11-26 15:17:23 +09:00
firewire
firewire: sbp2: bring back WRITE SAME support
2013-12-15 16:32:32 +01:00
firmware
Merge branch 'x86-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip
2013-12-29 13:35:04 -08:00
fmc
gpio
GPIO fixes for the v3.13 development cycle:
2013-12-17 11:47:40 -08:00
gpu
Merge branch 'drm-nouveau-next' of git://anongit.freedesktop.org/nouveau/linux-2.6 into drm-fixes
2014-01-08 17:57:45 +10:00
hid
Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/hid
2013-12-13 13:21:28 -08:00
hsi
hv
hwmon
hwmon fixes for 3.13-rc4
2013-12-12 11:05:19 -08:00
hwspinlock
i2c
i2c: imx: Check the return value from clk_prepare_enable()
2013-12-12 22:48:22 +01:00
ide
More ACPI and power management updates for 3.13-rc1
2013-11-20 13:25:04 -08:00
idle
intel_idle: close avn_cstates array with correct marker
2014-01-10 03:06:06 +01:00
iio
iio:adc:ad7887 Fix channel reported endianness from cpu to big endian
2013-12-17 20:37:14 +00:00
infiniband
net: replace macros net_random and net_srandom with direct calls to prandom
2014-01-14 15:15:25 -08:00
input
Input: allocate absinfo data when setting ABS capability
2013-12-31 10:53:19 -08:00
iommu
iommu/arm-smmu: fix error return code in arm_smmu_device_dt_probe()
2013-12-06 16:44:25 +00:00
ipack
irqchip
Renesas ARM based SoC fixes for v3.13
2013-12-20 11:28:30 -08:00
isdn
Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/davem/net
2014-01-06 17:37:45 -05:00
leds
leds: lp5521/5523: Remove duplicate mutex
2014-01-10 14:48:07 -08:00
lguest
macintosh
powerpc/windfarm: Fix XServe G5 fan control Makefile issue
2013-11-27 11:35:47 +11:00
mailbox
md
Merge branch 'for-linus' of git://git.kernel.dk/linux-block
2013-12-24 10:06:03 -08:00
media
media: dvb_core: slight optimization of addr compare
2013-12-26 13:31:34 -05:00
memory
memstick
tree-wide: use reinit_completion instead of INIT_COMPLETION
2013-11-15 09:32:21 +09:00
message
drivers/message/i2o/driver.c: add missing destroy_workqueue() on error in i2o_driver_register()
2013-11-13 12:09:26 +09:00
mfd
This is the 2nd MFD pull request for 3.13
2014-01-11 06:23:57 +07:00
misc
Char/Misc driver fixes for 3.13-rc3
2013-12-08 18:47:25 -08:00
mmc
mmc: omap: Fix I2C dependency and make driver usable with device tree
2013-11-26 15:51:16 -08:00
mtd
Merge branch 'fixes' of git://ftp.arm.linux.org.uk/~rmk/linux-arm
2014-01-06 12:20:45 +11:00
net
net: mvneta: do not schedule in mvneta_tx_timeout
2014-01-16 15:15:42 -08:00
nfc
nfc: Fix FSF address in file headers
2013-12-11 10:56:21 -05:00
ntb
NTB driver bug fixes to address a missed call to pci_enable_msix,
2013-11-26 11:15:12 -08:00
nubus
of
phylib: Add of_phy_attach
2014-01-13 14:29:49 -08:00
oprofile
parisc
parport
Kconfig cleanups for v3.13
2013-11-15 14:05:15 -08:00
pci
Merge branches 'acpi-pci-pm' and 'acpi-pci-hotplug'
2013-12-31 22:03:37 +01:00
pcmcia
DeviceTree updates for 3.13. This is a bit larger pull request than
2013-11-12 16:52:17 +09:00
phy
phy,exynos: Add dependency on HAS_IOMEM
2014-01-15 14:51:22 -08:00
pinctrl
Merge branches 'powercap' and 'acpi-lpss' with new device IDs
2013-12-27 00:43:24 +01:00
platform
sony-laptop: do not scribble keyboard backlight registers on resume
2013-11-26 13:03:36 +09:00
pnp
PNP: fix restoring devices after hibernation
2013-12-05 02:01:55 +01:00
power
power,goldfish: Add dependency on HAS_IOMEM
2014-01-15 14:51:22 -08:00
powercap
powercap / RAPL: add support for ValleyView Soc
2013-12-22 01:27:51 +01:00
pps
drivers/pps/clients/pps-gpio.c: remove redundant of_match_ptr
2013-11-13 12:09:35 +09:00
ps3
ptp
ptp_pch: Add dependency on HAS_IOMEM
2014-01-15 14:51:22 -08:00
pwm
rapidio
regulator
mfd: s2mps11: Fix build after regmap field rename in sec-core.c
2013-12-16 11:30:39 +00:00
remoteproc
reset
rpmsg
rtc
mfd/rtc: s5m: fix register updating by adding regmap for RTC
2013-12-12 18:19:26 -08:00
s390
qeth: bridgeport support - address notifications
2014-01-15 14:48:01 -08:00
sbus
scsi
qla2xxx: Fix scsi_host leak on qlt_lport_register callback failure
2013-12-19 14:50:17 -08:00
sfi
sh
sn
spi
Merge remote-tracking branches 'spi/fix/bcm2835', 'spi/fix/bcm63xx', 'spi/fix/mpc512x-psc', 'spi/fix/mxs', 'spi/fix/pxa2xx', 'spi/fix/qspi', 'spi/fix/rspi' and 'spi/fix/txx9' into spi-linus
2013-11-28 11:31:35 +00:00
ssb
ssb: fix sparse warnings in driver_chipcommon_sflash.c
2014-01-03 15:37:01 -05:00
staging
staging,lpc32xx_adc: Add dependency on HAS_IOMEM
2014-01-15 14:51:22 -08:00
target
target: Remove extra percpu_ref_init
2013-12-19 14:49:54 -08:00
tc
thermal
Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net
2013-11-19 15:50:47 -08:00
tty
tty: xuartps: Properly guard sysrq specific code
2013-12-17 16:02:25 -08:00
uio
uio: we cannot mmap unaligned page contents
2013-12-02 11:50:37 -08:00
usb
usb: ohci-at91: fix irq and iomem resource retrieval
2013-12-17 13:22:36 -08:00
uwb
vfio
vhost
vhost: remove the dead branch
2013-12-06 15:22:05 -05:00
video
Merge branch 'merge' of git://git.kernel.org/pub/scm/linux/kernel/git/benh/powerpc
2013-12-09 19:21:39 -08:00
virt
virtio
virtio_balloon: update_balloon_size(): update correct field
2013-12-05 13:12:39 +10:30
vlynq
vme
w1
drivers/w1/masters/w1-gpio.c: use dev_get_platdata()
2013-11-15 09:32:21 +09:00
watchdog
sc1200_wdt: Fix oops
2013-12-10 08:48:15 +01:00
xen
Bug-fixes:
2013-12-20 09:34:54 -08:00
zorro
Kconfig
ACPI and power management updates for 3.13-rc1
2013-11-14 13:41:48 +09:00
Makefile
ACPI and power management updates for 3.13-rc1
2013-11-14 13:41:48 +09:00