mac80211: tweak mac address allocation
authornbd <nbd@3c298f89-4303-0410-b956-a3cf2f4a3e73>
Sat, 13 Jul 2013 11:39:48 +0000 (11:39 +0000)
committernbd <nbd@3c298f89-4303-0410-b956-a3cf2f4a3e73>
Sat, 13 Jul 2013 11:39:48 +0000 (11:39 +0000)
Apparently there are some broken devices out there that have the local
bit already set in the factory MAC address. Move the | 0x2 over to the
other side of the xor operation to fix this without affecting devices
with proper addresses.

Signed-off-by: Felix Fietkau <nbd@openwrt.org>
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@37269 3c298f89-4303-0410-b956-a3cf2f4a3e73

package/kernel/mac80211/files/lib/wifi/mac80211.sh

index a052a1c..20f6bfa 100644 (file)
@@ -284,7 +284,7 @@ mac80211_generate_mac() {
        [ "$((0x$mask1))" -gt 0 ] && {
                b1="0x$1"
                [ "$id" -gt 0 ] && \
-                       b1=$((($b1 | 0x2) ^ (($id - 1) << 2)))
+                       b1=$(($b1 ^ ((($id - 1) << 2) | 0x2)))
                printf "%02x:%s:%s:%s:%s:%s" $b1 $2 $3 $4 $5 $6
                return
        }