Browse Source

[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>
Pavel Roskin 20 years ago
parent
commit
8aeabc3750
1 changed files with 3 additions and 1 deletions
  1. 3 1
      drivers/net/wireless/orinoco.c

+ 3 - 1
drivers/net/wireless/orinoco.c

@@ -1112,12 +1112,14 @@ static void orinoco_send_wevents(struct net_device *dev)
 	err = hermes_read_ltv(hw, IRQ_BAP, HERMES_RID_CURRENTBSSID,
 			      ETH_ALEN, NULL, wrqu.ap_addr.sa_data);
 	if (err != 0)
-		return;
+		goto out;
 
 	wrqu.ap_addr.sa_family = ARPHRD_ETHER;
 
 	/* Send event to user space */
 	wireless_send_event(dev, SIOCGIWAP, &wrqu, NULL);
+
+ out:
 	orinoco_unlock(priv, &flags);
 }