Re: [cocci] [v2] scripts/coccinelle: Add script for using ARRAY_END()

Alejandro Colomar <[email protected]> Mon, 16 Mar 2026 11:39:33 +0100
Newsgroups fr.inria.cocci,org.kernel.vger.kernel-janitors,org.kernel.vger.linux-kernel
Message-ID <abfdDqYbRWZ6UNjB@devuan>
Hi Markus,

On 2026-03-16T08:18:17+0100, Markus Elfring wrote:
[...]
> …
> > 	+++ b/arch/powerpc/kernel/rtas.c
> > 	@@ -555,10 +555,8 @@ static struct rtas_function rtas_function_table[] __ro_after_init = {
> > 		},
> > 	 };
> > 	 
> > 	-#define for_each_rtas_function(funcp)                                       \
> > 	-       for (funcp = &rtas_function_table[0];                               \
> > 	-            funcp < &rtas_function_table[ARRAY_SIZE(rtas_function_table)]; \
> > 	-            ++funcp)
> > 	+#define for_each_rtas_function(f)                                     \
> > 	+       for (f = rtas_function_table; f < ARRAY_END(rtas_function_table); ++f)
> 
> Are there development challenges to reconsider for macro definitions?

I've seen cases within macros that were correctly reported, so it's not
an issue with macros.

> …
> > 	+++ b/drivers/net/wireless/intel/iwlwifi/mei/net.c
> > 	@@ -43,7 +43,7 @@ static bool iwl_mei_rx_filter_eth(const struct ethhdr *ethhdr,
> > 			return false;
> > 	 
> > 		for (filt = &filters->eth_filters[0];
> > 	-            filt < &filters->eth_filters[0] + ARRAY_SIZE(filters->eth_filters);
> > 	+            filt < ARRAY_END(filters->eth_filters);
> > 		     filt++) {
> > 			/* Assume there are no enabled filter after a disabled one */
> > 			if (!(filt->flags & SAP_ETH_FILTER_ENABLED))
> 
> Will any loops become better supported?

I've seen cases within loops that worked correctly, so it's not an issue
with loops.

After debugging like Julia suggested, it was indeed what Julia guessed:
some files can't be parsed correctly, at places unrelated to this.
There's nothing we can do to improve the patch.


Have a lovely day!
Alex

-- 
<https://www.alejandro-colomar.es>
signature.asc (application/pgp-signature, 833 B)
-----BEGIN PGP SIGNATURE-----

iQIzBAABCgAdFiEES7Jt9u9GbmlWADAi64mZXMKQwqkFAmm33d4ACgkQ64mZXMKQ
wqm3Ig//VTIw0MfrevcDnVojqpoLgYkgVu5sSa9BFr8xaGHqsLg5A8aj6JkgUOL4
keVhKsFy3nNNTmCHeEYSj2zcjkeFFbTfqv9ZmT5BoPRhSMsVji2IkhG7IR9mkK6a
XV5Dx+ZZEAWuPu9ydJc5tDsHVViqP9FXsR4WQTYoYiQ57M55GugWByEuS11M1U6z
q8OU92MZAoJbRClRNJp+095JAlIb455mJcK1Mhn50bgaIAAnkMJAg/8XsQa3vpN2
QokH0+QC75lLdNz7tA8ho/8gm6Y6020SEdFCuFjnD1M+DxY5cI2nOtsVnAph5qXj
Pm8mgsDsmK4UwnEDGX5VJNIzoUCIZfE6Bmk+2Lgm5kOZakDT8fDMOe9jYysIrvDx
i/V8T3WLU35C3D3nW6UHvybE7ODe0xkwX+8eHqCSTXJwrxDlEhq73dyl2fHURcKW
UkANszES1VStZV5eieT5gc5bWZKYuFCGyWj8v5a2NKgOvGzjVLQ4aYbhQDWv3E/h
NZM1lz/tgfHnrUBH2FmuEFBoNZa441uyWot1Cn4n13chtW8YdOGxVvHQ854QlPRS
nZgSPSU3EpzgQ3fO3RZ0pd4NShLkuEc5COAtdi75HjVygQVls8nQ8x+1FoW6HZZJ
89p+M0FaUopvATfko7CeWzyrTSO0ytgiSgI+A0mxiibnfWt9TZE=
=u7B5
-----END PGP SIGNATURE-----