Re: 2.6.27.2: NETDEV WATCHDOG: eth0 (r8169): transmit timed out
From: Joao Luis Meloni Assirati
Date: Tue Oct 21 2008 - 08:41:21 EST
Hi François,
I tried to apply your patches (against 2.6.27.2) but they failed. I am sending
attached the rejects.
My previous report was a bit inaccurate. The network card failure are not
constant, but random (something like 20% of the boots). Therefore It may be
the case that this network card does not an updated driver because of this
and because I disabled CONFIG_IRQBALANCE and the problem seems to be fixed
now. (Does CONFIG_IRQBALANCE make sense with hyperthreading instead of a real
smp?) I will continue to test and report if something happens. If I can help
you with further testing, please contact me.
Best regards,
João Luis.
On Monday 20 October 2008 18:13:06 Francois Romieu wrote:
> Joao Luis Meloni Assirati <assirati@xxxxxxxxxxxxxxxx> :
> [...]
>
> > I am having some kernel messages in my Acer Aspire One under Linux
> > 2.6.27.2, followed by network-manager crashes. Below are the messages and
> > my kernel config.
> >
> > Please, CC me as I am not subscribed to the list.
>
> I am not completely sure but it could be that your laptop includes
> a kind of 8102 ethernet chipset which needs a post 2.6.27 kernel.
>
> Can you try current 2.6.27 git kernel + the patches at:
>
> http://userweb.kernel.org/~romieu/r8169/2.6.27-git8/20081020
>
> A dmesg of the patched kernel will be welcome.
*************** static void rtl_init_mac_address(struct rtl8169_private *tp,
*** 1943,1951 ****
void __iomem *ioaddr)
{
struct pci_dev *pdev = tp->pci_dev;
- u8 cfg1;
int vpd_cap;
u8 mac[8];
cfg1 = RTL_R8(Config1);
if (!(cfg1 & VPD)) {
--- 1947,1956 ----
void __iomem *ioaddr)
{
struct pci_dev *pdev = tp->pci_dev;
int vpd_cap;
+ __le32 sig;
u8 mac[8];
+ u8 cfg1;
cfg1 = RTL_R8(Config1);
if (!(cfg1 & VPD)) {
*************** static void rtl_init_mac_address(struct rtl8169_private *tp,
*** 1960,1966 ****
if (!vpd_cap)
return;
- /* MAC address is stored in EEPROM at offset 0x0e
* Realtek says: "The VPD address does not have to be a DWORD-aligned
* address as defined in the PCI 2.2 Specifications, but the VPD data
* is always consecutive 4-byte data starting from the VPD address
--- 1965,1980 ----
if (!vpd_cap)
return;
+ if (rtl_eeprom_read(pdev, vpd_cap, RTL_EEPROM_SIG_ADDR, &sig) < 0)
+ return;
+
+ if ((sig & RTL_EEPROM_SIG_MASK) != RTL_EEPROM_SIG) {
+ dev_info(&pdev->dev, "Missing EEPROM signature: %08x\n", sig);
+ return;
+ }
+
+ /*
+ * MAC address is stored in EEPROM at offset 0x0e
* Realtek says: "The VPD address does not have to be a DWORD-aligned
* address as defined in the PCI 2.2 Specifications, but the VPD data
* is always consecutive 4-byte data starting from the VPD address
*************** static void rtl_init_mac_address(struct rtl8169_private *tp,
*** 1982,1989 ****
print_mac(buf, mac));
}
- /* Write MAC address */
- rtl_rar_set(tp, mac);
}
static int __devinit
--- 1996,2003 ----
print_mac(buf, mac));
}
+ if (is_valid_ether_addr(mac))
+ rtl_rar_set(tp, mac);
}
static int __devinit