diff --git a/post/board/lwmon/sysmon.c b/post/board/lwmon/sysmon.c
index fc828b2e506440b9d8e3249a08a1fff186ac047e..72224c6ef2b23a3927a0ae2f9dfdb0a37e1af43f 100644
--- a/post/board/lwmon/sysmon.c
+++ b/post/board/lwmon/sysmon.c
@@ -133,7 +133,7 @@ static sysmon_table_t sysmon_table[] =
     {"+ 5 V standby", "V", &sysmon_pic, NULL, NULL,
      100, 1000, 0, 6040, 0xFF, 0xC8, 0xDE, 0, 0xC8, 0xDE, 0, 0x7C},
 };
-static int sysmon_table_size = sizeof(sysmon_table) / sizeof(sysmon_table[0]);
+static int sysmon_table_size = ARRAY_SIZE(sysmon_table);
 
 static int conversion_done = 0;
 
diff --git a/post/cpu/mpc8xx/ether.c b/post/cpu/mpc8xx/ether.c
index 43ea81772479c361f9e08da3347461e4a304b32a..fcbb30067eee6a4a6dd5e5fdf4527477d54f74fc 100644
--- a/post/cpu/mpc8xx/ether.c
+++ b/post/cpu/mpc8xx/ether.c
@@ -67,8 +67,6 @@ static int ctlr_list[][2] = { {CTLR_SCC, 1} };
 static int ctlr_list[][2] = { };
 #endif
 
