Grepping for "sizeof\(.+\) / sizeof\(" found this as one of the first
candidates.
Maybe a coccinelle can catch all of those.
Signed-off-by: Thomas Meyer <[email protected]>
---
net/ipv6/seg6_hmac.c | 7 ++++---
1 file changed, 4 insertions(+), 3 deletions(-)
diff --git a/net/ipv6/seg6_hmac.c b/net/ipv6/seg6_hmac.c
index f950cb53d5e3..33fb35cbfac1 100644
--- a/net/ipv6/seg6_hmac.c
+++ b/net/ipv6/seg6_hmac.c
@@ -12,6 +12,7 @@
*/
#include <linux/errno.h>
+#include <linux/kernel.h>
#include <linux/types.h>
#include <linux/socket.h>
#include <linux/sockios.h>
@@ -110,7 +111,7 @@ static struct seg6_hmac_algo *__hmac_get_algo(u8 alg_id)
struct seg6_hmac_algo *algo;
int i, alg_count;
- alg_count = sizeof(hmac_algos) / sizeof(struct seg6_hmac_algo);
+ alg_count = ARRAY_SIZE(hmac_algos);
for (i = 0; i < alg_count; i++) {
algo = &hmac_algos[i];
if (algo->alg_id == alg_id)
@@ -360,7 +361,7 @@ static int seg6_hmac_init_algo(void)
struct shash_desc *shash;
int i, alg_count, cpu;
- alg_count = sizeof(hmac_algos) / sizeof(struct seg6_hmac_algo);
+ alg_count = ARRAY_SIZE(hmac_algos);
for (i = 0; i < alg_count; i++) {
struct crypto_shash **p_tfm;
@@ -421,7 +422,7 @@ void seg6_hmac_exit(void)
struct seg6_hmac_algo *algo = NULL;
int i, alg_count, cpu;
- alg_count = sizeof(hmac_algos) / sizeof(struct seg6_hmac_algo);
+ alg_count = ARRAY_SIZE(hmac_algos);
for (i = 0; i < alg_count; i++) {
algo = &hmac_algos[i];
for_each_possible_cpu(cpu) {
--
2.11.0
From: Thomas Meyer <[email protected]>
Date: Thu, 31 Aug 2017 16:18:15 +0200
> Grepping for "sizeof\(.+\) / sizeof\(" found this as one of the first
> candidates.
> Maybe a coccinelle can catch all of those.
>
> Signed-off-by: Thomas Meyer <[email protected]>
Applied, thanks.
On Fri, 2017-09-01 at 18:35 -0700, David Miller wrote:
> From: Thomas Meyer <[email protected]>
> Date: Thu, 31 Aug 2017 16:18:15 +0200
>
> > Grepping for "sizeof\(.+\) / sizeof\(" found this as one of the first
> > candidates.
> > Maybe a coccinelle can catch all of those.
Umm: try scripts/coccinelle/misc/array_size.cocci
Until then, maybe a perl script?
$ git grep --name-only sizeof.*/.*sizeof drivers/net | \
xargs perl -p -i -e 's/\bsizeof\s*\(\s*(\w+)\s*\)\s*\/\s*sizeof\s*\(\s*\1\s*\[\s*0\s*\]\s*\)/ARRAY_SIZE(\1)/g'
gives:
$ git diff --stat drivers/net
?drivers/net/ethernet/intel/ixgbe/ixgbe_x550.c???????????????????|???2 +-
?drivers/net/ethernet/mellanox/mlx4/fw.c?????????????????????????|???4 +--
?drivers/net/ethernet/mellanox/mlx4/main.c???????????????????????|???8 +++---
?drivers/net/wireless/ath/ath9k/ar9003_eeprom.c??????????????????|???2 +-
?drivers/net/wireless/broadcom/brcm80211/brcmsmac/phy/phytbl_n.c | 186 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-----------------------------------------------------------
?5 files changed, 101 insertions(+), 101 deletions(-)
On Fri, Sep 01, 2017 at 08:51:55PM -0700, Joe Perches wrote:
> On Fri, 2017-09-01 at 18:35 -0700, David Miller wrote:
> > From: Thomas Meyer <[email protected]>
> > Date: Thu, 31 Aug 2017 16:18:15 +0200
> >
> > > Grepping for "sizeof\(.+\) / sizeof\(" found this as one of the first
> > > candidates.
> > > Maybe a coccinelle can catch all of those.
>
Hi,
> Umm: try scripts/coccinelle/misc/array_size.cocci
Yes, I found out/remembered after I submitted above patch... I used to
run most of the cocci spatches (some just run too long) after each rc1 release, but lost interest/time. nobody seems to
do this regularly, at least for existing spatches.
See 6 patches with Message-ID [email protected]
> Until then, maybe a perl script?
>
> $ git grep --name-only sizeof.*/.*sizeof drivers/net | \
> xargs perl -p -i -e 's/\bsizeof\s*\(\s*(\w+)\s*\)\s*\/\s*sizeof\s*\(\s*\1\s*\[\s*0\s*\]\s*\)/ARRAY_SIZE(\1)/g'
>
> gives:
>
> $ git diff --stat drivers/net
> ?drivers/net/ethernet/intel/ixgbe/ixgbe_x550.c???????????????????|???2 +-
> ?drivers/net/ethernet/mellanox/mlx4/fw.c?????????????????????????|???4 +--
> ?drivers/net/ethernet/mellanox/mlx4/main.c???????????????????????|???8 +++---
> ?drivers/net/wireless/ath/ath9k/ar9003_eeprom.c??????????????????|???2 +-
> ?drivers/net/wireless/broadcom/brcm80211/brcmsmac/phy/phytbl_n.c | 186 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-----------------------------------------------------------
> ?5 files changed, 101 insertions(+), 101 deletions(-)
Which makes me wonder why cocci didn't found above places...
Also cocci includes linux/kernel.h if not already present.
I will give above regex a try for the whole kernel tree and check for
false positives.
with kind regards
thomas