From: Grischa Jacobs I had the same messages about unknown PHY transceivers and very poor transfer rates. I figured that all but one of the transceivers had the status bit MII_STAT_FAULT set. Selecting that one solved my problems. I posted this and the patch already a while ago but didn't get any response. It would be nice if a few people could check whether this fixes/breaks it for them. I just checked it with 2.6.6-rc3 and the problem is still there and gets solved by the attached patch. --- 25-akpm/drivers/net/sis900.c | 5 +++++ 1 files changed, 5 insertions(+) diff -puN drivers/net/sis900.c~sis900-xcvr-fix drivers/net/sis900.c --- 25/drivers/net/sis900.c~sis900-xcvr-fix Wed May 19 14:51:16 2004 +++ 25-akpm/drivers/net/sis900.c Wed May 19 14:51:16 2004 @@ -18,6 +18,7 @@ preliminary Rev. 1.0 Jan. 18, 1998 http://www.sis.com.tw/support/databook.htm + Jan. 7 2004 Grischa Jacobs - Skip mii's with MII_STAT_FAULT set Rev 1.08.07 Nov. 2 2003 Daniele Venzano add suspend/resume support Rev 1.08.06 Sep. 24 2002 Mufasa Yang bug fix for Tx timeout & add SiS963 support Rev 1.08.05 Jun. 6 2002 Mufasa Yang bug fix for read_eeprom & Tx descriptor over-boundary @@ -546,6 +547,10 @@ static int __init sis900_mii_probe (stru /* the mii is not accessible, try next one */ continue; + if (mii_status & MII_STAT_FAULT) + /* ignore mii with the fault bit set */ + continue; + if ((mii_phy = kmalloc(sizeof(struct mii_phy), GFP_KERNEL)) == NULL) { printk(KERN_INFO "Cannot allocate mem for struct mii_phy\n"); mii_phy = sis_priv->first_mii; _