31 lines
911 B
Diff
31 lines
911 B
Diff
---
|
|
drivers/net/ethernet/sis/sis190.c | 10 +++++++---
|
|
1 file changed, 7 insertions(+), 3 deletions(-)
|
|
|
|
--- linux/drivers/net/ethernet/sis/sis190.c.net-sis190-fix-list-usage.orig
|
|
+++ linux/drivers/net/ethernet/sis/sis190.c
|
|
@@ -1252,6 +1252,7 @@ static u16 sis190_default_phy(struct net
|
|
struct sis190_private *tp = netdev_priv(dev);
|
|
struct mii_if_info *mii_if = &tp->mii_if;
|
|
void __iomem *ioaddr = tp->mmio_addr;
|
|
+ struct list_head *l;
|
|
u16 status;
|
|
|
|
phy_home = phy_default = phy_lan = NULL;
|
|
@@ -1280,9 +1281,12 @@ static u16 sis190_default_phy(struct net
|
|
phy_default = phy_home;
|
|
else if (phy_lan)
|
|
phy_default = phy_lan;
|
|
- else
|
|
- phy_default = list_first_entry(&tp->first_phy,
|
|
- struct sis190_phy, list);
|
|
+ else {
|
|
+ l = &tp->first_phy;
|
|
+ l = l->next;
|
|
+ phy_default = list_first_entry(l, struct sis190_phy, list);
|
|
+
|
|
+ }
|
|
}
|
|
|
|
if (mii_if->phy_id != phy_default->phy_id) {
|