linux/drivers/net
Johannes Berg 3995bd9332 iwlwifi: fix TX queue race
I had a problem on 4965 hardware (well, probably other hardware too,
but others don't survive my stress testing right now, unfortunately)
where the driver was sending invalid commands to the device, but no
such thing could be seen from the driver's point of view. I could
reproduce this fairly easily by sending multiple TCP streams with
iperf on different TIDs, though sometimes a single iperf stream was
sufficient. It even happened with a single core, but I have forced
preemption turned on.

The culprit was a queue overrun, where we advanced the queue's write
pointer over the read pointer. After careful analysis I've come to
the conclusion that the cause is a race condition between iwlwifi
and mac80211.

mac80211, of course, checks whether the queue is stopped, before
transmitting a frame. This effectively looks like this:

        lock(queues)
        if (stopped(queue)) {
                unlock(queues)
                return busy;
	}
        unlock(queues)
        ...             <-- this place will be important
			    there is some more code here
        drv_tx(frame)

The driver, on the other hand, can stop and start queues, which does

        lock(queues)
        mark_running/stopped(queue)
        unlock(queues)

	[if marked running: wake up tasklet to send pending frames]

Now, however, once the driver starts the queue, mac80211 can see that
and end up at the marked place above, at which point for some reason the
driver seems to stop the queue again (I don't understand that) and then
we end up transmitting while the queue is actually full.

Now, this shouldn't actually matter much, but for some reason I've seen
it happen multiple times in a row and the queue actually overflows, at
which point the queue bites itself in the tail and things go completely
wrong.

This patch fixes this by just dropping the packet should this have
happened, and making the lock in iwlwifi cover everything so iwlwifi
can't race against itself (dropping the lock there might make it more
likely, but it did seem to happen without that too).

Since we can't hold the lock across drv_tx() above, I see no way to fix
this in mac80211, but I also don't understand why I haven't seen this
before -- maybe I just never stress tested it this badly.

With this patch, the device has survived many minutes of simultanously
sending two iperf streams on different TIDs with combined throughput
of about 60 Mbps.

Signed-off-by: Johannes Berg <johannes@sipsolutions.net>
Signed-off-by: Reinette Chatre <reinette.chatre@intel.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
2009-07-27 15:19:34 -04:00
..
appletalk Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/torvalds/linux-2.6 2009-06-15 03:02:23 -07:00
arcnet drivers/net/arcnet: fix sparse warning: symbol shadows an earlier one 2009-02-17 17:26:05 -08:00
arm register at91_ether using platform_driver_probe 2009-07-22 11:24:28 -07:00
atl1c atl1c: misplaced parenthesis 2009-07-16 18:05:20 -07:00
atl1e atl1*: add device_set_wakeup_enable to atl1*_set_wol 2009-06-25 02:58:17 -07:00
atlx atlx: duplicate testing of MCAST flag 2009-07-13 11:02:55 -07:00
benet be2net: Bug fix in the non-lro path. Size of received packet was not updated in statistics properly. 2009-07-22 09:28:55 -07:00
bonding bonding: clean muticast addresses when device changes type 2009-07-16 18:05:23 -07:00
can can: switch carrier on if device was stopped while in bus-off state 2009-07-20 12:28:30 -07:00
chelsio net: dont update dev->trans_start in 10GB drivers 2009-05-29 01:46:26 -07:00
cris eth_v10: convert to net_device_ops 2009-04-13 15:16:33 -07:00
cxgb3 cxgb3: Fix crash caused by stashing wrong netdev_queue 2009-07-09 17:16:06 -07:00
e1000 e1000: return PCI_ERS_RESULT_DISCONNECT on permanent error 2009-06-30 19:47:00 -07:00
e1000e e1000e: disable K1 at 1000Mbps for 82577/82578 2009-07-03 20:09:42 -07:00
ehea netdev: restore MTU change operation 2009-07-12 14:20:04 -07:00
enic net: dont update dev->trans_start in 10GB drivers 2009-05-29 01:46:26 -07:00
fs_enet fs_enet: Revive fixed link support 2009-07-22 09:27:19 -07:00
hamradio Update Andreas Koensgen's email address 2009-07-17 10:07:12 -07:00
ibm_newemac drivers/net: Move a dereference below a NULL test 2009-07-21 13:00:43 -07:00
igb igb: gcc-3.4.6 fix 2009-07-13 11:11:41 -07:00
igbvf convert some DMA_nnBIT_MASK() callers 2009-06-19 16:46:06 -07:00
irda net/irda: convert bfin_sir to net_device_ops 2009-06-29 19:41:49 -07:00
ixgb net: skb_shared_info optimization 2009-06-08 00:21:48 -07:00
ixgbe ixgbe: fix for 82599 errata marking UDP checksum errors 2009-07-26 20:20:47 -07:00
ixp2000 ixp2000/ixpdev: convert to net_device_ops 2009-04-16 02:20:13 -07:00
mlx4 drivers/net/mlx4: Adjust constant 2009-07-21 13:00:46 -07:00
myri10ge net: use symbolic values for ndo_start_xmit() return codes 2009-06-13 01:18:50 -07:00
netxen netxen: reset ring consumer during cleanup 2009-07-26 20:17:21 -07:00
pcmcia 3c589_cs: re-initialize the multicast in the tc589_reset 2009-07-20 08:26:55 -07:00
phy net: Rework mdio-ofgpio driver to use of_mdio infrastructure 2009-07-23 10:56:48 -07:00
qlge qlge: Fix sizeof usage. 2009-07-03 19:10:51 -07:00
sfc sfc: Expose 100/1000BASE-T MDI-X status via ethtool 2009-06-11 02:47:11 -07:00
skfp Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/torvalds/linux-2.6 2009-06-15 03:02:23 -07:00
tokenring tokenring: Read buffer overflow 2009-07-26 18:50:39 -07:00
tulip net: use symbolic values for ndo_start_xmit() return codes 2009-06-13 01:18:50 -07:00
usb USB host CDC Phonet network interface driver 2009-07-21 12:40:39 -07:00
vxge vxge: Enable SRIOV support in the driver. 2009-06-17 04:31:14 -07:00
wan net: fix network drivers ndo_start_xmit() return values 2009-06-17 04:31:16 -07:00
wimax debugfs: Fix terminology inconsistency of dir name to mount debugfs filesystem. 2009-06-15 21:30:28 -07:00
wireless iwlwifi: fix TX queue race 2009-07-27 15:19:34 -04:00
3c59x.c net: use symbolic values for ndo_start_xmit() return codes 2009-06-13 01:18:50 -07:00
3c501.c 3c50x: convert printk() to pr_<foo>() 2009-05-26 20:35:02 -07:00
3c501.h
3c503.c 3c50x: convert printk() to pr_<foo>() 2009-05-26 20:35:02 -07:00
3c503.h
3c505.c net: use symbolic values for ndo_start_xmit() return codes 2009-06-13 01:18:50 -07:00
3c505.h
3c507.c 3c50x: convert printk() to pr_<foo>() 2009-05-26 20:35:02 -07:00
3c509.c Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6 2009-06-03 02:43:41 -07:00
3c515.c net: use symbolic values for ndo_start_xmit() return codes 2009-06-13 01:18:50 -07:00
3c523.c 3c5xx: convert printk() to pr_<foo>() 2009-05-26 20:35:03 -07:00
3c523.h
3c527.c net: use symbolic values for ndo_start_xmit() return codes 2009-06-13 01:18:50 -07:00
3c527.h
7990.c net: use symbolic values for ndo_start_xmit() return codes 2009-06-13 01:18:50 -07:00
7990.h
8139cp.c net: use symbolic values for ndo_start_xmit() return codes 2009-06-13 01:18:50 -07:00
8139too.c netdev: restore MTU change operation 2009-07-12 14:20:04 -07:00
8390.c 8390(p): remove old compat_net_dev_ops code 2009-04-16 02:20:06 -07:00
8390.h
8390p.c 8390p: fix build breakage 2009-04-24 04:45:33 -07:00
82596.c drivers/net/82596.c: suppress warnings 2009-05-17 11:59:51 -07:00
a2065.c net: use symbolic values for ndo_start_xmit() return codes 2009-06-13 01:18:50 -07:00
a2065.h
ac3200.c netdev: convert ac3200 to net_device_ops 2009-03-27 00:46:54 -07:00
acenic.c net: dont update dev->trans_start 2009-05-29 01:46:27 -07:00
acenic.h
amd8111e.c dma-mapping: replace all DMA_32BIT_MASK macro with DMA_BIT_MASK(32) 2009-04-07 08:31:11 -07:00
amd8111e.h
apne.c
ariadne.c ariadne: convert to net_device_ops 2009-04-11 02:53:46 -07:00
ariadne.h
at1700.c at1700: Read buffer overflow 2009-07-26 18:50:38 -07:00
atarilance.c atarilance: convert to net_device_ops 2009-04-14 21:57:01 -07:00
atp.c
atp.h
au1000_eth.c net: use symbolic values for ndo_start_xmit() return codes 2009-06-13 01:18:50 -07:00
au1000_eth.h
ax88796.c ax88796: Add method to take MAC from platform data 2009-03-24 23:32:03 -07:00
b44.c net: use netdev stats in b44, sundance, via-rhine and via-velocity 2009-05-27 15:47:07 -07:00
b44.h Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/torvalds/linux-2.6 2009-06-15 03:02:23 -07:00
bfin_mac.c Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6 2009-06-03 02:43:41 -07:00
bfin_mac.h
bmac.c bmac: convert to net_device_ops 2009-04-16 02:20:06 -07:00
bmac.h
bnx2_fw.h bnx2: Use request_firmware() 2009-04-04 16:51:14 -07:00
bnx2.c bnx2: Fix the behavior of ethtool when ONBOOT=no 2009-06-24 00:19:06 -07:00
bnx2.h Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/torvalds/linux-2.6 2009-06-15 03:02:23 -07:00
bnx2x_dump.h bnx2x: Register dump 2009-03-02 22:32:48 -08:00
bnx2x_fw_defs.h bnx2x: Version 2009-02-15 23:32:01 -08:00
bnx2x_fw_file_hdr.h bnx2x: Separated FW from the source. 2009-04-27 03:27:43 -07:00
bnx2x_hsi.h bnx2x: Version 2009-02-15 23:32:01 -08:00
bnx2x_init_ops.h bnx2x: Separated FW from the source. 2009-04-27 03:27:43 -07:00
bnx2x_init.h bnx2x: Separated FW from the source. 2009-04-27 03:27:43 -07:00
bnx2x_link.c drivers/net: Move a dereference below a NULL test 2009-07-21 13:00:44 -07:00
bnx2x_link.h bnx2x: Version 2009-02-15 23:32:01 -08:00
bnx2x_main.c bnx2x: Fix the maximal values of coalescing timeouts. 2009-07-05 18:03:23 -07:00
bnx2x_reg.h bnx2x: Supporting new BCM8726 FW 2009-03-02 22:32:43 -08:00
bnx2x.h bnx2x: Fix the maximal values of coalescing timeouts. 2009-07-05 18:03:23 -07:00
bsd_comp.c
cassini.c net: use symbolic values for ndo_start_xmit() return codes 2009-06-13 01:18:50 -07:00
cassini.h
cnic_defs.h [SCSI] cnic: Add new Broadcom CNIC driver. 2009-06-09 10:22:42 -05:00
cnic_if.h cnic: Fix __symbol_get() build error. 2009-06-21 11:00:33 -05:00
cnic.c cnic: Fix __symbol_get() build error. 2009-06-21 11:00:33 -05:00
cnic.h [SCSI] cnic: Add new Broadcom CNIC driver. 2009-06-09 10:22:42 -05:00
cpmac.c cpmac: fix compilation failure introduced with netdev_ops conversion 2009-06-24 18:03:11 -07:00
cs89x0.c drivers/net: using spin_lock_irqsave() in net_send_packet() 2009-07-14 12:03:41 -07:00
cs89x0.h
davinci_emac.c davinci_emac: fix kernel oops when changing MAC address while interface is down 2009-07-08 10:46:44 -07:00
de600.c net: use symbolic values for ndo_start_xmit() return codes 2009-06-13 01:18:50 -07:00
de600.h
de620.c net: use symbolic values for ndo_start_xmit() return codes 2009-06-13 01:18:50 -07:00
de620.h
declance.c declance: Restore tx descriptor ring locking 2009-06-08 02:42:35 -07:00
defxx.c net: use symbolic values for ndo_start_xmit() return codes 2009-06-13 01:18:50 -07:00
defxx.h
depca.c net: use symbolic values for ndo_start_xmit() return codes 2009-06-13 01:18:50 -07:00
depca.h
dl2k.c net: dont update dev->trans_start 2009-05-29 01:46:27 -07:00
dl2k.h
dm9000.c net: use symbolic values for ndo_start_xmit() return codes 2009-06-13 01:18:50 -07:00
dm9000.h
dnet.c dnet: remove unused #include <version.h> 2009-04-02 16:31:45 -07:00
dnet.h dnet: Dave DNET ethernet controller driver (updated) 2009-03-11 23:26:02 -07:00
dummy.c
e100.c E100: work around the driver using streaming DMA mapping for RX descriptors. 2009-07-16 18:05:25 -07:00
e2100.c drivers/net/e2100.c: fix sparse warning: symbol shadows an earlier one 2009-02-17 17:21:08 -08:00
eepro.c eepro: Read buffer overflow 2009-07-26 18:53:17 -07:00
eexpress.c netdev: convert eexpress to net_device_ops 2009-03-27 00:46:50 -07:00
eexpress.h
enc28j60_hw.h
enc28j60.c
epic100.c
eql.c net: release dst entry in dev_hard_start_xmit() 2009-05-18 22:19:19 -07:00
es3210.c
eth16i.c netdev: convert eth16i to net_device_ops 2009-03-27 00:46:55 -07:00
ethoc.c net: fix network driver ndo_start_xmit() return values (part 1) 2009-06-13 01:18:32 -07:00
ewrk3.c net: use symbolic values for ndo_start_xmit() return codes 2009-06-13 01:18:50 -07:00
ewrk3.h
fealnx.c fealnx: Write outside array bounds 2009-07-26 18:50:37 -07:00
fec_mpc52xx_phy.c Merge commit 'gcl/merge' into next 2009-06-18 11:22:08 +10:00
fec_mpc52xx.c Merge commit 'gcl/merge' into next 2009-06-18 11:22:08 +10:00
fec_mpc52xx.h
fec.c netdev: restore MTU change operation 2009-07-12 14:20:04 -07:00
fec.h fec: fix definition of 5272 version of FEC_X_DES_ACTIVE register 2009-07-06 18:56:11 -07:00
forcedeth.c forcedeth: Fix NAPI race. 2009-07-05 18:03:33 -07:00
fsl_pq_mdio.c fsl_pq_mdio: Fix fsl_pq_mdio to work with modules 2009-06-25 20:03:53 -07:00
fsl_pq_mdio.h netdev: Merge UCC and gianfar MDIO bus drivers 2009-02-04 16:42:35 -08:00
gianfar_ethtool.c gianfar: Implement proper, per netdevice wakeup management 2009-02-01 00:52:34 -08:00
gianfar_sysfs.c gianfar: Fix stashing support 2009-02-04 16:43:44 -08:00
gianfar.c gianfar: Revive fixed link support 2009-07-22 09:27:23 -07:00
gianfar.h Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6 2009-06-03 02:43:41 -07:00
hamachi.c net: use symbolic values for ndo_start_xmit() return codes 2009-06-13 01:18:50 -07:00
hp100.c net: fix network drivers ndo_start_xmit() return values 2009-06-17 04:31:16 -07:00
hp100.h
hp-plus.c net: fix hp-plus build error 2009-02-26 21:02:19 -08:00
hp.c
hplance.c hplance: convert to net_device_ops 2009-04-16 02:20:08 -07:00
hplance.h
hydra.c
ibmlana.c net: fix network driver ndo_start_xmit() return values (part 1) 2009-06-13 01:18:32 -07:00
ibmlana.h
ibmveth.c net/ibmveth: fix panic in probe 2009-05-17 15:19:36 -07:00
ibmveth.h
ifb.c net: release dst entry in dev_hard_start_xmit() 2009-05-18 22:19:19 -07:00
ioc3-eth.c net: ntohs() misuse 2009-06-11 17:23:24 -07:00
ipg.c dma-mapping: replace all DMA_32BIT_MASK macro with DMA_BIT_MASK(32) 2009-04-07 08:31:11 -07:00
ipg.h trivial: fix typo milisecond/millisecond for documentation and source comments. 2009-06-12 18:01:46 +02:00
isa-skeleton.c drivers/net: using spin_lock_irqsave() in net_send_packet() 2009-07-14 12:03:41 -07:00
iseries_veth.c iseries_veth: fix build breakage 2009-04-19 18:42:58 -07:00
jazzsonic.c macsonic, jazzsonic: fix oops on module unload 2009-07-21 12:21:49 -07:00
jme.c net: dont update dev->trans_start 2009-05-29 01:46:27 -07:00
jme.h jme: Advance version number after previous changes 2009-03-02 01:55:15 -08:00
Kconfig net: KS8851 needs to depend on MII 2009-07-22 09:33:08 -07:00
korina.c korina: periodically poll the media 2009-05-29 01:51:22 -07:00
ks8842.c netdev: Added KS8842 driver 2009-06-08 00:20:20 -07:00
ks8851.c net: Micrel KS8851 SPI network driver 2009-07-20 08:23:26 -07:00
ks8851.h net: Micrel KS8851 SPI network driver 2009-07-20 08:23:26 -07:00
lance.c lance: convert to net_device_ops 2009-03-27 00:46:48 -07:00
lasi_82596.c lasi_82596: fix printk format warning 2009-05-05 12:29:47 -07:00
lib8390.c net: use symbolic values for ndo_start_xmit() return codes 2009-06-13 01:18:50 -07:00
lib82596.c lib82596: convert to net_device_ops 2009-04-16 02:20:15 -07:00
LICENSE.SRC
ll_temac_main.c net: add Xilinx ll_temac device driver 2009-04-27 02:53:52 -07:00
ll_temac_mdio.c net: add Xilinx ll_temac device driver 2009-04-27 02:53:52 -07:00
ll_temac.h net: add Xilinx ll_temac device driver 2009-04-27 02:53:52 -07:00
lne390.c
loopback.c net: release dst entry in dev_hard_start_xmit() 2009-05-18 22:19:19 -07:00
lp486e.c netdev: convert lp486e to net_device_ops 2009-03-27 00:46:54 -07:00
mac89x0.c net: use symbolic values for ndo_start_xmit() return codes 2009-06-13 01:18:50 -07:00
mac8390.c Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6 2009-06-03 02:43:41 -07:00
macb.c net: use symbolic values for ndo_start_xmit() return codes 2009-06-13 01:18:50 -07:00
macb.h
mace.c net: use symbolic values for ndo_start_xmit() return codes 2009-06-13 01:18:50 -07:00
mace.h
macmace.c macmace: convert to net_device_ops 2009-04-16 02:20:16 -07:00
macsonic.c macsonic, jazzsonic: fix oops on module unload 2009-07-21 12:21:49 -07:00
macvlan.c drivers/net/macvlan.c: fix cloning of tagged VLAN interfaces 2009-06-11 02:32:39 -07:00
Makefile net: Micrel KS8851 SPI network driver 2009-07-20 08:23:26 -07:00
mdio.c mdio add missing GPL flag 2009-06-25 20:06:34 -07:00
meth.c Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6 2009-05-18 21:08:20 -07:00
meth.h
mii.c mii: Rewrite mii_ethtool_gset() to report mdio_support and lp_advertising 2009-04-29 17:32:42 -07:00
mipsnet.c mipsnet: convert to net_device_ops 2009-04-16 02:20:18 -07:00
mv643xx_eth.c mv643xx_eth: fix unicast filter programming in promiscuous mode 2009-06-19 01:12:52 -07:00
mvme147.c mvme147: convert to net_device_ops 2009-04-16 02:20:21 -07:00
myri_sbus.c net: use symbolic values for ndo_start_xmit() return codes 2009-06-13 01:18:50 -07:00
myri_sbus.h
natsemi.c natsemi: fix non-constant printk warnings 2009-02-26 22:21:58 -08:00
ne2.c
ne2k-pci.c ne2k-pci: use dev->addr_len instead of "6" 2009-05-03 14:19:23 -07:00
ne3210.c net: remove driver_data direct access of struct device 2009-05-01 15:21:55 -07:00
ne-h8300.c
ne.c
netconsole.c netconsole: take care of NETDEV_UNREGISTER event 2009-05-01 15:24:18 -07:00
netx-eth.c netx-eth: convert to net_device_ops 2009-04-16 02:20:22 -07:00
ni52.c netdev: convert ni52 to net_device_ops 2009-03-27 00:46:53 -07:00
ni52.h
ni65.c net: use symbolic values for ndo_start_xmit() return codes 2009-06-13 01:18:50 -07:00
ni65.h
ni5010.c ni5010: convert to net_device_ops 2009-03-28 23:37:27 -07:00
ni5010.h
niu.c net: group address list and its count 2009-06-18 00:29:08 -07:00
niu.h trivial: typo (en|dis|avail|remove)bale -> (en|dis|avail|remove)able 2009-06-12 18:01:45 +02:00
ns83820.c net: use symbolic values for ndo_start_xmit() return codes 2009-06-13 01:18:50 -07:00
pasemi_mac_ethtool.c
pasemi_mac.c pasemi_mac: mac_to_intf() error not noticed 2009-04-27 03:20:17 -07:00
pasemi_mac.h net: Rework pasemi_mac driver to use of_mdio infrastructure 2009-04-27 02:53:49 -07:00
pci-skeleton.c pci-skeleton: convert to net_device_ops 2009-04-16 02:20:23 -07:00
pcnet32.c pcnet32: Remove pointless memory barriers 2009-04-29 17:22:30 -07:00
plip.c netdev: restore MTU change operation 2009-07-12 14:20:04 -07:00
ppp_async.c Revert "NET: Fix locking issues in PPP, 6pack, mkiss and strip line disciplines." 2009-07-14 13:13:41 -07:00
ppp_deflate.c
ppp_generic.c ppp: unset IFF_XMIT_DST_RELEASE in ppp_setup() 2009-05-19 14:24:37 -07:00
ppp_mppe.c
ppp_mppe.h
ppp_synctty.c Revert "NET: Fix locking issues in PPP, 6pack, mkiss and strip line disciplines." 2009-07-14 13:13:41 -07:00
pppoe.c net: convert usage of packet_type to read_mostly 2009-03-10 05:22:43 -07:00
pppol2tp.c net: skb->dst accessors 2009-06-03 02:51:04 -07:00
pppox.c
ps3_gelic_net.c netdev: restore MAC address set and validate operations 2009-07-12 14:20:02 -07:00
ps3_gelic_net.h
ps3_gelic_wireless.c netdev: restore MAC address set and validate operations 2009-07-12 14:20:02 -07:00
ps3_gelic_wireless.h
qla3xxx.c qla3xxx: Don't sleep while holding lock. 2009-06-23 16:36:27 -07:00
qla3xxx.h
r6040.c r6040: bump driver version to 0.24 and date to 08 July 2009 2009-07-08 10:49:28 -07:00
r8169.c r8169: WakeOnLan fix for the 8168 2009-07-26 20:18:52 -07:00
rionet.c rionet: convert to net_device_ops 2009-04-16 02:20:24 -07:00
rrunner.c net: fix network driver ndo_start_xmit() return values (part 1) 2009-06-13 01:18:32 -07:00
rrunner.h
s2io-regs.h s2io: Use generic MDIO definitions 2009-04-29 17:32:34 -07:00
s2io.c s2io: Remove private boolean definitions 2009-06-08 00:20:22 -07:00
s2io.h s2io: Remove private boolean definitions 2009-06-08 00:20:22 -07:00
s6gmac.c s6gmac: xtensa s6000 on-chip ethernet driver 2009-06-22 02:37:34 -07:00
sb1000.c
sb1250-mac.c net: use symbolic values for ndo_start_xmit() return codes 2009-06-13 01:18:50 -07:00
sc92031.c New device ID for sc92031 [1088:2031] 2009-07-20 08:27:02 -07:00
seeq8005.c netdev: seeq8005 convert to net_device_ops 2009-03-27 00:46:46 -07:00
seeq8005.h
sgiseeq.c sgiseeq: convert to net_device_ops 2009-04-16 02:20:25 -07:00
sgiseeq.h
sh_eth.c sh_eth: remove redundant test on unsigned 2009-06-25 20:03:56 -07:00
sh_eth.h net: sh_eth: Add support SH7724 2009-05-25 22:49:56 -07:00
sis190.c sis190: use an adequate phy list entry as a fallback 2009-06-17 18:46:46 -07:00
sis900.c net: use symbolic values for ndo_start_xmit() return codes 2009-06-13 01:18:50 -07:00
sis900.h
skge.c skge: Enable WoL by default if supported 2009-07-22 11:24:26 -07:00
skge.h
sky2.c sky2: Avoid races in sky2_down 2009-07-21 20:57:56 -07:00
sky2.h sky2: skb recycling 2009-06-17 18:46:54 -07:00
slhc.c
slip.c
slip.h
smc91x.c netdev: restore MTU change operation 2009-07-12 14:20:04 -07:00
smc91x.h smc91x.h: add config for Nomadik evaluation kit 2009-07-26 19:15:07 -07:00
smc911x.c smc911x: convert to net_device_ops 2009-04-16 02:20:25 -07:00
smc911x.h Merge branch 'for-rmk' of git://git.pengutronix.de/git/imx/linux-2.6 into devel 2009-03-13 21:44:51 +00:00
smc9194.c net: use symbolic values for ndo_start_xmit() return codes 2009-06-13 01:18:50 -07:00
smc9194.h
smc-mca.c net: remove driver_data direct access of struct device 2009-05-01 15:21:55 -07:00
smc-ultra32.c netdev: smc-ultra32 convert to net_device_ops 2009-03-27 00:46:47 -07:00
smc-ultra.c netdev: smc-ultra fix netpoll 2009-03-27 00:46:48 -07:00
smsc911x.c netdev: restore MTU change operation 2009-07-12 14:20:04 -07:00
smsc911x.h smsc911x: define status word positions as constants 2009-03-19 23:59:27 -07:00
smsc9420.c dma-mapping: replace all DMA_32BIT_MASK macro with DMA_BIT_MASK(32) 2009-04-07 08:31:11 -07:00
smsc9420.h smsc9420: handle magic field of ethtool_eeprom 2009-02-20 00:38:51 -08:00
sni_82596.c
sonic.c sonic: Fix build after ndo_start_xmit() changes. 2009-06-17 01:36:23 -07:00
sonic.h
Space.c
spider_net_ethtool.c
spider_net.c spider_net: Add missing .ndo_validate_addr 2009-03-23 14:42:09 -07:00
spider_net.h
starfire.c net: use symbolic values for ndo_start_xmit() return codes 2009-06-13 01:18:50 -07:00
stnic.c
sun3_82586.c net: use symbolic values for ndo_start_xmit() return codes 2009-06-13 01:18:50 -07:00
sun3_82586.h
sun3lance.c net: use symbolic values for ndo_start_xmit() return codes 2009-06-13 01:18:50 -07:00
sunbmac.c myri_sbus/sunbmac/sunlance/sunqe: Add missing net_device_ops entries. 2009-03-23 14:29:24 -07:00
sunbmac.h
sundance.c net: use netdev stats in b44, sundance, via-rhine and via-velocity 2009-05-27 15:47:07 -07:00
sungem_phy.c cassini/sungem: limit reaches -1, but 0 tested 2009-02-02 23:19:50 -08:00
sungem_phy.h
sungem.c dma-mapping: replace all DMA_32BIT_MASK macro with DMA_BIT_MASK(32) 2009-04-07 08:31:11 -07:00
sungem.h
sunhme.c net: use symbolic values for ndo_start_xmit() return codes 2009-06-13 01:18:50 -07:00
sunhme.h
sunlance.c myri_sbus/sunbmac/sunlance/sunqe: Add missing net_device_ops entries. 2009-03-23 14:29:24 -07:00
sunqe.c myri_sbus/sunbmac/sunlance/sunqe: Add missing net_device_ops entries. 2009-03-23 14:29:24 -07:00
sunqe.h
sunvnet.c netdev: restore MTU change operation 2009-07-12 14:20:04 -07:00
sunvnet.h
tc35815.c drivers/net: Convert #ifdef DEBUG printk(KERN_DEBUG to pr_debug( 2009-05-17 21:03:43 -07:00
tehuti.c tehuti: No need check vfree() pointer. 2009-06-11 02:47:14 -07:00
tehuti.h dma-mapping: replace all DMA_32BIT_MASK macro with DMA_BIT_MASK(32) 2009-04-07 08:31:11 -07:00
tg3.c net: skb_shared_info optimization 2009-06-08 00:21:48 -07:00
tg3.h tg3: Limit CLKREQ fix to A[01] of 57780 asic rev 2009-04-21 01:41:02 -07:00
tlan.c net: use symbolic values for ndo_start_xmit() return codes 2009-06-13 01:18:50 -07:00
tlan.h
tsi108_eth.c tsi108_eth: convert to net_device_ops 2009-04-13 15:16:21 -07:00
tsi108_eth.h
tun.c tun/tap: Fix crashes if open() /dev/net/tun and then poll() it. 2009-07-06 12:47:07 -07:00
typhoon.c dma-mapping: replace all DMA_32BIT_MASK macro with DMA_BIT_MASK(32) 2009-04-07 08:31:11 -07:00
typhoon.h
ucc_geth_ethtool.c trivial: fix typos s/paramter/parameter/ and s/excute/execute/ in documentation and source comments. 2009-06-12 18:01:46 +02:00
ucc_geth.c ucc_geth: Revive fixed link support 2009-07-22 09:27:24 -07:00
ucc_geth.h Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next-2.6 2009-06-18 14:07:15 -07:00
veth.c Revert "veth: prevent oops caused by netdev destructor" 2009-06-25 02:45:42 -07:00
via-rhine.c netdev: restore MTU change operation 2009-07-12 14:20:04 -07:00
via-velocity.c via-velocity: Fix velocity driver unmapping incorrect size. 2009-06-21 22:42:30 -07:00
via-velocity.h net: use netdev stats in b44, sundance, via-rhine and via-velocity 2009-05-27 15:47:07 -07:00
virtio_net.c net: group address list and its count 2009-06-18 00:29:08 -07:00
wd.c
xen-netfront.c xen: remove driver_data direct access of struct device from more drivers 2009-06-15 21:30:28 -07:00
xtsonic.c xtsonic: convert to net_device_ops 2009-04-13 15:16:21 -07:00
yellowfin.c net: dont update dev->trans_start 2009-05-29 01:46:27 -07:00
znet.c
zorro8390.c