From: Francois Romieu Date: Wed, 30 Nov 2005 21:32:13 +0000 (+0100) Subject: b44: early return in dev->do_ioctl when the device is not up X-Git-Tag: v2.6.15-rc5~20^2~13^2~1 X-Git-Url: https://err.no/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=3410572d519b6c68505f746f25033de97809eaa1;p=linux-2.6 b44: early return in dev->do_ioctl when the device is not up The device has not gone through a whole reset/init sequence until the device is up. Accessing the mii interface before this point is not safe. Signed-off-by: Francois Romieu --- diff --git a/drivers/net/b44.c b/drivers/net/b44.c index c8d9b4d667..e0ec777d96 100644 --- a/drivers/net/b44.c +++ b/drivers/net/b44.c @@ -1838,12 +1838,15 @@ static int b44_ioctl(struct net_device *dev, struct ifreq *ifr, int cmd) { struct mii_ioctl_data *data = if_mii(ifr); struct b44 *bp = netdev_priv(dev); - int err; + int err = -EINVAL; + + if (!netif_running(dev)) + goto out; spin_lock_irq(&bp->lock); err = generic_mii_ioctl(&bp->mii_if, data, cmd, NULL); spin_unlock_irq(&bp->lock); - +out: return err; }