From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (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 04278248F47 for ; Tue, 16 Dec 2025 09:28:08 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1765877289; cv=none; b=Q2PNVunmItrHQzT2+o9X1i3IDd20cf9CAOzDm5VXFxpnYbqytsYhwRL7F97xSiGWeXKFvoSB05212fM725wCzz6pWcu0EgmvfSZj875Wz7GR3TdXvoATbt9zaTqqyicBjBx4NLu5WgwciexPJ4nPlhYvxglM9bqY1XQAEdzj6Ac= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1765877289; c=relaxed/simple; bh=nskcN7+91SwtgZwPitOrm1ZJ0MeQwA3xHMNEFW8+0oY=; h=Message-ID:Date:MIME-Version:Subject:To:References:From: In-Reply-To:Content-Type; b=eubLJn5OiD41i9gJlRj9exFVQ8Ss1JDdfu5mTC2H+9TOEcqNlg4n2nyFSw6Pt3YZXae3DN810HSAD+Prj3v8KvLZSuztaM89rT6rj49pMgzF9/NlO+WBaaotSYCB2Nl3CBKSrePqKp38awu1LSAN63DU7LiaIqovaRKZb4QCvKs= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=sWRkCu9N; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="sWRkCu9N" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 50C02C4CEF1; Tue, 16 Dec 2025 09:27:59 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1765877288; bh=nskcN7+91SwtgZwPitOrm1ZJ0MeQwA3xHMNEFW8+0oY=; h=Date:Subject:To:References:From:In-Reply-To:From; b=sWRkCu9NOgjPX6PNLc8hQbcOAZYgA8KLJlG7Si2JGSSTZ8YYXl6NZdRTjutUC6oU9 iXFTseEBFKZd0zEnk3sSFPyxaM/oDTiYAUxTxluTcZJeaUE0+TEfIPbcppgL/PyNSl 6bqUwev1dpznsxBkgwIqWNYlhh8BW7PD1TIIP3BqG+8ND6YFcg/wgXgavowJAm9ODf fwzpjSHZSvSIBMkuRDz1wHWUZu+vgXYGnD/2CTYu+5f/0Pt0G0CjKzJ+pFCgTtRr1A n4GuCBASCZkULN9uitTBDXcD0jYcgnYEb/ZEvf8YYDF1LmbX0p9Gcvo71pg5KgnKdT IstK6WR+LQU6g== Message-ID: Date: Tue, 16 Dec 2025 10:27:55 +0100 Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: [PATCH v2 2/8] powerpc: Prepare to build with generic entry/exit framework To: Mukesh Kumar Chaurasiya , maddy@linux.ibm.com, mpe@ellerman.id.au, npiggin@gmail.com, oleg@redhat.com, kees@kernel.org, luto@amacapital.net, wad@chromium.org, mchauras@linux.ibm.com, thuth@redhat.com, sshegde@linux.ibm.com, charlie@rivosinc.com, macro@orcam.me.uk, akpm@linux-foundation.org, ldv@strace.io, deller@gmx.de, ankur.a.arora@oracle.com, segher@kernel.crashing.org, tglx@linutronix.de, thomas.weissschuh@linutronix.de, peterz@infradead.org, menglong8.dong@gmail.com, bigeasy@linutronix.de, namcao@linutronix.de, kan.liang@linux.intel.com, mingo@kernel.org, atrajeev@linux.vnet.ibm.com, mark.barnett@arm.com, linuxppc-dev@lists.ozlabs.org, linux-kernel@vger.kernel.org References: <20251214130245.43664-1-mkchauras@linux.ibm.com> <20251214130245.43664-3-mkchauras@linux.ibm.com> Content-Language: fr-FR From: "Christophe Leroy (CS GROUP)" In-Reply-To: <20251214130245.43664-3-mkchauras@linux.ibm.com> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit Le 14/12/2025 à 14:02, Mukesh Kumar Chaurasiya a écrit : > From: Mukesh Kumar Chaurasiya > > This patch introduces preparatory changes needed to support building > PowerPC with the generic entry/exit (irqentry) framework. > > The following infrastructure updates are added: > - Add a syscall_work field to struct thread_info to hold SYSCALL_WORK_* flags. > - Provide a stub implementation of arch_syscall_is_vdso_sigreturn(), > returning false for now. > - Introduce on_thread_stack() helper to detect if the current stack pointer > lies within the task’s kernel stack. > > These additions enable later integration with the generic entry/exit > infrastructure while keeping existing PowerPC behavior unchanged. > > No functional change is intended in this patch. > > Signed-off-by: Mukesh Kumar Chaurasiya > --- > arch/powerpc/include/asm/entry-common.h | 11 +++++++++++ > arch/powerpc/include/asm/stacktrace.h | 6 ++++++ > arch/powerpc/include/asm/syscall.h | 5 +++++ > arch/powerpc/include/asm/thread_info.h | 1 + > 4 files changed, 23 insertions(+) > create mode 100644 arch/powerpc/include/asm/entry-common.h > > diff --git a/arch/powerpc/include/asm/entry-common.h b/arch/powerpc/include/asm/entry-common.h > new file mode 100644 > index 000000000000..3af16d821d07 > --- /dev/null > +++ b/arch/powerpc/include/asm/entry-common.h > @@ -0,0 +1,11 @@ > +/* SPDX-License-Identifier: GPL-2.0 */ > + > +#ifndef _ASM_PPC_ENTRY_COMMON_H > +#define _ASM_PPC_ENTRY_COMMON_H > + > +#ifdef CONFIG_GENERIC_IRQ_ENTRY Why do you need this #ifdef ? I see no reason, the build works well without this #ifdef. At the time being, CONFIG_GENERIC_IRQ_ENTRY is never selected by powerpc, meaning you are introducing dead code. If really needed it would be more explicit to add a "#if 0" > + > +#include > + > +#endif /* CONFIG_GENERIC_IRQ_ENTRY */ > +#endif /* _ASM_PPC_ENTRY_COMMON_H */ > diff --git a/arch/powerpc/include/asm/stacktrace.h b/arch/powerpc/include/asm/stacktrace.h > index 6149b53b3bc8..a81a9373d723 100644 > --- a/arch/powerpc/include/asm/stacktrace.h > +++ b/arch/powerpc/include/asm/stacktrace.h > @@ -10,4 +10,10 @@ > > void show_user_instructions(struct pt_regs *regs); > > +static inline bool on_thread_stack(void) Shouldn't it be __always_inline ? > +{ > + return !(((unsigned long)(current->stack) ^ current_stack_pointer) > + & ~(THREAD_SIZE - 1)); > +} > + > #endif /* _ASM_POWERPC_STACKTRACE_H */ > diff --git a/arch/powerpc/include/asm/syscall.h b/arch/powerpc/include/asm/syscall.h > index 4b3c52ed6e9d..834fcc4f7b54 100644 > --- a/arch/powerpc/include/asm/syscall.h > +++ b/arch/powerpc/include/asm/syscall.h > @@ -139,4 +139,9 @@ static inline int syscall_get_arch(struct task_struct *task) > else > return AUDIT_ARCH_PPC64; > } > + > +static inline bool arch_syscall_is_vdso_sigreturn(struct pt_regs *regs) > +{ > + return false; > +} > #endif /* _ASM_SYSCALL_H */ > diff --git a/arch/powerpc/include/asm/thread_info.h b/arch/powerpc/include/asm/thread_info.h > index b0f200aba2b3..9c8270354f0b 100644 > --- a/arch/powerpc/include/asm/thread_info.h > +++ b/arch/powerpc/include/asm/thread_info.h > @@ -57,6 +57,7 @@ struct thread_info { > #ifdef CONFIG_SMP > unsigned int cpu; > #endif > + unsigned long syscall_work; /* SYSCALL_WORK_ flags */ This is not used, why add it here ? > unsigned long local_flags; /* private flags for thread */ > #ifdef CONFIG_LIVEPATCH_64 > unsigned long *livepatch_sp;