svn commit: r295607 - head/sys/dev/usb/wlan
Adrian Chadd
adrian.chadd at gmail.com
Sun Feb 14 15:23:41 UTC 2016
uhm, why'd you not just file a separate pr for this?
8 keys limits how many stations it can support in hostap mode :( I'd
rather the bitmap management code gets fixed.
-a
On 13 February 2016 at 23:16, Hans Petter Selasky <hselasky at freebsd.org> wrote:
> Author: hselasky
> Date: Sun Feb 14 07:16:36 2016
> New Revision: 295607
> URL: https://svnweb.freebsd.org/changeset/base/295607
>
> Log:
> Reduce the number of supported WLAN keys in the rum driver, else we
> risk bit shifting overflows. Found by D5245 / PVS.
>
> MFC after: 1 week
>
> Modified:
> head/sys/dev/usb/wlan/if_rum.c
> head/sys/dev/usb/wlan/if_rumreg.h
>
> Modified: head/sys/dev/usb/wlan/if_rum.c
> ==============================================================================
> --- head/sys/dev/usb/wlan/if_rum.c Sun Feb 14 02:28:59 2016 (r295606)
> +++ head/sys/dev/usb/wlan/if_rum.c Sun Feb 14 07:16:36 2016 (r295607)
> @@ -2732,7 +2732,7 @@ rum_pair_key_del_cb(struct rum_softc *sc
> DPRINTF("%s: removing key %d\n", __func__, k->wk_keyix);
> rum_clrbits(sc, (k->wk_keyix < 32) ? RT2573_SEC_CSR2 : RT2573_SEC_CSR3,
> 1 << (k->wk_keyix % 32));
> - sc->keys_bmap &= ~(1 << k->wk_keyix);
> + sc->keys_bmap &= ~(1ULL << k->wk_keyix);
> if (--sc->vap_key_count[rvp_id] == 0)
> rum_clrbits(sc, RT2573_SEC_CSR4, 1 << rvp_id);
> }
> @@ -2749,8 +2749,8 @@ rum_key_alloc(struct ieee80211vap *vap,
> if (!(k->wk_flags & IEEE80211_KEY_SWCRYPT)) {
> RUM_LOCK(sc);
> for (i = 0; i < RT2573_ADDR_MAX; i++) {
> - if ((sc->keys_bmap & (1 << i)) == 0) {
> - sc->keys_bmap |= 1 << i;
> + if ((sc->keys_bmap & (1ULL << i)) == 0) {
> + sc->keys_bmap |= (1ULL << i);
> *keyix = i;
> break;
> }
>
> Modified: head/sys/dev/usb/wlan/if_rumreg.h
> ==============================================================================
> --- head/sys/dev/usb/wlan/if_rumreg.h Sun Feb 14 02:28:59 2016 (r295606)
> +++ head/sys/dev/usb/wlan/if_rumreg.h Sun Feb 14 07:16:36 2016 (r295607)
> @@ -47,7 +47,7 @@
> * H/w encryption/decryption support
> */
> #define KEY_SIZE (IEEE80211_KEYBUF_SIZE + IEEE80211_MICBUF_SIZE)
> -#define RT2573_ADDR_MAX 64
> +#define RT2573_ADDR_MAX (32 / RT2573_SKEY_MAX)
> #define RT2573_SKEY_MAX 4
>
> #define RT2573_SKEY(vap, kidx) (0x1000 + ((vap) * RT2573_SKEY_MAX + \
>
More information about the svn-src-all
mailing list