| From stable-bounces@linux.kernel.org Mon May 7 18:19:40 2007 |
| From: "Michael Chan" <mchan@broadcom.com> |
| To: stable@kernel.org |
| Date: Mon, 07 May 2007 19:04:28 -0700 |
| Message-ID: <1178589868.10892.14.camel@dell> |
| Subject: 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> |
| --- |
| |
| --- |
| drivers/net/bnx2.c | 6 ++++++ |
| 1 file changed, 6 insertions(+) |
| |
| --- linux-2.6.21.1.orig/drivers/net/bnx2.c |
| +++ linux-2.6.21.1/drivers/net/bnx2.c |
| @@ -5564,6 +5564,9 @@ bnx2_ioctl(struct net_device *dev, struc |
| 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, struc |
| 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); |