[PATCH 0/8] cocci: Do not initialize variable used by *FOREACH*() macro

Philippe Mathieu-Daudé posted 8 patches 1 month, 2 weeks ago
Patches applied successfully (tree, apply log)
git fetch https://github.com/patchew-project/qemu tags/patchew/20260415215539.92629-1-philmd@linaro.org
Maintainers: Kevin Wolf <kwolf@redhat.com>, Hanna Reitz <hreitz@redhat.com>, Stefan Hajnoczi <stefanha@redhat.com>, Jason Wang <jasowang@redhat.com>, Andrew Melnychenko <andrew@daynix.com>, Yuri Benditovich <yuri.benditovich@daynix.com>, Peter Maydell <peter.maydell@linaro.org>, Shannon Zhao <shannon.zhaosl@gmail.com>, "Michael S. Tsirkin" <mst@redhat.com>, Igor Mammedov <imammedo@redhat.com>, Ani Sinha <anisinha@redhat.com>, Stefano Stabellini <sstabellini@kernel.org>, Anthony PERARD <anthony@xenproject.org>, "Edgar E. Iglesias" <edgar.iglesias@gmail.com>, Marcel Apfelbaum <marcel.apfelbaum@gmail.com>, Paolo Bonzini <pbonzini@redhat.com>, Richard Henderson <richard.henderson@linaro.org>, "Philippe Mathieu-Daudé" <philmd@linaro.org>, Nicholas Piggin <npiggin@gmail.com>, Harsh Prateek Bora <harshpb@linux.ibm.com>, Palmer Dabbelt <palmer@dabbelt.com>, Alistair Francis <alistair.francis@wdc.com>, Weiwei Li <liwei1518@gmail.com>, Daniel Henrique Barboza <daniel.barboza@oss.qualcomm.com>, Liu Zhiwei <zhiwei_liu@linux.alibaba.com>, Chao Liu <chao.liu.zevorn@gmail.com>, Peter Xu <peterx@redhat.com>, Fabiano Rosas <farosas@suse.de>, Mark Kanda <mark.kanda@oracle.com>, Ben Chaney <bchaney@akamai.com>, Alex Williamson <alex@shazbot.org>, "Cédric Le Goater" <clg@redhat.com>, Eric Blake <eblake@redhat.com>, Vladimir Sementsov-Ogievskiy <vsementsov@yandex-team.ru>, John Snow <jsnow@redhat.com>, Hyman Huang <yong.huang@smartx.com>, Zhang Chen <zhangckid@gmail.com>, Li Zhijian <lizhijian@fujitsu.com>, Aurelien Jarno <aurelien@aurel32.net>, Jiaxun Yang <jiaxun.yang@flygoat.com>, Aleksandar Rikalo <arikalo@gmail.com>, Gautam Gala <ggala@linux.ibm.com>, Halil Pasic <pasic@linux.ibm.com>, Christian Borntraeger <borntraeger@linux.ibm.com>, Eric Farman <farman@linux.ibm.com>, Matthew Rosato <mjrosato@linux.ibm.com>, Cornelia Huck <cohuck@redhat.com>, Ilya Leoshkevich <iii@linux.ibm.com>, David Hildenbrand <david@kernel.org>
target/mips/internal.h              | 11 ++++++-----
block/blkdebug.c                    |  2 +-
block/blkio.c                       |  2 +-
block/gluster.c                     |  4 ++--
ebpf/ebpf.c                         |  2 +-
hw/arm/virt-acpi-build.c            |  2 +-
hw/i386/xen/xen-hvm.c               |  4 ++--
hw/misc/mips_cpc.c                  |  4 ++--
hw/ppc/spapr.c                      |  2 +-
hw/ppc/spapr_events.c               |  4 ++--
hw/riscv/boot.c                     |  9 +++++----
hw/riscv/riscv-iommu.c              |  2 +-
hw/vfio/cpr-legacy.c                |  2 +-
hw/vfio/listener.c                  |  4 ++--
hw/xen/xen_pt_config_init.c         |  4 ++--
migration/block-dirty-bitmap.c      |  2 +-
migration/dirtyrate.c               |  4 ++--
net/colo-compare.c                  |  4 ++--
net/net.c                           |  2 +-
target/mips/tcg/system/cp0_helper.c | 28 ++++++++++++++++------------
target/mips/tcg/system/tlb_helper.c |  7 +++----
target/s390x/kvm/stsi-topology.c    |  2 +-
22 files changed, 56 insertions(+), 51 deletions(-)
[PATCH 0/8] cocci: Do not initialize variable used by *FOREACH*() macro
Posted by Philippe Mathieu-Daudé 1 month, 2 weeks ago
Most of our *FOREACH*() macros take a pointer argument,
then assign it upon entry before iterating. Thus there
is no need to initialize the variable used as argument.
But sometimes we do, which is confusing (for example
&first_cpu). This series uses a Coccinelle script to
clean these unnecessary usages. (and 2 bonus cleanup
patches at the end).

