linux/drivers/net
Christopher Li 78566fecbb e1000: prevent corruption of EEPROM/NVM
Andrey reports e1000 corruption, and that a patch in vmware's ESX fixed
it.

The EEPROM corruption is triggered by concurrent access of the EEPROM
read/write. Putting a lock around it solve the problem.

[akpm@linux-foundation.org: use DEFINE_SPINLOCK to avoid confusing lockdep]
Signed-off-by: Christopher Li <chrisl@vmware.com>
Reported-by: Andrey Borzenkov <arvidjaar@mail.ru>
Cc: Zach Amsden <zach@vmware.com>
Cc: Pratap Subrahmanyam <pratap@vmware.com>
Cc: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
Cc: Jesse Brandeburg <jesse.brandeburg@intel.com>
Cc: Bruce Allan <bruce.w.allan@intel.com>
Cc: PJ Waskiewicz <peter.p.waskiewicz.jr@intel.com>
Cc: John Ronciak <john.ronciak@intel.com>
Cc: Jeff Garzik <jeff@garzik.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Jeff Garzik <jgarzik@redhat.com>
2008-09-18 21:40:24 -04:00
..
appletalk
arcnet
arm Merge branch 'upstream-davem' of master.kernel.org:/pub/scm/linux/kernel/git/jgarzik/netdev-2.6 2008-08-14 14:50:46 -07:00
atl1e atl1e: multistatement if missing braces 2008-08-27 05:36:20 -04:00
atlx atl1: disable TSO by default 2008-08-27 05:36:27 -04:00
bonding bonding: Don't destroy bonding master when removing slave via sysfs 2008-08-07 03:59:56 -04:00
can
chelsio cxgb: delete non NAPI code from the driver. 2008-07-11 01:11:42 -04:00
cris
cxgb3 cxgb3: Allow 64KB firmware images. 2008-07-29 17:48:42 -04:00
e1000 e1000: prevent corruption of EEPROM/NVM 2008-09-18 21:40:24 -04:00
e1000e e1000e: remove unnecessary snippet missed in prior check_options update 2008-08-14 04:42:34 -04:00
ehea drivers/net/ehea/ehea_main.c: Release mutex in error handling code 2008-07-30 17:23:39 -04:00
fs_enet fs_enet: Fix SCC Ethernet on CPM2, and crash in fs_enet_rx_napi() 2008-08-27 05:16:38 -04:00
hamradio hamradio: add missing sanity check to tty operation 2008-08-07 02:21:08 -04:00
ibm_newemac ibm_newemac: Don't call dev_mc_add() before device is registered 2008-08-27 05:55:24 -04:00
igb igb: remove 82576 quad adapter 2008-08-27 05:36:12 -04:00
irda [ARM] Move include/asm-arm/arch-* to arch/arm/*/include/mach 2008-08-07 09:55:48 +01:00
ixgb netdrv intel: always enable VLAN filtering except in promiscous mode 2008-07-16 20:16:14 -07:00
ixgbe ixgbe: initialize interrupt throttle rate 2008-09-03 09:26:18 -04:00
ixp2000 [ARM] Move include/asm-arm/arch-* to arch/arm/*/include/mach 2008-08-07 09:55:48 +01:00
mlx4 Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/roland/infiniband 2008-07-26 20:40:36 -07:00
myri10ge Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6 2008-08-27 17:38:07 -07:00
netxen Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6 2008-09-03 16:21:02 -07:00
pcmcia pcnet-cs, axnet_cs: add new IDs, remove dup ID with less info 2008-09-03 09:26:37 -04:00
phy net/phy: Fix 88e1111 copper/fiber selection in RGMII mode 2008-07-22 17:59:12 -04:00
sfc dma-mapping: add the device argument to dma_mapping_error() 2008-07-26 12:00:03 -07:00
skfp drivers/net/skfp/ess.c: fix compile warnings 2008-08-27 05:36:09 -04:00
tokenring removed unused #include <linux/version.h>'s 2008-08-23 12:14:12 -07:00
tulip de4x5: Remove developer debug feature about set/clear promisc 2008-07-22 16:09:09 -04:00
usb net/usb/pegasus: avoid hundreds of diagnostics 2008-09-03 09:26:10 -04:00
wan wan: Missing capability checks in sbni_ioctl() 2008-08-27 04:50:30 -07:00
wireless ath9k: Assign seq# when mac80211 requests this 2008-09-11 11:10:28 -04:00
3c59x.c 3c59x: use netdev_alloc_skb 2008-08-07 02:22:15 -04:00
3c501.c
3c501.h
3c503.c
3c503.h
3c505.c
3c505.h
3c507.c
3c509.c
3c515.c
3c523.c [netdrvr] Drivers should not set IFF_* flag themselves 2008-08-07 02:23:19 -04:00
3c523.h
3c527.c [netdrvr] Drivers should not set IFF_* flag themselves 2008-08-07 02:23:19 -04:00
3c527.h
7990.c
7990.h
8139cp.c
8139too.c 8139too: Fall back to PIO when MMIO fails. 2008-07-22 17:59:30 -04:00
8390.c drivers/net: coding styles fixes to drivers/net/8390.c 2008-08-07 02:21:05 -04:00
8390.h
8390p.c drivers/net: coding styles fixes to drivers/net/8390p.c 2008-08-07 02:21:03 -04:00
82596.c
a2065.c
a2065.h
ac3200.c
acenic_firmware.h
acenic.c [netdrvr] remove unnecessary #include 2008-08-14 04:26:38 -04:00
acenic.h
amd8111e.c
amd8111e.h
apne.c
ariadne.c ariadne: use netstats in net_device structure 2008-07-20 17:24:38 -07:00
ariadne.h
at1700.c
atarilance.c
atp.c [netdrvr] Drivers should not set IFF_* flag themselves 2008-08-07 02:23:19 -04:00
atp.h
au1000_eth.c au1000_eth: use 'unsigned long' for irqflags 2008-08-14 04:27:08 -04:00
au1000_eth.h
ax88796.c AX88796: Fix locking in ethtool support 2008-08-14 04:44:21 -04:00
b44.c
b44.h
bfin_mac.c blackfin_mac: unneeded assignment 2008-07-29 18:24:14 -04:00
bfin_mac.h
bmac.c
bmac.h
bnx2_fw2.h bnx2: Update TPAT firmware 2008-07-18 17:54:17 -07:00
bnx2_fw.h
bnx2.c bnx2: Fix build with VLAN_8021Q disabled. 2008-08-15 19:52:31 -07:00
bnx2.h bnx2: Promote vector field in bnx2_irq structure from u16 to unsigned int 2008-09-18 16:46:11 -07:00
bnx2x_fw_defs.h bnx2x: Checkpatch compliance 2008-08-13 16:05:38 -07:00
bnx2x_hsi.h bnx2x: Spelling mistakes 2008-08-13 16:05:37 -07:00
bnx2x_init_values.h bnx2x: FW Internal Memory structure 2008-08-13 16:01:48 -07:00
bnx2x_init.h bnx2x: Checkpatch compliance 2008-08-13 16:05:38 -07:00
bnx2x_link.c [netdrvr] remove unnecessary #include 2008-08-14 04:26:38 -04:00
bnx2x_link.h bnx2x: Spelling mistakes 2008-08-13 16:05:37 -07:00
bnx2x_main.c bnx2x: Accessing un-mapped page 2008-09-03 14:38:00 -07:00
bnx2x_reg.h bnx2x: Spelling mistakes 2008-08-13 16:05:37 -07:00
bnx2x.h bnx2x: Accessing un-mapped page 2008-09-03 14:38:00 -07:00
bsd_comp.c
cassini.c mm: speculative page references 2008-07-26 12:00:06 -07:00
cassini.h
cpmac.c [netdrvr] remove unnecessary #include 2008-08-14 04:26:38 -04:00
cs89x0.c [ARM] Move include/asm-arm/arch-* to arch/arm/*/include/mach 2008-08-07 09:55:48 +01:00
cs89x0.h
de600.c
de600.h
de620.c [netdrvr] Drivers should not set IFF_* flag themselves 2008-08-07 02:23:19 -04:00
de620.h
declance.c
defxx.c
defxx.h
depca.c
depca.h
dl2k.c
dl2k.h
dm9000.c dm9000: Support MAC address setting through platform data. 2008-08-07 02:22:54 -04:00
dm9000.h
dummy.c
e100.c e100, fix iomap read 2008-08-27 05:55:35 -04:00
e2100.c
eepro100.c
eepro.c [netdrvr] Drivers should not set IFF_* flag themselves 2008-08-07 02:23:19 -04:00
eexpress.c
eexpress.h
enc28j60_hw.h
enc28j60.c enc28j60: don't specify (wrong) IRQ type 2008-07-29 18:24:20 -04:00
epic100.c
eql.c
es3210.c
eth16i.c [netdrvr] Drivers should not set IFF_* flag themselves 2008-08-07 02:23:19 -04:00
ewrk3.c
ewrk3.h
fealnx.c
fec_mpc52xx_phy.c
fec_mpc52xx.c netdev: bunch of drivers: avoid WARN at net/core/dev.c:1328 2008-07-22 15:41:24 -07:00
fec_mpc52xx.h
fec.c m68knommu: remove last use of CONFIG_FADS and CONFIG_RPXCLASSIC 2008-07-23 15:11:29 +10:00
fec.h
forcedeth.c forcedeth: call restore mac addr in nv_shutdown path 2008-09-18 21:38:44 -04:00
gianfar_ethtool.c gianfar: Add magic packet and suspend/resume support. 2008-07-16 17:57:47 -05:00
gianfar_mii.c
gianfar_mii.h
gianfar_sysfs.c [netdrvr] remove unnecessary #include 2008-08-14 04:26:38 -04:00
gianfar.c net: don't grab a mutex within a timer context in gianfar 2008-08-27 05:55:19 -04:00
gianfar.h net: don't grab a mutex within a timer context in gianfar 2008-08-27 05:55:19 -04:00
hamachi.c
hp100.c
hp100.h
hp-plus.c net 8390p: fix interface usage 2008-07-22 17:50:44 -04:00
hp.c net 8390p: fix interface usage 2008-07-22 17:50:44 -04:00
hplance.c
hplance.h
hydra.c
ibmlana.c
ibmlana.h
ibmveth.c ibmveth: fix bad UDP checksums 2008-08-27 05:36:57 -04:00
ibmveth.h ibmveth: enable driver for CMO 2008-07-25 15:44:44 +10:00
ifb.c netdev: Fix lockdep warnings in multiqueue configurations. 2008-07-31 16:58:50 -07:00
ioc3-eth.c
ipg.c
ipg.h [netdrvr] remove unnecessary #include 2008-08-14 04:26:38 -04:00
isa-skeleton.c
iseries_veth.c dma-mapping: add the device argument to dma_mapping_error() 2008-07-26 12:00:03 -07:00
jazzsonic.c
Kconfig Blackfin EMAC Driver: the BF526 also supports the MAC, 2008-08-27 05:14:14 -04:00
korina.c
lance.c
lasi_82596.c
lib8390.c
lib82596.c
LICENSE.SRC
lne390.c
loopback.c loopback: Drop obsolete ip_summed setting 2008-08-15 19:52:01 -07:00
lp486e.c [netdrvr] Drivers should not set IFF_* flag themselves 2008-08-07 02:23:19 -04:00
mac89x0.c
mac8390.c
macb.c [ARM] Move include/asm-arm/arch-* to arch/arm/*/include/mach 2008-08-07 09:55:48 +01:00
macb.h
mace.c
mace.h
macmace.c
macsonic.c
macvlan.c netdev: Handle ->addr_list_lock just like ->_xmit_lock for lockdep. 2008-07-22 14:16:42 -07:00
Makefile atl1e: Atheros L1E Gigabit Ethernet driver 2008-07-22 19:31:04 -04:00
meth.c METH: fix MAC address setup 2008-08-07 02:11:19 -04:00
meth.h
mii.c
mipsnet.c
mv643xx_eth.c mv643xx_eth: bump version to 1.3 2008-08-24 07:36:39 +02:00
mvme147.c
myri_code.h
myri_sbus.c
myri_sbus.h
natsemi.c
ne2.c net 8390p: fix interface usage 2008-07-22 17:50:44 -04:00
ne2k-pci.c
ne3210.c
ne-h8300.c
ne.c [netdrvr] ne: Use CONFIG_MACH_TX49XX 2008-08-14 04:44:11 -04:00
netconsole.c Remove newline from the description of module parameters 2008-08-01 12:46:41 -07:00
netx-eth.c [ARM] Move include/asm-arm/arch-* to arch/arm/*/include/mach 2008-08-07 09:55:48 +01:00
ni52.c [netdrvr] Drivers should not set IFF_* flag themselves 2008-08-07 02:23:19 -04:00
ni52.h
ni65.c
ni65.h
ni5010.c [netdrvr] Drivers should not set IFF_* flag themselves 2008-08-07 02:23:19 -04:00
ni5010.h
niu.c niu: panic on reset 2008-09-12 16:04:26 -07:00
niu.h
ns83820.c
pasemi_mac_ethtool.c
pasemi_mac.c dma-mapping: add the device argument to dma_mapping_error() 2008-07-26 12:00:03 -07:00
pasemi_mac.h
pci-skeleton.c
pcnet32.c
plip.c
ppp_async.c tty: Ldisc revamp 2008-07-20 17:12:34 -07:00
ppp_deflate.c
ppp_generic.c [PATCH] f_count may wrap around 2008-07-26 20:53:40 -04:00
ppp_mppe.c [netdrvr] remove unnecessary #include 2008-08-14 04:26:38 -04:00
ppp_mppe.h
ppp_synctty.c tty: Ldisc revamp 2008-07-20 17:12:34 -07:00
pppoe.c
pppol2tp.c [netdrvr] remove unnecessary #include 2008-08-14 04:26:38 -04:00
pppox.c
ps3_gelic_net.c
ps3_gelic_net.h
ps3_gelic_wireless.c PS3: gelic: use unsigned long for irqflags 2008-07-29 16:55:08 -04:00
ps3_gelic_wireless.h
qla3xxx.c qla3xxx: driver version change. 2008-08-07 02:11:15 -04:00
qla3xxx.h qla3xxx: cleanup: Remove some unused structure definitions and structure elements. 2008-08-07 02:11:14 -04:00
r6040.c [netdrvr] remove unnecessary #include 2008-08-14 04:26:38 -04:00
r8169.c r8169: balance pci_map / pci_unmap pair 2008-08-27 05:16:24 -04:00
rionet.c
rrunner.c
rrunner.h
s2io-regs.h
s2io.c S2io: fix statistics flush after a MTU change 2008-07-29 18:24:30 -04:00
s2io.h S2io: Enable msi-x link interrupts. 2008-07-11 01:11:40 -04:00
sb1000.c
sb1250-mac.c
sc92031.c
seeq8005.c
seeq8005.h
sgiseeq.c
sgiseeq.h
sh_eth.c [netdrvr] remove unnecessary #include 2008-08-14 04:26:38 -04:00
sh_eth.h [netdrvr] sh_eth: Add SH7619 support 2008-08-07 02:20:57 -04:00
sis190.c
sis900.c
sis900.h
skge.c
skge.h
sky2.c sky2: Fix suspend/hibernation/shutdown regression with WOL enabled (rev. 2) 2008-08-14 04:27:44 -04:00
sky2.h sky2: fix PM related regressions 2008-08-07 01:55:50 -04:00
slhc.c
slip.c tty: Ldisc revamp 2008-07-20 17:12:34 -07:00
slip.h
smc91x.c [netdrvr] smc91x: fix resource removal (null ptr deref) 2008-08-27 05:54:30 -04:00
smc91x.h [ARM] Move include/asm-arm/arch-* to arch/arm/*/include/mach 2008-08-07 09:55:48 +01:00
smc911x.c
smc911x.h [ARM] Move include/asm-arm/arch-* to arch/arm/*/include/mach 2008-08-07 09:55:48 +01:00
smc9194.c
smc9194.h
smc-mca.c
smc-ultra32.c
smc-ultra.c
sni_82596.c
sonic.c
sonic.h
Space.c
spider_net_ethtool.c
spider_net.c dma-mapping: add the device argument to dma_mapping_error() 2008-07-26 12:00:03 -07:00
spider_net.h
starfire_firmware.h
starfire_firmware.pl
starfire.c
stnic.c net: stnic: Fix up fallout from SH header migration. 2008-08-02 04:39:33 +09:00
sun3_82586.c [netdrvr] Drivers should not set IFF_* flag themselves 2008-08-07 02:23:19 -04:00
sun3_82586.h
sun3lance.c
sunbmac.c
sunbmac.h
sundance.c
sungem_phy.c
sungem_phy.h
sungem.c
sungem.h
sunhme.c sunhme: Remove stop/wake TX queue calls in set-multicast-list handler. 2008-07-21 08:34:49 -07:00
sunhme.h
sunlance.c
sunqe.c
sunqe.h
sunvnet.c
sunvnet.h
tc35815.c dma-mapping: add the device argument to dma_mapping_error() 2008-07-26 12:00:03 -07:00
tehuti_fw.h
tehuti.c
tehuti.h [netdrvr] remove unnecessary #include 2008-08-14 04:26:38 -04:00
tg3.c tg3: Update version to 3.94 2008-08-15 14:11:19 -07:00
tg3.h tg3: Fix firmware event timeouts 2008-08-15 14:10:04 -07:00
tlan.c tlan: Fix two regressions introduced by 64bit conversion. 2008-08-14 04:28:12 -04:00
tlan.h
tsi108_eth.c
tsi108_eth.h
tun.c tun: fallback if skb_alloc() fails on big packets 2008-08-15 19:52:31 -07:00
typhoon-firmware.h
typhoon.c [netdrvr] remove unnecessary #include 2008-08-14 04:26:38 -04:00
typhoon.h
ucc_geth_ethtool.c
ucc_geth_mii.c
ucc_geth_mii.h
ucc_geth.c ucc_geth: do not touch net queue in adjust_link phylib callback 2008-07-21 08:30:36 -07:00
ucc_geth.h
veth.c
via-rhine.c via-rhine: delete non NAPI code from the driver. 2008-07-11 01:11:43 -04:00
via-velocity.c via-velocity: velocity_init_{rd/tx}_ring use kcalloc(..., GFP_KERNEL). 2008-07-31 23:08:06 +02:00
via-velocity.h via-velocity: separated struct allow wholesale copy during MTU changes. 2008-07-31 23:08:04 +02:00
virtio_net.c virtio: Recycle unused recv buffer pages for large skbs in net driver 2008-07-25 12:06:02 +10:00
wd.c [netdrvr] fix build issue: undefined reference to `NS8390p_init' 2008-08-27 05:17:46 -04:00
xen-netfront.c xen-netfront: use netif_start_queue() on xennet_open() 2008-08-07 02:11:17 -04:00
yellowfin.c
znet.c
zorro8390.c