1
linux/drivers/net
Ingo Molnar 3a10ccebe9 [PATCH] lock validator: fix ns83820.c irq-flags bug
Barry K. Nathan reported the following lockdep warning:

[  197.343948] BUG: warning at kernel/lockdep.c:1856/trace_hardirqs_on()
[  197.345928]  [<c010329b>] show_trace_log_lvl+0x5b/0x105
[  197.346359]  [<c0103896>] show_trace+0x1b/0x20
[  197.346759]  [<c01038ed>] dump_stack+0x1f/0x24
[  197.347159]  [<c012efa2>] trace_hardirqs_on+0xfb/0x185
[  197.348873]  [<c029b009>] _spin_unlock_irq+0x24/0x2d
[  197.350620]  [<e09034e8>] do_tx_done+0x171/0x179 [ns83820]
[  197.350895]  [<e090445c>] ns83820_irq+0x149/0x20b [ns83820]
[  197.351166]  [<c013b4b8>] handle_IRQ_event+0x1d/0x52
[  197.353216]  [<c013c6c2>] handle_level_irq+0x97/0xe1
[  197.355157]  [<c01048c3>] do_IRQ+0x8b/0xac
[  197.355612]  [<c0102d9d>] common_interrupt+0x25/0x2c

this is caused because the ns83820 driver re-enables irq flags
in hardirq context.

While legal in theory, in practice it should only be done if the
hardware is really old and has some very high overhead in its ISR.
(such as PIO IDE)

For modern hardware, running ISRs with irqs enabled is discouraged,
because 1) new hardware is fast enough to not cause latency problems
2) allowing the nesting of hardware interrupts only 'spreads out'
the handling of the current ISR, causing extra cachemisses that would
otherwise not happen. Furthermore, on architectures where ISRs share
the kernel stacks, enabling interrupts in ISRs introduces a much
higher kernel-stack-nesting and thus kernel-stack-overflow risk.
3) not managing irq-flags via the _irqsave / _irqrestore variants
is dangerous: it's easy to forget whether one function nests inside
another, and irq flags might be mismanaged.

In the few cases where re-enabling interrupts in an ISR is considered
useful (and unavoidable), it has to be taught to the lock validator
explicitly (because the lock validator needs the "no ISR ever enables
hardirqs" artificial simplification to keep the IRQ/softirq locking
dependencies manageable).

This teaching is done via the explicit use local_irq_enable_in_hardirq().
On a stock kernel this maps to local_irq_enable(). If the lock validator
is enabled then this does not enable interrupts.

Now, the analysis of drivers/net/ns83820.c's irq flags use: the
irq-enabling in irq context seems intentional, but i dont think it's
justified. Furthermore, the driver suffers from problem #3 above too,
in ns83820_tx_timeout() it disables irqs via local_irq_save(), but
then it calls do_tx_done() which does a spin_unlock_irq(),
re-enabling for a function that does not expect it! While currently
this bug seems harmless (only some debug printout seems to be
affected by it), it's nevertheless something to be fixed.

So this patch makes the ns83820 ISR irq-flags-safe, and cleans up
do_tx_done() use and locking to avoid the ns83820_tx_timeout() bug.

From: Arjan van de Ven <arjan@linux.intel.com>

  ns83820_mib_isr takes the misc_lock in IRQ context.  All other places that
  do this in the ISR already use _irqsave versions, make this consistent at
  least.  At some point in the future someone should audit the driver to see
  if all _irqsave's in the ISR can go away, this is generally an iffy/fragile
  proposition though; for now get it safe, simple and consistent.

From: Arjan van de Ven <arjan@linux.intel.com>

ok this is a real driver deadlock:

The ns83820 driver enabled interrupts (by unlocking the misc_lock with
_irq) while still holding the rx_info.lock, which is required to be irq
safe since it's used in the ISR like this:
                writel(1, dev->base + IER);
                spin_unlock_irq(&dev->misc_lock);
                kick_rx(ndev);
                spin_unlock_irq(&dev->rx_info.lock);