-#define CTRL_LIST_SIZE (sizeof(ctlr_list) / sizeof(ctlr_list[0]))
-
 static struct {
 	void (*init) (int index);
 	void (*halt) (int index);
@@ -618,7 +616,7 @@ int ether_post_test (int flags)
 	ctlr_proc[CTLR_SCC].send = scc_send;
 	ctlr_proc[CTLR_SCC].recv = scc_recv;
 
-	for (i = 0; i < CTRL_LIST_SIZE; i++) {
+	for (i = 0; i < ARRAY_SIZE(ctlr_list); i++) {
 		if (test_ctlr (ctlr_list[i][0], ctlr_list[i][1]) != 0) {
 			res = -1;
 		}
diff --git a/post/cpu/mpc8xx/spr.c b/post/cpu/mpc8xx/spr.c
index db84dbe50437198686a6468f3c7de51c7d176147..4c1e2afbf63898ce56e2c53993c8c5dd7f8a94ba 100644
--- a/post/cpu/mpc8xx/spr.c
+++ b/post/cpu/mpc8xx/spr.c
@@ -108,8 +108,7 @@ static struct
 	{826,	"MD_DBRAM1",	0x00000000,	0x00000000},
 };
 
-static int spr_test_list_size =
-		sizeof (spr_test_list) / sizeof (spr_test_list[0]);
+static int spr_test_list_size = ARRAY_SIZE(spr_test_list);
 
 int spr_post_test (int flags)
 {
diff --git a/post/cpu/mpc8xx/uart.c b/post/cpu/mpc8xx/uart.c
index f351ac06d72468fa68bda7de6bf67f73d6489722..7a7a62aa00bb4b1a9ccfa366a7bf1abc9329d4f1 100644
--- a/post/cpu/mpc8xx/uart.c
+++ b/post/cpu/mpc8xx/uart.c
@@ -61,8 +61,6 @@ static int ctlr_list[][2] =
 static int ctlr_list[][2] = { };
 #endif
 
-#define CTRL_LIST_SIZE (sizeof(ctlr_list) / sizeof(ctlr_list[0]))
-
 static struct {
 	void (*init) (int index);
 	void (*halt) (int index);
@@ -540,7 +538,7 @@ int uart_post_test (int flags)
 	ctlr_proc[CTLR_SCC].putc = scc_putc;
 	ctlr_proc[CTLR_SCC].getc = scc_getc;
 
-	for (i = 0; i < CTRL_LIST_SIZE; i++) {
+	for (i = 0; i < ARRAY_SIZE(ctlr_list); i++) {
 		if (test_ctlr (ctlr_list[i][0], ctlr_list[i][1]) != 0) {
 			res = -1;
 		}
diff --git a/post/cpu/ppc4xx/spr.c b/post/cpu/ppc4xx/spr.c
index cb18b6436d89c346fb7bd0192e0f24c971175151..3f5e96593a47a75afd95e13ae21dd19c325337e7 100644
--- a/post/cpu/ppc4xx/spr.c
+++ b/post/cpu/ppc4xx/spr.c
@@ -156,8 +156,7 @@ static struct {
 	{0x3f3,	"DBDR",		0x00000000,	0x00000000},
 };
 
-static int spr_test_list_size =
-		sizeof (spr_test_list) / sizeof (spr_test_list[0]);
+static int spr_test_list_size = ARRAY_SIZE(spr_test_list);
 
 int spr_post_test (int flags)
 {
diff --git a/post/drivers/memory.c b/post/drivers/memory.c
index 3f47449f198043f079d1fb29ba270a68e91f2e13..4cca0357841a696b43a7952fb66d05ec0f9c2d75 100644
--- a/post/drivers/memory.c
+++ b/post/drivers/memory.c
@@ -225,7 +225,7 @@ const unsigned long long otherpattern = 0x0123456789abcdefULL;
 static int memory_post_dataline(unsigned long long * pmem)
 {
 	unsigned long long temp64 = 0;
-	int num_patterns = sizeof(pattern)/ sizeof(pattern[0]);
+	int num_patterns = ARRAY_SIZE(pattern);
 	int i;
 	unsigned int hi, lo, pathi, patlo;
 	int ret = 0;
diff --git a/post/lib_powerpc/andi.c b/post/lib_powerpc/andi.c
index 52ec7c4d4e919c384bd3b62e3a9636d3399d34e2..2791cd73b1033a0567fccc21f3b8b7fdc83406a9 100644
--- a/post/lib_powerpc/andi.c
+++ b/post/lib_powerpc/andi.c
@@ -61,8 +61,7 @@ static struct cpu_post_andi_s
 	0x80000000
     },
 };
-static unsigned int cpu_post_andi_size =
-    sizeof (cpu_post_andi_table) / sizeof (struct cpu_post_andi_s);
+static unsigned int cpu_post_andi_size = ARRAY_SIZE(cpu_post_andi_table);
 
 int cpu_post_test_andi (void)
 {
diff --git a/post/lib_powerpc/cmp.c b/post/lib_powerpc/cmp.c
index 5f6a3b904666ac9ea1b0af5adb166ede5f36d5c2..ae5b72b2c6ec6baebc689454a130800269fce6ec 100644
--- a/post/lib_powerpc/cmp.c
+++ b/post/lib_powerpc/cmp.c
@@ -95,8 +95,7 @@ static struct cpu_post_cmp_s
 	0x04
     },
 };
-static unsigned int cpu_post_cmp_size =
-    sizeof (cpu_post_cmp_table) / sizeof (struct cpu_post_cmp_s);
+static unsigned int cpu_post_cmp_size = ARRAY_SIZE(cpu_post_cmp_table);
 
 int cpu_post_test_cmp (void)
 {
diff --git a/post/lib_powerpc/cmpi.c b/post/lib_powerpc/cmpi.c
index 1a2fc3d094bd5ff70d9d796f84d8c5b04253f693..4160a2aaa1c07409b56f5656545b98b588f2c624 100644
--- a/post/lib_powerpc/cmpi.c
+++ b/post/lib_powerpc/cmpi.c
@@ -95,8 +95,7 @@ static struct cpu_post_cmpi_s
 	0x04
     },
 };
-static unsigned int cpu_post_cmpi_size =
-    sizeof (cpu_post_cmpi_table) / sizeof (struct cpu_post_cmpi_s);
+static unsigned int cpu_post_cmpi_size = ARRAY_SIZE(cpu_post_cmpi_table);
 
 int cpu_post_test_cmpi (void)
 {
diff --git a/post/lib_powerpc/cr.c b/post/lib_powerpc/cr.c
index fbee6d5c406ff4b856414449d8ad524bcc74befe..ada7c7af22d59bff59a001f4717133a04704a0cc 100644
--- a/post/lib_powerpc/cr.c
+++ b/post/lib_powerpc/cr.c
@@ -59,8 +59,7 @@ static ulong cpu_post_cr_table1[] =
     0xaaaaaaaa,
     0x55555555,
 };
-static unsigned int cpu_post_cr_size1 =
-    sizeof (cpu_post_cr_table1) / sizeof (ulong);
+static unsigned int cpu_post_cr_size1 = ARRAY_SIZE(cpu_post_cr_table1);
 
 static struct cpu_post_cr_s2 {
     ulong xer;
@@ -76,8 +75,7 @@ static struct cpu_post_cr_s2 {
 	5
     },
 };
-static unsigned int cpu_post_cr_size2 =
-    sizeof (cpu_post_cr_table2) / sizeof (struct cpu_post_cr_s2);
+static unsigned int cpu_post_cr_size2 = ARRAY_SIZE(cpu_post_cr_table2);
 
 static struct cpu_post_cr_s3 {
     ulong cr;
@@ -99,8 +97,7 @@ static struct cpu_post_cr_s3 {
 	0x71234567
     },
 };
-static unsigned int cpu_post_cr_size3 =
-    sizeof (cpu_post_cr_table3) / sizeof (struct cpu_post_cr_s3);
+static unsigned int cpu_post_cr_size3 = ARRAY_SIZE(cpu_post_cr_table3);
 
 static struct cpu_post_cr_s4 {
     ulong cmd;
@@ -240,8 +237,7 @@ static struct cpu_post_cr_s4 {
 	0x0000ffff
     },
 };
-static unsigned int cpu_post_cr_size4 =
-    sizeof (cpu_post_cr_table4) / sizeof (struct cpu_post_cr_s4);
+static unsigned int cpu_post_cr_size4 = ARRAY_SIZE(cpu_post_cr_table4);
 
 int cpu_post_test_cr (void)
 {
diff --git a/post/lib_powerpc/fpu/mul-subnormal-single-1.c b/post/lib_powerpc/fpu/mul-subnormal-single-1.c
index 23a3f302e8fe8a9ca454ad59b71a376deaf2e981..b3f8deb3426f61295f63c239fff492371612e805 100644
--- a/post/lib_powerpc/fpu/mul-subnormal-single-1.c
+++ b/post/lib_powerpc/fpu/mul-subnormal-single-1.c
@@ -86,7 +86,7 @@ int fpu_post_test_math7 (void)
 {
 	unsigned int i;
 
-	for (i = 0; i < sizeof (expected) / sizeof (expected[0]); i++)
+	for (i = 0; i < ARRAY_SIZE(expected); i++)
 	{
 		tstmul (expected[i].p1, expected[i].p2, expected[i].res);
 		tstmul (expected[i].p2, expected[i].p1, expected[i].res);
diff --git a/post/lib_powerpc/load.c b/post/lib_powerpc/load.c
index 98d437318c6956c8a8c5d2ddbdc150178fcc634a..49924f2edc80a7532d1c2eebbbf654ebe9ebab28 100644
--- a/post/lib_powerpc/load.c
+++ b/post/lib_powerpc/load.c
@@ -171,8 +171,7 @@ static struct cpu_post_load_s
 	1
     },
 };
-static unsigned int cpu_post_load_size =
-    sizeof (cpu_post_load_table) / sizeof (struct cpu_post_load_s);
+static unsigned int cpu_post_load_size = ARRAY_SIZE(cpu_post_load_table);
 
 int cpu_post_test_load (void)
 {
diff --git a/post/lib_powerpc/multi.c b/post/lib_powerpc/multi.c
index e42a7c07ebe4b60f373898cf78ed288cabc5b0d6..584561684ee4780515673550703cda74556f243f 100644
--- a/post/lib_powerpc/multi.c
+++ b/post/lib_powerpc/multi.c
@@ -57,7 +57,7 @@ int cpu_post_test_multi (void)
 	    ASM_BLR,
 	};
 
-	for (i = 0; i < sizeof(src) / sizeof(src[0]); i ++)
+	for (i = 0; i < ARRAY_SIZE(src); ++i)
 	{
 	    src[i] = i;
 	    dst[i] = 0;
diff --git a/post/lib_powerpc/rlwimi.c b/post/lib_powerpc/rlwimi.c
index fd628b31f966620b6895f0a10e6ef1d3572f80ed..15d96aca7b3455dddd4c908d6999ea5ac17ab1a5 100644
--- a/post/lib_powerpc/rlwimi.c
+++ b/post/lib_powerpc/rlwimi.c
@@ -62,8 +62,7 @@ static struct cpu_post_rlwimi_s
 	0xffaaffff
     },
 };
-static unsigned int cpu_post_rlwimi_size =
-    sizeof (cpu_post_rlwimi_table) / sizeof (struct cpu_post_rlwimi_s);
+static unsigned int cpu_post_rlwimi_size = ARRAY_SIZE(cpu_post_rlwimi_table);
 
 int cpu_post_test_rlwimi (void)
 {
diff --git a/post/lib_powerpc/rlwinm.c b/post/lib_powerpc/rlwinm.c
index 88a28c6431faab479c41bfdd4b3da00a5043c92f..a04ec52716ec8dd9c2633ad8a76645f536fb73ce 100644
--- a/post/lib_powerpc/rlwinm.c
+++ b/post/lib_powerpc/rlwinm.c
@@ -59,8 +59,7 @@ static struct cpu_post_rlwinm_s
 	0x0000ff00
    },
 };
-static unsigned int cpu_post_rlwinm_size =
-    sizeof (cpu_post_rlwinm_table) / sizeof (struct cpu_post_rlwinm_s);
+static unsigned int cpu_post_rlwinm_size = ARRAY_SIZE(cpu_post_rlwinm_table);
 
 int cpu_post_test_rlwinm (void)
 {
diff --git a/post/lib_powerpc/rlwnm.c b/post/lib_powerpc/rlwnm.c
index 60bcb6d26c072c0ddc8f037c18c3ff49ecae0706..764fe0c5df9cbbb9b88a58a860a1d8adf966b860 100644
--- a/post/lib_powerpc/rlwnm.c
+++ b/post/lib_powerpc/rlwnm.c
@@ -60,8 +60,7 @@ static struct cpu_post_rlwnm_s
 	0x0000ff00
    },
 };
-static unsigned int cpu_post_rlwnm_size =
-    sizeof (cpu_post_rlwnm_table) / sizeof (struct cpu_post_rlwnm_s);
+static unsigned int cpu_post_rlwnm_size = ARRAY_SIZE(cpu_post_rlwnm_table);
 
 int cpu_post_test_rlwnm (void)
 {
diff --git a/post/lib_powerpc/srawi.c b/post/lib_powerpc/srawi.c
index be153aded21fa9f4e2685a22834022066e534c25..90a1e4daaddf0e7864220cbd6346878463791cf6 100644
--- a/post/lib_powerpc/srawi.c
+++ b/post/lib_powerpc/srawi.c
@@ -61,8 +61,7 @@ static struct cpu_post_srawi_s
 	0xf0000000
     },
 };
-static unsigned int cpu_post_srawi_size =
-    sizeof (cpu_post_srawi_table) / sizeof (struct cpu_post_srawi_s);
+static unsigned int cpu_post_srawi_size = ARRAY_SIZE(cpu_post_srawi_table);
 
 int cpu_post_test_srawi (void)
 {
diff --git a/post/lib_powerpc/store.c b/post/lib_powerpc/store.c
index 1956f6baa3b0df549d22cfaf17a918d7c4818335..441389cf4f1a0570458c01de9bc0bfd1e1180f9b 100644
--- a/post/lib_powerpc/store.c
+++ b/post/lib_powerpc/store.c
@@ -156,8 +156,7 @@ static struct cpu_post_store_s
 	0xff
     },
 };
