#include "eap_packet.h"
 #include "michael_mic.h"
 
+#include <linux/etherdevice.h>
 #include <linux/if_ether.h>
 #include <linux/if_arp.h>
 
        wrqu.data.flags = 0;
        wrqu.ap_addr.sa_family = ARPHRD_ETHER;
        if ((priv->connect_status & CONNECT_STATUS_MASK) == CONNECT_STATUS) {
-               memset(wrqu.ap_addr.sa_data, '\0', ETH_ALEN);
+               eth_zero_addr(wrqu.ap_addr.sa_data);
                DPRINTK(3, "IWEVENT: disconnect\n");
                wireless_send_event(priv->net_dev, SIOCGIWAP, &wrqu, NULL);
        }
        wrqu0.ap_addr.sa_family = ARPHRD_ETHER;
        if ((priv->connect_status & CONNECT_STATUS_MASK) == DISCONNECT_STATUS &&
            (old_status & CONNECT_STATUS_MASK) == CONNECT_STATUS) {
-               memset(wrqu0.ap_addr.sa_data, '\0', ETH_ALEN);
+               eth_zero_addr(wrqu0.ap_addr.sa_data);
                DPRINTK(3, "IWEVENT: disconnect\n");
                DPRINTK(3, "disconnect :: scan_ind_count=%d\n",
                        priv->scan_ind_count);
                if ((priv->connect_status & CONNECT_STATUS_MASK) ==
                    DISCONNECT_STATUS
                    && (old_status & CONNECT_STATUS_MASK) == CONNECT_STATUS) {
-                       memset(wrqu0.ap_addr.sa_data, '\0', ETH_ALEN);
+                       eth_zero_addr(wrqu0.ap_addr.sa_data);
                        DPRINTK(3, "IWEVENT: disconnect\n");
                        printk("IWEVENT: disconnect\n");
                        DPRINTK(3, "disconnect :: scan_ind_count=%d\n",
 
                        priv->need_commit |= SME_MODE_SET;
                }
        } else {
-               memset(priv->reg.bssid, 0x0, ETH_ALEN);
+               eth_zero_addr(priv->reg.bssid);
                return -EOPNOTSUPP;
        }
 
        if ((priv->connect_status & CONNECT_STATUS_MASK) == CONNECT_STATUS) {
                memcpy(awrq->sa_data, &(priv->current_ap.bssid[0]), ETH_ALEN);
        } else {
-               memset(awrq->sa_data, 0, ETH_ALEN);
+               eth_zero_addr(awrq->sa_data);
        }
 
        awrq->sa_family = ARPHRD_ETHER;
                        list_for_each(ptr, &priv->pmklist.head) {
                                pmk = list_entry(ptr, struct pmk_t, list);
                                if (!memcmp(pmksa->bssid.sa_data, pmk->bssid, ETH_ALEN)) {      /* match address! list del. */
-                                       memset(pmk->bssid, 0, ETH_ALEN);
+                                       eth_zero_addr(pmk->bssid);
                                        memset(pmk->pmkid, 0, IW_PMKID_LEN);
                                        list_del_init(&pmk->list);
                                        break;