From 0391cf9d19956bee76bf71d21e899ff29aa36630 Mon Sep 17 00:00:00 2001 From: Michael Buesch Date: Tue, 25 Mar 2008 18:04:46 +0100 Subject: [PATCH] --- yaml --- r: 87832 b: refs/heads/master c: 5ea79631c0c47d28831a0635e8af9da539d449cd h: refs/heads/master v: v3 --- [refs] | 2 +- trunk/drivers/net/b44.c | 5 +++++ 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/[refs] b/[refs] index 8bb40f5c41e5..1d75889c92f8 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 6ef2977d414cc196baba0fb53509c5f8cd9154b4 +refs/heads/master: 5ea79631c0c47d28831a0635e8af9da539d449cd diff --git a/trunk/drivers/net/b44.c b/trunk/drivers/net/b44.c index ea2a2b548e3c..25f1337cd02c 100644 --- a/trunk/drivers/net/b44.c +++ b/trunk/drivers/net/b44.c @@ -2082,6 +2082,11 @@ static int __devinit b44_get_invariants(struct b44 *bp) addr = sdev->bus->sprom.et0mac; bp->phy_addr = sdev->bus->sprom.et0phyaddr; } + /* Some ROMs have buggy PHY addresses with the high + * bits set (sign extension?). Truncate them to a + * valid PHY address. */ + bp->phy_addr &= 0x1F; + memcpy(bp->dev->dev_addr, addr, 6); if (!is_valid_ether_addr(&bp->dev->dev_addr[0])){