Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 3587
b: refs/heads/master
c: 97876fc
h: refs/heads/master
i:
  3585: eb1ddcf
  3583: 4d0a067
v: v3
  • Loading branch information
Malli Chilakala authored and Jeff Garzik committed Jun 27, 2005
1 parent 600e886 commit 6393c2a
Show file tree
Hide file tree
Showing 2 changed files with 27 additions and 11 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: 0685c31b58a69e41393e974f6e6b8e0a4eadcf0b
refs/heads/master: 97876fc66fc2405f1a2ec09eb6a0206e5168d2d9
36 changes: 26 additions & 10 deletions trunk/drivers/net/e1000/e1000_main.c
Original file line number Diff line number Diff line change
Expand Up @@ -3376,6 +3376,7 @@ e1000_mii_ioctl(struct net_device *netdev, struct ifreq *ifr, int cmd)
int retval;
uint16_t mii_reg;
uint16_t spddplx;
unsigned long flags;

if(adapter->hw.media_type != e1000_media_type_copper)
return -EOPNOTSUPP;
Expand All @@ -3385,22 +3386,29 @@ e1000_mii_ioctl(struct net_device *netdev, struct ifreq *ifr, int cmd)
data->phy_id = adapter->hw.phy_addr;
break;
case SIOCGMIIREG:
if (!capable(CAP_NET_ADMIN))
if(!capable(CAP_NET_ADMIN))
return -EPERM;
if (e1000_read_phy_reg(&adapter->hw, data->reg_num & 0x1F,
&data->val_out))
spin_lock_irqsave(&adapter->stats_lock, flags);
if(e1000_read_phy_reg(&adapter->hw, data->reg_num & 0x1F,
&data->val_out)) {
spin_unlock_irqrestore(&adapter->stats_lock, flags);
return -EIO;
}
spin_unlock_irqrestore(&adapter->stats_lock, flags);
break;
case SIOCSMIIREG:
if (!capable(CAP_NET_ADMIN))
if(!capable(CAP_NET_ADMIN))
return -EPERM;
if (data->reg_num & ~(0x1F))
if(data->reg_num & ~(0x1F))
return -EFAULT;
mii_reg = data->val_in;
if (e1000_write_phy_reg(&adapter->hw, data->reg_num,
mii_reg))
spin_lock_irqsave(&adapter->stats_lock, flags);
if(e1000_write_phy_reg(&adapter->hw, data->reg_num,
mii_reg)) {
spin_unlock_irqrestore(&adapter->stats_lock, flags);
return -EIO;
if (adapter->hw.phy_type == e1000_phy_m88) {
}
if(adapter->hw.phy_type == e1000_phy_m88) {
switch (data->reg_num) {
case PHY_CTRL:
if(mii_reg & MII_CR_POWER_DOWN)
Expand All @@ -3420,8 +3428,12 @@ e1000_mii_ioctl(struct net_device *netdev, struct ifreq *ifr, int cmd)
HALF_DUPLEX;
retval = e1000_set_spd_dplx(adapter,
spddplx);
if(retval)
if(retval) {
spin_unlock_irqrestore(
&adapter->stats_lock,
flags);
return retval;
}
}
if(netif_running(adapter->netdev)) {
e1000_down(adapter);
Expand All @@ -3431,8 +3443,11 @@ e1000_mii_ioctl(struct net_device *netdev, struct ifreq *ifr, int cmd)
break;
case M88E1000_PHY_SPEC_CTRL:
case M88E1000_EXT_PHY_SPEC_CTRL:
if (e1000_phy_reset(&adapter->hw))
if(e1000_phy_reset(&adapter->hw)) {
spin_unlock_irqrestore(
&adapter->stats_lock, flags);
return -EIO;
}
break;
}
} else {
Expand All @@ -3448,6 +3463,7 @@ e1000_mii_ioctl(struct net_device *netdev, struct ifreq *ifr, int cmd)
break;
}
}
spin_unlock_irqrestore(&adapter->stats_lock, flags);
break;
default:
return -EOPNOTSUPP;
Expand Down

0 comments on commit 6393c2a

Please sign in to comment.