diff options
Diffstat (limited to 'drivers/net/wimax/i2400m/netdev.c')
-rw-r--r-- | drivers/net/wimax/i2400m/netdev.c | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/drivers/net/wimax/i2400m/netdev.c b/drivers/net/wimax/i2400m/netdev.c index 0e8f6a046b9b..fefd794087ad 100644 --- a/drivers/net/wimax/i2400m/netdev.c +++ b/drivers/net/wimax/i2400m/netdev.c | |||
@@ -102,11 +102,13 @@ int i2400m_open(struct net_device *net_dev) | |||
102 | struct device *dev = i2400m_dev(i2400m); | 102 | struct device *dev = i2400m_dev(i2400m); |
103 | 103 | ||
104 | d_fnstart(3, dev, "(net_dev %p [i2400m %p])\n", net_dev, i2400m); | 104 | d_fnstart(3, dev, "(net_dev %p [i2400m %p])\n", net_dev, i2400m); |
105 | if (i2400m->ready == 0) { | 105 | /* Make sure we wait until init is complete... */ |
106 | dev_err(dev, "Device is still initializing\n"); | 106 | mutex_lock(&i2400m->init_mutex); |
107 | result = -EBUSY; | 107 | if (i2400m->updown) |
108 | } else | ||
109 | result = 0; | 108 | result = 0; |
109 | else | ||
110 | result = -EBUSY; | ||
111 | mutex_unlock(&i2400m->init_mutex); | ||
110 | d_fnend(3, dev, "(net_dev %p [i2400m %p]) = %d\n", | 112 | d_fnend(3, dev, "(net_dev %p [i2400m %p]) = %d\n", |
111 | net_dev, i2400m, result); | 113 | net_dev, i2400m, result); |
112 | return result; | 114 | return result; |