From: Jason Wang Date: Fri, 30 Dec 2011 23:44:33 +0000 (+0000) Subject: 8139cp/8139too: do not read into reserved registers X-Git-Tag: v2.6.39-400.9.0~423^2~19^2~11^2~27 X-Git-Url: https://www.infradead.org/git/?a=commitdiff_plain;h=2a42d58f2d7cfe2a0c2920806dabbadde9d440e7;p=users%2Fjedix%2Flinux-maple.git 8139cp/8139too: do not read into reserved registers delay_eeprom() use long read for Cfg9346 register(offset 0x50) which may read into the area of reserved register(offset 0x53). Use byte read instead. (cherry picked from commit 7d03f5a48e4d90854275b06433626243b3b3db17) Signed-off-by: Jason Wang Signed-off-by: David S. Miller Signed-off-by: Joe Jin --- diff --git a/drivers/net/8139cp.c b/drivers/net/8139cp.c index 285ab93405e3..f28f25681cef 100644 --- a/drivers/net/8139cp.c +++ b/drivers/net/8139cp.c @@ -1612,7 +1612,7 @@ static int cp_set_mac_address(struct net_device *dev, void *p) No extra delay is needed with 33Mhz PCI, but 66Mhz may change this. */ -#define eeprom_delay() readl(ee_addr) +#define eeprom_delay() readb(ee_addr) /* The EEPROM commands include the alway-set leading bit. */ #define EE_EXTEND_CMD (4) diff --git a/drivers/net/8139too.c b/drivers/net/8139too.c index 9e52d2e855a0..33b577a577c0 100644 --- a/drivers/net/8139too.c +++ b/drivers/net/8139too.c @@ -1121,7 +1121,7 @@ static void __devexit rtl8139_remove_one (struct pci_dev *pdev) No extra delay is needed with 33Mhz PCI, but 66Mhz may change this. */ -#define eeprom_delay() (void)RTL_R32(Cfg9346) +#define eeprom_delay() (void)RTL_R8(Cfg9346) /* The EEPROM commands include the alway-set leading bit. */ #define EE_WRITE_CMD (5)