From: Joe Perches Date: Thu, 23 Jan 2014 23:54:52 +0000 (-0800) Subject: checkpatch: prefer ether_addr_copy to memcpy(foo, bar, ETH_ALEN) X-Git-Url: http://pileus.org/git/?a=commitdiff_plain;h=98a9bba51c6e47f69c4fa22cc39a600d2e39536c;p=~andy%2Flinux checkpatch: prefer ether_addr_copy to memcpy(foo, bar, ETH_ALEN) ether_addr_copy was added for kernel version 3.14. It's slightly smaller/faster for some arches. Encourage its use. Signed-off-by: Joe Perches Cc: Andy Whitcroft Cc: David Miller Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds --- diff --git a/scripts/checkpatch.pl b/scripts/checkpatch.pl index 05c99c0b7e6..1dbd6d1cd1b 100755 --- a/scripts/checkpatch.pl +++ b/scripts/checkpatch.pl @@ -4087,6 +4087,16 @@ sub process { } } +# Check for memcpy(foo, bar, ETH_ALEN) that could be ether_addr_copy(foo, bar) + if ($^V && $^V ge 5.10.0 && + $line =~ /^\+(?:.*?)\bmemcpy\s*\(\s*$FuncArg\s*,\s*$FuncArg\s*\,\s*ETH_ALEN\s*\)/s) { + if (WARN("PREFER_ETHER_ADDR_COPY", + "Prefer ether_addr_copy() over memcpy() if the Ethernet addresses are __aligned(2)\n" . $herecurr) && + $fix) { + $fixed[$linenr - 1] =~ s/\bmemcpy\s*\(\s*$FuncArg\s*,\s*$FuncArg\s*\,\s*ETH_ALEN\s*\)/ether_addr_copy($2, $7)/; + } + } + # typecasts on min/max could be min_t/max_t if ($^V && $^V ge 5.10.0 && defined $stat &&