linux-stable/drivers/staging
Aaro Koskinen 7cc4fa1e51 staging: octeon-ethernet: rgmii: enable interrupts that we can handle
Enable only those interrupts that we can handle & acknowledge in the
interrupt handler.

At least on EdgeRouter Lite, the hardware may occasionally interrupt with
some error condition when the physical link status changes frequently.
Since the interrupt condition is not acked properly, this leads to the
following warning and the IRQ gets disabled completely:

[   41.324700] eth0: Link down
[   44.324721] eth0: 1000 Mbps Full duplex, port  0, queue  0
[   44.885590] irq 117: nobody cared (try booting with the "irqpoll" option)
[   44.892397] CPU: 0 PID: 0 Comm: swapper/0 Not tainted 3.11.0-rc5-edge-los.git-27d042f-dirty-00950-gaa42f2d-dirty #8
[   44.902825] Stack : ffffffff815c0000 0000000000000004 0000000000000003 0000000000000000
	  ffffffff81fd0000 ffffffff815c0000 0000000000000004 ffffffff8118530c
	  ffffffff815c0000 ffffffff811858d8 0000000000000000 0000000000000000
	  ffffffff81fd0000 ffffffff81fc0000 ffffffff8152f3a0 ffffffff815b7bf7
	  ffffffff81fc6688 ffffffff815b8060 0000000000000000 0000000000000000
	  0000000000000000 ffffffff815346c8 ffffffff815346b0 ffffffff814a6a18
	  ffffffff8158b848 ffffffff81145614 ffffffff81593800 ffffffff81187174
	  ffffffff815b7d00 ffffffff8158b760 0000000000000000 ffffffff814a9184
	  0000000000000000 0000000000000000 0000000000000000 0000000000000000
	  0000000000000000 ffffffff811203b8 0000000000000000 0000000000000000
	  ...
[   44.968408] Call Trace:
[   44.970873] [<ffffffff811203b8>] show_stack+0x68/0x80
[   44.975937] [<ffffffff814a9184>] dump_stack+0x78/0xb8
[   44.980999] [<ffffffff811aac54>] __report_bad_irq+0x44/0x108
[   44.986662] [<ffffffff811ab238>] note_interrupt+0x248/0x2a0
[   44.992240] [<ffffffff811a85e4>] handle_irq_event_percpu+0x144/0x200
[   44.998598] [<ffffffff811a86f4>] handle_irq_event+0x54/0x90
[   45.004176] [<ffffffff811ab908>] handle_level_irq+0xd0/0x148
[   45.009839] [<ffffffff811a7b04>] generic_handle_irq+0x34/0x50
[   45.015589] [<ffffffff8111dae8>] do_IRQ+0x18/0x30
[   45.020301] [<ffffffff8110486c>] plat_irq_dispatch+0x74/0xb8
[   45.025958]
[   45.027451] handlers:
[   45.029731] [<ffffffff813fca10>] cvm_oct_rgmii_rml_interrupt
[   45.035397] Disabling IRQ #117
[   45.038742] Port 0 receive error code 13, packet dropped
[   46.324719] eth0: Link down
[   48.324733] eth0: 1000 Mbps Full duplex, port  0, queue  0

Reported-by: "Jason A. Donenfeld" <Jason@zx2c4.com>
Signed-off-by: Aaro Koskinen <aaro.koskinen@iki.fi>
Acked-by: David Daney <david.daney@cavium.com>
Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Cc: devel@driverdev.osuosl.org
Cc: linux-mips@linux-mips.org
Cc: Jason A. Donenfeld <Jason@zx2c4.com>
Cc: richard@nod.at
Patchwork: https://patchwork.linux-mips.org/patch/5810/
Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
2013-09-17 10:11:31 +02:00
..
android Merge git://git.kvack.org/~bcrl/aio-next 2013-09-13 10:55:58 -07:00
bcm Staging:BCM:DDRInit.c:Renaming __FUNCTION__ 2013-08-30 11:49:04 -07:00
btmtk_usb
ced1401
comedi TTY/Serial driver patches for 3.12-rc1 2013-09-03 11:38:36 -07:00
cptm1217
crystalhd staging: crystalhd: Resolve sparse 'different base types' warnings. 2013-08-30 11:46:46 -07:00
cxt1e1
dgap staging: dgap: Add missing #include <linux/slab.h> 2013-08-30 11:30:58 -07:00
dgnc staging: dgnc: adds TODO 2013-08-30 11:28:58 -07:00
dgrp TTY/Serial driver patches for 3.12-rc1 2013-09-03 11:38:36 -07:00
dwc2 staging: dwc2: make dwc2_core_params documentation more complete 2013-08-30 14:14:54 -07:00
echo
et131x
frontier staging: frontier: use better DEVICE_ATTR_ macros 2013-08-24 10:30:28 -07:00
ft1000
fwserial
gdm72xx
gdm724x staging: gdm724x: Remove version.h header inclusion in netlink_k.c 2013-08-27 22:53:22 -07:00
goldfish
iio staging: iio: ad7746: Use devm_iio_device_alloc 2013-08-28 20:21:34 +01:00
imx-drm Merge branch 'drm-next' of git://people.freedesktop.org/~airlied/linux 2013-09-05 10:17:26 -07:00
keucr staging: keucr: be explicit to the sysfs file permissions 2013-08-24 10:33:07 -07:00
line6 staging: line6: use default sysfs attribute macros 2013-08-24 10:36:49 -07:00
lustre Merge git://git.kvack.org/~bcrl/aio-next 2013-09-13 10:55:58 -07:00
media [media] msi3101: Fix compilation on i386 2013-08-24 13:35:14 -03:00
netlogic
nvec
octeon staging: octeon-ethernet: rgmii: enable interrupts that we can handle 2013-09-17 10:11:31 +02:00
octeon-usb
olpc_dcon
ozwpan staging: ozwpan: Return error, if PD is not connected. 2013-08-28 15:18:40 -07:00
panel
phison
quickstart staging: quickstart: fix up sysfs file permissions 2013-08-24 10:34:53 -07:00
rtl8187se staging: Update e-mail address for Andrea Merello 2013-08-27 22:03:53 -07:00
rtl8188eu staging: rtl8188eu: off by one in rtw_set_802_11_add_wep() 2013-08-30 11:46:47 -07:00
rtl8192e staging: Update e-mail address for Andrea Merello 2013-08-27 22:03:53 -07:00
rtl8192u staging: Update e-mail address for Andrea Merello 2013-08-27 22:03:53 -07:00
rtl8712
rts5139
sb105x
sbe-2t3e3
sep
serqt_usb2
silicom
slicoss
sm7xxfb
speakup
ste_rmi4
tidspbridge
usbip staging: usbip: use DEVICE_ATTR_RO/RW for sysfs attributes 2013-08-26 12:02:54 -07:00
vme
vt6655 Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next 2013-09-05 14:54:29 -07:00
vt6656 staging: vt6656: device.h Replace typedef struct _RCB 2013-08-28 15:28:43 -07:00
winbond
wlags49_h2 staging: wlags49_h2: remove sysfs file 2013-08-24 10:24:40 -07:00
wlags49_h25 staging: wlags49_h2: remove sysfs file 2013-08-24 10:24:40 -07:00
wlan-ng
xgifb
xillybus staging: xillybus: Remove duplicate inclusion of list.h 2013-08-22 10:07:49 -07:00
zram
zsmalloc
Kconfig staging: dgap: adds driver to kernel build 2013-08-22 10:47:53 -07:00
Makefile staging: dgap: adds driver to kernel build 2013-08-22 10:47:53 -07:00
staging.c