Philippe Mathieu-Daudé (8):
  cocci: Do not initialize variable used by QLIST_FOREACH macro
  cocci: Do not initialize variable used by QSLIST_FOREACH macro
  cocci: Do not initialize variable used by QSIMPLEQ_FOREACH macro
  cocci: Do not initialize variable used by QTAILQ_FOREACH macro
  cocci: Do not initialize variable used by RAMBLOCK_FOREACH* macro
  cocci: Do not initialize variable used by CPU_FOREACH macro
  target/mips: Reduce CPUState scope when used with CPU_FOREACH()
  target/riscv: Iterate vCPUs using CPU_FOREACH() macro

 target/mips/internal.h              | 11 ++++++-----
 block/blkdebug.c                    |  2 +-
 block/blkio.c                       |  2 +-
 block/gluster.c                     |  4 ++--
 ebpf/ebpf.c                         |  2 +-
 hw/arm/virt-acpi-build.c            |  2 +-
 hw/i386/xen/xen-hvm.c               |  4 ++--
 hw/misc/mips_cpc.c                  |  4 ++--
 hw/ppc/spapr.c                      |  2 +-
 hw/ppc/spapr_events.c               |  4 ++--
 hw/riscv/boot.c                     |  9 +++++----
 hw/riscv/riscv-iommu.c              |  2 +-
 hw/vfio/cpr-legacy.c                |  2 +-
 hw/vfio/listener.c                  |  4 ++--
 hw/xen/xen_pt_config_init.c         |  4 ++--
 migration/block-dirty-bitmap.c      |  2 +-
 migration/dirtyrate.c               |  4 ++--
 net/colo-compare.c                  |  4 ++--
 net/net.c                           |  2 +-
 target/mips/tcg/system/cp0_helper.c | 28 ++++++++++++++++------------
 target/mips/tcg/system/tlb_helper.c |  7 +++----
 target/s390x/kvm/stsi-topology.c    |  2 +-
 22 files changed, 56 insertions(+), 51 deletions(-)

-- 
2.53.0


Re: [PATCH 0/8] cocci: Do not initialize variable used by *FOREACH*() macro
Posted by Philippe Mathieu-Daudé 3 weeks, 3 days ago
> Philippe Mathieu-Daudé (8):
>    cocci: Do not initialize variable used by QLIST_FOREACH macro
>    cocci: Do not initialize variable used by QSLIST_FOREACH macro
>    cocci: Do not initialize variable used by QSIMPLEQ_FOREACH macro
>    cocci: Do not initialize variable used by QTAILQ_FOREACH macro
>    cocci: Do not initialize variable used by RAMBLOCK_FOREACH* macro
>    cocci: Do not initialize variable used by CPU_FOREACH macro
>    target/mips: Reduce CPUState scope when used with CPU_FOREACH()
>    target/riscv: Iterate vCPUs using CPU_FOREACH() macro

Series queued, thanks.

Re: [PATCH 0/8] cocci: Do not initialize variable used by *FOREACH*() macro
Posted by Pierrick Bouvier 1 month, 2 weeks ago
On 4/15/2026 2:55 PM, Philippe Mathieu-Daudé wrote:
> Most of our *FOREACH*() macros take a pointer argument,
> then assign it upon entry before iterating. Thus there
> is no need to initialize the variable used as argument.
> But sometimes we do, which is confusing (for example
> &first_cpu). This series uses a Coccinelle script to
> clean these unnecessary usages. (and 2 bonus cleanup
> patches at the end).
> 
> Philippe Mathieu-Daudé (8):
>    cocci: Do not initialize variable used by QLIST_FOREACH macro
>    cocci: Do not initialize variable used by QSLIST_FOREACH macro
>    cocci: Do not initialize variable used by QSIMPLEQ_FOREACH macro
>    cocci: Do not initialize variable used by QTAILQ_FOREACH macro
>    cocci: Do not initialize variable used by RAMBLOCK_FOREACH* macro
>    cocci: Do not initialize variable used by CPU_FOREACH macro
>    target/mips: Reduce CPUState scope when used with CPU_FOREACH()
>    target/riscv: Iterate vCPUs using CPU_FOREACH() macro
> 
>   target/mips/internal.h              | 11 ++++++-----
>   block/blkdebug.c                    |  2 +-
>   block/blkio.c                       |  2 +-
>   block/gluster.c                     |  4 ++--
>   ebpf/ebpf.c                         |  2 +-
>   hw/arm/virt-acpi-build.c            |  2 +-
>   hw/i386/xen/xen-hvm.c               |  4 ++--
>   hw/misc/mips_cpc.c                  |  4 ++--
>   hw/ppc/spapr.c                      |  2 +-
>   hw/ppc/spapr_events.c               |  4 ++--
>   hw/riscv/boot.c                     |  9 +++++----
>   hw/riscv/riscv-iommu.c              |  2 +-
>   hw/vfio/cpr-legacy.c                |  2 +-
>   hw/vfio/listener.c                  |  4 ++--
>   hw/xen/xen_pt_config_init.c         |  4 ++--
>   migration/block-dirty-bitmap.c      |  2 +-
>   migration/dirtyrate.c               |  4 ++--
>   net/colo-compare.c                  |  4 ++--
>   net/net.c                           |  2 +-
>   target/mips/tcg/system/cp0_helper.c | 28 ++++++++++++++++------------
>   target/mips/tcg/system/tlb_helper.c |  7 +++----
>   target/s390x/kvm/stsi-topology.c    |  2 +-
>   22 files changed, 56 insertions(+), 51 deletions(-)
> 

For the series:
Reviewed-by: Pierrick Bouvier <pierrick.bouvier@oss.qualcomm.com>