Message ID | 1305280792-9475-18-git-send-email-arend@broadcom.com (mailing list archive) |
---|---|
State | Not Applicable, archived |
Headers | show |
On Fri, May 13, 2011 at 2:59 AM, Arend van Spriel <arend@broadcom.com> wrote: > From: Sukesh Srikakula <sukeshs@broadcom.com> > > Last 16 bytes of the key sent by cfg80211 needs to be swapped before > installing it to FW for TKIP encryption. This is not done for group > key in current code, which is corrected with this fix. > > Cc: devel@linuxdriverproject.org > Cc: linux-wireless@vger.kernel.org > Cc: Grant Grundler <grundler@chromium.org> Thanks Arend+Sukesh for posting this! :) Tested-by: Grant Grundler <grundler@chromium.org> Please add the same line for Aaron Plattner <aplattner@nvidia.com> http://gerrit.chromium.org/gerrit/502 cheers, grant > Reviewed-by: Franky (Zhenhui) Lin <frankyl@broadcom.com> > Reviewed-by: Brett Rudley <brudley@broadcom.com> > Signed-off-by: Arend van Spriel <arend@broadcom.com> > --- > drivers/staging/brcm80211/brcmfmac/wl_cfg80211.c | 4 ++++ > 1 files changed, 4 insertions(+), 0 deletions(-) > > diff --git a/drivers/staging/brcm80211/brcmfmac/wl_cfg80211.c b/drivers/staging/brcm80211/brcmfmac/wl_cfg80211.c > index b44daf9..c60fc7c 100644 > --- a/drivers/staging/brcm80211/brcmfmac/wl_cfg80211.c > +++ b/drivers/staging/brcm80211/brcmfmac/wl_cfg80211.c > @@ -1616,6 +1616,7 @@ wl_cfg80211_add_key(struct wiphy *wiphy, struct net_device *dev, > s32 val; > s32 wsec; > s32 err = 0; > + u8 keybuf[8]; > > WL_DBG("key index (%d)\n", key_idx); > CHECK_SYS_UP(); > @@ -1644,6 +1645,9 @@ wl_cfg80211_add_key(struct wiphy *wiphy, struct net_device *dev, > WL_DBG("WLAN_CIPHER_SUITE_WEP104\n"); > break; > case WLAN_CIPHER_SUITE_TKIP: > + memcpy(keybuf, &key.data[24], sizeof(keybuf)); > + memcpy(&key.data[24], &key.data[16], sizeof(keybuf)); > + memcpy(&key.data[16], keybuf, sizeof(keybuf)); > key.algo = CRYPTO_ALGO_TKIP; > WL_DBG("WLAN_CIPHER_SUITE_TKIP\n"); > break; > -- > 1.7.4.1 > > > -- To unsubscribe from this list: send the line "unsubscribe linux-wireless" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
diff --git a/drivers/staging/brcm80211/brcmfmac/wl_cfg80211.c b/drivers/staging/brcm80211/brcmfmac/wl_cfg80211.c index b44daf9..c60fc7c 100644 --- a/drivers/staging/brcm80211/brcmfmac/wl_cfg80211.c +++ b/drivers/staging/brcm80211/brcmfmac/wl_cfg80211.c @@ -1616,6 +1616,7 @@ wl_cfg80211_add_key(struct wiphy *wiphy, struct net_device *dev, s32 val; s32 wsec; s32 err = 0; + u8 keybuf[8]; WL_DBG("key index (%d)\n", key_idx); CHECK_SYS_UP(); @@ -1644,6 +1645,9 @@ wl_cfg80211_add_key(struct wiphy *wiphy, struct net_device *dev, WL_DBG("WLAN_CIPHER_SUITE_WEP104\n"); break; case WLAN_CIPHER_SUITE_TKIP: + memcpy(keybuf, &key.data[24], sizeof(keybuf)); + memcpy(&key.data[24], &key.data[16], sizeof(keybuf)); + memcpy(&key.data[16], keybuf, sizeof(keybuf)); key.algo = CRYPTO_ALGO_TKIP; WL_DBG("WLAN_CIPHER_SUITE_TKIP\n"); break;