linux_dsm_epyc7002/drivers/net/ethernet/realtek
Francois Romieu da78dbff2e r8169: remove work from irq handler.
The irq handler was a mess.

See 7ab87ff4c7 ("via-rhine: move work from
irq handler to softirq and beyond") for similar changes. One can notice:
- all non-napi tasks are explicitely scheduled trough a single work queue.
- hiding software tx queue start behind the rtl_hw_start method is mildly
  natural. Move it in the caller where needed.
- as can be seen from the heavy use of bh disabling locks, the driver is
  not safe for irq context messages with netconsole. It is still quite
  usable for general messaging though. Tested ok with concurrent registers
  dump (ethtool -d) + background traffic + "echo t > /proc/sysrq-trigger".

Tested with old PCI chipset, PCIe 8168 and 810x:
- XID 0c900800 RTL8168evl/8111evl
- XID 18000000 RTL8168b/8111b
- XID 98000000 RTL8169sc/8110sc
- XID 083000c0 RTL8168d/8111d
- XID 081000c0 RTL8168d/8111d
- XID 00b00000 RTL8105e
- XID 04a00000 RTL8102e

As a side note, the comments in f11a377b3f
("r8169: avoid losing MSI interrupts") does not seem completely clear: if
I hack the driver further to stop acking the irq link event bit, MSI
interrupts keep being delivered (RTL8168b/8111b, XID 18000000).

Signed-off-by: Francois Romieu <romieu@fr.zoreil.com>
Cc: Hayes Wang <hayeswang@realtek.com>
2012-01-27 21:26:25 +01:00
..
8139cp.c 8139cp: fix missing napi_gro_flush. 2012-01-08 19:20:33 -08:00
8139too.c 8139cp/8139too: do not read into reserved registers 2012-01-03 12:47:50 -05:00
atp.c
atp.h
Kconfig net/ethernet: sc92031 is not Realtek 2011-11-01 19:30:38 -04:00
Makefile net/ethernet: sc92031 is not Realtek 2011-11-01 19:30:38 -04:00
r8169.c r8169: remove work from irq handler. 2012-01-27 21:26:25 +01:00