diff options
Diffstat (limited to 'drivers/net/wireless/brcm80211/brcmfmac/wl_cfg80211.c')
-rw-r--r-- | drivers/net/wireless/brcm80211/brcmfmac/wl_cfg80211.c | 15 |
1 files changed, 6 insertions, 9 deletions
diff --git a/drivers/net/wireless/brcm80211/brcmfmac/wl_cfg80211.c b/drivers/net/wireless/brcm80211/brcmfmac/wl_cfg80211.c index 228fcaebefb..4fbf5b32f67 100644 --- a/drivers/net/wireless/brcm80211/brcmfmac/wl_cfg80211.c +++ b/drivers/net/wireless/brcm80211/brcmfmac/wl_cfg80211.c | |||
@@ -1822,6 +1822,12 @@ brcmf_cfg80211_del_key(struct wiphy *wiphy, struct net_device *ndev, | |||
1822 | if (!check_vif_up(ifp->vif)) | 1822 | if (!check_vif_up(ifp->vif)) |
1823 | return -EIO; | 1823 | return -EIO; |
1824 | 1824 | ||
1825 | if (key_idx >= DOT11_MAX_DEFAULT_KEYS) { | ||
1826 | /* we ignore this key index in this case */ | ||
1827 | WL_ERR("invalid key index (%d)\n", key_idx); | ||
1828 | return -EINVAL; | ||
1829 | } | ||
1830 | |||
1825 | memset(&key, 0, sizeof(key)); | 1831 | memset(&key, 0, sizeof(key)); |
1826 | 1832 | ||
1827 | key.index = (u32) key_idx; | 1833 | key.index = (u32) key_idx; |
@@ -1832,15 +1838,6 @@ brcmf_cfg80211_del_key(struct wiphy *wiphy, struct net_device *ndev, | |||
1832 | 1838 | ||
1833 | /* Set the new key/index */ | 1839 | /* Set the new key/index */ |
1834 | err = send_key_to_dongle(ndev, &key); | 1840 | err = send_key_to_dongle(ndev, &key); |
1835 | if (err) { | ||
1836 | if (err == -EINVAL) { | ||
1837 | if (key.index >= DOT11_MAX_DEFAULT_KEYS) | ||
1838 | /* we ignore this key index in this case */ | ||
1839 | WL_ERR("invalid key index (%d)\n", key_idx); | ||
1840 | } | ||
1841 | /* Ignore this error, may happen during DISASSOC */ | ||
1842 | err = -EAGAIN; | ||
1843 | } | ||
1844 | 1841 | ||
1845 | WL_TRACE("Exit\n"); | 1842 | WL_TRACE("Exit\n"); |
1846 | return err; | 1843 | return err; |