checkpatch: remove the ether_addr_copy warning
Subsystems (4)
PATCH 1/1 checkpatch: remove the ether_addr_copy warning
Most people sending checkpatch.pl fixes don't know how to verify the alignment. This checkpatch warning just encourages newbies to try introduce bugs. Patch submitters tell us that they just sed the code and it's the job for the maintainer to check that it's correct.
If you want to work on these then you can get the same information by typing grep -nw memcpy drivers/net/ -R | grep ETH_ALEN
scripts/checkpatch.pl +0 -10
@@ -4698,16 +4698,6 @@ 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[$fixlinenr] =~ 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 &&
Joe Perches
maintainerQuoted 4 lines · Dan Carpenter
Most people sending checkpatch.pl fixes don't know how to verify the alignment. This checkpatch warning just encourages newbies to try introduce bugs. Patch submitters tell us that they just sed the code and it's the job for the maintainer to check that it's correct.
I haven't seen many instances of bad patch submittals on netdev. Is this mostly an issue for staging?
Maybe a downgrade to CHK requiring --strict is OK.
Quoted 2 lines
If you want to work on these then you can get the same information by typing
grep -nw memcpy drivers/net/ -R | grep ETH_ALEN
That's not much of an argument for or against anything in checkpatch as every operation done by it can be reproduced by a series of grep operations.
Quoted 9 lines · Joe Perches
Quoted 4 lines · Dan Carpenter
Most people sending checkpatch.pl fixes don't know how to verify the alignment. This checkpatch warning just encourages newbies to try introduce bugs. Patch submitters tell us that they just sed the code and it's the job for the maintainer to check that it's correct.
I haven't seen many instances of bad patch submittals on netdev. Is this mostly an issue for staging?
Quoted 8 lines
Maybe a downgrade to CHK requiring --strict is OK.
Quoted 2 lines
If you want to work on these then you can get the same information by typing
grep -nw memcpy drivers/net/ -R | grep ETH_ALENThat's not much of an argument for or against anything in checkpatch as every operation done by it can be reproduced by a series of grep operations.
I think it is too bad to have a piece of knowledge that was apparent be made more obscure. Why not just change the checkpatch warning to make more explicit that a lot of expertise is required to make the change?
julia
Joe Perches
maintainerQuoted 11 lines · Julia Lawall
Quoted 10 lines · Joe Perches
Quoted 4 lines · Dan Carpenter
Most people sending checkpatch.pl fixes don't know how to verify the alignment. This checkpatch warning just encourages newbies to try introduce bugs. Patch submitters tell us that they just sed the code and it's the job for the maintainer to check that it's correct.
I haven't seen many instances of bad patch submittals on netdev. Is this mostly an issue for staging?
Maybe a downgrade to CHK requiring --strict is OK.
[]
Quoted 3 lines
I think it is too bad to have a piece of knowledge that was apparent be made more obscure. Why not just change the checkpatch warning to make more explicit that a lot of expertise is required to make the change?
Any wordsmithing appreciated. Maybe something like:
from: Prefer ether_addr_copy() over memcpy() if the Ethernet addresses are __aligned(2)
to: Where both Ethernet addresses are guaranteed to be __aligned(2), prefer ether_addr_copy() over memcpy()
That won't stop people from blindly following any message.
Quoted 17 lines · Joe Perches
Quoted 11 lines · Julia Lawall
Quoted 10 lines · Joe Perches
Quoted 4 lines · Dan Carpenter
Most people sending checkpatch.pl fixes don't know how to verify the alignment. This checkpatch warning just encourages newbies to try introduce bugs. Patch submitters tell us that they just sed the code and it's the job for the maintainer to check that it's correct.
I haven't seen many instances of bad patch submittals on netdev. Is this mostly an issue for staging?
Maybe a downgrade to CHK requiring --strict is OK.
[]
Quoted 3 lines
I think it is too bad to have a piece of knowledge that was apparent be made more obscure. Why not just change the checkpatch warning to make more explicit that a lot of expertise is required to make the change?
Quoted 6 lines
Any wordsmithing appreciated. Maybe something like:
from: Prefer
ether_addr_copy()overmemcpy()if the Ethernet addresses are__aligned(2)
to: Where both Ethernet addresses are guaranteed to be__aligned(2), preferether_addr_copy()overmemcpy()That won't stop people from blindly following any message.
Perhaps add: Note that checking whether the addresses are aligned may require knowing properties of all possible architectures on which the code may be executed. Make this change only if you have this information.
julia
Quoted 8 lines · Joe Perches
Quoted 4 lines · Dan Carpenter
Most people sending checkpatch.pl fixes don't know how to verify the alignment. This checkpatch warning just encourages newbies to try introduce bugs. Patch submitters tell us that they just sed the code and it's the job for the maintainer to check that it's correct.
I haven't seen many instances of bad patch submittals on netdev. Is this mostly an issue for staging?
I don't follow netdev so I can't say.
Most of the time data is aligned at a 4 byte mark so probably you are just getting lucky. I really doubt that netdev checkpatch newbies know about alignment...
Quoted 2 lines
Maybe a downgrade to CHK requiring --strict is OK.
I would actually like to turn --strict by default in staging.
Checkpatch is a good concept, but it should only do safe things instead of telling newbies to send buggy patches.
regards,
dan carpenter
Joe Perches
maintainerQuoted 6 lines · Dan Carpenter
Quoted 5 lines · Joe Perches
Quoted 4 lines · Dan Carpenter
Most people sending checkpatch.pl fixes don't know how to verify the alignment. This checkpatch warning just encourages newbies to try introduce bugs. Patch submitters tell us that they just sed the code and it's the job for the maintainer to check that it's correct.
And that's where it's the maintainer's job to educate, inform, reject
Quoted 7 lines
Quoted 2 lines
I haven't seen many instances of bad patch submittals on netdev. Is this mostly an issue for staging?
I don't follow netdev so I can't say.
Most of the time data is aligned at a 4 byte mark so probably you are just getting lucky.
All typical Ethernet frames have 1 of the 2 addresses on an even byte boundary but not 4 byte aligned.
Most all of the is_<foo>_ether_addr tests assume __aligned(2)
Quoted 2 lines
I really doubt that netdev checkpatch newbies know about alignment...
I think that's a learning opportunity...
Quoted 3 lines
Quoted 1 line
Maybe a downgrade to CHK requiring --strict is OK.
I would actually like to turn --strict by default in staging.
I recall a suggested patch for that.
Quoted 2 lines
Checkpatch is a good concept, but it should only do safe things instead of telling newbies to send buggy patches.
checkpatch isn't just for the inexperienced.
It's an oversight tester and a style tool.
Degrading it doesn't make it better.