-static unsigned int cpu_post_store_size =
-    sizeof (cpu_post_store_table) / sizeof (struct cpu_post_store_s);
+static unsigned int cpu_post_store_size = ARRAY_SIZE(cpu_post_store_table);
 
 int cpu_post_test_store (void)
 {
diff --git a/post/lib_powerpc/three.c b/post/lib_powerpc/three.c
index 7f8c1e2b8644c04c2ea2b0b8ea04e08bfc2271cd..4391386df1b0350cf05f589480a5f760daece99f 100644
--- a/post/lib_powerpc/three.c
+++ b/post/lib_powerpc/three.c
@@ -155,8 +155,7 @@ static struct cpu_post_three_s
 	0x40
     },
 };
-static unsigned int cpu_post_three_size =
-    sizeof (cpu_post_three_table) / sizeof (struct cpu_post_three_s);
+static unsigned int cpu_post_three_size = ARRAY_SIZE(cpu_post_three_table);
 
 int cpu_post_test_three (void)
 {
diff --git a/post/lib_powerpc/threei.c b/post/lib_powerpc/threei.c
index 31953f93543498f1f9d84748001c16ca947af5d5..95b6322687ce6e573d2a3dbd83d631341663da1a 100644
--- a/post/lib_powerpc/threei.c
+++ b/post/lib_powerpc/threei.c
@@ -75,8 +75,7 @@ static struct cpu_post_threei_s
 	0xffff8000
     },
 };
