Using the ARRAY_SIZE macro improves the readability of the code. In this
case, it's useless to define the macro NUM_PO_FUNCS so let's use
ARRAY_SIZE instead.

Found with Coccinelle with the following semantic patch:
@r depends on (org || report)@
type T;
T[] E;
position p;
@@
(
 (sizeof(E)@p /sizeof(*E))
|
 (sizeof(E)@p /sizeof(E[...]))
|
 (sizeof(E)@p /sizeof(T))
)

Signed-off-by: Jérémy Lefaure <jeremy.lefa...@lse.epita.fr>
---
 drivers/char/ipmi/ipmi_poweroff.c | 5 ++---
 1 file changed, 2 insertions(+), 3 deletions(-)

diff --git a/drivers/char/ipmi/ipmi_poweroff.c 
b/drivers/char/ipmi/ipmi_poweroff.c
index cd0f41fd4a51..7b36d7550840 100644
--- a/drivers/char/ipmi/ipmi_poweroff.c
+++ b/drivers/char/ipmi/ipmi_poweroff.c
@@ -40,6 +40,7 @@
 #include <linux/kdev_t.h>
 #include <linux/ipmi.h>
 #include <linux/ipmi_smi.h>
+#include <linux/kernel.h>
 
 #define PFX "IPMI poweroff: "
 
@@ -539,8 +540,6 @@ static struct poweroff_function poweroff_functions[] = {
          .detect               = ipmi_chassis_detect,
          .poweroff_func        = ipmi_poweroff_chassis },
 };
-#define NUM_PO_FUNCS (sizeof(poweroff_functions) \
-                     / sizeof(struct poweroff_function))
 
 
 /* Called on a powerdown request. */
@@ -616,7 +615,7 @@ static void ipmi_po_new_smi(int if_num, struct device 
*device)
 
 
        /* Scan for a poweroff method */
-       for (i = 0; i < NUM_PO_FUNCS; i++) {
+       for (i = 0; i < ARRAY_SIZE(poweroff_functions); i++) {
                if (poweroff_functions[i].detect(ipmi_user))
                        goto found;
        }
-- 
2.14.1

Reply via email to