summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichael Chan <mchan@broadcom.com>2007-05-07 19:04:28 -0700
committerChris Wright <chrisw@sous-sol.org>2007-05-23 14:32:45 -0700
commit2a0167b2dbede7f06c970f36a7717da45f38181c (patch)
tree07580320bbc81c8becb028dcfcbf2c94f6f92211
parent2503fa413e630097ec362ddaa57602a7e243f89f (diff)
[PATCH] 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> Signed-off-by: Chris Wright <chrisw@sous-sol.org>
-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 d6d57a17f3fd..81443ae6ea15 100644
--- a/drivers/net/bnx2.c
+++ b/drivers/net/bnx2.c
@@ -5564,6 +5564,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);
@@ -5577,6 +5580,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);