From: Felix Fietkau Date: Wed, 15 Jan 2020 12:54:28 +0000 (+0100) Subject: mac80211: fix MAC address allocations if the local bit is set on the base addr X-Git-Url: https://git.librecmc.org/?a=commitdiff_plain;h=866790fd827cb0187353cdf484eb46a9b38fb6ba;p=oweals%2Fopenwrt.git mac80211: fix MAC address allocations if the local bit is set on the base addr If it's set, don't subtract 1 from the interface index encoded into the first byte of the address Signed-off-by: Felix Fietkau --- diff --git a/package/kernel/mac80211/files/lib/netifd/wireless/mac80211.sh b/package/kernel/mac80211/files/lib/netifd/wireless/mac80211.sh index b0fc5fb37b..7ac0ce8aac 100644 --- a/package/kernel/mac80211/files/lib/netifd/wireless/mac80211.sh +++ b/package/kernel/mac80211/files/lib/netifd/wireless/mac80211.sh @@ -393,7 +393,7 @@ mac80211_generate_mac() { [ "$((0x$mask1))" -gt 0 ] && { b1="0x$1" [ "$id" -gt 0 ] && \ - b1=$(($b1 ^ ((($id - 1) << 2) | 0x2))) + b1=$(($b1 ^ ((($id - !($b1 & 2)) << 2) | 0x2))) printf "%02x:%s:%s:%s:%s:%s" $b1 $2 $3 $4 $5 $6 return }