@@ -1497,8 +1497,8 @@ static void ieee80211_assign_perm_addr(struct ieee80211_local *local,
bool used = false;
list_for_each_entry(sdata, &local->interfaces, list) {
- if (memcmp(local->hw.wiphy->addresses[i].addr,
- sdata->vif.addr, ETH_ALEN) == 0) {
+ if (ether_addr_equal_unaligned(sdata->vif.addr,
+ local->hw.wiphy->addresses[i].addr)) {
used = true;
break;
}
@@ -1558,8 +1558,8 @@ static void ieee80211_assign_perm_addr(struct ieee80211_local *local,
val += inc;
list_for_each_entry(sdata, &local->interfaces, list) {
- if (memcmp(tmp_addr, sdata->vif.addr,
- ETH_ALEN) == 0) {
+ if (ether_addr_equal_unaligned(tmp_addr,
+ sdata->vif.addr)) {
used = true;
break;
}
Joe Perches add ether_addr_equal_unaligned to test if possibly unaligned to u16 Ethernet addresses are equal. If CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS is set, this uses the slightly faster generic routine ether_addr_equal, otherwise this uses memcmp. Signed-off-by: Ding Tianhong <dingtianhong@huawei.com> --- net/mac80211/iface.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-)