linux/drivers
Francois Romieu 7ab87ff4c7 via-rhine: move work from irq handler to softirq and beyond.
- Tx processing is moved from the irq handler to NAPI poll
- link events and obscure event processing is moved to its proper work queue

Locking rules undergo some changes through the driver.

- the driver offers the usual lock-free Tx path
- besides the IRQ handler, the link event task schedules the napi handler.
  The driver thus adds some internal locking to prevent a loop when both
  must be disabled.
- the reset task keeps being scheduled from the Tx watchdog handler, thus
  with implicit Tx queue disabling. It does not need to care about irq,
  only napi softirq and competing task.
- it is not worth to add a dedicated lock between {g, s}et_wol and
  rhine_shutdown. It should not hurt no narrow it down a bit though.
- rhine_reset_task must keep its huge spin_lock_bh protected section due
  to :
  - races for the CAM registers (see rhine_vlan_rx_{add, kill}_vid)
  - implicit use of napi_enable (see init_registers)
  - use of the same lock for stats read / update exclusion between
    napi rx processing and rhine_get_stats
- rhine_resume requires a softirq disabled section for the same reason
  as rhine_reset_task
- {free, request}_irq have been replaced with IntrEnable actions in
  rhine_{suspend, resume}. It is hidden behind init_registers for the
  latter.

Signed-off-by: Francois Romieu <romieu@fr.zoreil.com>
2012-01-07 23:02:37 +01:00
..
accessibility
acpi
amba
ata pata_of_platform: Add missing CONFIG_OF_IRQ dependency. 2011-12-22 15:00:32 -05:00
atm
auxdisplay
base driver-core/cpu: Expose hotpluggability to the rest of the kernel 2011-12-11 10:32:20 -08:00
bcma bcma: extract revision and TX power IDs from SPROM 2011-12-13 15:47:41 -05:00
block Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/geert/linux-m68k 2012-01-06 18:28:12 -08:00
bluetooth Bluetooth: Add support for BCM20702A0 [0a5c:21e3] 2011-12-22 14:20:03 -02:00
cdrom
char Merge branch 'amba-modalias' of git://ftp.arm.linux.org.uk/pub/linux/arm/kernel/git-cur/linux-2.6-arm 2012-01-06 18:03:30 -08:00
clk
clocksource Merge branch 'for-linus' of git://ftp.arm.linux.org.uk/pub/linux/arm/kernel/git-cur/linux-2.6-arm 2012-01-06 18:15:25 -08:00
connector
cpufreq Merge branch 'sched/core' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip into cputime-tip 2011-12-19 19:23:15 +01:00
cpuidle
crypto
dca
devfreq
dio
dma Merge branch 'amba-modalias' of git://ftp.arm.linux.org.uk/pub/linux/arm/kernel/git-cur/linux-2.6-arm 2012-01-06 18:03:30 -08:00
edac Merge branch 'x86-mce-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip 2012-01-06 15:02:37 -08:00
eisa
firewire
firmware Merge branch 'pstore' of git://git.kernel.org/pub/scm/linux/kernel/git/aegl/linux 2012-01-06 18:03:02 -08:00
gpio Merge branch 'amba-modalias' of git://ftp.arm.linux.org.uk/pub/linux/arm/kernel/git-cur/linux-2.6-arm 2012-01-06 18:03:30 -08:00
gpu drm/radeon/kms/atom: fix possible segfault in pm setup 2012-01-03 09:17:16 +00:00
hid
hv
hwmon Merge branch 'x86-apic-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip 2012-01-06 13:58:21 -08:00
hwspinlock
i2c i2c-eg20t: correct the driver init order of pch_i2c_probe() 2011-12-18 11:46:42 +00:00
ide
idle
ieee802154
infiniband Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2011-12-23 17:13:56 -05:00
input Merge branch 'amba-modalias' of git://ftp.arm.linux.org.uk/pub/linux/arm/kernel/git-cur/linux-2.6-arm 2012-01-06 18:03:30 -08:00
iommu Merge branch 'core-memblock-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip 2012-01-06 07:54:53 -08:00
isdn
leds
lguest Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next 2012-01-06 17:22:09 -08:00
macintosh Merge branch 'sched/core' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip into cputime-tip 2011-12-19 19:23:15 +01:00
mca
md md/bitmap: It is OK to clear bits during recovery. 2011-12-23 09:57:48 +11:00
media gspca: Fix falling back to lower isoc alt settings 2011-12-31 11:53:58 -08:00
memstick
message
mfd mfd: Include linux/io.h to jz4740-adc 2011-12-20 18:53:26 +01:00
misc
mmc Merge branch 'amba-modalias' of git://ftp.arm.linux.org.uk/pub/linux/arm/kernel/git-cur/linux-2.6-arm 2012-01-06 18:03:30 -08:00
mtd mtd: plat_ram: call mtd_device_register only if partition data exists 2011-12-19 11:13:52 +00:00
net via-rhine: move work from irq handler to softirq and beyond. 2012-01-07 23:02:37 +01:00
nfc NFC: DEP link hook implementation for pn533 2011-12-14 14:50:13 -05:00
nubus
of dt/device: Fix auxdata matching to handle entries without a name override 2011-12-12 14:41:45 -07:00
oprofile Merge branch 'perf-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip 2012-01-06 08:02:58 -08:00
parisc
parport
pci Merge branch 'x86-apic-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip 2012-01-06 13:58:21 -08:00
pcmcia
pinctrl
platform
pnp
power
pps
ps3
ptp
rapidio rapidio/tsi721: modify PCIe capability settings 2011-12-09 07:50:29 -08:00
regulator
rtc Merge branch 'amba-modalias' of git://ftp.arm.linux.org.uk/pub/linux/arm/kernel/git-cur/linux-2.6-arm 2012-01-06 18:03:30 -08:00
s390 Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2011-12-23 17:13:56 -05:00
sbus
scsi Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/geert/linux-m68k 2012-01-06 18:28:12 -08:00
sfi
sh
sn
spi Merge branch 'amba-modalias' of git://ftp.arm.linux.org.uk/pub/linux/arm/kernel/git-cur/linux-2.6-arm 2012-01-06 18:03:30 -08:00
ssb Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless 2011-12-14 14:35:41 -05:00
staging staging: r8712u: Add new USB ID 2011-12-13 16:13:15 -08:00
target
tc
telephony
thermal
tty Merge branch 'amba-modalias' of git://ftp.arm.linux.org.uk/pub/linux/arm/kernel/git-cur/linux-2.6-arm 2012-01-06 18:03:30 -08:00
uio
usb Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2011-12-23 17:13:56 -05:00
uwb
vhost
video Merge branch 'amba-modalias' of git://ftp.arm.linux.org.uk/pub/linux/arm/kernel/git-cur/linux-2.6-arm 2012-01-06 18:03:30 -08:00
virt
virtio
vlynq
w1
watchdog Merge branch 'amba-modalias' of git://ftp.arm.linux.org.uk/pub/linux/arm/kernel/git-cur/linux-2.6-arm 2012-01-06 18:03:30 -08:00
xen Revert "xen/pv-on-hvm kexec: add xs_reset_watches to shutdown watches from old kernel" 2011-12-19 09:30:35 -05:00
zorro
Kconfig
Makefile