-static unsigned int cpu_post_threei_size =
-    sizeof (cpu_post_threei_table) / sizeof (struct cpu_post_threei_s);
+static unsigned int cpu_post_threei_size = ARRAY_SIZE(cpu_post_threei_table);
 
 int cpu_post_test_threei (void)
 {
diff --git a/post/lib_powerpc/threex.c b/post/lib_powerpc/threex.c
index 350a12ae78ca56726870078415d31e915df86fc9..7769218ba9ebf5777d77c02057b5e61b6168688c 100644
--- a/post/lib_powerpc/threex.c
+++ b/post/lib_powerpc/threex.c
@@ -125,8 +125,7 @@ static struct cpu_post_threex_s
 	0x1000
     },
 };
-static unsigned int cpu_post_threex_size =
-    sizeof (cpu_post_threex_table) / sizeof (struct cpu_post_threex_s);
+static unsigned int cpu_post_threex_size = ARRAY_SIZE(cpu_post_threex_table);
 
 int cpu_post_test_threex (void)
 {
diff --git a/post/lib_powerpc/two.c b/post/lib_powerpc/two.c
index 2b111472b6ecfcafe8922043499ca5da38e54fa2..7f0888029a4dfca7405af922014367447d821bf5 100644
--- a/post/lib_powerpc/two.c
+++ b/post/lib_powerpc/two.c
@@ -81,8 +81,7 @@ static struct cpu_post_two_s
 	~5
     },
 };
