Re: checkpatch: CHECK: No space is necessary after a cast

From: Joe Perches
Date: Mon Sep 29 2014 - 14:02:44 EST


On Mon, 2014-09-29 at 14:49 +0300, Kalle Valo wrote:
> Hi Joe,
>
> I have a problem with checkpatch. On ath10k we have this function:
>
> static inline struct ath10k_skb_cb *ATH10K_SKB_CB(struct sk_buff *skb)
> {
> BUILD_BUG_ON(sizeof(struct ath10k_skb_cb) >
> IEEE80211_TX_INFO_DRIVER_DATA_SIZE);
> return (struct ath10k_skb_cb *)&IEEE80211_SKB_CB(skb)->driver_data;
> }
>
> And the BUILD_BUG_ON triggers this warning:
>
> drivers/net/wireless/ath/ath10k/core.h:85: CHECK: No space is necessary after a cast
>
> Any advice how to handle that?

It's a checkpatch false positive that could be fixed.

It needs something like another test to look for
sizeof(type) as not a cast and more arithmetic/comparison
uses.

Maybe you can test this?
---
scripts/checkpatch.pl | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/scripts/checkpatch.pl b/scripts/checkpatch.pl
index 52a223e..6132329 100755
--- a/scripts/checkpatch.pl
+++ b/scripts/checkpatch.pl
@@ -2515,7 +2515,8 @@ sub process {
}
}

- if ($line =~ /^\+.*\(\s*$Type\s*\)[ \t]+(?!$Assignment|$Arithmetic|{)/) {
+ if ($line =~ /^\+.*(\w+\s*)?\(\s*$Type\s*\)[ \t]+(?!$Assignment|$Arithmetic|[,;\({\[\<\>])/ &&
+ (!defined($1) || $1 !~ /sizeof\s*/)) {
if (CHK("SPACING",
"No space is necessary after a cast\n" . $herecurr) &&
$fix) {


--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/