staging: vt6655: card.c: replace memcpy() by ether_addr_copy() using coccinelle
authorAya Mahfouz <mahfouz.saif.elyazal@gmail.com>
Sat, 11 Oct 2014 00:25:34 +0000 (02:25 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Mon, 20 Oct 2014 02:30:15 +0000 (10:30 +0800)
This patch focuses on fixing the following warning generated
by checkpatch.pl for the file rxtx.c :

Prefer ether_addr_copy() over memcpy() if the Ethernet addresses
are __aligned(2)

The changes were applied using the following coccinelle rule:

@@ expression e1, e2; @@

- memcpy(e1, e2, ETH_ALEN);
+ ether_addr_copy(e1, e2);

According to ether_addr_copy() description and functionality,
all Ethernet addresses should align to the u16 datatype.

Here is the output of pahole for the relevant datastructures:

struct pmkid_candidate {
        NDIS_802_11_MAC_ADDRESS    BSSID;                /*     0     6 */

        /* XXX 2 bytes hole, try to pack */

        long unsigned int          Flags;                /*     8     4 */

        /* size: 12, cachelines: 1, members: 2 */
        /* sum members: 10, holes: 1, sum holes: 2 */
        /* last cacheline: 12 bytes */
};

Signed-off-by: Aya Mahfouz <mahfouz.saif.elyazal@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/staging/vt6655/card.c

index 5a69502..f2a33a9 100644 (file)
@@ -1000,7 +1000,7 @@ CARDbAdd_PMKID_Candidate(
        else
                pCandidateList->Flags &= ~(NDIS_802_11_PMKID_CANDIDATE_PREAUTH_ENABLED);
 
-       memcpy(pCandidateList->BSSID, pbyBSSID, ETH_ALEN);
+       ether_addr_copy(pCandidateList->BSSID, pbyBSSID);
        pDevice->gsPMKIDCandidate.NumCandidates++;
        pr_debug("NumCandidates:%d\n",
                 (int)pDevice->gsPMKIDCandidate.NumCandidates);