*/
 
 #include <linux/in.h>
+#include <linux/if_ether.h>
 #include <net/sock.h>
 #include <net/tcp.h>
 
        pclc.hdr.version = SMC_CLC_V1;          /* SMC version */
        memcpy(pclc.lcl.id_for_peer, local_systemid, sizeof(local_systemid));
        memcpy(&pclc.lcl.gid, &smcibdev->gid[ibport - 1], SMC_GID_SIZE);
-       memcpy(&pclc.lcl.mac, &smcibdev->mac[ibport - 1],
-              sizeof(smcibdev->mac[ibport - 1]));
+       memcpy(&pclc.lcl.mac, &smcibdev->mac[ibport - 1], ETH_ALEN);
 
        /* determine subnet and mask from internal TCP socket */
        rc = smc_netinfo_by_tcpsk(smc->clcsock, &pclc.outgoing_subnet,
        memcpy(cclc.lcl.id_for_peer, local_systemid, sizeof(local_systemid));
        memcpy(&cclc.lcl.gid, &link->smcibdev->gid[link->ibport - 1],
               SMC_GID_SIZE);
-       memcpy(&cclc.lcl.mac, &link->smcibdev->mac[link->ibport - 1],
-              sizeof(link->smcibdev->mac));
+       memcpy(&cclc.lcl.mac, &link->smcibdev->mac[link->ibport - 1], ETH_ALEN);
        hton24(cclc.qpn, link->roce_qp->qp_num);
        cclc.rmb_rkey =
                htonl(conn->rmb_desc->mr_rx[SMC_SINGLE_LINK]->rkey);
        memcpy(aclc.lcl.id_for_peer, local_systemid, sizeof(local_systemid));
        memcpy(&aclc.lcl.gid, &link->smcibdev->gid[link->ibport - 1],
               SMC_GID_SIZE);
-       memcpy(&aclc.lcl.mac, link->smcibdev->mac[link->ibport - 1],
-              sizeof(link->smcibdev->mac[link->ibport - 1]));
+       memcpy(&aclc.lcl.mac, link->smcibdev->mac[link->ibport - 1], ETH_ALEN);
        hton24(aclc.qpn, link->roce_qp->qp_num);
        aclc.rmb_rkey =
                htonl(conn->rmb_desc->mr_rx[SMC_SINGLE_LINK]->rkey);
 
 #ifndef _SMC_IB_H
 #define _SMC_IB_H
 
+#include <linux/if_ether.h>
 #include <rdma/ib_verbs.h>
 
 #define SMC_MAX_PORTS                  2       /* Max # of ports */
        struct ib_cq            *roce_cq_recv;  /* recv completion queue */
        struct tasklet_struct   send_tasklet;   /* called by send cq handler */
        struct tasklet_struct   recv_tasklet;   /* called by recv cq handler */
-       char                    mac[SMC_MAX_PORTS][6]; /* mac address per port*/
+       char                    mac[SMC_MAX_PORTS][ETH_ALEN];
+                                               /* mac address per port*/
        union ib_gid            gid[SMC_MAX_PORTS]; /* gid per port */
        u8                      initialized : 1; /* ib dev CQ, evthdl done */
        struct work_struct      port_event_work;