[PATCH 0/3] arm64: entry: Convert to generic entry

Jinjie Ruan posted 3 patches 1 year, 7 months ago
There is a newer version of this series
arch/arm64/Kconfig                    |   1 +
arch/arm64/include/asm/entry-common.h |  60 +++++
arch/arm64/include/asm/ptrace.h       |   5 +
arch/arm64/include/asm/stacktrace.h   |   5 +-
arch/arm64/include/asm/syscall.h      |   6 +-
arch/arm64/include/asm/thread_info.h  |  23 +-
arch/arm64/kernel/entry-common.c      | 355 ++++++--------------------
arch/arm64/kernel/ptrace.c            |  78 +++---
arch/arm64/kernel/signal.c            |   3 +-
arch/arm64/kernel/syscall.c           |  18 +-
include/linux/entry-common.h          |  51 ++++
kernel/entry/common.c                 |  49 +++-
12 files changed, 294 insertions(+), 360 deletions(-)
create mode 100644 arch/arm64/include/asm/entry-common.h
[PATCH 0/3] arm64: entry: Convert to generic entry
Posted by Jinjie Ruan 1 year, 7 months ago
Currently, x86, Riscv, Loongarch use the generic entry. Convert arm64
to use the generic entry infrastructure from kernel/entry/*. The generic
entry makes maintainers' work easier and codes more elegant, which aslo
removed a lot of duplicate code.

Jinjie Ruan (3):
  entry: Add some arch funcs to support arm64 to use generic entry
  arm64: Prepare to switch to generic entry
  arm64: entry: Convert to generic entry

 arch/arm64/Kconfig                    |   1 +
 arch/arm64/include/asm/entry-common.h |  60 +++++
 arch/arm64/include/asm/ptrace.h       |   5 +
 arch/arm64/include/asm/stacktrace.h   |   5 +-
 arch/arm64/include/asm/syscall.h      |   6 +-
 arch/arm64/include/asm/thread_info.h  |  23 +-
 arch/arm64/kernel/entry-common.c      | 355 ++++++--------------------
 arch/arm64/kernel/ptrace.c            |  78 +++---
 arch/arm64/kernel/signal.c            |   3 +-
 arch/arm64/kernel/syscall.c           |  18 +-
 include/linux/entry-common.h          |  51 ++++
 kernel/entry/common.c                 |  49 +++-
 12 files changed, 294 insertions(+), 360 deletions(-)
 create mode 100644 arch/arm64/include/asm/entry-common.h

-- 
2.34.1
Re: [PATCH 0/3] arm64: entry: Convert to generic entry
Posted by Kees Cook 1 year, 7 months ago
On Tue, Jun 25, 2024 at 05:27:56PM +0800, Jinjie Ruan wrote:
> Currently, x86, Riscv, Loongarch use the generic entry. Convert arm64
> to use the generic entry infrastructure from kernel/entry/*. The generic
> entry makes maintainers' work easier and codes more elegant, which aslo
> removed a lot of duplicate code.
> 
> Jinjie Ruan (3):
>   entry: Add some arch funcs to support arm64 to use generic entry
>   arm64: Prepare to switch to generic entry
>   arm64: entry: Convert to generic entry
> 
>  arch/arm64/Kconfig                    |   1 +
>  arch/arm64/include/asm/entry-common.h |  60 +++++
>  arch/arm64/include/asm/ptrace.h       |   5 +
>  arch/arm64/include/asm/stacktrace.h   |   5 +-
>  arch/arm64/include/asm/syscall.h      |   6 +-
>  arch/arm64/include/asm/thread_info.h  |  23 +-
>  arch/arm64/kernel/entry-common.c      | 355 ++++++--------------------
>  arch/arm64/kernel/ptrace.c            |  78 +++---
>  arch/arm64/kernel/signal.c            |   3 +-
>  arch/arm64/kernel/syscall.c           |  18 +-
>  include/linux/entry-common.h          |  51 ++++
>  kernel/entry/common.c                 |  49 +++-
>  12 files changed, 294 insertions(+), 360 deletions(-)
>  create mode 100644 arch/arm64/include/asm/entry-common.h

This is very cool! While the arm64 maintainers need to review it, I at
least built and ran tests using the seccomp selftests which tends to be
pretty sensitive to corner cases around syscall exit/entry things, and
it passed just fine.

Tested-by: Kees Cook <kees@kernel.org>

-- 
Kees Cook
Re: [PATCH 0/3] arm64: entry: Convert to generic entry
Posted by Jinjie Ruan 1 year, 7 months ago

On 2024/6/27 6:52, Kees Cook wrote:
> On Tue, Jun 25, 2024 at 05:27:56PM +0800, Jinjie Ruan wrote:
>> Currently, x86, Riscv, Loongarch use the generic entry. Convert arm64
>> to use the generic entry infrastructure from kernel/entry/*. The generic
>> entry makes maintainers' work easier and codes more elegant, which aslo
>> removed a lot of duplicate code.
>>
>> Jinjie Ruan (3):
>>   entry: Add some arch funcs to support arm64 to use generic entry
>>   arm64: Prepare to switch to generic entry
>>   arm64: entry: Convert to generic entry
>>
>>  arch/arm64/Kconfig                    |   1 +
>>  arch/arm64/include/asm/entry-common.h |  60 +++++
>>  arch/arm64/include/asm/ptrace.h       |   5 +
>>  arch/arm64/include/asm/stacktrace.h   |   5 +-
>>  arch/arm64/include/asm/syscall.h      |   6 +-
>>  arch/arm64/include/asm/thread_info.h  |  23 +-
>>  arch/arm64/kernel/entry-common.c      | 355 ++++++--------------------
>>  arch/arm64/kernel/ptrace.c            |  78 +++---
>>  arch/arm64/kernel/signal.c            |   3 +-
>>  arch/arm64/kernel/syscall.c           |  18 +-
>>  include/linux/entry-common.h          |  51 ++++
>>  kernel/entry/common.c                 |  49 +++-
>>  12 files changed, 294 insertions(+), 360 deletions(-)
>>  create mode 100644 arch/arm64/include/asm/entry-common.h
> 
> This is very cool! While the arm64 maintainers need to review it, I at
> least built and ran tests using the seccomp selftests which tends to be
> pretty sensitive to corner cases around syscall exit/entry things, and
> it passed just fine.

Kees, thank you for helping to test the code.

> 
> Tested-by: Kees Cook <kees@kernel.org>
>