From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from smtpbg150.qq.com (smtpbg150.qq.com [18.132.163.193]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 5D7EA3F1678 for ; Mon, 27 Jul 2026 10:44:04 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=18.132.163.193 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1785149047; cv=none; b=CqICsj3mPSM5jhirxgWE5zkeoiV8SdrA6Pjd8Dubv49BT87Ng/PgEjWnI/IVZZhqDSQ7bhix6e3NUg+69ULo+kkkLfNsxBNao+hoJ+yiaR4NmbcPXy0eAMEY4+jjFW0rePXfvAI7BSFSr6dVe6+p4PHB+1gGUlsq1iwe60Gl/8g= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1785149047; c=relaxed/simple; bh=cLhV+GrELQ5gtsjXqS497duBqomQE4wC5DycpzbPEZQ=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version:Content-Type; b=ii/IrVk8DpxD0/+vYXtBi27v0yGLDJlSlWZ4mQlxZB2B4BBbdkyqjZy0hm7FKKk91nnkJzSs/iKdfoZ0SXIGCcVCxnCYAOqaxSTDw9ZsoznZLaKSXkCuFaosQtkAez93+N1bFrhjHq6eX/wCuEqSpBtesows5jL6/k0YSAq63/U= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=uniontech.com; spf=pass smtp.mailfrom=uniontech.com; dkim=pass (1024-bit key) header.d=uniontech.com header.i=@uniontech.com header.b=o2L/Sjeg; arc=none smtp.client-ip=18.132.163.193 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=uniontech.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=uniontech.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=uniontech.com header.i=@uniontech.com header.b="o2L/Sjeg" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=uniontech.com; s=onoh2408; t=1785148971; bh=TXa6iFdMkvlwp3XxdegWSZVS0vNsS7U8uR7PamDNfBc=; h=From:To:Subject:Date:Message-Id:MIME-Version; b=o2L/SjegmCuU/jHzT+DLTrhbEb+Sf+AWuXIKg0IqC2ST5lNak96SL6V9aKZ89F5vw Q8Yo+2inKIfC24x0jsOVdSjRv3QnEoEKUBw0HMpK4723LfwkFvz0sZCgTZM0rH+PGT bJqeg4evyDobPtU1l+YdEQ1aywQyb/+w0ZHQZEHU= X-QQ-mid: zesmtpip2t1785148958t77f18cea X-QQ-Originating-IP: DKnJpBwcQH+bUEQJ3OJTc88fsyuu7uMlWVo5/kgJZf4= Received: from localhost.localdomain ( [localhost]) by bizesmtp.qq.com (ESMTP) with id ; Mon, 27 Jul 2026 18:42:36 +0800 (CST) X-QQ-SSF: 0000000000000000000000000000000 X-QQ-GoodBg: 1 X-BIZMAIL-ID: 13927317821740604240 EX-QQ-RecipientCnt: 21 From: Gou Hao To: maddy@linux.ibm.com, mpe@ellerman.id.au, npiggin@gmail.com, chleroy@kernel.org, namcao@linutronix.de, peterz@infradead.org, sshegde@linux.ibm.com, kees@kernel.org, lgs201920130244@gmail.com, srikar@linux.ibm.com, ynorov@nvidia.com, nilay@linux.ibm.com, clg@kaod.org, benh@kernel.crashing.org, miltonm@bga.com, mkchauras@gmail.com, akpm@linux-foundation.org Cc: linuxppc-dev@lists.ozlabs.org, linux-kernel@vger.kernel.org, gouhaojake@163.com, kernel@uniontech.com Subject: [PATCH v3 4/5] powerpc/xive: defer setting cause_ipi until IPI init succeeds Date: Mon, 27 Jul 2026 18:42:14 +0800 Message-Id: <20260727104215.184786-5-gouhao@uniontech.com> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20260727104215.184786-1-gouhao@uniontech.com> References: <20260727104215.184786-1-gouhao@uniontech.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-QQ-SENDSIZE: 520 Feedback-ID: zesmtpip:uniontech.com:qybglogicsvrgz:qybglogicsvrgz5b-2 X-QQ-XMAILINFO: OZsapEVPoiO6vl4D7iNur1jeHluKsabaKvdQOE6J3hTXUQQRT9HCscuF rWPCXjaeQ/93En/MIyskwkNYmd+svwFqDdmZqhRGSL67cLt7ypMRhtcU48CMqQErGg7lLhU 7/g7JqQ/oOQGY7tiVGc+i/B+HIlsHVCutegAJ1krfBHWElJKYdPBydnK0jdObtTMaY3/gH/ pMgYurNfC/1fIEWQQoKaMUE2DFRYGiC0NbqpCTHP5LPcdc9U2THENsKZ5ONkfXMPdjed4KZ FtQ/h9be60XUcKMU3DQnebXYHjxdibf2c5meMV20VOXZ7Fu5yAEnnnD8DbJXoiJ7KUYxTtd 8slBH4oHoxWLc2mHSuPMoORzexx6jXPk4VDiYMclf/XLQalIbpdYcwjokX61xSU6EDHNwfy 8l79v4R+yB5vH4WuUJnyO67wFRhmsaNCPA2nj0kz0YDyQIYvpkQI6oylylMN2rvPHTBKILP 2hAg475crjdygpjSeftoEw06iCLrjqRZa9N88ECZFiEv0qEU1cSe1U2Sf38+m1ri50psUd9 cWPpkF5j1dPxiVssmRRGNQSqgqCwg2S7XW4r+ibjaxRQqLJ5mNa2SamkVRNvYSqIf358I87 m33QUtTVZxak0Oj5dsLiNBuowWBVuApk/qJO27RVpS1tpu4SgAtKnlKqhwy+bkvzzNxSgDc dQmexWXIed6Xs/jSAhxfdF9XKIQJVF8lils/kOFHpN4jy2x2YE/BOHncuuZ5o3wxsSL/ZGo f6v9Ginu/9lc9XpA0GAE4u0wbTiOGJyAOmbaln09LafwTYlQMNjxecs34kZad5JGe0yJlaS kipg81xAPQyXAqpy6oHL9OkDXTrFTm8DnjMTibHjba4J1opsF60PsJkPVGoSTEdjy1uPJRs 3v0iJrOPPjs01A2Ejs0x6pqO/geSnGc+SOXZh/Dvwv1k54X5faR1tGMM4Ic5WkQLPT2/AGk dJybefpzPuOCQtl9SpgtTSUn/2XCr4tBiW2KpPNaDwDjgPVEjGOm+j0E/F8ixe/LNOhw794 lfndZL+RzqmOLJGWDfyGGGL5I9Im6OKkeBuAcxv0XJYC5A9jIj X-QQ-XMRINFO: OWPUhxQsoeAVwkVaQIEGSKwwgKCxK/fD5g== X-QQ-RECHKSPAM: 0 xive_smp_probe() currently assigns smp_ops->cause_ipi = xive_cause_ipi before calling xive_init_ipis() and xive_setup_cpu_ipi(). If either call fails, the platform probe handler returns early but cause_ipi remains pointing to xive_cause_ipi -- which accesses per-cpu IPI data (xc->ipi_data) that was never properly initialized, leading to a WARN and a crash. Move the cause_ipi assignment to after both calls succeed, so that smp_ops->cause_ipi is only set when the IPI subsystem is fully initialized. Signed-off-by: Gou Hao Suggested-by: Cédric Le Goater Reviewed-by: jiazhenyuan --- arch/powerpc/sysdev/xive/common.c | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/arch/powerpc/sysdev/xive/common.c b/arch/powerpc/sysdev/xive/common.c index bbe7c85274ea..8ae088632337 100644 --- a/arch/powerpc/sysdev/xive/common.c +++ b/arch/powerpc/sysdev/xive/common.c @@ -1269,15 +1269,19 @@ int __init xive_smp_probe(void) { int ret; - smp_ops->cause_ipi = xive_cause_ipi; - /* Register the IPI */ ret = xive_init_ipis(); if (ret < 0) return ret; /* Allocate and setup IPI for the boot CPU */ - return xive_setup_cpu_ipi(smp_processor_id()); + ret = xive_setup_cpu_ipi(smp_processor_id()); + if (ret < 0) + return ret; + + smp_ops->cause_ipi = xive_cause_ipi; + + return 0; } #endif /* CONFIG_SMP */ -- 2.20.1