scripts: coccinelle: allow list_entry_is_head() to use pos

Currently use_after_iter.cocci generates false positives for code of the
following form:
	list_for_each_entry(d, &ddata->irq_list, node) {
		if (irq == d->irq)

	if (list_entry_is_head(d, &ddata->irq_list, node))
		return IRQ_NONE;
[This specific example comes from drivers/power/supply/cpcap-battery.c]

Most list macros use list_entry_is_head() as loop exit condition meaning it
is not unsafe to reuse pos (a.k.a. d) in the code above.

Let's avoid reporting these cases.

Signed-off-by: Daniel Thompson <>
Signed-off-by: Julia Lawall <>
1 file changed