Messages in this thread Patch in this message | | | Date | Sun, 25 Apr 2004 01:48:48 -0500 | From | "J. Ryan Earl" <> | Subject | Re: [PATCH 2.6] net/sk98lin: correct buggy VPD in ASUS MB |
| |
Jeff Lightfoot wrote:
The following patch to net/sk98lin/skvpd.c was put together by Marc Bouget, mbouget at club-internet.fr. He currently doesn't have time to interface with linux-kernel so I offered to work that front.
This patch works around a corrupt EEPROM (VPD?) in the ASUS K8V Deluxe SE motherboard ethernet chipset and allows the network driver to work correctly. We have written to ASUS and the sk98lin maintainers but have not heard anything back.
Does this have a chance to be included in mainline or is there a preferable way to fix these kind of issues?
-- Jeff Lightfoot
------------------------------------------------------------------------
Just to confirm, I experienced this error. Kernel log as follows:
sk98lin: Network Device Driver v6.22 (C)Copyright 1999-2004 Marvell(R). eth0: PrefPort:A RlmtMode:Check Link State eth0: -- ERROR -- Class: internal Software error Nr: 0x19e Msg: Vpd: Cannot read VPD keys eth0: -- ERROR -- Class: internal Software error Nr: 0x19e Msg: Vpd: Cannot read VPD keys eth0: -- ERROR -- Class: internal Software error Nr: 0x19e Msg: Vpd: Cannot read VPD keys eth0: network connection up using port A speed: 100 autonegotiation: yes duplex mode: full flowctrl: symmetric irq moderation: disabled scatter-gather: enabled
And latter in the log I have: try[18484]: segfault at 0000003000000008 rip 0000002a95e9dcae rsp 0000007fbfffe230 error 4 try[24948]: segfault at 0000003000000008 rip 0000002a96033cae rsp 0000007fbfffe250 error 4
>--- drivers/net/sk98lin/skvpd.c.orig 2004-04-05 17:32:59.000000000 -0700 >+++ drivers/net/sk98lin/skvpd.c 2004-04-05 17:33:26.000000000 -0700 >@@ -468,6 +468,16 @@ > > pAC->vpd.vpd_size = vpd_size; > >+ /* Asus K8V Se Deluxe bugfix. Correct VPD content */ >+ /* MBo April 2004 */ >+ if( ((unsigned char)pAC->vpd.vpd_buf[0x3f] == 0x38) && >+ ((unsigned char)pAC->vpd.vpd_buf[0x40] == 0x3c) && >+ ((unsigned char)pAC->vpd.vpd_buf[0x41] == 0x45) ) { >+ printk("sk98lin : humm... Asus mainboard with buggy VPD ? correcting data.\n"); >+ (unsigned char)pAC->vpd.vpd_buf[0x40] = 0x38; >+ } >+ >+ > /* find the end tag of the RO area */ > if (!(r = vpd_find_para(pAC, VPD_RV, &rp))) { > SK_DBG_MSG(pAC, SK_DBGMOD_VPD, SK_DBGCAT_ERR | SK_DBGCAT_FATAL, > > With the patch:
sk98lin: Network Device Driver v6.23 (C)Copyright 1999-2004 Marvell(R). sk98lin : humm... Asus mainboard with buggy VPD ? correcting data. eth0: Yukon Gigabit Ethernet 10/100/1000Base-T Adapter PrefPort:A RlmtMode:Check Link State eth0: network connection up using port A speed: 100 autonegotiation: yes duplex mode: full flowctrl: symmetric irq moderation: disabled scatter-gather: enabled I'm also able poll more information back from the driver with the patch applied. Like ifconfig will return number of packets, etc.
-ryan - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |