[PATCH v2 0/7] Initial steps to constify irq_chip

Christophe JAILLET posted 7 patches 6 days, 8 hours ago
arch/alpha/kernel/irq.c                       |  2 +-
arch/arc/kernel/mcip.c                        |  2 +-
arch/arm/mach-omap2/prm_common.c              |  2 +-
arch/mips/alchemy/devboards/bcsr.c            |  2 +-
arch/powerpc/kvm/book3s_hv.c                  |  2 +-
arch/powerpc/platforms/44x/uic.c              |  2 +-
arch/powerpc/platforms/52xx/media5200.c       |  2 +-
arch/powerpc/platforms/85xx/common.c          |  2 +-
arch/powerpc/platforms/85xx/mpc85xx_8259.c    |  2 +-
.../platforms/85xx/socrates_fpga_pic.c        |  2 +-
arch/powerpc/platforms/86xx/pic.c             |  2 +-
arch/powerpc/platforms/chrp/setup.c           |  2 +-
arch/powerpc/platforms/embedded6xx/hlwd-pic.c |  2 +-
arch/powerpc/platforms/embedded6xx/mvme5100.c |  2 +-
arch/powerpc/platforms/pasemi/setup.c         |  2 +-
arch/powerpc/platforms/pseries/setup.c        |  2 +-
arch/powerpc/sysdev/ge/ge_pic.c               |  2 +-
arch/powerpc/sysdev/mpic.c                    |  2 +-
arch/powerpc/sysdev/tsi108_pci.c              |  2 +-
arch/powerpc/sysdev/xics/xics-common.c        |  2 +-
arch/riscv/kernel/sbi-ipi.c                   |  2 +-
arch/sh/boards/mach-se/7343/irq.c             |  2 +-
arch/sh/boards/mach-se/7722/irq.c             |  2 +-
arch/sh/boards/mach-x3proto/gpio.c            |  2 +-
arch/sh/kernel/cpu/irq/ipr.c                  |  2 +-
arch/x86/kernel/apic/io_apic.c                |  2 +-
arch/x86/kernel/irq.c                         |  2 +-
drivers/clocksource/timer-clint.c             |  2 +-
drivers/edac/altera_edac.c                    |  2 +-
drivers/gpio/gpio-altera.c                    |  4 +--
drivers/gpio/gpio-aspeed-sgpio.c              |  2 +-
drivers/gpio/gpio-aspeed.c                    |  2 +-
drivers/gpio/gpio-ath79.c                     |  2 +-
drivers/gpio/gpio-bcm-kona.c                  |  2 +-
drivers/gpio/gpio-blzp1600.c                  |  2 +-
drivers/gpio/gpio-brcmstb.c                   |  2 +-
drivers/gpio/gpio-cadence.c                   |  2 +-
drivers/gpio/gpio-dwapb.c                     |  2 +-
drivers/gpio/gpio-eic-sprd.c                  |  2 +-
drivers/gpio/gpio-ep93xx.c                    |  2 +-
drivers/gpio/gpio-ftgpio010.c                 |  2 +-
drivers/gpio/gpio-hisi.c                      |  2 +-
drivers/gpio/gpio-hlwd.c                      |  2 +-
drivers/gpio/gpio-idt3243x.c                  |  2 +-
drivers/gpio/gpio-loongson-64bit.c            |  2 +-
drivers/gpio/gpio-mpfs.c                      |  2 +-
drivers/gpio/gpio-mvebu.c                     |  2 +-
drivers/gpio/gpio-mxc.c                       |  4 +--
drivers/gpio/gpio-npcm-sgpio.c                |  2 +-
drivers/gpio/gpio-pl061.c                     |  2 +-
drivers/gpio/gpio-rda.c                       |  2 +-
drivers/gpio/gpio-realtek-otto.c              |  2 +-
drivers/gpio/gpio-rockchip.c                  |  2 +-
drivers/gpio/gpio-rtd.c                       |  2 +-
drivers/gpio/gpio-sprd.c                      |  2 +-
drivers/gpio/gpio-tangier.c                   |  2 +-
drivers/gpio/gpio-tegra.c                     |  2 +-
drivers/gpio/gpio-tegra186.c                  |  2 +-
drivers/gpio/gpio-tqmx86.c                    |  2 +-
drivers/gpio/gpio-vf610.c                     |  2 +-
drivers/gpio/gpio-xilinx.c                    |  2 +-
drivers/gpio/gpio-xlp.c                       |  2 +-
drivers/gpio/gpio-zynq.c                      |  2 +-
drivers/gpu/drm/msm/msm_mdss.c                |  2 +-
drivers/gpu/ipu-v3/ipu-common.c               |  4 +--
drivers/iio/adc/stm32-adc-core.c              |  2 +-
drivers/iio/industrialio-trigger.c            |  4 +--
drivers/irqchip/exynos-combiner.c             |  4 +--
drivers/irqchip/irq-aclint-sswi.c             |  2 +-
drivers/irqchip/irq-al-fic.c                  |  2 +-
drivers/irqchip/irq-armada-370-xp.c           |  2 +-
drivers/irqchip/irq-aspeed-i2c-ic.c           |  2 +-
drivers/irqchip/irq-aspeed-scu-ic.c           |  4 +--
drivers/irqchip/irq-ast2700-intc1.c           |  2 +-
drivers/irqchip/irq-ath79-misc.c              |  2 +-
drivers/irqchip/irq-bcm2836.c                 |  2 +-
drivers/irqchip/irq-bcm6345-l1.c              |  2 +-
drivers/irqchip/irq-bcm7038-l1.c              |  2 +-
drivers/irqchip/irq-bcm7120-l2.c              |  2 +-
drivers/irqchip/irq-brcmstb-l2.c              |  2 +-
drivers/irqchip/irq-dw-apb-ictl.c             |  2 +-
drivers/irqchip/irq-econet-en751221.c         |  2 +-
drivers/irqchip/irq-gic.c                     |  2 +-
drivers/irqchip/irq-goldfish-pic.c            |  2 +-
drivers/irqchip/irq-idt3243x.c                |  2 +-
drivers/irqchip/irq-imx-mu-msi.c              |  2 +-
drivers/irqchip/irq-ingenic-tcu.c             |  2 +-
drivers/irqchip/irq-lan966x-oic.c             |  2 +-
drivers/irqchip/irq-loongarch-avec.c          |  2 +-
drivers/irqchip/irq-loongson-eiointc.c        |  2 +-
drivers/irqchip/irq-loongson-htpic.c          |  2 +-
drivers/irqchip/irq-loongson-htvec.c          |  2 +-
drivers/irqchip/irq-loongson-liointc.c        |  2 +-
drivers/irqchip/irq-loongson-pch-lpc.c        |  2 +-
drivers/irqchip/irq-lpc32xx.c                 |  2 +-
drivers/irqchip/irq-ls1x.c                    |  2 +-
drivers/irqchip/irq-mmp.c                     |  2 +-
drivers/irqchip/irq-mscc-ocelot.c             |  2 +-
drivers/irqchip/irq-mvebu-pic.c               |  2 +-
drivers/irqchip/irq-mvebu-sei.c               |  2 +-
drivers/irqchip/irq-pruss-intc.c              |  2 +-
drivers/irqchip/irq-realtek-rtl.c             |  2 +-
drivers/irqchip/irq-riscv-aplic-direct.c      |  2 +-
drivers/irqchip/irq-riscv-imsic-early.c       |  2 +-
drivers/irqchip/irq-sifive-plic.c             |  4 +--
drivers/irqchip/irq-sp7021-intc.c             |  2 +-
drivers/irqchip/irq-starfive-jhb100-intc.c    |  2 +-
drivers/irqchip/irq-stm32-exti.c              |  2 +-
drivers/irqchip/irq-sunxi-nmi.c               |  2 +-
drivers/irqchip/irq-ts4800.c                  |  2 +-
drivers/irqchip/irq-versatile-fpga.c          |  2 +-
drivers/irqchip/irq-vic.c                     |  2 +-
drivers/irqchip/irq-vt8500.c                  |  2 +-
drivers/irqchip/irq-xilinx-intc.c             |  2 +-
drivers/irqchip/qcom-irq-combiner.c           |  2 +-
drivers/mfd/fsl-imx25-tsadc.c                 |  2 +-
drivers/misc/rp1/rp1_pci.c                    |  2 +-
drivers/pci/controller/dwc/pci-dra7xx.c       |  2 +-
drivers/pci/controller/dwc/pci-keystone.c     |  4 +--
.../pci/controller/dwc/pcie-designware-host.c |  2 +-
drivers/pci/controller/dwc/pcie-dw-rockchip.c |  2 +-
drivers/pci/controller/dwc/pcie-keembay.c     |  2 +-
drivers/pci/controller/dwc/pcie-sophgo.c      |  2 +-
drivers/pci/controller/dwc/pcie-uniphier.c    |  2 +-
.../controller/mobiveil/pcie-mobiveil-host.c  |  2 +-
drivers/pci/controller/pci-ftpci100.c         |  2 +-
drivers/pci/controller/pci-mvebu.c            |  2 +-
drivers/pci/controller/pci-tegra.c            |  2 +-
drivers/pci/controller/pci-xgene-msi.c        |  2 +-
drivers/pci/controller/pcie-altera-msi.c      |  2 +-
drivers/pci/controller/pcie-altera.c          |  4 +--
drivers/pci/controller/pcie-apple.c           |  2 +-
drivers/pci/controller/pcie-brcmstb.c         |  2 +-
drivers/pci/controller/pcie-iproc-msi.c       |  2 +-
drivers/pci/controller/pcie-mediatek-gen3.c   |  2 +-
drivers/pci/controller/pcie-mediatek.c        |  2 +-
drivers/pci/controller/pcie-rockchip-host.c   |  2 +-
drivers/pci/controller/pcie-rzg3s-host.c      |  2 +-
drivers/pci/controller/pcie-xilinx-cpm.c      |  4 +--
drivers/pci/controller/pcie-xilinx-nwl.c      |  6 ++---
drivers/pci/controller/plda/pcie-plda-host.c  |  6 ++---
drivers/pinctrl/actions/pinctrl-owl.c         |  2 +-
drivers/pinctrl/bcm/pinctrl-bcm2835.c         |  2 +-
drivers/pinctrl/bcm/pinctrl-iproc-gpio.c      |  2 +-
drivers/pinctrl/intel/pinctrl-baytrail.c      |  2 +-
drivers/pinctrl/intel/pinctrl-cherryview.c    |  2 +-
drivers/pinctrl/intel/pinctrl-lynxpoint.c     |  2 +-
drivers/pinctrl/mediatek/mtk-eint.c           |  2 +-
drivers/pinctrl/mvebu/pinctrl-armada-37xx.c   |  2 +-
drivers/pinctrl/nuvoton/pinctrl-ma35.c        |  2 +-
drivers/pinctrl/nuvoton/pinctrl-npcm7xx.c     |  2 +-
drivers/pinctrl/nuvoton/pinctrl-npcm8xx.c     |  2 +-
drivers/pinctrl/nuvoton/pinctrl-wpcm450.c     |  2 +-
drivers/pinctrl/pinctrl-apple-gpio.c          |  2 +-
drivers/pinctrl/pinctrl-at91-pio4.c           |  2 +-
drivers/pinctrl/pinctrl-at91.c                |  2 +-
drivers/pinctrl/pinctrl-equilibrium.c         |  2 +-
drivers/pinctrl/pinctrl-ingenic.c             |  2 +-
drivers/pinctrl/pinctrl-keembay.c             |  2 +-
drivers/pinctrl/pinctrl-microchip-sgpio.c     |  2 +-
drivers/pinctrl/pinctrl-ocelot.c              |  4 +--
drivers/pinctrl/pinctrl-pic32.c               |  2 +-
drivers/pinctrl/pinctrl-pistachio.c           |  2 +-
drivers/pinctrl/pinctrl-rp1.c                 |  2 +-
drivers/pinctrl/pinctrl-single.c              |  2 +-
drivers/pinctrl/pinctrl-st.c                  |  4 +--
drivers/pinctrl/qcom/pinctrl-msm.c            |  2 +-
drivers/pinctrl/samsung/pinctrl-exynos.c      | 14 +++++------
drivers/pinctrl/samsung/pinctrl-s3c64xx.c     |  4 +--
drivers/pinctrl/spear/pinctrl-plgpio.c        |  2 +-
.../starfive/pinctrl-starfive-jh7100.c        |  2 +-
.../starfive/pinctrl-starfive-jh7110-aon.c    |  2 +-
.../starfive/pinctrl-starfive-jh7110-sys.c    |  2 +-
drivers/pinctrl/sunxi/pinctrl-sunxi.c         |  2 +-
drivers/sh/intc/core.c                        |  4 +--
drivers/sh/intc/internals.h                   |  2 +-
drivers/sh/intc/virq.c                        |  2 +-
drivers/soc/fsl/qe/qe_ic.c                    |  6 ++---
drivers/spmi/spmi-mtk-pmif.c                  |  2 +-
drivers/spmi/spmi-pmic-arb.c                  |  2 +-
include/linux/irq.h                           |  6 ++---
include/linux/irqchip/chained_irq.h           |  4 +--
include/linux/irqdesc.h                       |  4 +--
kernel/irq/chip.c                             | 25 ++++++++++---------
kernel/irq/cpuhotplug.c                       |  2 +-
kernel/irq/debugfs.c                          |  2 +-
kernel/irq/ipi.c                              |  4 +--
kernel/irq/kexec.c                            |  2 +-
kernel/irq/manage.c                           | 22 ++++++++--------
kernel/irq/migration.c                        |  2 +-
190 files changed, 243 insertions(+), 242 deletions(-)
[PATCH v2 0/7] Initial steps to constify irq_chip
Posted by Christophe JAILLET 6 days, 8 hours ago
This v2 is related to an old v1 from 11/2024. [0]
The goal of this v2 is to address the comment made on patch 4/5. It
was asked to make a treewide update using a coccinelle script.

So, better late that never, here it is.

 * * * * * * * * * * * * * * * * * *
 
Struct irq_chip holds many function pointers and so, is a good
candidate for constification.


Some steps to constify these structures have already been done in 2022
with commit 393e1280f765 ("genirq: Allow irq_chip registration functions
to take a const irq_chip") and ef6e5d61eb7a ("genirq: Allow
irq_set_chip_handler_name_locked() to take a const irq_chip")

However these commits introduce some ugly casting to store some const
parameters into non-const struct members. [1] [2]

The goal of this serie is to remove these cast and have a cleaner and
safer API.

It will need to constify the return value of irq_get_chip(),
irq_data_get_irq_chip() and irq_desc_get_chip() which are widely used.


Patch 1, 2 and 3 only update the prototypes of some functions and
should be straightforward.
They could be applied even in case of comment/build failure in the
other patches.

Patch 4 and 5 update files that do not match the coccinelle script that
does most of the job.

Pacth 6 is generated by coccinelle. It does 99% of the upgrade.
The script is included.

Finaly, patch 7 correctly constify the 'chip' field in struct irq_data,
update corresponding asseccors and remove the now useless cast in
irq_set_chip_handler_name_locked() and irq_set_chip().


This has been 95% build-tested on x86.
So it is likely that some corner cases will be spotted by build-bots
on other architectures.
Sorry about that, but I don't have enough cycles on my personnal
machine to cross-build the serie on different architecture.

CJ

[0]: https://lore.kernel.org/all/cover.1731835733.git.christophe.jaillet@wanadoo.fr/
[1]: https://elixir.bootlin.com/linux/v7.1-rc5/source/kernel/irq/chip.c#L48
[2]: https://elixir.bootlin.com/linux/v7.1-rc5/source/include/linux/irqdesc.h#L250
[3]: https://elixir.bootlin.com/linux/v7.1-rc5/A/ident/irq_chip


Christophe JAILLET (7):
  irqchip: Constify "struct irq_chip *" parameter in chained_irq_xxx()
    functions
  irqchip: Constify "struct irq_chip *" parameter in cond_xxx_eoi_irq()
  pinctrl: samsung: Constify "struct irq_chip *" parameter in
    to_exynos_irq_chip()
  irqchip: Constify some struct irq_chip *
  x86/irq: Constify a struct irq_chip *
  treewide: Constify some struct irq_chip *
  genirq/chip: Constify the 'chip' field in irq_data

 arch/alpha/kernel/irq.c                       |  2 +-
 arch/arc/kernel/mcip.c                        |  2 +-
 arch/arm/mach-omap2/prm_common.c              |  2 +-
 arch/mips/alchemy/devboards/bcsr.c            |  2 +-
 arch/powerpc/kvm/book3s_hv.c                  |  2 +-
 arch/powerpc/platforms/44x/uic.c              |  2 +-
 arch/powerpc/platforms/52xx/media5200.c       |  2 +-
 arch/powerpc/platforms/85xx/common.c          |  2 +-
 arch/powerpc/platforms/85xx/mpc85xx_8259.c    |  2 +-
 .../platforms/85xx/socrates_fpga_pic.c        |  2 +-
 arch/powerpc/platforms/86xx/pic.c             |  2 +-
 arch/powerpc/platforms/chrp/setup.c           |  2 +-
 arch/powerpc/platforms/embedded6xx/hlwd-pic.c |  2 +-
 arch/powerpc/platforms/embedded6xx/mvme5100.c |  2 +-
 arch/powerpc/platforms/pasemi/setup.c         |  2 +-
 arch/powerpc/platforms/pseries/setup.c        |  2 +-
 arch/powerpc/sysdev/ge/ge_pic.c               |  2 +-
 arch/powerpc/sysdev/mpic.c                    |  2 +-
 arch/powerpc/sysdev/tsi108_pci.c              |  2 +-
 arch/powerpc/sysdev/xics/xics-common.c        |  2 +-
 arch/riscv/kernel/sbi-ipi.c                   |  2 +-
 arch/sh/boards/mach-se/7343/irq.c             |  2 +-
 arch/sh/boards/mach-se/7722/irq.c             |  2 +-
 arch/sh/boards/mach-x3proto/gpio.c            |  2 +-
 arch/sh/kernel/cpu/irq/ipr.c                  |  2 +-
 arch/x86/kernel/apic/io_apic.c                |  2 +-
 arch/x86/kernel/irq.c                         |  2 +-
 drivers/clocksource/timer-clint.c             |  2 +-
 drivers/edac/altera_edac.c                    |  2 +-
 drivers/gpio/gpio-altera.c                    |  4 +--
 drivers/gpio/gpio-aspeed-sgpio.c              |  2 +-
 drivers/gpio/gpio-aspeed.c                    |  2 +-
 drivers/gpio/gpio-ath79.c                     |  2 +-
 drivers/gpio/gpio-bcm-kona.c                  |  2 +-
 drivers/gpio/gpio-blzp1600.c                  |  2 +-
 drivers/gpio/gpio-brcmstb.c                   |  2 +-
 drivers/gpio/gpio-cadence.c                   |  2 +-
 drivers/gpio/gpio-dwapb.c                     |  2 +-
 drivers/gpio/gpio-eic-sprd.c                  |  2 +-
 drivers/gpio/gpio-ep93xx.c                    |  2 +-
 drivers/gpio/gpio-ftgpio010.c                 |  2 +-
 drivers/gpio/gpio-hisi.c                      |  2 +-
 drivers/gpio/gpio-hlwd.c                      |  2 +-
 drivers/gpio/gpio-idt3243x.c                  |  2 +-
 drivers/gpio/gpio-loongson-64bit.c            |  2 +-
 drivers/gpio/gpio-mpfs.c                      |  2 +-
 drivers/gpio/gpio-mvebu.c                     |  2 +-
 drivers/gpio/gpio-mxc.c                       |  4 +--
 drivers/gpio/gpio-npcm-sgpio.c                |  2 +-
 drivers/gpio/gpio-pl061.c                     |  2 +-
 drivers/gpio/gpio-rda.c                       |  2 +-
 drivers/gpio/gpio-realtek-otto.c              |  2 +-
 drivers/gpio/gpio-rockchip.c                  |  2 +-
 drivers/gpio/gpio-rtd.c                       |  2 +-
 drivers/gpio/gpio-sprd.c                      |  2 +-
 drivers/gpio/gpio-tangier.c                   |  2 +-
 drivers/gpio/gpio-tegra.c                     |  2 +-
 drivers/gpio/gpio-tegra186.c                  |  2 +-
 drivers/gpio/gpio-tqmx86.c                    |  2 +-
 drivers/gpio/gpio-vf610.c                     |  2 +-
 drivers/gpio/gpio-xilinx.c                    |  2 +-
 drivers/gpio/gpio-xlp.c                       |  2 +-
 drivers/gpio/gpio-zynq.c                      |  2 +-
 drivers/gpu/drm/msm/msm_mdss.c                |  2 +-
 drivers/gpu/ipu-v3/ipu-common.c               |  4 +--
 drivers/iio/adc/stm32-adc-core.c              |  2 +-
 drivers/iio/industrialio-trigger.c            |  4 +--
 drivers/irqchip/exynos-combiner.c             |  4 +--
 drivers/irqchip/irq-aclint-sswi.c             |  2 +-
 drivers/irqchip/irq-al-fic.c                  |  2 +-
 drivers/irqchip/irq-armada-370-xp.c           |  2 +-
 drivers/irqchip/irq-aspeed-i2c-ic.c           |  2 +-
 drivers/irqchip/irq-aspeed-scu-ic.c           |  4 +--
 drivers/irqchip/irq-ast2700-intc1.c           |  2 +-
 drivers/irqchip/irq-ath79-misc.c              |  2 +-
 drivers/irqchip/irq-bcm2836.c                 |  2 +-
 drivers/irqchip/irq-bcm6345-l1.c              |  2 +-
 drivers/irqchip/irq-bcm7038-l1.c              |  2 +-
 drivers/irqchip/irq-bcm7120-l2.c              |  2 +-
 drivers/irqchip/irq-brcmstb-l2.c              |  2 +-
 drivers/irqchip/irq-dw-apb-ictl.c             |  2 +-
 drivers/irqchip/irq-econet-en751221.c         |  2 +-
 drivers/irqchip/irq-gic.c                     |  2 +-
 drivers/irqchip/irq-goldfish-pic.c            |  2 +-
 drivers/irqchip/irq-idt3243x.c                |  2 +-
 drivers/irqchip/irq-imx-mu-msi.c              |  2 +-
 drivers/irqchip/irq-ingenic-tcu.c             |  2 +-
 drivers/irqchip/irq-lan966x-oic.c             |  2 +-
 drivers/irqchip/irq-loongarch-avec.c          |  2 +-
 drivers/irqchip/irq-loongson-eiointc.c        |  2 +-
 drivers/irqchip/irq-loongson-htpic.c          |  2 +-
 drivers/irqchip/irq-loongson-htvec.c          |  2 +-
 drivers/irqchip/irq-loongson-liointc.c        |  2 +-
 drivers/irqchip/irq-loongson-pch-lpc.c        |  2 +-
 drivers/irqchip/irq-lpc32xx.c                 |  2 +-
 drivers/irqchip/irq-ls1x.c                    |  2 +-
 drivers/irqchip/irq-mmp.c                     |  2 +-
 drivers/irqchip/irq-mscc-ocelot.c             |  2 +-
 drivers/irqchip/irq-mvebu-pic.c               |  2 +-
 drivers/irqchip/irq-mvebu-sei.c               |  2 +-
 drivers/irqchip/irq-pruss-intc.c              |  2 +-
 drivers/irqchip/irq-realtek-rtl.c             |  2 +-
 drivers/irqchip/irq-riscv-aplic-direct.c      |  2 +-
 drivers/irqchip/irq-riscv-imsic-early.c       |  2 +-
 drivers/irqchip/irq-sifive-plic.c             |  4 +--
 drivers/irqchip/irq-sp7021-intc.c             |  2 +-
 drivers/irqchip/irq-starfive-jhb100-intc.c    |  2 +-
 drivers/irqchip/irq-stm32-exti.c              |  2 +-
 drivers/irqchip/irq-sunxi-nmi.c               |  2 +-
 drivers/irqchip/irq-ts4800.c                  |  2 +-
 drivers/irqchip/irq-versatile-fpga.c          |  2 +-
 drivers/irqchip/irq-vic.c                     |  2 +-
 drivers/irqchip/irq-vt8500.c                  |  2 +-
 drivers/irqchip/irq-xilinx-intc.c             |  2 +-
 drivers/irqchip/qcom-irq-combiner.c           |  2 +-
 drivers/mfd/fsl-imx25-tsadc.c                 |  2 +-
 drivers/misc/rp1/rp1_pci.c                    |  2 +-
 drivers/pci/controller/dwc/pci-dra7xx.c       |  2 +-
 drivers/pci/controller/dwc/pci-keystone.c     |  4 +--
 .../pci/controller/dwc/pcie-designware-host.c |  2 +-
 drivers/pci/controller/dwc/pcie-dw-rockchip.c |  2 +-
 drivers/pci/controller/dwc/pcie-keembay.c     |  2 +-
 drivers/pci/controller/dwc/pcie-sophgo.c      |  2 +-
 drivers/pci/controller/dwc/pcie-uniphier.c    |  2 +-
 .../controller/mobiveil/pcie-mobiveil-host.c  |  2 +-
 drivers/pci/controller/pci-ftpci100.c         |  2 +-
 drivers/pci/controller/pci-mvebu.c            |  2 +-
 drivers/pci/controller/pci-tegra.c            |  2 +-
 drivers/pci/controller/pci-xgene-msi.c        |  2 +-
 drivers/pci/controller/pcie-altera-msi.c      |  2 +-
 drivers/pci/controller/pcie-altera.c          |  4 +--
 drivers/pci/controller/pcie-apple.c           |  2 +-
 drivers/pci/controller/pcie-brcmstb.c         |  2 +-
 drivers/pci/controller/pcie-iproc-msi.c       |  2 +-
 drivers/pci/controller/pcie-mediatek-gen3.c   |  2 +-
 drivers/pci/controller/pcie-mediatek.c        |  2 +-
 drivers/pci/controller/pcie-rockchip-host.c   |  2 +-
 drivers/pci/controller/pcie-rzg3s-host.c      |  2 +-
 drivers/pci/controller/pcie-xilinx-cpm.c      |  4 +--
 drivers/pci/controller/pcie-xilinx-nwl.c      |  6 ++---
 drivers/pci/controller/plda/pcie-plda-host.c  |  6 ++---
 drivers/pinctrl/actions/pinctrl-owl.c         |  2 +-
 drivers/pinctrl/bcm/pinctrl-bcm2835.c         |  2 +-
 drivers/pinctrl/bcm/pinctrl-iproc-gpio.c      |  2 +-
 drivers/pinctrl/intel/pinctrl-baytrail.c      |  2 +-
 drivers/pinctrl/intel/pinctrl-cherryview.c    |  2 +-
 drivers/pinctrl/intel/pinctrl-lynxpoint.c     |  2 +-
 drivers/pinctrl/mediatek/mtk-eint.c           |  2 +-
 drivers/pinctrl/mvebu/pinctrl-armada-37xx.c   |  2 +-
 drivers/pinctrl/nuvoton/pinctrl-ma35.c        |  2 +-
 drivers/pinctrl/nuvoton/pinctrl-npcm7xx.c     |  2 +-
 drivers/pinctrl/nuvoton/pinctrl-npcm8xx.c     |  2 +-
 drivers/pinctrl/nuvoton/pinctrl-wpcm450.c     |  2 +-
 drivers/pinctrl/pinctrl-apple-gpio.c          |  2 +-
 drivers/pinctrl/pinctrl-at91-pio4.c           |  2 +-
 drivers/pinctrl/pinctrl-at91.c                |  2 +-
 drivers/pinctrl/pinctrl-equilibrium.c         |  2 +-
 drivers/pinctrl/pinctrl-ingenic.c             |  2 +-
 drivers/pinctrl/pinctrl-keembay.c             |  2 +-
 drivers/pinctrl/pinctrl-microchip-sgpio.c     |  2 +-
 drivers/pinctrl/pinctrl-ocelot.c              |  4 +--
 drivers/pinctrl/pinctrl-pic32.c               |  2 +-
 drivers/pinctrl/pinctrl-pistachio.c           |  2 +-
 drivers/pinctrl/pinctrl-rp1.c                 |  2 +-
 drivers/pinctrl/pinctrl-single.c              |  2 +-
 drivers/pinctrl/pinctrl-st.c                  |  4 +--
 drivers/pinctrl/qcom/pinctrl-msm.c            |  2 +-
 drivers/pinctrl/samsung/pinctrl-exynos.c      | 14 +++++------
 drivers/pinctrl/samsung/pinctrl-s3c64xx.c     |  4 +--
 drivers/pinctrl/spear/pinctrl-plgpio.c        |  2 +-
 .../starfive/pinctrl-starfive-jh7100.c        |  2 +-
 .../starfive/pinctrl-starfive-jh7110-aon.c    |  2 +-
 .../starfive/pinctrl-starfive-jh7110-sys.c    |  2 +-
 drivers/pinctrl/sunxi/pinctrl-sunxi.c         |  2 +-
 drivers/sh/intc/core.c                        |  4 +--
 drivers/sh/intc/internals.h                   |  2 +-
 drivers/sh/intc/virq.c                        |  2 +-
 drivers/soc/fsl/qe/qe_ic.c                    |  6 ++---
 drivers/spmi/spmi-mtk-pmif.c                  |  2 +-
 drivers/spmi/spmi-pmic-arb.c                  |  2 +-
 include/linux/irq.h                           |  6 ++---
 include/linux/irqchip/chained_irq.h           |  4 +--
 include/linux/irqdesc.h                       |  4 +--
 kernel/irq/chip.c                             | 25 ++++++++++---------
 kernel/irq/cpuhotplug.c                       |  2 +-
 kernel/irq/debugfs.c                          |  2 +-
 kernel/irq/ipi.c                              |  4 +--
 kernel/irq/kexec.c                            |  2 +-
 kernel/irq/manage.c                           | 22 ++++++++--------
 kernel/irq/migration.c                        |  2 +-
 190 files changed, 243 insertions(+), 242 deletions(-)

-- 
2.54.0
Re: [PATCH v2 0/7] Initial steps to constify irq_chip
Posted by Thomas Gleixner 5 days, 7 hours ago
Christophe!

On Mon, Jun 01 2026 at 22:19, Christophe JAILLET wrote:
> This has been 95% build-tested on x86.
> So it is likely that some corner cases will be spotted by build-bots
> on other architectures.
> Sorry about that, but I don't have enough cycles on my personnal
> machine to cross-build the serie on different architecture.

I've applied it to my devel tree, so the robots can chew on it.

    git://git.kernel.org/pub/scm/linux/kernel/git/tglx/devel.git irq/constify

If there is fallout you should get a nice mail from them.

Thanks,

        tglx