-static unsigned int cpu_post_two_size =
-    sizeof (cpu_post_two_table) / sizeof (struct cpu_post_two_s);
+static unsigned int cpu_post_two_size = ARRAY_SIZE(cpu_post_two_table);
 
 int cpu_post_test_two (void)
 {
diff --git a/post/lib_powerpc/twox.c b/post/lib_powerpc/twox.c
index d6714f9861c18998c642f92f47967faccce71c7a..88140bf2f5082511c5eb046782728e4952185927 100644
--- a/post/lib_powerpc/twox.c
+++ b/post/lib_powerpc/twox.c
@@ -81,8 +81,7 @@ static struct cpu_post_twox_s
 	12
     },
 };
-static unsigned int cpu_post_twox_size =
-    sizeof (cpu_post_twox_table) / sizeof (struct cpu_post_twox_s);
+static unsigned int cpu_post_twox_size = ARRAY_SIZE(cpu_post_twox_table);
 
 int cpu_post_test_twox (void)
 {
diff --git a/post/post.c b/post/post.c
index ecea1e13a2fc0d050b5288a1cb4a51783652c390..76602243e70d088ad52e9adc4366ddb8ffc39030 100644
--- a/post/post.c
+++ b/post/post.c
@@ -196,7 +196,7 @@ static void post_get_flags (int *test_flags)
 			 POST_CRITICAL };
 	char *var[] = { "post_poweron", "post_normal", "post_slowtest",
 			"post_critical" };
-	int varnum = sizeof (var) / sizeof (var[0]);
+	int varnum = ARRAY_SIZE(var);
 	char list[128];			/* long enough for POST list */
 	char *name;
 	char *s;
diff --git a/post/tests.c b/post/tests.c
index 5f59fbb27f81a1f54dee2d89c38b8dcbfd95b50d..71437b628d2c6f48a1e61be6839680f935d144ce 100644
--- a/post/tests.c
+++ b/post/tests.c
@@ -305,4 +305,4 @@ struct post_test post_list[] =
 #endif
 };
 
-unsigned int post_list_size = sizeof (post_list) / sizeof (struct post_test);
+unsigned int post_list_size = ARRAY_SIZE(post_list);