This is can cause a deadlock if an irq was pending at the first
spin_unlock_irq already, or if one would hit during kick_rx().
Simply remove the first _irq solves this

Signed-off-by: Ingo Molnar <mingo@elte.hu>
Cc: Benjamin LaHaise <bcrl@kvack.org>
Cc: Jeff Garzik <jeff@garzik.org>
Signed-off-by: Arjan van de Ven <arjan@linux.intel.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Jeff Garzik <jeff@garzik.org>
2006-07-05 14:08:08 -04:00
..
appletalk Remove obsolete #include <linux/config.h> 2006-06-30 19:25:36 +02:00
arcnet [PATCH] irq-flags: drivers/net: Use the new IRQF_ constants 2006-07-02 13:58:51 -07:00
arm Remove obsolete #include <linux/config.h> 2006-06-30 19:25:36 +02:00
bonding Remove obsolete #include <linux/config.h> 2006-06-30 19:25:36 +02:00
chelsio [PATCH] irq-flags: drivers/net: Use the new IRQF_ constants 2006-07-02 13:58:51 -07:00
cris [PATCH] irq-flags: drivers/net: Use the new IRQF_ constants 2006-07-02 13:58:51 -07:00
e1000 [PATCH] irq-flags: drivers/net: Use the new IRQF_ constants 2006-07-02 13:58:51 -07:00
fec_8xx Remove obsolete #include <linux/config.h> 2006-06-30 19:25:36 +02:00
fs_enet [PATCH] irq-flags: drivers/net: Use the new IRQF_ constants 2006-07-02 13:58:51 -07:00
hamradio [PATCH] irq-flags: drivers/net: Use the new IRQF_ constants 2006-07-02 13:58:51 -07:00
ibm_emac Remove obsolete #include <linux/config.h> 2006-06-30 19:25:36 +02:00
irda [PATCH] irq-flags: drivers/net: Use the new IRQF_ constants 2006-07-02 13:58:51 -07:00
ixgb [PATCH] irq-flags: drivers/net: Use the new IRQF_ constants 2006-07-02 13:58:51 -07:00
ixp2000 [PATCH] irq-flags: drivers/net: Use the new IRQF_ constants 2006-07-02 13:58:51 -07:00
myri10ge [PATCH] irq-flags: drivers/net: Use the new IRQF_ constants 2006-07-02 13:58:51 -07:00
pcmcia [PATCH] irq-flags: drivers/net: Use the new IRQF_ constants 2006-07-02 13:58:51 -07:00
phy [PATCH] Add support for the Cicada 8201 PHY 2006-07-05 14:07:14 -04:00
sk98lin [PATCH] irq-flags: drivers/net: Use the new IRQF_ constants 2006-07-02 13:58:51 -07:00
skfp [PATCH] irq-flags: drivers/net: Use the new IRQF_ constants 2006-07-02 13:58:51 -07:00
tokenring [PATCH] irq-flags: drivers/net: Use the new IRQF_ constants 2006-07-02 13:58:51 -07:00
tulip [netdrvr] Remove Becker-template 'io_size' member, when invariant 2006-07-05 13:40:49 -04:00
wan [PATCH] irq-flags: drivers/net: Use the new IRQF_ constants 2006-07-02 13:58:51 -07:00
wireless [PATCH] zd1211rw: disable TX queue during stop 2006-07-05 13:42:58 -04:00
3c59x.c [PATCH] lockdep: annotate 3c59x.c disable_irq() 2006-07-03 15:27:09 -07:00
3c501.c spelling fixes 2006-06-26 18:35:02 +02:00
3c501.h
3c503.c [PATCH] 3c5zz ethernet: fix section warnings 2006-06-11 12:16:01 -04:00
3c503.h
3c505.c [PATCH] 3c5zz ethernet: fix section warnings 2006-06-11 12:16:01 -04:00
3c505.h
3c507.c [PATCH] 3c5zz ethernet: fix section warnings 2006-06-11 12:16:01 -04:00
3c509.c Remove obsolete #include <linux/config.h> 2006-06-30 19:25:36 +02:00
3c515.c [PATCH] irq-flags: drivers/net: Use the new IRQF_ constants 2006-07-02 13:58:51 -07:00
3c523.c [PATCH] irq-flags: drivers/net: Use the new IRQF_ constants 2006-07-02 13:58:51 -07:00
3c523.h
3c527.c [PATCH] irq-flags: drivers/net: Use the new IRQF_ constants 2006-07-02 13:58:51 -07:00
3c527.h [PATCH] Eliminate __attribute__ ((packed)) warnings for gcc-4.1 2006-01-08 20:14:07 -08:00
7990.c [PATCH] bogus include of linux/irq.h in 7990.c 2006-01-28 21:42:28 -05:00
7990.h
8139cp.c [netdrvr] use dev_xxx() printk helpers, rather than dev_printk(KERN_xxx, ... 2006-07-05 13:42:57 -04:00
8139too.c [netdrvr] use dev_xxx() printk helpers, rather than dev_printk(KERN_xxx, ... 2006-07-05 13:42:57 -04:00
8390.c [PATCH] lockdep: annotate 8390.c disable_irq() 2006-07-03 15:27:09 -07:00
8390.h Remove obsolete #include <linux/config.h> 2006-06-30 19:25:36 +02:00
82596.c Remove obsolete #include <linux/config.h> 2006-06-30 19:25:36 +02:00
a2065.c [PATCH] irq-flags: drivers/net: Use the new IRQF_ constants 2006-07-02 13:58:51 -07:00
a2065.h
ac3200.c [PATCH] fix a few "warning: 'cleanup_card' defined but not used" 2006-01-09 10:54:48 -05:00
acenic_firmware.h Remove obsolete #include <linux/config.h> 2006-06-30 19:25:36 +02:00
acenic.c [PATCH] irq-flags: drivers/net: Use the new IRQF_ constants 2006-07-02 13:58:51 -07:00
acenic.h Remove obsolete #include <linux/config.h> 2006-06-30 19:25:36 +02:00
amd8111e.c [PATCH] irq-flags: drivers/net: Use the new IRQF_ constants 2006-07-02 13:58:51 -07:00
amd8111e.h
apne.c [PATCH] irq-flags: drivers/net: Use the new IRQF_ constants 2006-07-02 13:58:51 -07:00
ariadne.c [PATCH] irq-flags: drivers/net: Use the new IRQF_ constants 2006-07-02 13:58:51 -07:00
ariadne.h
at1700.c Remove obsolete #include <linux/config.h> 2006-06-30 19:25:36 +02:00
atari_bionet.c [PATCH] Remove MODULE_PARM 2006-03-25 08:22:52 -08:00
atari_pamsnet.c [PATCH] Remove MODULE_PARM 2006-03-25 08:22:52 -08:00
atarilance.c [NET]: Avoid allocating skb in skb_pad 2006-06-23 02:06:41 -07:00
atp.c
atp.h
au1000_eth.c Remove obsolete #include <linux/config.h> 2006-06-30 19:25:36 +02:00
au1000_eth.h [PATCH] net: au1000_eth: PHY framework conversion 2006-06-11 23:19:00 -04:00
b44.c [netdrvr] use dev_xxx() printk helpers, rather than dev_printk(KERN_xxx, ... 2006-07-05 13:42:57 -04:00
b44.h [PATCH] b44: add wol for old nic 2006-06-22 23:16:13 -04:00
bmac.c Remove obsolete #include <linux/config.h> 2006-06-30 19:25:36 +02:00
bmac.h
bnx2_fw.h [BNX2]: Use compressed firmware 2006-06-17 21:30:47 -07:00
bnx2.c [netdrvr] use dev_xxx() printk helpers, rather than dev_printk(KERN_xxx, ... 2006-07-05 13:42:57 -04:00
bnx2.h [BNX2]: Turn off link during shutdown 2006-06-29 16:58:24 -07:00
bsd_comp.c
cassini.c [netdrvr] use dev_xxx() printk helpers, rather than dev_printk(KERN_xxx, ... 2006-07-05 13:42:57 -04:00
cassini.h [CASSINI]: sem2mutex 2006-03-20 22:34:09 -08:00
cs89x0.c Remove obsolete #include <linux/config.h> 2006-06-30 19:25:36 +02:00
cs89x0.h Remove obsolete #include <linux/config.h> 2006-06-30 19:25:36 +02:00
de600.c
de600.h
de620.c [PATCH] de620: fix section mismatch warning 2006-03-11 13:29:09 -05:00
de620.h
declance.c Remove obsolete #include <linux/config.h> 2006-06-30 19:25:36 +02:00
defxx.c [PATCH] irq-flags: drivers/net: Use the new IRQF_ constants 2006-07-02 13:58:51 -07:00
defxx.h
depca.c Remove obsolete #include <linux/config.h> 2006-06-30 19:25:36 +02:00
depca.h
dgrs_asstruct.h
dgrs_bcomm.h
dgrs_es4h.h
dgrs_ether.h
dgrs_firmware.c Massive net driver const-ification. 2006-03-03 21:33:57 -05:00
dgrs_i82596.h
dgrs_plx9060.h
dgrs.c [PATCH] irq-flags: drivers/net: Use the new IRQF_ constants 2006-07-02 13:58:51 -07:00
dgrs.h
dl2k.c [netdrvr] Remove Linux-specific changelogs from several Becker template drivers 2006-07-05 13:40:49 -04:00
dl2k.h [netdrvr] Remove long-unused bits from Becker template drivers 2006-06-26 23:47:50 -04:00
dm9000.c [PATCH] irq-flags: drivers/net: Use the new IRQF_ constants 2006-07-02 13:58:51 -07:00
dm9000.h
dummy.c Remove obsolete #include <linux/config.h> 2006-06-30 19:25:36 +02:00
e100.c [PATCH] irq-flags: drivers/net: Use the new IRQF_ constants 2006-07-02 13:58:51 -07:00
e2100.c [PATCH] fix a few "warning: 'cleanup_card' defined but not used" 2006-01-09 10:54:48 -05:00
eepro100.c [netdrvr] use dev_xxx() printk helpers, rather than dev_printk(KERN_xxx, ... 2006-07-05 13:42:57 -04:00
eepro.c [PATCH] irq-flags: drivers/net: Use the new IRQF_ constants 2006-07-02 13:58:51 -07:00
eexpress.c Remove obsolete #include <linux/config.h> 2006-06-30 19:25:36 +02:00
eexpress.h
epic100.c [netdrvr] use dev_xxx() printk helpers, rather than dev_printk(KERN_xxx, ... 2006-07-05 13:42:57 -04:00
eql.c BUG_ON() Conversion in drivers/net/ 2006-04-02 13:52:48 +02:00
es3210.c [PATCH] fix a few "warning: 'cleanup_card' defined but not used" 2006-01-09 10:54:48 -05:00
eth16i.c [NET]: Avoid allocating skb in skb_pad 2006-06-23 02:06:41 -07:00
ewrk3.c
ewrk3.h
fealnx.c [netdrvr] use dev_xxx() printk helpers, rather than dev_printk(KERN_xxx, ... 2006-07-05 13:42:57 -04:00
fec.c Remove obsolete #include <linux/config.h> 2006-06-30 19:25:36 +02:00
fec.h [PATCH] m68knommu: 532x FEC eth struct map 2006-06-25 17:43:33 -07:00
forcedeth.c [PATCH] lockdep: annotate forcedeth.c disable_irq() 2006-07-03 15:27:10 -07:00
gianfar_ethtool.c Remove obsolete #include <linux/config.h> 2006-06-30 19:25:36 +02:00
gianfar_mii.c Remove obsolete #include <linux/config.h> 2006-06-30 19:25:36 +02:00
gianfar_mii.h
gianfar_sysfs.c Remove obsolete #include <linux/config.h> 2006-06-30 19:25:36 +02:00
gianfar.c Remove obsolete #include <linux/config.h> 2006-06-30 19:25:36 +02:00
gianfar.h Remove obsolete #include <linux/config.h> 2006-06-30 19:25:36 +02:00
gt64240eth.h
gt96100eth.c [netdrvr] Remove Becker-template 'io_size' member, when invariant 2006-07-05 13:40:49 -04:00
gt96100eth.h [netdrvr] Remove Becker-template 'io_size' member, when invariant 2006-07-05 13:40:49 -04:00
hamachi.c [netdrvr] Use dev_printk() when ethernet interface isn't available 2006-07-05 13:42:07 -04:00
hp100.c [PATCH] irq-flags: drivers/net: Use the new IRQF_ constants 2006-07-02 13:58:51 -07:00
hp100.h
hp-plus.c [PATCH] hp ethernet: fix section mismatches 2006-06-11 12:16:01 -04:00
hp.c [PATCH] hp ethernet: fix section mismatches 2006-06-11 12:16:01 -04:00
hplance.c [PATCH] hp300: fix driver_register() return handling, remove dio_module_init() 2006-03-25 08:22:53 -08:00
hplance.h
hydra.c [PATCH] irq-flags: drivers/net: Use the new IRQF_ constants 2006-07-02 13:58:51 -07:00
ibmlana.c [PATCH] irq-flags: drivers/net: Use the new IRQF_ constants 2006-07-02 13:58:51 -07:00
ibmlana.h [netdrvr ibmlana, ibmveth] trim trailing whitespace 2006-05-24 01:31:14 -04:00
ibmveth.c Remove obsolete #include <linux/config.h> 2006-06-30 19:25:36 +02:00
ibmveth.h [netdrvr ibmlana, ibmveth] trim trailing whitespace 2006-05-24 01:31:14 -04:00
ifb.c Remove obsolete #include <linux/config.h> 2006-06-30 19:25:36 +02:00
ioc3-eth.c [PATCH] irq-flags: drivers/net: Use the new IRQF_ constants 2006-07-02 13:58:51 -07:00
isa-skeleton.c
iseries_veth.c Remove obsolete #include <linux/config.h> 2006-06-30 19:25:36 +02:00
jazzsonic.c [PATCH] irq-flags: drivers/net: Use the new IRQF_ constants 2006-07-02 13:58:51 -07:00
Kconfig Merge branch 'upstream-linus' of master.kernel.org:/pub/scm/linux/kernel/git/jgarzik/netdev-2.6 2006-06-22 22:15:09 -07:00
lance.c [NET]: Avoid allocating skb in skb_pad 2006-06-23 02:06:41 -07:00
lasi_82596.c [NET]: Avoid allocating skb in skb_pad 2006-06-23 02:06:41 -07:00
LICENSE.SRC
lne390.c [PATCH] fix a few "warning: 'cleanup_card' defined but not used" 2006-01-09 10:54:48 -05:00
loopback.c [NET]: Merge TSO/UFO fields in sk_buff 2006-06-23 02:07:29 -07:00
lp486e.c [PATCH] irq-flags: drivers/net: Use the new IRQF_ constants 2006-07-02 13:58:51 -07:00
mac89x0.c [PATCH] Remove MODULE_PARM 2006-03-25 08:22:52 -08:00
mac8390.c [PATCH] m68k: lvalues abuse in mac8390 2006-01-12 09:09:01 -08:00
mace.c [POWERPC] Add new interrupt mapping core and change platforms to use it 2006-07-03 21:36:01 +10:00
mace.h
macmace.c
macsonic.c [PATCH] macsonic.c: missed s/driver_unregister/platform_driver_unregister/ 2006-01-28 21:42:22 -05:00
Makefile [PATCH] network driver for Hilscher netx 2006-06-22 23:28:05 -04:00
meth.c [PATCH] Remove MODULE_PARM 2006-03-25 08:22:52 -08:00
meth.h
mii.c
mipsnet.c [PATCH] irq-flags: drivers/net: Use the new IRQF_ constants 2006-07-02 13:58:51 -07:00
mipsnet.h
mv643xx_eth.c [PATCH] irq-flags: drivers/net: Use the new IRQF_ constants 2006-07-02 13:58:51 -07:00
mv643xx_eth.h typo fixes: infomation -> information 2006-06-30 18:25:18 +02:00
mvme147.c
myri_code.h
myri_sbus.c [PATCH] irq-flags: drivers/net: Use the new IRQF_ constants 2006-07-02 13:58:51 -07:00
myri_sbus.h [NET] myri_sbus: Kill unused next_module struct member. 2006-06-23 23:16:09 -07:00
natsemi.c [netdrvr] Remove Linux-specific changelogs from several Becker template drivers 2006-07-05 13:40:49 -04:00
ne2.c [PATCH] Section mismatch in drivers/net/ne.o during modpost 2006-06-11 12:16:01 -04:00
ne2k-pci.c [netdrvr] use dev_xxx() printk helpers, rather than dev_printk(KERN_xxx, ... 2006-07-05 13:42:57 -04:00
ne3210.c
ne-h8300.c [PATCH] Remove MODULE_PARM 2006-03-25 08:22:52 -08:00
ne.c [PATCH] Section mismatch in drivers/net/ne.o during modpost 2006-06-11 12:16:01 -04:00
netconsole.c [NETCONSOLE]: Clean up initcall warning. 2006-06-05 15:04:37 -07:00
netx-eth.c [PATCH] irq-flags: drivers/net: Use the new IRQF_ constants 2006-07-02 13:58:51 -07:00
ni52.c
ni52.h
ni65.c
ni65.h
ni5010.c [PATCH] Remove MODULE_PARM 2006-03-25 08:22:52 -08:00
ni5010.h
ns83820.c [PATCH] lock validator: fix ns83820.c irq-flags bug 2006-07-05 14:08:08 -04:00
oaknet.c [PATCH] drivers/net/*: use time_after() and friends 2006-01-17 07:59:23 -05:00
pci-skeleton.c [netdrvr] use dev_xxx() printk helpers, rather than dev_printk(KERN_xxx, ... 2006-07-05 13:42:57 -04:00
pcnet32.c [PATCH] pcnet32: Cleanup rx buffers after loopback test. 2006-07-05 14:07:15 -04:00
plip.c Massive net driver const-ification. 2006-03-03 21:33:57 -05:00
ppp_async.c [PATCH] drivers/net/*: use time_after() and friends 2006-01-17 07:59:23 -05:00
ppp_deflate.c
ppp_generic.c Remove obsolete #include <linux/config.h> 2006-06-30 19:25:36 +02:00
ppp_mppe.c Remove obsolete #include <linux/config.h> 2006-06-30 19:25:36 +02:00
ppp_mppe.h
ppp_synctty.c Massive net driver const-ification. 2006-03-03 21:33:57 -05:00
pppoe.c [PPPOE]: Missing result check in __pppoe_xmit(). 2006-06-05 15:34:33 -07:00
pppox.c [PPPOX]: Fix assignment into const proto_ops. 2006-01-03 13:11:23 -08:00
r8169.c [netdrvr] use dev_xxx() printk helpers, rather than dev_printk(KERN_xxx, ... 2006-07-05 13:42:57 -04:00
rionet.c
rrunner.c [PATCH] irq-flags: drivers/net: Use the new IRQF_ constants 2006-07-02 13:58:51 -07:00
rrunner.h Remove obsolete #include <linux/config.h> 2006-06-30 19:25:36 +02:00
s2io-regs.h [PATCH] s2io: additional stats 2006-05-02 15:16:36 -04:00
s2io.c [PATCH] irq-flags: drivers/net: Use the new IRQF_ constants 2006-07-02 13:58:51 -07:00
s2io.h typo fixes: infomation -> information 2006-06-30 18:25:18 +02:00
saa9730.c
saa9730.h
sb1000.c Massive net driver const-ification. 2006-03-03 21:33:57 -05:00
sb1250-mac.c [PATCH] irq-flags: drivers/net: Use the new IRQF_ constants 2006-07-02 13:58:51 -07:00
seeq8005.c [NET]: Avoid allocating skb in skb_pad 2006-06-23 02:06:41 -07:00
seeq8005.h
sgiseeq.c [PATCH] Sparse: Cleanup sgiseeq sparse warnings. 2006-03-11 20:32:17 -05:00
sgiseeq.h
shaper.c Remove obsolete #include <linux/config.h> 2006-06-30 19:25:36 +02:00
sis190.c [PATCH] irq-flags: drivers/net: Use the new IRQF_ constants 2006-07-02 13:58:51 -07:00
sis900.c [PATCH] irq-flags: drivers/net: Use the new IRQF_ constants 2006-07-02 13:58:51 -07:00
sis900.h [PATCH] Add VLAN (802.1q) support to sis900 driver 2006-04-20 17:29:43 -04:00
sk_mca.c [PATCH] irq-flags: drivers/net: Use the new IRQF_ constants 2006-07-02 13:58:51 -07:00
sk_mca.h
skge.c [PATCH] irq-flags: drivers/net: Use the new IRQF_ constants 2006-07-02 13:58:51 -07:00
skge.h [PATCH] skge: transmit complete via IRQ not NAPI 2006-06-08 15:44:54 -04:00
sky2.c [PATCH] irq-flags: drivers/net: Use the new IRQF_ constants 2006-07-02 13:58:51 -07:00
sky2.h [PATCH] sky2: more fixes for Yukon Ultra 2006-05-20 00:15:39 -04:00
slhc.c Remove obsolete #include <linux/config.h> 2006-06-30 19:25:36 +02:00
slip.c Remove obsolete #include <linux/config.h> 2006-06-30 19:25:36 +02:00
slip.h Remove obsolete #include <linux/config.h> 2006-06-30 19:25:36 +02:00
smc91x.c Remove obsolete #include <linux/config.h> 2006-06-30 19:25:36 +02:00
smc91x.h [PATCH] irq-flags: drivers/net: Use the new IRQF_ constants 2006-07-02 13:58:51 -07:00
smc911x.c [PATCH] irq-flags: drivers/net: Use the new IRQF_ constants 2006-07-02 13:58:51 -07:00
smc911x.h [netdrvr smc911x] trim trailing whitespace 2006-04-20 17:39:14 -04:00
smc9194.c [NET]: Avoid allocating skb in skb_pad 2006-06-23 02:06:41 -07:00
smc9194.h
smc-mca.c
smc-ultra32.c [PATCH] irq-flags: drivers/net: Use the new IRQF_ constants 2006-07-02 13:58:51 -07:00
smc-ultra.c Remove obsolete #include <linux/config.h> 2006-06-30 19:25:36 +02:00
sonic.c [NET]: Avoid allocating skb in skb_pad 2006-06-23 02:06:41 -07:00
sonic.h Remove obsolete #include <linux/config.h> 2006-06-30 19:25:36 +02:00
Space.c Remove obsolete #include <linux/config.h> 2006-06-30 19:25:36 +02:00
spider_net_ethtool.c [PATCH] spidernet: performance optimizations 2006-01-17 07:25:01 -05:00
spider_net.c [PATCH] irq-flags: drivers/net: Use the new IRQF_ constants 2006-07-02 13:58:51 -07:00
spider_net.h spidernet: introduce new setting 2006-05-08 16:01:11 -07:00
starfire_firmware.h
starfire_firmware.pl
starfire.c [netdrvr] minor cleanups in Becker-derived drivers 2006-07-05 13:40:50 -04:00
stnic.c Remove obsolete #include <linux/config.h> 2006-06-30 19:25:36 +02:00
sun3_82586.c
sun3_82586.h
sun3lance.c [PATCH] irq-flags: drivers/net: Use the new IRQF_ constants 2006-07-02 13:58:51 -07:00
sunbmac.c [PATCH] irq-flags: drivers/net: Use the new IRQF_ constants 2006-07-02 13:58:51 -07:00
sunbmac.h [NET] sunbmac: Convert over to new SBUS device framework. 2006-06-23 23:16:02 -07:00
sundance.c [netdrvr] minor cleanups in Becker-derived drivers 2006-07-05 13:40:50 -04:00
sungem_phy.c Remove obsolete #include <linux/config.h> 2006-06-30 19:25:36 +02:00
sungem_phy.h spidernet: enable support for bcm5461 ethernet phy 2006-05-08 16:01:12 -07:00
sungem.c [PATCH] irq-flags: drivers/net: Use the new IRQF_ constants 2006-07-02 13:58:51 -07:00
sungem.h [SUNGEM]: sem2mutex 2006-03-20 22:34:25 -08:00
sunhme.c [PATCH] irq-flags: drivers/net: Use the new IRQF_ constants 2006-07-02 13:58:51 -07:00
sunhme.h Remove obsolete #include <linux/config.h> 2006-06-30 19:25:36 +02:00
sunlance.c [PATCH] irq-flags: drivers/net: Use the new IRQF_ constants 2006-07-02 13:58:51 -07:00
sunqe.c [PATCH] irq-flags: drivers/net: Use the new IRQF_ constants 2006-07-02 13:58:51 -07:00
sunqe.h
tc35815.c [PATCH] irq-flags: drivers/net: Use the new IRQF_ constants 2006-07-02 13:58:51 -07:00
tg3.c [TG3]: Add ipv6 TSO feature 2006-07-03 19:42:14 -07:00
tg3.h [TG3]: Add TSO workaround using GSO 2006-06-30 14:11:57 -07:00
tlan.c [PATCH] irq-flags: drivers/net: Use the new IRQF_ constants 2006-07-02 13:58:51 -07:00
tlan.h
tun.c Remove obsolete #include <linux/config.h> 2006-06-30 19:25:36 +02:00
typhoon-firmware.h
typhoon.c [PATCH] irq-flags: drivers/net: Use the new IRQF_ constants 2006-07-02 13:58:51 -07:00
typhoon.h
via-rhine.c [netdrvr] minor cleanups in Becker-derived drivers 2006-07-05 13:40:50 -04:00
via-velocity.c [netdrvr] use dev_xxx() printk helpers, rather than dev_printk(KERN_xxx, ... 2006-07-05 13:42:57 -04:00
via-velocity.h [netdrvr] via-velocity: remove io_size struct member, it is invariant 2006-07-05 13:40:50 -04:00
wd.c [PATCH] fix a few "warning: 'cleanup_card' defined but not used" 2006-01-09 10:54:48 -05:00
yellowfin.c [netdrvr] Remove Becker-template 'io_size' member, when invariant 2006-07-05 13:40:49 -04:00
znet.c Remove obsolete #include <linux/config.h> 2006-06-30 19:25:36 +02:00
zorro8390.c [PATCH] irq-flags: drivers/net: Use the new IRQF_ constants 2006-07-02 13:58:51 -07:00