Avoid duplication in future patch that will define the ppc64_personality
syscall handler in terms of the SYSCALL_DEFINE and COMPAT_SYSCALL_DEFINE
macros, by extracting the common body of ppc64_personality into a helper
function.
Signed-off-by: Rohan McLure
Reviewed-by: Nicholas Piggin
---
V3
' on static mmap helper.
Signed-off-by: Rohan McLure
Reviewed-by: Nicholas Piggin
---
V2: Move mmap2 compat implementation to asm/kernel/syscalls.c.
V4: Move to be applied before syscall wrapper introduced.
V5: Remove 'inline' in helper.
---
arch/powerpc/kernel/sys_ppc32.c | 9 -
arch/powerpc
inline helper in .
Signed-off-by: Rohan McLure
Reviewed-by: Nicholas Piggin
---
V2: Use inline helper to deduplicate bodies in compat/regular
implementations.
V4: Move to be applied before syscall wrapper.
---
arch/powerpc/kernel/syscalls.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff
both
implement this syscall with oldselect semantics.
Remove the powerpc implementation, and update syscall.tbl to refer to emit
a reference to sys_old_select and compat_sys_old_select
for 32-bit binaries, in keeping with how other architectures support
syscall #82.
Signed-off-by: Rohan McLure
ll replace more architecture-defined syscall
handlers with generic implementations, dependent on introducing generic
implementations that are compatible with powerpc and arm's parameter
reorderings.
Reported-by: Arnd Bergmann
Signed-off-by: Rohan McLure
Reviewed-by: Arnd Bergmann
---
V2: Remove arc
supporting big endianness may benefit from reciprocal
argument translation, but are welcome also to implement their own.
Signed-off-by: Rohan McLure
Reviewed-by: Nicholas Piggin
Reviewed-by: Arnd Bergmann
---
V5: New patch.
---
include/asm-generic/compat.h | 9 +++--
1 file changed, 7 insert
...@www.fastmail.com/
Fixes: 57f48b4b74e7 ("powerpc/compat_sys: swap hi/lo parts of 64-bit syscall
args in LE mode")
Reported-by: Arnd Bergmann
Signed-off-by: Rohan McLure
Reviewed-by: Arnd Bergmann
Reviewed-by: Nicholas Piggin
---
V5: New patch.
---
arch/powerpc/include/asm/sysca
where
r11-r12 are saved to the PACA.
Signed-off-by: Rohan McLure
Reported-by: Nicholas Piggin
Reviewed-by: Nicholas Piggin
---
V2: Given its own commit
V3: Annotate r11-r12 save locations with comment.
---
arch/powerpc/kernel/exceptions-64s.S | 4 ++--
1 file changed, 2 insertions(+), 2 deletions
of SAVE_GPRS targetting all non-volatile
registers to SAVE_NVGPRS.
Signed-off-by: Rohan Mclure
Reported-by: Nicholas Piggin
Reviewed-by: Nicholas Piggin
---
V4: New commit.
V6: Split REST_GPRS(0, 1, r1) to remove dependence on macro
implementation ordering the r0 restore before r1 restore.
---
arch
is not consumed earlier in the handler code.
Signed-off-by: Rohan McLure
Reported-by: Christophe Leroy
Reviewed-by: Nicholas Piggin
---
V3: New patch.
V4: Minimise restores in the unrecoverable window between
restoring SRR0/1 and return from interrupt.
---
arch/powerpc/kernel/entry_32.S | 33
handlers, user register state is
sometimes juggled between registers. Hold-off from issuing the SAVE_GPR
macro for applicable neighbouring lines to highlight the delicate
register save logic.
Signed-off-by: Rohan McLure
Reviewed-by: Nicholas Piggin
---
V2: Update summary
V3: Update summary regarding
restore and save macros, and usage
of zeroize to describe this operation elsewhere in the kernel.
Signed-off-by: Rohan McLure
Reviewed-by: Nicholas Piggin
---
V2: Change 'ZERO' usage in naming to 'NULLIFY', a more obvious verb
V3: Change 'NULLIFY' usage in naming to 'ZEROIZE', which has
ent
3cc ("powerpc/syscall: implement system call entry/exit
logic in C for PPC32") when 32-bit adopted system_call_exception. Revert
its removal of orig_r3 saves.
Signed-off-by: Rohan McLure
Reviewed-by: Nicholas Piggin
---
V3: New commit.
V5: New commit message, as we do more than just revert
ge provide far from complete support for C++ toolchains, and so
the macro serves no purpose in powerpc.
Remove all invocations of asmlinkage in arch/powerpc. These incidentally
only occur in syscall definitions and prototypes.
Signed-off-by: Rohan McLure
Reviewed-by: Nicholas Piggin
Reviewed-
.
- Remove extraneous clears of the high-order words of syscall
parameters, which is now redundant thanks to use of
COMPAT_SYSCALL_DEFINE everywhere.
Rohan McLure (25):
powerpc: Remove asmlinkage from syscall handler definitions
powerpc: Save caller r3 prior to system_call_exception
> On 20 Sep 2022, at 2:54 pm, Rohan McLure wrote:
>
>> On 20 Sep 2022, at 12:03 pm, Nicholas Piggin wrote:
>>
>> On Fri Sep 16, 2022 at 3:32 PM AEST, Rohan McLure wrote:
>>> Clear user state in gprs (assign to zero) to reduce the influence of user
>>&
> On 20 Sep 2022, at 11:59 am, Nicholas Piggin wrote:
>
> On Fri Sep 16, 2022 at 3:32 PM AEST, Rohan McLure wrote:
>> Implement syscall wrapper as per s390, x86, arm64. When enabled
>> cause handlers to accept parameters from a stack frame rather than
>> from
> On 20 Sep 2022, at 12:03 pm, Nicholas Piggin wrote:
>
> On Fri Sep 16, 2022 at 3:32 PM AEST, Rohan McLure wrote:
>> Clear user state in gprs (assign to zero) to reduce the influence of user
>> registers on speculation within kernel syscall handlers. Clears occur
>
> On 16 Sep 2022, at 3:32 pm, Rohan McLure wrote:
>
> V4 available here:
>
> Link:
> https://lore.kernel.org/all/20220824020548.62625-1-rmcl...@linux.ibm.com/
>
> Implement a syscall wrapper, causing arguments to handlers to be passed
> via a struct pt_regs on the
> On 16 Sep 2022, at 3:32 pm, Rohan McLure wrote:
>
> Arch-specific implementations of syscall handlers are currently used
> over generic implementations for the following reasons:
>
> 1. Semantics unique to powerpc
> 2. Compatibility syscalls require 'argument padding'
hether non-syscall interrupts should clear registers is now
configurable by INTERRUPT_SANITIZE_REGISTERS.
Rohan McLure (23):
powerpc: Remove asmlinkage from syscall handler definitions
powerpc: Save caller r3 prior to system_call_exception
powerpc: Add ZEROIZE_GPRS macros for register
inline helper in .
Signed-off-by: Rohan McLure
Reviewed-by: Nicholas Piggin
---
V1 -> V2: Use inline helper to deduplicate bodies in compat/regular
implementations.
V3 -> V4: Move to be applied before syscall wrapper.
---
arch/powerpc/kernel/syscalls.c | 2 +-
1 file changed, 1 insertion
-by: Rohan McLure
---
V1 -> V2: Update summary
V2 -> V3: Remove erroneous summary paragraph on syscall_exit_prepare
V3 -> V4: Use ZEROIZE instead of NULLIFY. Clear r0 also.
V4 -> V5: Move to end of patch series.
---
arch/powerpc/kernel/interrupt_64.S | 9 ++---
1 file changed, 6 inse
both
implement this syscall with oldselect semantics.
Remove the powerpc implementation, and update syscall.tbl to refer to emit
a reference to sys_old_select and compat_sys_old_select
for 32-bit binaries, in keeping with how other architectures support
syscall #82.
Signed-off-by: Rohan McLure
where
r11-r12 are saved to the PACA.
Signed-off-by: Rohan McLure
Reported-by: Nicholas Piggin
---
V1 -> V2: Given its own commit
V2 -> V3: Annotate r11-r12 save locations with comment.
---
arch/powerpc/kernel/exceptions-64s.S | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff
, through the
__ARCH_WANT_COMPAT_SYS_... convention.
Signed-off-by: Rohan McLure
---
V1 -> V2: All syscall handlers wrapped by this macro.
V2 -> V3: Move creation of do_ppc64_personality helper to prior patch.
V3 -> V4: Fix parenthesis alignment. Don't emit sys_*** symbols.
V4 -> V5
...@www.fastmail.com/
Fixes: 57f48b4b74e7 ("powerpc/compat_sys: swap hi/lo parts of 64-bit syscall
args in LE mode")
Reported-by: Arnd Bergmann
Signed-off-by: Rohan McLure
---
V4 -> V5: New patch.
---
arch/powerpc/include/asm/syscalls.h | 12
arch/powerpc/kernel/sys_ppc
/syscalls.h headers for
prototypes.
Reported-by: Arnd Bergmann
Signed-off-by: Rohan McLure
Reported-by: Nicholas Piggin
---
V1 -> V2: New patch.
V4 -> V5: For this patch only, represent handler function pointers as
unsigned long. Remove reference to syscall wrappers. Use asm/syscalls.h
ll replace more architecture-defined syscall
handlers with generic implementations, dependent on introducing generic
implementations that are compatible with powerpc and arm's parameter
reorderings.
Reported-by: Arnd Bergmann
Signed-off-by: Rohan McLure
---
V1 -> V2: Remove arch-specific fallocat
interrupt
handlers. This mitigation is disabled by default, but enabled with
CONFIG_INTERRUPT_SANITIZE_REGISTERS.
Signed-off-by: Rohan McLure
---
V1 -> V2: Add benchmark data
V2 -> V3: Use ZEROIZE_GPR{,S} macro renames, clarify
interrupt_exit_user_prepare changes in summary.
V4 -> V5: Configu
state, meaning that the
mitigation when implemented will have minimal overhead.
Signed-off-by: Rohan McLure
---
V4 -> V5: New patch
---
arch/powerpc/Kconfig | 9 +
1 file changed, 9 insertions(+)
diff --git a/arch/powerpc/Kconfig b/arch/powerpc/Kconfig
index ef6c83e79c9b..a643ebd83
is not consumed earlier in the handler code.
Signed-off-by: Rohan McLure
Reported-by: Christophe Leroy
---
V2 -> V3: New patch.
V3 -> V4: Minimise restores in the unrecoverable window between
restoring SRR0/1 and return from interrupt.
---
arch/powerpc/kernel/entry_32.
3cc ("powerpc/syscall: implement system call entry/exit
logic in C for PPC32") when 32-bit adopted system_call_exception. Revert
its removal of orig_r3 saves.
Signed-off-by: Rohan McLure
Reviewed-by: Nicholas Piggin
---
V2 -> V3: New commit.
V4 -> V5: New commit message, a
handlers, user register state is
sometimes juggled between registers. Hold-off from issuing the SAVE_GPR
macro for applicable neighbouring lines to highlight the delicate
register save logic.
Signed-off-by: Rohan McLure
Reviewed-by: Nicholas Piggin
---
V1 -> V2: Update summary
V2 -> V3: Update s
.
Fixup comparisons in VDSO to avoid pointer-integer comparison. Introduce
explicit cast on systems with SPUs.
Signed-off-by: Rohan McLure
---
V1 -> V2: New patch.
V2 -> V3: Remove unnecessary cast from const syscall_fn to syscall_fn
V4 -> V5: Update patch description.
---
arch/powerpc/in
xed in a successive patch, but requires spu_sys_callback to
allocate a pt_regs structure to satisfy the wrapped calling convention.
Co-developed-by: Andrew Donnellan
Signed-off-by: Andrew Donnellan
Signed-off-by: Rohan McLure
---
V1 -> V2: Generate prototypes for symbols produced by the wrapper.
V2
supporting big endianness may benefit from reciprocal
argument translation, but are welcome also to implement their own.
Signed-off-by: Rohan McLure
---
V4 -> V5: New patch.
---
include/asm-generic/compat.h | 9 +++--
1 file changed, 7 insertions(+), 2 deletions(-)
diff --git a/includ
Avoid duplication in future patch that will define the ppc64_personality
syscall handler in terms of the SYSCALL_DEFINE and COMPAT_SYSCALL_DEFINE
macros, by extracting the common body of ppc64_personality into a helper
function.
Signed-off-by: Rohan McLure
Reviewed-by: Nicholas Piggin
---
V2
of SAVE_GPRS targetting all non-volatile
registers to SAVE_NVGPRS.
Signed-off-by: Rohan Mclure
Reported-by: Nicholas Piggin
---
V3 -> V4: New commit.
---
arch/powerpc/kernel/exceptions-64e.S | 27 +++---
1 file changed, 11 insertions(+), 16 deletions(-)
diff --git a/arch/powe
' on static mmap helper.
Signed-off-by: Rohan McLure
Reviewed-by: Nicholas Piggin
---
V1 -> V2: Move mmap2 compat implementation to asm/kernel/syscalls.c.
V3 -> V4: Move to be applied before syscall wrapper introduced.
V4 -> V5: Remove 'inline' in helper.
---
arch/powerpc/kernel/sys_ppc
ge provide far from complete support for C++ toolchains, and so
the macro serves no purpose in powerpc.
Remove all invocations of asmlinkage in arch/powerpc. These incidentally
only occur in syscall definitions and prototypes.
Signed-off-by: Rohan McLure
Reviewed-by: Nicholas Piggin
Reviewed-
restore and save macros, and usage
of zeroize to describe this operation elsewhere in the kernel.
Signed-off-by: Rohan McLure
Reviewed-by: Nicholas Piggin
---
V1 -> V2: Change 'ZERO' usage in naming to 'NULLIFY', a more obvious verb
V2 -> V3: Change 'NULLIFY' usage in naming to 'ZEROIZE',
handlers are expressed in terms of types in
ppc32.h. Expose this header globally.
Signed-off-by: Rohan McLure
---
V1 -> V2: Explicitly include prototypes.
V2 -> V3: Remove extraneous #include and ppc_fallocate
prototype. Rename header.
V4 -> V5: Clean. Elaborate comment on long long mungin
safely, without loss of register state prior to the
interrupt, as the common prologue saves the initial values of
non-volatiles, which are unconditionally restored in interrupt_64.S.
Mitigation defaults to enabled by INTERRUPT_SANITIZE_REGISTERS.
Signed-off-by: Rohan McLure
---
V3 -> V4: New pa
> On 12 Sep 2022, at 10:15 pm, Nicholas Piggin wrote:
>
> On Wed Aug 24, 2022 at 12:05 PM AEST, Rohan McLure wrote:
>> Zero GPRS r0, r2-r11, r14-r31, on entry into the kernel for all
>> other interrupt sources to limit influence of user-space values
>> in po
> On 12 Sep 2022, at 9:09 pm, Nicholas Piggin wrote:
>
> On Wed Aug 24, 2022 at 12:05 PM AEST, Rohan McLure wrote:
>> Macros for restoring and saving registers to and from the stack exist.
>> Provide macros with the same interface for clearing a range of gprs by
>&
> On 12 Sep 2022, at 8:56 pm, Nicholas Piggin wrote:
>
> On Wed Aug 24, 2022 at 12:05 PM AEST, Rohan McLure wrote:
>> Cause syscall handlers to be typed as follows when called indirectly
>> throughout the kernel.
>>
>> typedef long (*syscall_fn)(unsigned l
> On 12 Sep 2022, at 7:47 pm, Nicholas Piggin wrote:
>
> On Wed Aug 24, 2022 at 12:05 PM AEST, Rohan McLure wrote:
>> Syscall handlers should not be invoked internally by their symbol names,
>> as these symbols defined by the architecture-defined SYSCALL_
> On 12 Sep 2022, at 7:03 pm, Nicholas Piggin wrote:
>
> On Wed Aug 24, 2022 at 12:05 PM AEST, Rohan McLure wrote:
>> Syscall #82 has been implemented for 32-bit platforms in a unique way on
>> powerpc systems. This hack will in effect guess whether the caller is
&g
> On 12 Sep 2022, at 8:33 pm, Nicholas Piggin wrote:
>
> On Wed Aug 24, 2022 at 12:05 PM AEST, Rohan McLure wrote:
>> Forward declare all syscall handler prototypes where a generic prototype
>> is not provided in either linux/syscalls.h or linux/compat.h in
>> asm/s
> On 12 Sep 2022, at 4:11 pm, Christophe Leroy
> wrote:
>
>
>
> Le 12/09/2022 à 03:47, Rohan McLure a écrit :
>> On creation and clearing of a page table mapping, instrument such calls
>> by invoking page_table_check_pte_set and page_table_check_pte_clear
>
>> +static inline bool pmd_user_accessible_page(pmd_t pmd)
>> +{
>> +return pmd_is_leaf(pmd) && pmd_present(pmd)
>> +&& pte_user(pmd_pte(pmd));
>
> The && goes on previous line.
> By the way, there is a great tool that can help you :
>
> $
This patch and its successor would be avoidable if architectures could specify
that they wish to use page_table_check_p{ud,md}_{clear,set}.
> On 12 Sep 2022, at 11:47 am, Rohan McLure wrote:
>
> The pud_pfn inline call is only referenced on 64-bit Book3S systems,
> but its invocatio
rm64/mm: enable ARCH_SUPPORTS_PAGE_TABLE_CHECK")
x86_64 in commit d283d422c6c4 ("x86: mm: add x86_64 support for page table
check")
Signed-off-by: Rohan McLure
---
arch/powerpc/Kconfig | 1 +
arch/powerpc/include/asm/book3s/32/pgtable.h | 7 ++-
arch
prior to this commit.
On 32-bit systems, provide stub implementations for these methods, with
BUG(), as debug features such as page table checks will emit functions
that call p{md,ud}_user_accessible_page but must not be used.
Signed-off-by: Rohan McLure
---
arch/powerpc/include/asm/pgtable.h | 35
on it at least being defined.
Signed-off-by: Rohan McLure
---
arch/powerpc/include/asm/book3s/64/pgtable.h | 10 --
arch/powerpc/include/asm/pgtable.h | 12
2 files changed, 12 insertions(+), 10 deletions(-)
diff --git a/arch/powerpc/include/asm/book3s/64/pgtable.h
b/arch
Any comments for this revision? Hopefully these revisions address 32-bit and
embedded systems appropriately.
Thanks,
Rohan
> On 24 Aug 2022, at 12:05 pm, Rohan McLure wrote:
>
> V3 available here:
>
> Link:
> https://lore.kernel.org/all/4c3a8815-67ff-41eb-a703-981920ca1.
interrupt
handlers.
Signed-off-by: Rohan McLure
---
V1 -> V2: Add benchmark data
V2 -> V3: Use ZEROIZE_GPR{,S} macro renames, clarify
interrupt_exit_user_prepare changes in summary.
---
arch/powerpc/kernel/exceptions-64s.S | 21 -
arch/powerpc/kernel/interrupt_64.S
safely, without loss of register state prior to the
interrupt, as the common prologue saves the initial values of
non-volatiles, which are unconditionally restored in interrupt_64.S.
Signed-off-by: Rohan McLure
---
V3 -> V4: New patch.
---
arch/powerpc/kernel/exceptions-64e.S | 4 +++-
1 f
-by: Rohan McLure
---
V1 -> V2: Update summary
V2 -> V3: Remove erroneous summary paragraph on syscall_exit_prepare
V3 -> V4: Use ZEROIZE instead of NULLIFY
---
arch/powerpc/kernel/interrupt_64.S | 22 ++
1 file changed, 18 insertions(+), 4 deletions(-)
diff --git a/arch/power
where
r11-r12 are saved to the PACA.
Signed-off-by: Rohan McLure
---
V1 -> V2: Given its own commit
V2 -> V3: Annotate r11-r12 save locations with comment.
---
arch/powerpc/kernel/exceptions-64s.S | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/arch/powerpc/kernel/exce
is not consumed earlier in the handler code.
Signed-off-by: Rohan McLure
Reported-by: Christophe Leroy
---
V2 -> V3: New patch.
V3 -> V4: Minimise restores in the unrecoverable window between
restoring SRR0/1 and return from interrupt.
---
arch/powerpc/kernel/entry_32.
of SAVE_GPRS targetting all non-volatile
registers to SAVE_NVGPRS.
Signed-off-by: Rohan Mclure
---
V3 -> V4: New commit.
---
arch/powerpc/kernel/exceptions-64e.S | 27 +++---
1 file changed, 11 insertions(+), 16 deletions(-)
diff --git a/arch/powerpc/kernel/exceptions-64e.S
handlers, user register state is
sometimes juggled between registers. Hold-off from issuing the SAVE_GPR
macro for applicable neighbouring lines to highlight the delicate
register save logic.
Signed-off-by: Rohan McLure
---
V1 -> V2: Update summary
V2 -> V3: Update summary regarding excl
xed in a successive patch, but requires spu_sys_callback to
allocate a pt_regs structure to satisfy the wrapped calling convention.
Co-developed-by: Andrew Donnellan
Signed-off-by: Andrew Donnellan
Signed-off-by: Rohan McLure
---
V1 -> V2: Generate prototypes for symbols produced by the wrapper.
V2
ement system call entry/exit logic
in C for PPC32")
when 32-bit adopted system_call_exception. Revert its removal of orig_r3
saves.
Signed-off-by: Rohan McLure
---
V2 -> V3: New commit.
---
arch/powerpc/kernel/entry_32.S | 1 +
arch/powerpc/kernel/interrupt_64.S | 2 ++
arch/powerpc/ker
of the accompanying restore and save macros, and usage
of zeroize to describe this operation elsewhere in the kernel.
Signed-off-by: Rohan McLure
---
V1 -> V2: Change 'ZERO' usage in naming to 'NULLIFY', a more obvious verb
V2 -> V3: Change 'NULLIFY' usage in naming to 'ZEROIZE', which has
precedent in
/syscalls.h headers for
prototypes.
Reported-by: Arnd Bergmann
Signed-off-by: Rohan McLure
---
V1 -> V2: New patch.
---
arch/powerpc/kernel/{systbl.S => systbl.c} | 27 ++--
1 file changed, 14 insertions(+), 13 deletions(-)
diff --git a/arch/powerpc/kernel/systbl.S b/arch/p
six
machine-word length parameters to a function to be passed by registers,
even handlers which admit fewer than six parameters may be viewed as
having the above type.
Fixup comparisons in VDSO to avoid pointer-integer comparison. Introduce
explicit cast on systems with SPUs.
Signed-off-by: Rohan
of these
systems feature hardware speculation, and we already unconditionally
restore NVGPRS.
Rohan McLure (20):
powerpc: Remove asmlinkage from syscall handler definitions
powerpc: Use generic fallocate compatibility syscall
powerpc/32: Remove powerpc select specialisation
powerpc
handlers are expressed in terms of types in
ppc32.h. Expose this header globally.
Signed-off-by: Rohan McLure
---
V1 -> V2: Explicitly include prototypes.
V2 -> V3: Remove extraneous #include and ppc_fallocate
prototype. Rename header.
---
arch/powerpc/include/asm/syscalls.h
the
__ARCH_WANT_COMPAT_SYS_... convention.
Signed-off-by: Rohan McLure
---
V1 -> V2: All syscall handlers wrapped by this macro.
V2 -> V3: Move creation of do_ppc64_personality helper to prior patch.
V3 -> V4: Fix parenthesis alignment. Don't emit sys_*** symbols.
---
arch/powerpc/in
with the personality handlers.
Signed-off-by: Rohan McLure
---
V1 -> V2: Move mmap2 compat implementation to asm/kernel/syscalls.c.
V3 -> V4: Move to be applied before syscall wrapper introduced.
---
arch/powerpc/kernel/sys_ppc32.c | 9 -
arch/powerpc/kernel/syscalls.c | 11
inline helper in .
Signed-off-by: Rohan McLure
---
V1 -> V2: Use inline helper to deduplicate bodies in compat/regular
implementations.
V3 -> V4: Move to be applied before syscall wrapper.
---
arch/powerpc/kernel/syscalls.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git
both
implement this syscall with oldselect semantics.
Remove the powerpc implementation, and update syscall.tbl to refer to emit
a reference to sys_old_select for 32-bit binaries, in keeping with how
other architectures support syscall #82.
Signed-off-by: Rohan McLure
---
V1 -> V2: Remove a
Avoid duplication in future patch that will define the ppc64_personality
syscall handler in terms of the SYSCALL_DEFINE and COMPAT_SYSCALL_DEFINE
macros, by extracting the common body of ppc64_personality into a helper
function.
Signed-off-by: Rohan McLure
---
V2 -> V3: New commit.
---
a
ge provide far from complete support for C++ toolchains, and so
the macro serves no purpose in powerpc.
Remove all invocations of asmlinkage in arch/powerpc. These incidentally
only occur in syscall definitions and prototypes.
Signed-off-by: Rohan McLure
---
V2 -> V3: new patch
---
arch/powerp
ll replace more architecture-defined syscall
handlers with generic implementations, dependent on introducing generic
implementations that are compatible with powerpc and arm's parameter
reorderings.
Reported-by: Arnd Bergmann
Signed-off-by: Rohan McLure
---
V1 -> V2: Remove arch-specific fallocat
> What about arch/powerpc/kernel/exceptions-64e.S, no change required
> inside it ? As interru_64.S applies to both 64s and 64e, I would have
> expected changes in exceptions_64e too.
As it stands the changes in interrupt_64.S cause non-volatiles to be
unconditionally restored. This may lead to
> On 19 Aug 2022, at 4:52 pm, Christophe Leroy
> wrote:
>
>
>
> Le 19/08/2022 à 05:38, Rohan McLure a écrit :
>> Clear user state in gprs (assign to zero) to reduce the influence of user
>> registers on speculation within kernel syscall handlers. Clears
of the accompanying restore and save macros, and usage
of nullify to describe this operation elsewhere in the kernel.
Signed-off-by: Rohan McLure
---
V1 -> V2: Change 'ZERO' usage in naming to 'NULLIFY', a more obvious verb
V2 -> V3: Change 'NULLIFY' usage in naming to 'ZEROIZE', which has
precedent in
is not consumed earlier in the handler code.
Signed-off-by: Rohan McLure
Reported-by: Christophe Leroy
---
V2 -> V3: New patch.
---
arch/powerpc/kernel/entry_32.S | 35
1 file changed, 13 insertions(+), 22 deletions(-)
diff --git a/arch/powerpc/kernel/entry_32.
with the personality handlers.
Signed-off-by: Rohan McLure
---
V1 -> V2: Move mmap2 compat implementation to asm/kernel/syscalls.c.
---
arch/powerpc/kernel/sys_ppc32.c | 10 --
arch/powerpc/kernel/syscalls.c | 11 +++
2 files changed, 11 insertions(+), 10 deletions(-)
diff --
ll replace more architecture-defined syscall
handlers with generic implementations, dependent on introducing generic
implementations that are compatible with powerpc and arm's parameter
reorderings.
Reported-by: Arnd Bergmann
Signed-off-by: Rohan McLure
---
V1 -> V2: Remove arch-specific fallocat
/syscalls.h headers for
prototypes.
Reported-by: Arnd Bergmann
Signed-off-by: Rohan McLure
---
V1 -> V2: New patch.
---
arch/powerpc/kernel/{systbl.S => systbl.c} | 27 ++--
1 file changed, 14 insertions(+), 13 deletions(-)
diff --git a/arch/powerpc/kernel/systbl.S b/arch/p
where
r11-r12 are saved to the PACA.
Signed-off-by: Rohan McLure
---
V1 -> V2: Given its own commit
V2 -> V3: Annotate r11-r12 save locations with comment.
---
arch/powerpc/kernel/exceptions-64s.S | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/arch/powerpc/kernel/exce
interrupt
handlers.
Signed-off-by: Rohan McLure
---
V1 -> V2: Add benchmark data
V2 -> V3: Use ZEROIZE_GPR{,S} macro renames, clarify
interrupt_exit_user_prepare changes in summary.
---
arch/powerpc/kernel/exceptions-64s.S | 21 -
arch/powerpc/kernel/interrupt_64.S
the
__ARCH_WANT_COMPAT_SYS_... convention.
Signed-off-by: Rohan McLure
---
V1 -> V2: All syscall handlers wrapped by this macro.
V2 -> V3: Move creation of do_ppc64_personality helper to prior patch.
---
arch/powerpc/include/asm/syscalls.h | 18 +++---
arch/powerpc/kernel/sys_p
-by: Rohan McLure
---
V1 -> V2: Update summary
V2 -> V3: Remove erroneous summary paragraph on syscall_exit_prepare
---
arch/powerpc/kernel/interrupt_64.S | 22 ++
1 file changed, 18 insertions(+), 4 deletions(-)
diff --git a/arch/powerpc/kernel/interrupt_64.S
b/arch/powerpc/
handlers, user register state is
sometimes juggled between registers. Hold-off from issuing the SAVE_GPR
macro for applicable neighbouring lines to highlight the delicate
register save logic.
Signed-off-by: Rohan McLure
---
V1 -> V2: Update summary
V2 -> V3: Update summary regarding excl
xed in a successive patch, but requires spu_sys_callback to
allocate a pt_regs structure to satisfy the wrapped calling convention.
Co-developed-by: Andrew Donnellan
Signed-off-by: Andrew Donnellan
Signed-off-by: Rohan McLure
---
V1 -> V2: Generate prototypes for symbols produced by the wrapper.
V2
six
machine-word length parameters to a function to be passed by registers,
even handlers which admit fewer than six parameters may be viewed as
having the above type.
Fixup comparisons in VDSO to avoid pointer-integer comparison. Introduce
explicit cast on systems with SPUs.
Signed-off-by: Rohan
both
implement this syscall with oldselect semantics.
Remove the powerpc implementation, and update syscall.tbl to refer to emit
a reference to sys_old_select for 32-bit binaries, in keeping with how
other architectures support syscall #82.
Signed-off-by: Rohan McLure
---
V1 -> V2: Remove a
handlers are expressed in terms of types in
ppc32.h. Expose this header globally.
Signed-off-by: Rohan McLure
---
V1 -> V2: Explicitly include prototypes.
V2 -> V3: Remove extraneous #include and ppc_fallocate
prototype. Rename header.
---
arch/powerpc/include/asm/syscalls.h
with new macros
- Acknowledge system_call_exception move to syscall.c
- Save caller r3 for system calls in interrupt handlers rather than in
system_call_exception
- Remove asmlinkage from arch/powerpc
- Rearrange patches, realign changes to their relevant patches
Rohan McLure (18):
powerpc
Avoid duplication in future patch that will define the ppc64_personality
syscall handler in terms of the SYSCALL_DEFINE and COMPAT_SYSCALL_DEFINE
macros, by extracting the common body of ppc64_personality into a helper
function.
Signed-off-by: Rohan McLure
---
V2 -> V3: New commit.
---
a
ge provide far from complete support for C++ toolchains, and so
the macro serves no purpose in powerpc.
Remove all invocations of asmlinkage in arch/powerpc. These incidentally
only occur in syscall defintions and prototypes.
Signed-off-by: Rohan McLure
---
V2 -> V3: new patch
---
arch/powerp
ystem call entry/exit logic in C for PPC32")
when 32-bit adopted system_call_exception. Revert its removal of orig_r3
saves.
Signed-off-by: Rohan McLure
---
V2 -> V3: New commit.
---
arch/powerpc/kernel/entry_32.S | 1 +
arch/powerpc/kernel/interrupt_64.S | 2 ++
arch/powerpc/kernel/sysca
inline helper in .
Signed-off-by: Rohan McLure
---
V1 -> V2: Use inline helper to deduplicate bodies in compat/regular
implementations.
---
arch/powerpc/kernel/syscalls.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/arch/powerpc/kernel/syscalls.c b/arch/powerpc/kernel/syscall
> On 11 Aug 2022, at 8:11 pm, Andrew Donnellan wrote:
>
> On Mon, 2022-07-25 at 16:31 +1000, Rohan McLure wrote:
>> Clear user state in gprs (assign to zero) to reduce the influence of
>> user
>> registers on speculation within kernel syscall handlers. Clears occ
201 - 300 of 332 matches
Mail list logo