Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > linux.kernel > #1724281 > unrolled thread

[PATCH] ipv6: sr: Use ARRAY_SIZE macro

Started byThomas Meyer <thomas@m3y3r.de>
First post2017-08-31 16:20 +0200
Last post2017-09-02 08:30 +0200
Articles 4 — 3 participants

Back to article view | Back to linux.kernel


Contents

  [PATCH] ipv6: sr: Use ARRAY_SIZE macro Thomas Meyer <thomas@m3y3r.de> - 2017-08-31 16:20 +0200
    Re: [PATCH] ipv6: sr: Use ARRAY_SIZE macro David Miller <davem@davemloft.net> - 2017-09-02 03:40 +0200
      Re: [PATCH] ipv6: sr: Use ARRAY_SIZE macro Joe Perches <joe@perches.com> - 2017-09-02 06:00 +0200
        Re: [PATCH] ipv6: sr: Use ARRAY_SIZE macro Thomas Meyer <thomas@m3y3r.de> - 2017-09-02 08:30 +0200

#1724281 — [PATCH] ipv6: sr: Use ARRAY_SIZE macro

FromThomas Meyer <thomas@m3y3r.de>
Date2017-08-31 16:20 +0200
Subject[PATCH] ipv6: sr: Use ARRAY_SIZE macro
Message-ID<ukyu5-6Gt-13@gated-at.bofh.it>
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 <thomas@m3y3r.de>
---
 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

[toc] | [next] | [standalone]


#1725415

FromDavid Miller <davem@davemloft.net>
Date2017-09-02 03:40 +0200
Message-ID<ul5zH-4K7-7@gated-at.bofh.it>
In reply to#1724281
From: Thomas Meyer <thomas@m3y3r.de>
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 <thomas@m3y3r.de>

Applied, thanks.

[toc] | [prev] | [next] | [standalone]


#1725436

FromJoe Perches <joe@perches.com>
Date2017-09-02 06:00 +0200
Message-ID<ul7Lb-6dr-1@gated-at.bofh.it>
In reply to#1725415
On Fri, 2017-09-01 at 18:35 -0700, David Miller wrote:
> From: Thomas Meyer <thomas@m3y3r.de>
> 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(-)

[toc] | [prev] | [next] | [standalone]


#1725454

FromThomas Meyer <thomas@m3y3r.de>
Date2017-09-02 08:30 +0200
Message-ID<ula6m-7Sd-5@gated-at.bofh.it>
In reply to#1725436
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 <thomas@m3y3r.de>
> > 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 20170901212907.5662-1-thomas@m3y3r.de

> 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

[toc] | [prev] | [standalone]


Back to top | Article view | linux.kernel


csiph-web