[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-ID: <20211118192130.48b8f04c@xhacker>
Date: Thu, 18 Nov 2021 19:21:30 +0800
From: Jisheng Zhang <jszhang3@...l.ustc.edu.cn>
To: Paul Walmsley <paul.walmsley@...ive.com>,
Palmer Dabbelt <palmer@...belt.com>,
Albert Ou <aou@...s.berkeley.edu>,
"Björn Töpel" <bjorn@...nel.org>,
Alexei Starovoitov <ast@...nel.org>,
Daniel Borkmann <daniel@...earbox.net>,
Andrii Nakryiko <andrii@...nel.org>,
Martin KaFai Lau <kafai@...com>,
Song Liu <songliubraving@...com>, Yonghong Song <yhs@...com>,
John Fastabend <john.fastabend@...il.com>,
KP Singh <kpsingh@...nel.org>,
Masahiro Yamada <masahiroy@...nel.org>,
Michal Marek <michal.lkml@...kovi.net>,
Nick Desaulniers <ndesaulniers@...gle.com>
Cc: Kefeng Wang <wangkefeng.wang@...wei.com>,
Tong Tiangen <tongtiangen@...wei.com>,
linux-riscv@...ts.infradead.org, linux-kernel@...r.kernel.org,
netdev@...r.kernel.org, bpf@...r.kernel.org,
linux-kbuild@...r.kernel.org
Subject: [PATCH v4 0/12] riscv: switch to relative extable and other
improvements
From: Jisheng Zhang <jszhang@...nel.org>
Similar as other architectures such as arm64, x86 and so on, use
offsets relative to the exception table entry values rather than
absolute addresses for both the exception locationand the fixup.
And recently, arm64 and x86 remove anonymous out-of-line fixups, we
want to acchieve the same result.
patch1 remove unused macro.
patch2 consolidates the __ex_table construction, it's a great code
clean up even w/o the 2nd patch.
patch3 swith to relative extable.
The remaining patches are inspired by arm64 version. They remove
the anonymous out-of-line fixups for risv.
Since v3:
- collect Reviewed-by tag for patch2 and patch3
- add patch1 to remove unused macro
- add patches to remove anonymous out-of-line fixups
Since v2:
- directly check R_RISCV_SUB32 in __ex_table instead of adding
addend_riscv_rela()
Since v1:
- fix build error for NOMMU case, thank lkp@...el.com
Jisheng Zhang (12):
riscv: remove unused __cmpxchg_user() macro
riscv: consolidate __ex_table construction
riscv: switch to relative exception tables
riscv: bpf: move rv_bpf_fixup_exception signature to extable.h
riscv: extable: make fixup_exception() return bool
riscv: extable: use `ex` for `exception_table_entry`
riscv: lib: uaccess: fold fixups into body
riscv: extable: consolidate definitions
riscv: extable: add `type` and `data` fields
riscv: add gpr-num.h
riscv: extable: add a dedicated uaccess handler
riscv: vmlinux.lds.S|vmlinux-xip.lds.S: remove `.fixup` section
arch/riscv/include/asm/Kbuild | 1 -
arch/riscv/include/asm/asm-extable.h | 65 +++++++++++
arch/riscv/include/asm/extable.h | 48 ++++++++
arch/riscv/include/asm/futex.h | 30 ++---
arch/riscv/include/asm/gpr-num.h | 77 +++++++++++++
arch/riscv/include/asm/uaccess.h | 162 ++++-----------------------
arch/riscv/kernel/vmlinux-xip.lds.S | 1 -
arch/riscv/kernel/vmlinux.lds.S | 3 +-
arch/riscv/lib/uaccess.S | 28 +++--
arch/riscv/mm/extable.c | 66 ++++++++---
arch/riscv/net/bpf_jit_comp64.c | 9 +-
scripts/mod/modpost.c | 15 +++
scripts/sorttable.c | 4 +-
13 files changed, 308 insertions(+), 201 deletions(-)
create mode 100644 arch/riscv/include/asm/asm-extable.h
create mode 100644 arch/riscv/include/asm/extable.h
create mode 100644 arch/riscv/include/asm/gpr-num.h
--
2.33.0
Powered by blists - more mailing lists