This patch was generated by the following semantic patch (a trimmed down version of what is shipped with Linux sources):
@@ type T; T[] E; @@ ( - (sizeof(E)/sizeof(*E)) + ARRAY_SIZE(E) | - (sizeof(E)/sizeof(E[...])) + ARRAY_SIZE(E) | - (sizeof(E)/sizeof(T)) + ARRAY_SIZE(E) ) The only manual adjustment was to include utils.h in misc/nstat.c to make the macro known there. Signed-off-by: Phil Sutter <p...@nwl.cc> --- Changes since v3: - Rebased again. - added missing include in misc/nstat.c. Changes since v2: - Patch recreated from scratch. Changes since v1: - Rebased onto current master to avoid merge conflicts. Signed-off-by: Phil Sutter <p...@nwl.cc> --- bridge/link.c | 2 +- misc/nstat.c | 3 ++- misc/ss.c | 2 +- 3 files changed, 4 insertions(+), 3 deletions(-) diff --git a/bridge/link.c b/bridge/link.c index 353e1c3da45db..b347040ccf91d 100644 --- a/bridge/link.c +++ b/bridge/link.c @@ -319,7 +319,7 @@ static int brlink_modify(int argc, char **argv) } else if (strcmp(*argv, "state") == 0) { NEXT_ARG(); char *endptr; - size_t nstates = sizeof(port_states) / sizeof(*port_states); + size_t nstates = ARRAY_SIZE(port_states); state = strtol(*argv, &endptr, 10); if (!(**argv != '\0' && *endptr == '\0')) { diff --git a/misc/nstat.c b/misc/nstat.c index a9e0f20789e3c..e579ce1d31586 100644 --- a/misc/nstat.c +++ b/misc/nstat.c @@ -30,6 +30,7 @@ #include <json_writer.h> #include <SNAPSHOT.h> +#include "utils.h" int dump_zeros; int reset_history; @@ -95,7 +96,7 @@ static int useless_number(const char *id) { int i; - for (i = 0; i < sizeof(useless_numbers)/sizeof(*useless_numbers); i++) + for (i = 0; i < ARRAY_SIZE(useless_numbers); i++) if (strcmp(id, useless_numbers[i]) == 0) return 1; return 0; diff --git a/misc/ss.c b/misc/ss.c index 02be7e7407dfb..2ed9d67660b4d 100644 --- a/misc/ss.c +++ b/misc/ss.c @@ -666,7 +666,7 @@ static int get_slabstat(struct slabstat *s) while (fgets(buf, sizeof(buf), fp) != NULL) { int i; - for (i = 0; i < sizeof(slabstat_ids)/sizeof(slabstat_ids[0]); i++) { + for (i = 0; i < ARRAY_SIZE(slabstat_ids); i++) { if (memcmp(buf, slabstat_ids[i], strlen(slabstat_ids[i])) == 0) { sscanf(buf, "%*s%d", ((int *)s) + i); cnt--; -- 2.8.2