mbox series

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

Message ID 20240625092759.1533875-1-ruanjinjie@huawei.com (mailing list archive)
Headers show
Series arm64: entry: Convert to generic entry | expand

Message

Jinjie Ruan June 25, 2024, 9:27 a.m. UTC
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

Comments

Kees Cook June 26, 2024, 10:52 p.m. UTC | #1
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>
Jinjie Ruan June 27, 2024, 6:58 a.m. UTC | #2
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>
>