summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMichael Chan <mchan@broadcom.com>2007-05-03 13:18:03 -0700
committerDavid S. Miller <davem@davemloft.net>2007-05-03 13:18:03 -0700
commitdad3e452dacd3c6c637e2f7c6469556cc8ffcd94 (patch)
treee4f15a518dceae672d4730518f92153dbcd66ffe
parent427c2196b92697a4a8ee87959ebc16bfac024f6b (diff)
downloadlinux-dad3e452dacd3c6c637e2f7c6469556cc8ffcd94.tar.gz
linux-dad3e452dacd3c6c637e2f7c6469556cc8ffcd94.tar.bz2
linux-dad3e452dacd3c6c637e2f7c6469556cc8ffcd94.zip
[BNX2]: Block MII access when ifdown.
The device may be in D3hot state and should not allow MII register access. Signed-off-by: Michael Chan <mchan@broadcom.com> Signed-off-by: David S. Miller <davem@davemloft.net>
-rw-r--r--drivers/net/bnx2.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/drivers/net/bnx2.c b/drivers/net/bnx2.c
index f98a2205a090..9f0a06722e23 100644
--- a/drivers/net/bnx2.c
+++ b/drivers/net/bnx2.c
@@ -5562,6 +5562,9 @@ bnx2_ioctl(struct net_device *dev, struct ifreq *ifr, int cmd)
case SIOCGMIIREG: {
u32 mii_regval;
+ if (!netif_running(dev))
+ return -EAGAIN;
+
spin_lock_bh(&bp->phy_lock);
err = bnx2_read_phy(bp, data->reg_num & 0x1f, &mii_regval);
spin_unlock_bh(&bp->phy_lock);
@@ -5575,6 +5578,9 @@ bnx2_ioctl(struct net_device *dev, struct ifreq *ifr, int cmd)
if (!capable(CAP_NET_ADMIN))
return -EPERM;
+ if (!netif_running(dev))
+ return -EAGAIN;
+
spin_lock_bh(&bp->phy_lock);
err = bnx2_write_phy(bp, data->reg_num & 0x1f, data->val_in);
spin_unlock_bh(&bp->phy_lock);