mirror of https://gitee.com/openkylin/linux.git
[PATCH] orinoco: orinoco_send_wevents() could return without unlocking.
Signed-off-by: Pavel Roskin <proski@gnu.org> orinoco_send_wevents() could return without unlocking. Failure to read BSSID from the hardware would cause orinoco_send_wevents() to return with lock held. Found by sparse. Signed-off-by: Jeff Garzik <jgarzik@pobox.com>
This commit is contained in:
parent
f3cb4cc120
commit
8aeabc3750
|
@ -1112,12 +1112,14 @@ static void orinoco_send_wevents(struct net_device *dev)
|
||||||
err = hermes_read_ltv(hw, IRQ_BAP, HERMES_RID_CURRENTBSSID,
|
err = hermes_read_ltv(hw, IRQ_BAP, HERMES_RID_CURRENTBSSID,
|
||||||
ETH_ALEN, NULL, wrqu.ap_addr.sa_data);
|
ETH_ALEN, NULL, wrqu.ap_addr.sa_data);
|
||||||
if (err != 0)
|
if (err != 0)
|
||||||
return;
|
goto out;
|
||||||
|
|
||||||
wrqu.ap_addr.sa_family = ARPHRD_ETHER;
|
wrqu.ap_addr.sa_family = ARPHRD_ETHER;
|
||||||
|
|
||||||
/* Send event to user space */
|
/* Send event to user space */
|
||||||
wireless_send_event(dev, SIOCGIWAP, &wrqu, NULL);
|
wireless_send_event(dev, SIOCGIWAP, &wrqu, NULL);
|
||||||
|
|
||||||
|
out:
|
||||||
orinoco_unlock(priv, &flags);
|
orinoco_unlock(priv, &flags);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue