irqchip/gic-v5: iwb: Fix iounmap probe failure path

The 0-day bot reported that on the failure path the driver iounmap()s IWB
resources that are managed through devm_ioremap(), which is clearly wrong
because the driver would end up unmapping the MMIO resource twice on
probing failure.

Fix this by removing the error path altogether and by letting devres manage
the iounmapping on clean-up.

Fixes: 695949d8b16f ("irqchip/gic-v5: Add GICv5 IWB support")
Reported-by: kernel test robot <lkp@intel.com>
Signed-off-by: Lorenzo Pieralisi <lpieralisi@kernel.org>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Reviewed-by: Marc Zyngier <maz@kernel.org>
Link: https://lore.kernel.org/all/20250801-gic-v5-fixes-6-17-v1-1-4fcedaccf9e6@kernel.org
Closes: https://lore.kernel.org/oe-kbuild-all/202508010038.N3r4ZmII-lkp@intel.com

authored by Lorenzo Pieralisi and committed by Thomas Gleixner a8913d54 3c3d7dba

+2 -9
+2 -9
drivers/irqchip/irq-gic-v5-iwb.c
··· 241 struct gicv5_iwb_chip_data *iwb_node; 242 void __iomem *iwb_base; 243 struct resource *res; 244 - int ret; 245 246 res = platform_get_resource(pdev, IORESOURCE_MEM, 0); 247 if (!res) ··· 253 } 254 255 iwb_node = gicv5_iwb_init_bases(iwb_base, pdev); 256 - if (IS_ERR(iwb_node)) { 257 - ret = PTR_ERR(iwb_node); 258 - goto out_unmap; 259 - } 260 261 return 0; 262 - 263 - out_unmap: 264 - iounmap(iwb_base); 265 - return ret; 266 } 267 268 static const struct of_device_id gicv5_iwb_of_match[] = {
··· 241 struct gicv5_iwb_chip_data *iwb_node; 242 void __iomem *iwb_base; 243 struct resource *res; 244 245 res = platform_get_resource(pdev, IORESOURCE_MEM, 0); 246 if (!res) ··· 254 } 255 256 iwb_node = gicv5_iwb_init_bases(iwb_base, pdev); 257 + if (IS_ERR(iwb_node)) 258 + return PTR_ERR(iwb_node); 259 260 return 0; 261 } 262 263 static const struct of_device_id gicv5_iwb_of_match[] = {