From b11ecb42c0c6cd37748377a4699d811cd4615459 Mon Sep 17 00:00:00 2001 From: Dmitry Shmidt Date: Sun, 16 Oct 2011 17:05:54 -0700 Subject: [PATCH] net: wireless: bcmdhd: Send cfg80211_disconnected() if fails to get rssi Signed-off-by: Dmitry Shmidt --- drivers/net/wireless/bcmdhd/wl_cfg80211.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/drivers/net/wireless/bcmdhd/wl_cfg80211.c b/drivers/net/wireless/bcmdhd/wl_cfg80211.c index a7b88f8e4af2..00cbfafb200c 100644 --- a/drivers/net/wireless/bcmdhd/wl_cfg80211.c +++ b/drivers/net/wireless/bcmdhd/wl_cfg80211.c @@ -2866,7 +2866,8 @@ wl_cfg80211_get_station(struct wiphy *wiphy, struct net_device *dev, if (memcmp(mac, curmacp, ETHER_ADDR_LEN)) { WL_ERR(("Wrong Mac address: "MACSTR" != "MACSTR"\n", MAC2STR(mac), MAC2STR(curmacp))); - return -ENOENT; + err = -ENOENT; + goto get_station_err; } /* Report the current tx rate */ err = wldev_ioctl(dev, WLC_GET_RATE, &rate, sizeof(rate), false); @@ -2886,13 +2887,16 @@ wl_cfg80211_get_station(struct wiphy *wiphy, struct net_device *dev, sizeof(scb_val_t), false); if (err) { WL_ERR(("Could not get rssi (%d)\n", err)); - return err; + goto get_station_err; } rssi = dtoh32(scb_val.val); sinfo->filled |= STATION_INFO_SIGNAL; sinfo->signal = rssi; WL_DBG(("RSSI %d dBm\n", rssi)); } +get_station_err: + if (err) + cfg80211_disconnected(dev, 0, NULL, 0, GFP_KERNEL); } return err; -- 2.11.0