On 2/1/22 13:31, Christophe JAILLET wrote:
'xive_irq_bitmap_add()' can return -ENOMEM. In this case, we should free the memory already allocated and return 'false' to the caller. Also add an error path which undoes the 'tima = ioremap(...)' Signed-off-by: Christophe JAILLET <christophe.jaillet@xxxxxxxxxx>
Reviewed-by: Cédric Le Goater <clg@xxxxxxxx>
--- NOT compile tested (I don't have a cross compiler and won't install one). So if some correction or improvement are needed, feel free to propose and commit it directly.
A cross compiler takes a couple of seconds to install on any distro. It takes a little more to compile the pseries defconfig. To test with QEMU, grab the disk image here : https://github.com/legoater/qemu-ppc-boot/blob/main/buildroot/qemu_ppc64le_pseries-2021.11-7-g3058e75456-20211206 run : qemu-system-ppc64 -M pseries -cpu POWER9 -kernel vmlinux -append "console=hvc0 rootwait root=/dev/sda" -drive file=rootfs.ext2,if=scsi,index=0,format=raw -nographic -net nic -net user -serial mon:stdio and you will have a pseries machine with network and disk using the XIVE interrupt controller. To get more info on the genirq layer and the XIVE driver, simply append : dyndbg="file arch/powerpc/sysdev/xive/* +p; file kernel/irq/* +p" Thanks, C.