linux/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 staging: cxt1e1: Remove #define SBE_INCLUDE_SYMBOLS 2013-08-12 15:20:25 -07:00
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 staging: et131x: Remove frame error TODO item 2013-08-21 10:02:28 -07:00
frontier staging: frontier: use better DEVICE_ATTR_ macros 2013-08-24 10:30:28 -07:00
ft1000 Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next 2013-07-09 18:24:39 -07:00
fwserial IEEE 1394 (FireWire) subsystem changes post v3.10: 2013-07-10 11:02:58 -07:00
gdm72xx staging: gdm72xx: potential use after free in send_qos_list() 2013-07-23 15:08:50 -07:00
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 staging: netlogic: Fix typo in staging/netlogic 2013-06-24 15:56:09 -07:00
nvec staging: nvec: re-enable the clock on resume 2013-07-29 11:29:37 -07:00
octeon staging: octeon-ethernet: rgmii: enable interrupts that we can handle 2013-09-17 10:11:31 +02:00
octeon-usb staging: octeon-usb: eliminate remaining typedef unions 2013-07-31 17:51:50 -07:00
olpc_dcon Staging: olpc_dcon: Removed more completed TODO entries 2013-08-21 10:02:28 -07:00
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 staging: rtl8712: return MAC in standard form 2013-07-23 14:52:19 -07:00
rts5139
sb105x
sbe-2t3e3
sep
serqt_usb2 Staging tree merge for 3.11-rc1 2013-07-02 11:40:23 -07:00
silicom Staging: silicom: Remove useless unneeded semicolons 2013-07-23 14:42:56 -07:00
slicoss
sm7xxfb
speakup
ste_rmi4
tidspbridge staging: tidspbridge: Fix typos in comments 2013-08-21 10:02:28 -07:00
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 Staging: winbond: mds_f: deleted extern function 2013-08-12 14:55:50 -07:00
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 Staging: xgifb: Fixed a warning of Space before semicolon 2013-08-12 14:08:27 -07:00
xillybus staging: xillybus: Remove duplicate inclusion of list.h 2013-08-22 10:07:49 -07:00
zram zram: don't grab mutex in zram_slot_free_noity 2013-08-12 15:25:00 -07:00
zsmalloc staging: zsmalloc: access page->private by using page_private macro 2013-07-23 14:52:19 -07:00
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