drivers/net: use is_zero_ether_addr() instead of memcmp()
authorWei Yongjun <yongjun_wei@trendmicro.com.cn>
Thu, 23 Aug 2012 07:16:44 +0000 (15:16 +0800)
committerJohn W. Linville <linville@tuxdriver.com>
Fri, 7 Sep 2012 19:03:38 +0000 (15:03 -0400)
Using is_zero_ether_addr() instead of directly use
memcmp() to determine if the ethernet address is all
zeros.

spatch with a semantic match is used to found this problem.
(http://coccinelle.lip6.fr/)

Signed-off-by: Wei Yongjun <yongjun_wei@trendmicro.com.cn>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
drivers/net/wireless/hostap/hostap_info.c
drivers/net/wireless/hostap/hostap_main.c

index 47932b28aac101217ee56d1db2dc736e7d8d1d5b..970a48baaf804a38ff1883702bbd9460d7d5b8c8 100644 (file)
@@ -4,6 +4,7 @@
 #include <linux/sched.h>
 #include <linux/slab.h>
 #include <linux/export.h>
+#include <linux/etherdevice.h>
 #include "hostap_wlan.h"
 #include "hostap.h"
 #include "hostap_ap.h"
@@ -463,8 +464,7 @@ static void handle_info_queue_scanresults(local_info_t *local)
                prism2_host_roaming(local);
 
        if (local->host_roaming == 2 && local->iw_mode == IW_MODE_INFRA &&
-           memcmp(local->preferred_ap, "\x00\x00\x00\x00\x00\x00",
-                  ETH_ALEN) != 0) {
+           !is_zero_ether_addr(local->preferred_ap)) {
                /*
                 * Firmware seems to be getting into odd state in host_roaming
                 * mode 2 when hostscan is used without join command, so try
index 627bc12074c729a37426199e52cb119dce01fdda..15f0fad39add227550e3d0a49fedd24737da6aba 100644 (file)
@@ -1084,7 +1084,7 @@ int prism2_sta_deauth(local_info_t *local, u16 reason)
        __le16 val = cpu_to_le16(reason);
 
        if (local->iw_mode != IW_MODE_INFRA ||
-           memcmp(local->bssid, "\x00\x00\x00\x00\x00\x00", ETH_ALEN) == 0 ||
+           is_zero_ether_addr(local->bssid) ||
            memcmp(local->bssid, "\x44\x44\x44\x44\x44\x44", ETH_ALEN) == 0)
                return 0;