Re: [PATCH v2 1/6] powerpc/xive: remove dead NULL check after GFP_NOFAIL allocation
Cédric Le Goater <[email protected]> Sun, 26 Jul 2026 19:04:25 +0200
| Newsgroups | org.kernel.vger.linux-rdma,org.kernel.vger.linux-kernel,org.kvack.linux-mm,org.ozlabs.lists.linuxppc-dev |
|---|---|
| Message-ID | <[email protected]> |
As suggested by Andrew, let's change the approach and remove entirely __GFP_NOFAIL instead and make all xive_ipis access paths NULL-safe. On 7/24/26 04:28, Gou Hao wrote: > kzalloc_objs with the __GFP_NOFAIL flag will never return NULL, so the > subsequent NULL check is unreachable dead code. Remove it. > > Signed-off-by: Gou Hao <[email protected]> > Reviewed-by: Wentao Guan <[email protected]> > Reviewed-by: jiazhenyuan <[email protected]> > --- > arch/powerpc/sysdev/xive/common.c | 5 +---- > 1 file changed, 1 insertion(+), 4 deletions(-) > > diff --git a/arch/powerpc/sysdev/xive/common.c b/arch/powerpc/sysdev/xive/common.c > index dadd1f46ec939..f2904a5c2b7bf 100644 > --- a/arch/powerpc/sysdev/xive/common.c > +++ b/arch/powerpc/sysdev/xive/common.c > @@ -1134,9 +1134,6 @@ static int __init xive_init_ipis(void) > > xive_ipis = kzalloc_objs(*xive_ipis, nr_node_ids, > GFP_KERNEL | __GFP_NOFAIL); So let's remove __GFP_NOFAIL here. > - if (!xive_ipis) > - goto out_free_domain; > - Let's keep it now that allocation can really fail. > for_each_node(node) {> struct xive_ipi_desc *xid = &xive_ipis[node]; > struct xive_ipi_alloc_info info = { node }; > @@ -1158,7 +1155,7 @@ static int __init xive_init_ipis(void) > > out_free_xive_ipis: > kfree(xive_ipis); > -out_free_domain: and keep the out_free_domain label > + xive_ipis = NULL; and yes we should add 'xive_ipis = NULL;' > irq_domain_remove(ipi_domain); > out_free_fwnode: > irq_domain_free_fwnode(fwnode); The prepare_cpu() path is broken. To fix, we need to check xive_ipis is not NULL in xive_setup_cpu_ipi() and xive_cleanup_cpu_ipi(). It should be a straight forward local change. Nothing complex. You can test with QEMU. The pSeries and the PowerNV machines are well supported under emulation. Ping me if you need help. Thanks, C.