kernel-ark/drivers/net
Ivan Vecera 6709fe9a27 r8169: read MAC address from EEPROM on init (2nd attempt)
This is 2nd attempt to implement the initialization/reading of MAC address
from EEPROM. The first used PCI's VPD and there were some problems, some
devices are not able to read EEPROM content by VPD. The 2nd one uses direct
access to EEPROM through bit-banging interface and my testing results seem
to be much better.

I tested 5 systems each with different Realtek NICs and I didn't find any
problem. AFAIK Francois's NICs also works fine.

Original description:
This fixes the problem when MAC address is set by ifconfig or by
ip link commands and this address is stored in the device after
reboot. The power-off is needed to get right MAC address.
This is problem when Xen daemon is running because it renames the device
name from ethX to pethX and sets its MAC address to FE:FF:FF:FF:FF:FF.
After reboot the device is still using FE:FF:FF:FF:FF:FF.

Signed-off-by: Ivan Vecera <ivecera@redhat.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
2009-03-01 20:34:48 -08:00
..
appletalk appletalk: convert ipddp to net_device_ops 2009-01-07 17:22:19 -08:00
arcnet drivers/net/arcnet: fix sparse warnings: make symbols static 2008-12-25 23:57:21 -08:00
arm [ARM] etherh: continue fixing build failure 2009-01-28 10:19:52 +00:00
atl1c atl1c: Atheros L1C Gigabit Ethernet driver 2009-02-18 17:24:15 -08:00
atl1e net: Fix warning fallout from recent NAPI interface changes. 2008-12-26 15:10:00 -08:00
atlx drivers/net/atlx: fix sparse warnings: make symbols static 2008-12-25 23:58:35 -08:00
bonding bonding: use net_device_ops 2009-01-06 10:41:56 -08:00
can vcan: whitespace fixes 2008-12-17 15:37:55 -08:00
chelsio net: Fix warning fallout from recent NAPI interface changes. 2008-12-26 15:10:00 -08:00
cris
cxgb3 cxgb3: Add support for PCI ID 0x35. 2009-02-18 17:47:57 -08:00
e1000 e1000: Fix PCI enable to honor the need_ioport flag 2009-02-03 15:18:01 -08:00
e1000e e1000e: workaround hw errata 2009-01-26 12:16:26 -08:00
ehea powerpc: Cleanup from l64 to ll64 change: drivers/net 2009-01-13 14:48:00 +11:00
enic netdev: add missing set_mac_address hook 2009-01-11 00:06:36 -08:00
fs_enet powerpc/fs_enet: Add missing irq free in error path. 2009-01-14 20:43:43 -08:00
hamradio drivers/net/hamradio/6pack.c: move a dereference below a NULL test 2009-01-11 00:06:34 -08:00
ibm_newemac net: variables reach -1, but 0 tested 2009-02-02 21:39:02 -08:00
igb igb: fix link reporting when using sgmii 2009-01-31 00:53:18 -08:00
irda IRDA: cnt is off by 1 2009-02-12 16:42:31 -08:00
ixgb net: Fix warning fallout from recent NAPI interface changes. 2008-12-26 15:10:00 -08:00
ixgbe ixgbe: Fix usage of netif_*_all_queues() with netif_carrier_{off|on}() 2009-01-19 16:55:03 -08:00
ixp2000 net: Remove unused netdev arg from some NAPI interfaces. 2008-12-22 20:43:12 -08:00
mlx4 mlx4_core: Fix min() warning 2009-01-15 20:43:56 -08:00
myri10ge myri10ge: don't forget pci_disable_device() 2009-01-20 14:41:18 -08:00
netxen netxen: handle pci bar 0 mapping failure 2009-02-24 03:44:23 -08:00
pcmcia pcnet_cs: Fix misuse of the equality operator. 2009-02-03 15:14:05 -08:00
phy mdio-gpio: Add mdc pin direction initialization 2009-02-10 17:11:10 -08:00
qlge qlge: bugfix: Add missing rx buf clean index on early exit. 2009-02-12 16:38:34 -08:00
sfc sfc: Replace stats_enabled flag with a disable count 2009-01-30 14:06:33 -08:00
skfp drivers/net/skfp: if !capable(CAP_NET_ADMIN): inverted logic 2009-01-29 17:32:20 -08:00
tokenring trivial: fix then -> than typos in comments and documentation 2009-01-06 11:28:06 +01:00
tulip de2104x: force correct order when writing to rx ring 2009-02-08 17:50:34 -08:00
usb asix: new device ids 2009-02-24 23:52:24 -08:00
wan WAN: Fix NAPI interface in IXP4xx HSS driver. 2009-01-12 21:18:32 -08:00
wimax wimax/i2400m: driver loads firmware v1.4 instead of v1.3 2009-02-20 00:35:04 -08:00
wireless Merge branch 'master' of /home/davem/src/GIT/linux-2.6/ 2009-02-28 15:36:58 -08:00
3c59x.c 3c59x: Use device_set_wakeup_enable 2009-01-11 00:06:32 -08:00
3c501.c
3c501.h netdevice: Kill netdev->priv 2008-12-08 01:14:16 -08:00
3c503.c netdev: add missing set_mac_address hook 2009-01-11 00:06:36 -08:00
3c503.h
3c505.c 3c505: do not set pcb->data.raw beyond its size 2009-02-12 16:52:31 -08:00
3c505.h
3c507.c netdev: remove pathetic compile-command lines 2008-12-03 22:19:52 -08:00
3c509.c 3c509: Fix resume from hibernation for PnP mode. 2009-02-06 22:04:08 -08:00
3c515.c netdev: remove pathetic compile-command lines 2008-12-03 22:19:52 -08:00
3c523.c drivers/net: fix sparse warnings: make symbols static 2008-12-25 23:56:45 -08:00
3c523.h
3c527.c
3c527.h
7990.c
7990.h
8139cp.c netdev: add missing set_mac_address hook 2009-01-11 00:06:36 -08:00
8139too.c netdev: add missing set_mac_address hook 2009-01-11 00:06:36 -08:00
8390.c netdev: add missing set_mac_address hook 2009-01-11 00:06:36 -08:00
8390.h 8390: add common net_device ops 2008-11-25 18:12:49 -08:00
8390p.c netdev: add missing set_mac_address hook 2009-01-11 00:06:36 -08:00
82596.c netdev: remove pathetic compile-command lines 2008-12-03 22:19:52 -08:00
a2065.c
a2065.h
ac3200.c
acenic.c netdev: missing validate_address hooks 2009-01-11 00:06:42 -08:00
acenic.h firmware: convert acenic driver to request_firmware() 2009-01-04 16:10:02 -08:00
amd8111e.c amd8111e: convert to net_device_ops 2009-01-07 18:09:58 -08:00
amd8111e.h
apne.c apne: convert to net_device_ops 2008-11-25 18:25:32 -08:00
ariadne.c
ariadne.h
at1700.c netdev: remove pathetic compile-command lines 2008-12-03 22:19:52 -08:00
atarilance.c
atp.c atp: convert to net_device_ops 2009-01-07 18:10:24 -08:00
atp.h
au1000_eth.c drivers/net/au1000_eth.c: Remove redundant test 2008-12-25 18:02:49 -08:00
au1000_eth.h
ax88796.c ax88796: start_xmit fix using net_device_ops 2009-01-14 21:05:55 -08:00
b44.c b44: Disable device on shutdown 2009-02-26 22:35:02 -08:00
b44.h b44: GFP_DMA skb should not escape from driver 2009-01-15 15:29:35 -08:00
bfin_mac.c
bfin_mac.h
bmac.c
bmac.h
bnx2_fw2.h bnx2: Update 5709 firmware. 2009-02-12 16:53:48 -08:00
bnx2_fw.h bnx2: Update 5706/5708 firmware. 2009-02-12 16:53:22 -08:00
bnx2.c bnx2: Update version to 1.9.2 and copyright. 2009-02-12 16:54:48 -08:00
bnx2.h bnx2: Update version to 1.9.2 and copyright. 2009-02-12 16:54:48 -08:00
bnx2x_fw_defs.h
bnx2x_hsi.h
bnx2x_init_values.h
bnx2x_init.h
bnx2x_link.c bnx2x: Version update 2009-01-19 16:20:15 -08:00
bnx2x_link.h bnx2x: Fix namespace collision with FLOW_CTRL_{TX,RX} 2008-12-16 23:54:24 -08:00
bnx2x_main.c bnx2x: tx_has_work should not wait for FW 2009-01-26 12:36:42 -08:00
bnx2x_reg.h bnx2x: Version update 2009-01-19 16:20:15 -08:00
bnx2x.h bnx2x: Version update 2009-01-19 16:20:15 -08:00
bsd_comp.c
cassini.c cassini/sungem: limit reaches -1, but 0 tested 2009-02-02 23:19:50 -08:00
cassini.h
cpmac.c net: Remove unused netdev arg from some NAPI interfaces. 2008-12-22 20:43:12 -08:00
cs89x0.c Merge branch 'devel' of master.kernel.org:/home/rmk/linux-2.6-arm 2008-12-30 17:36:49 -08:00
cs89x0.h
de600.c de600: update to net_device_ops 2009-01-07 17:34:36 -08:00
de600.h
de620.c de600: update to net_device_ops 2009-01-07 17:34:36 -08:00
de620.h
declance.c
defxx.c netdev: remove pathetic compile-command lines 2008-12-03 22:19:52 -08:00
defxx.h
depca.c depca: fix warning in drivers/net/depca.c 2008-11-25 17:00:39 -08:00
depca.h
dl2k.c dl2k: convert to net_device_ops 2008-11-21 17:31:51 -08:00
dl2k.h
dm9000.c
dm9000.h
dummy.c dummy: convert to net_device_ops 2008-11-20 20:28:00 -08:00
e100.c firmware: convert e100 driver to request_firmware() 2009-01-07 12:59:17 -08:00
e2100.c netdev: add missing set_mac_address hook 2009-01-11 00:06:36 -08:00
eepro.c drivers/net: fix sparse warnings: make symbols static 2008-12-25 23:56:45 -08:00
eexpress.c netdevice: Kill netdev->priv 2008-12-08 01:14:16 -08:00
eexpress.h EtherExpress16: fix printing timed out status 2008-12-29 18:42:33 -08:00
enc28j60_hw.h
enc28j60.c enc28j60: update to net_device_ops 2009-01-07 17:30:09 -08:00
epic100.c epic100: update to net_device_ops 2009-01-07 17:27:39 -08:00
eql.c eql: convert to net_device_ops 2008-11-21 17:37:54 -08:00
es3210.c es3210: convert to net_device_ops 2008-11-25 18:23:59 -08:00
eth16i.c netdev: remove pathetic compile-command lines 2008-12-03 22:19:52 -08:00
ewrk3.c netdev: remove pathetic compile-command lines 2008-12-03 22:19:52 -08:00
ewrk3.h
fealnx.c fealnx: update to net_device_ops 2009-01-07 17:57:47 -08:00
fec_mpc52xx_phy.c powerpc/mpc5200: Remove obsolete code from mpc5200 MDIO driver 2008-12-21 02:54:30 -07:00
fec_mpc52xx.c
fec_mpc52xx.h
fec.c m68knommu: correct the mii calculations for 532x ColdFire FEC 2009-01-27 16:42:03 +10:00
fec.h
forcedeth.c net: forcedeth: Fix wake-on-lan regression 2009-02-16 00:13:20 -08:00
gianfar_ethtool.c gianfar: Add Scatter Gather support 2008-12-17 16:51:04 -08:00
gianfar_mii.c gianfar: Fix Wake-on-LAN support 2009-01-29 17:31:13 -08:00
gianfar_mii.h gianfar: Convert gianfar to an of_platform_driver 2008-12-16 15:29:15 -08:00
gianfar_sysfs.c
gianfar.c gianfar: Do right check on num_txbdfree 2009-02-27 03:18:48 -08:00
gianfar.h gianfar: Fix BD_LENGTH_MASK definition 2009-02-04 16:37:40 -08:00
hamachi.c netdev: add missing set_mac_address hook 2009-01-11 00:06:36 -08:00
hp100.c hp100: update to net_device_ops 2009-01-07 18:13:49 -08:00
hp100.h
hp-plus.c net: fix hp-plus build error 2009-02-26 21:02:19 -08:00
hp.c hp: convert to net_device_ops 2008-11-25 18:24:57 -08:00
hplance.c
hplance.h
hydra.c netdev: add missing set_mac_address hook 2009-01-11 00:06:36 -08:00
ibmlana.c
ibmlana.h
ibmveth.c powerpc: Cleanup from l64 to ll64 change: drivers/net 2009-01-13 14:48:00 +11:00
ibmveth.h ibmveth: use consistent types 2009-01-06 10:47:44 -08:00
ifb.c netdev: add more functions to netdevice ops 2008-11-20 20:14:53 -08:00
ioc3-eth.c
ipg.c ipg: update to net_device_ops 2009-01-07 17:26:14 -08:00
ipg.h
isa-skeleton.c netdev: remove pathetic compile-command lines 2008-12-03 22:19:52 -08:00
iseries_veth.c powerpc: Cleanup from l64 to ll64 change: drivers/net 2009-01-13 14:48:00 +11:00
jazzsonic.c
jme.c net: Remove unused netdev arg from some NAPI interfaces. 2008-12-22 20:43:12 -08:00
jme.h Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6 2008-12-23 17:56:23 -08:00
Kconfig atl1c: Atheros L1C Gigabit Ethernet driver 2009-02-18 17:24:15 -08:00
korina.c korina: drop leftover assignment 2009-01-19 16:23:01 -08:00
lance.c netdevice: Kill netdev->priv 2008-12-08 01:14:16 -08:00
lasi_82596.c
lib8390.c 8390/8390p: Fix compat netdev ops handling. 2008-12-15 15:14:59 -08:00
lib82596.c
LICENSE.SRC
lne390.c lne390: convert to net_device_ops 2008-11-25 18:24:38 -08:00
loopback.c netdev: add more functions to netdevice ops 2008-11-20 20:14:53 -08:00
lp486e.c
mac89x0.c netdev: remove pathetic compile-command lines 2008-12-03 22:19:52 -08:00
mac8390.c netdev: add missing set_mac_address hook 2009-01-11 00:06:36 -08:00
macb.c macb: avoid lockup when TGO during underrun 2009-01-19 16:20:16 -08:00
macb.h
mace.c
mace.h
macmace.c
macsonic.c
macvlan.c Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6 2008-12-02 19:50:27 -08:00
Makefile atl1c: Atheros L1C Gigabit Ethernet driver 2009-02-18 17:24:15 -08:00
meth.c
meth.h
mii.c
mipsnet.c
mv643xx_eth.c net/mv643xx: don't disable the mib timer too early and lock properly 2009-02-18 17:37:09 -08:00
mvme147.c
myri_code.h
myri_sbus.c netdevice: Kill netdev->priv 2008-12-08 01:14:16 -08:00
myri_sbus.h
natsemi.c natsemi: update to net_device_ops 2009-01-07 17:57:19 -08:00
ne2.c ne2: silence static never defined warnings 2008-11-28 15:55:00 -08:00
ne2k-pci.c netdev: add missing set_mac_address hook 2009-01-11 00:06:36 -08:00
ne3210.c ne3210: convert to net_device_ops 2008-11-25 18:23:35 -08:00
ne-h8300.c netdev: add missing set_mac_address hook 2009-01-11 00:06:36 -08:00
ne.c drivers/net: fix sparse warning: use ANSI-style function declaration 2008-12-25 23:52:57 -08:00
netconsole.c
netx-eth.c Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6 2008-12-05 22:54:40 -08:00
ni52.c netdev: remove pathetic compile-command lines 2008-12-03 22:19:52 -08:00
ni52.h
ni65.c netdev: remove pathetic compile-command lines 2008-12-03 22:19:52 -08:00
ni65.h
ni5010.c netdev: remove pathetic compile-command lines 2008-12-03 22:19:52 -08:00
ni5010.h
niu.c drivers/net: fix sparse warning: returning void-valued expression 2008-12-25 23:56:04 -08:00
niu.h niu: use net_device_stats nowadays available in net_device 2008-11-28 15:52:00 -08:00
ns83820.c netdev: add missing set_mac_address hook 2009-01-11 00:06:36 -08:00
pasemi_mac_ethtool.c
pasemi_mac.c powerpc: Change u64/s64 to a long long integer type 2009-01-13 14:47:59 +11:00
pasemi_mac.h
pci-skeleton.c netdevice: Kill netdev->priv 2008-12-08 01:14:16 -08:00
pcnet32.c pcnet32: round off carrier watch timer 2009-01-08 11:17:13 -08:00
plip.c plip: update to net_device_ops 2009-01-07 17:26:48 -08:00
ppp_async.c drivers/net: Remove redundant test 2008-12-25 18:03:28 -08:00
ppp_deflate.c
ppp_generic.c net: ppp_generic - fix regressions caused by IDR conversion 2009-01-12 22:11:56 -08:00
ppp_mppe.c
ppp_mppe.h
ppp_synctty.c drivers/net: Remove redundant test 2008-12-25 18:03:28 -08:00
pppoe.c
pppol2tp.c l2tp: fix UDP checksum support 2008-12-16 01:23:49 -08:00
pppox.c
ps3_gelic_net.c
ps3_gelic_net.h
ps3_gelic_wireless.c powerpc/ps3: Printing fixups for l64 to ll64 convserion drivers/net 2009-02-02 17:08:24 +11:00
ps3_gelic_wireless.h
qla3xxx.c net: Fix warning fallout from recent NAPI interface changes. 2008-12-26 15:10:00 -08:00
qla3xxx.h
r6040.c r6040: Remove unused variable pdev from drivers/net/r6040.c 2009-01-26 21:54:21 -08:00
r8169.c r8169: read MAC address from EEPROM on init (2nd attempt) 2009-03-01 20:34:48 -08:00
rionet.c
rrunner.c netdev: remove pathetic compile-command lines 2008-12-03 22:19:52 -08:00
rrunner.h
s2io-regs.h
s2io.c net: Fix warning fallout from recent NAPI interface changes. 2008-12-26 15:10:00 -08:00
s2io.h
sb1000.c sb1000: update to net_device_ops 2009-01-07 17:56:54 -08:00
sb1250-mac.c net: Remove unused netdev arg from some NAPI interfaces. 2008-12-22 20:43:12 -08:00
sc92031.c netdev: add missing set_mac_address hook 2009-01-11 00:06:36 -08:00
seeq8005.c netdev: remove pathetic compile-command lines 2008-12-03 22:19:52 -08:00
seeq8005.h
sgiseeq.c
sgiseeq.h
sh_eth.c Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6 2008-11-20 16:44:00 -08:00
sh_eth.h
sis190.c sis190: update to net_device_ops 2009-01-07 17:35:41 -08:00
sis900.c sis900: generate fake MAC address if the hardware doesn't have one 2009-01-14 20:46:24 -08:00
sis900.h
skge.c net: Remove unused netdev arg from some NAPI interfaces. 2008-12-22 20:43:12 -08:00
skge.h
sky2.c sky2: fix hard hang with netconsoling and iface going up 2009-01-30 14:06:26 -08:00
sky2.h
slhc.c
slip.c slip: convert to net_device_ops 2009-01-07 18:09:36 -08:00
slip.h trivial: fix then -> than typos in comments and documentation 2009-01-06 11:28:06 +01:00
smc91x.c smc91x: remove isa stuff from smc91x driver 2008-12-03 22:23:18 -08:00
smc91x.h Merge branch 'devel' of master.kernel.org:/home/rmk/linux-2.6-arm 2008-12-30 17:36:49 -08:00
smc911x.c net: variables reach -1, but 0 tested 2009-02-02 21:39:02 -08:00
smc911x.h [ARM] pxa: explicit #include <mach/dma.h> in various drivers 2008-12-02 14:42:26 +08:00
smc9194.c drivers/net: fix sparse warnings: make symbols static 2008-12-25 23:56:45 -08:00
smc9194.h
smc-mca.c netdev: add missing set_mac_address hook 2009-01-11 00:06:36 -08:00
smc-ultra32.c
smc-ultra.c netdev: add missing set_mac_address hook 2009-01-11 00:06:36 -08:00
smsc911x.c SMSC: timeout reaches -1 2009-02-20 00:52:19 -08:00
smsc911x.h net: Move flow control definitions to mii.h 2008-12-16 02:00:00 -08:00
smsc9420.c smsc9420: handle magic field of ethtool_eeprom 2009-02-20 00:38:51 -08:00
smsc9420.h smsc9420: handle magic field of ethtool_eeprom 2009-02-20 00:38:51 -08:00
sni_82596.c
sonic.c
sonic.h
Space.c
spider_net_ethtool.c
spider_net.c net: Fix unused variable warnings in pasemi_mac.c and spider_net.c 2008-12-28 20:15:38 -08:00
spider_net.h
starfire.c starfire: update to net_device_ops 2009-01-07 17:58:17 -08:00
stnic.c stnic: convert to net_device_ops 2008-11-25 18:25:49 -08:00
sun3_82586.c netdevice: Kill netdev->priv 2008-12-08 01:14:16 -08:00
sun3_82586.h
sun3lance.c sun3: print when lance_open() fails 2009-02-12 16:40:20 -08:00
sunbmac.c netdevice: Kill netdev->priv 2008-12-08 01:14:16 -08:00
sunbmac.h
sundance.c sundance: missing parentheses? 2009-02-20 00:35:45 -08: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 sungem: another error printed one too early 2009-02-20 01:03:15 -08:00
sungem.h
sunhme.c sunhme: Fix Quattro HME irq registration on proble failures 2009-02-10 17:29:42 -08:00
sunhme.h
sunlance.c sunlance: Beyond ARRAY_SIZE of ib->btx_ring 2009-02-21 23:46:36 -08:00
sunqe.c net: variables reach -1, but 0 tested 2009-02-02 21:39:02 -08:00
sunqe.h
sunvnet.c sparc64: Fix unsigned long long warnings in drivers. 2009-01-06 13:20:38 -08:00
sunvnet.h
tc35815.c net: Remove unused netdev arg from some NAPI interfaces. 2008-12-22 20:43:12 -08:00
tehuti_fw.h
tehuti.c trivial: fix then -> than typos in comments and documentation 2009-01-06 11:28:06 +01:00
tehuti.h
tg3.c TG3: &&/|| confusion 2009-02-18 17:42:42 -08:00
tg3.h tg3: Fix firmware loading 2009-01-19 16:57:45 -08:00
tlan.c tlan: update to net_device_ops 2009-01-07 17:27:15 -08:00
tlan.h
tsi108_eth.c net: variables reach -1, but 0 tested 2009-02-02 21:39:02 -08:00
tsi108_eth.h
tun.c tun: Fix unicast filter overflow 2009-02-08 17:49:17 -08:00
typhoon-firmware.h
typhoon.c typhoon: update to net_device_ops 2009-01-07 17:29:46 -08:00
typhoon.h
ucc_geth_ethtool.c
ucc_geth_mii.c ucc_geth: Change uec phy id to the same format as gianfar's 2009-01-29 17:28:04 -08:00
ucc_geth_mii.h ucc_geth: Change uec phy id to the same format as gianfar's 2009-01-29 17:28:04 -08:00
ucc_geth.c ucc_geth: Change uec phy id to the same format as gianfar's 2009-01-29 17:28:04 -08:00
ucc_geth.h ucc_geth: Change uec phy id to the same format as gianfar's 2009-01-29 17:28:04 -08:00
veth.c veth : add the set_mac_address capability 2009-02-22 00:04:45 -08:00
via-rhine.c netdev: add missing set_mac_address hook 2009-01-11 00:06:36 -08:00
via-velocity.c via-velocity: fix hot spin 2009-01-20 14:44:01 -08:00
via-velocity.h
virtio_net.c virtio_net: use correct accessors for scatterlists 2009-01-26 21:00:33 -08:00
wd.c netdev: add missing set_mac_address hook 2009-01-11 00:06:36 -08:00
xen-netfront.c xen-netfront: convert to net_device_ops 2009-01-06 10:44:55 -08:00
xtsonic.c
yellowfin.c netdev: add missing set_mac_address hook 2009-01-11 00:06:36 -08:00
znet.c
zorro8390.c netdev: add missing set_mac_address hook 2009-01-11 00:06:36 -08:00