Skip to content

Backport subject : Userspace pointer masking and tagged address ABI - #336

Open
fangyu0809 wants to merge 1522 commits into
RVCK-Project:rvck-6.6from
fangyu0809:rvck-6.6
Open

Backport subject : Userspace pointer masking and tagged address ABI#336
fangyu0809 wants to merge 1522 commits into
RVCK-Project:rvck-6.6from
fangyu0809:rvck-6.6

Conversation

@fangyu0809

@fangyu0809 fangyu0809 commented Jul 17, 2026

Copy link
Copy Markdown

fixed: #335

自测试:
1, pointer_masking self test:
Testing available PMLEN values
ok 1 PMLEN=0 PR_GET_TAGGED_ADDR_CTRL
ok 2 PMLEN=0 constraint
ok 3 PMLEN=0 validity
ok 4 PMLEN=1 PR_GET_TAGGED_ADDR_CTRL
ok 5 PMLEN=1 constraint
ok 6 PMLEN=1 validity
ok 7 PMLEN=2 PR_GET_TAGGED_ADDR_CTRL
ok 8 PMLEN=2 constraint
ok 9 PMLEN=2 validity
...
Testing tagged address ABI
ok 59 PMLEN=0 tagged address ABI
ok 60 PMLEN=7 tagged address ABI
ok 61 PMLEN=16 tagged address ABI
Totals: pass:61 fail:0 xfail:0 xpass:0 skip:0 error:0

2,kvm-get-reg-list smnpm
smnpm: PASS
3,kvm-get-reg-list ssnpm
ssnpm: PASS

Sakari Ailus and others added 30 commits July 1, 2026 10:17
mainline inclusion
from mainline-6.15-rc2
commit 6db0261
category: feature
bugzilla: RVCK-Project#243

--------------------------------

Document that references to data nodes shall use string-only references
instead of a device reference and a succession of the first package
entries of hierarchical data node references.

Fixes: 9880702 ("ACPI: property: Support using strings in reference properties")
Cc: 6.8+ <stable@vger.kernel.org> # 6.8+
Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com>
Link: https://patch.msgid.link/20250409084738.3657079-1-sakari.ailus@linux.intel.com
[ rjw: Clarifying edits ]
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
Signed-off-by: Gao Rui <gao.rui@zte.com.cn>
Signed-off-by: Yanteng Si <si.yanteng@linux.dev>
mainline inclusion
from mainline-6.8-rc3
commit 66a5c40
category: feature
bugzilla: RVCK-Project#243

--------------------------------

This patch creates wordpart.h and includes it in asm/word-at-a-time.h
for all architectures. WORD_AT_A_TIME_CONSTANTS depends on kernel.h
because of REPEAT_BYTE. Moving this to another header and including it
where necessary allows us to not include the bloated kernel.h. Making
this implicit dependency on REPEAT_BYTE explicit allows for later
improvements in the lib/string.c inclusion list.

Suggested-by: Al Viro <viro@zeniv.linux.org.uk>
Suggested-by: Andy Shevchenko <andy.shevchenko@gmail.com>
Signed-off-by: Tanzir Hasan <tanzirh@google.com>
Reviewed-by: Andy Shevchenko <andy.shevchenko@gmail.com>
Link: https://lore.kernel.org/r/20231226-libstringheader-v6-1-80aa08c7652c@google.com
Signed-off-by: Kees Cook <keescook@chromium.org>
Signed-off-by: Gao Rui <gao.rui@zte.com.cn>
Signed-off-by: Yanteng Si <si.yanteng@linux.dev>
mainline inclusion
from mainline-6.8-rc3
commit 38b9baf
category: feature
bugzilla: RVCK-Project#243

--------------------------------

This diff uses an open source tool include-what-you-use (IWYU) to modify
the include list, changing indirect includes to direct includes. IWYU is
implemented using the IWYUScripts github repository which is a tool that
is currently undergoing development. These changes seek to improve build
times.

This change to lib/string.c resulted in a preprocessed size of
lib/string.i from 26371 lines to 5321 lines (-80%) for the x86
defconfig.

Link: https://github.com/ClangBuiltLinux/IWYUScripts
Reviewed-by: Kees Cook <keescook@chromium.org>
Signed-off-by: Tanzir Hasan <tanzirh@google.com>
Reviewed-by: Andy Shevchenko <andy.shevchenko@gmail.com>
Link: https://lore.kernel.org/r/20231226-libstringheader-v6-2-80aa08c7652c@google.com
Signed-off-by: Kees Cook <keescook@chromium.org>
Signed-off-by: Gao Rui <gao.rui@zte.com.cn>
Signed-off-by: Yanteng Si <si.yanteng@linux.dev>
mainline inclusion
from mainline-6.14-rc5
commit a21cad9
category: feature
bugzilla: RVCK-Project#243

--------------------------------

device.h is a huge header which is hard to follow and easy to miss
something. Improve that by splitting devres APIs to device/devres.h.

In particular this helps to speedup the build of the code that includes
device.h solely for a devres APIs.

While at it, cast the error pointers to __iomem using IOMEM_ERR_PTR()
and fix sparse warnings.

Signed-off-by: Raag Jadav <raag.jadav@intel.com>
Acked-by: Arnd Bergmann <arnd@arndb.de>
Reviewed-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Signed-off-by: Gao Rui <gao.rui@zte.com.cn>
Signed-off-by: Yanteng Si <si.yanteng@linux.dev>
mainline inclusion
from mainline-6.17
commit 492263f
category: feature
bugzilla: RVCK-Project#243

--------------------------------

Add device tree bindings for the common RISC-V Platform Management
Interface (RPMI) shared memory transport as a mailbox controller.

Reviewed-by: Conor Dooley <conor.dooley@microchip.com>
Signed-off-by: Anup Patel <apatel@ventanamicro.com>
Acked-by: Jassi Brar <jassisinghbrar@gmail.com>
Link: https://lore.kernel.org/r/20250818040920.272664-2-apatel@ventanamicro.com
Signed-off-by: Paul Walmsley <pjw@kernel.org>
Signed-off-by: Gao Rui <gao.rui@zte.com.cn>
Signed-off-by: Yanteng Si <si.yanteng@linux.dev>
mainline inclusion
from mainline-6.17
commit 581b4da
category: feature
bugzilla: RVCK-Project#243

--------------------------------

Add device tree bindings for the RISC-V SBI Message Proxy (MPXY)
extension as a mailbox controller.

Reviewed-by: Conor Dooley <conor.dooley@microchip.com>
Signed-off-by: Anup Patel <apatel@ventanamicro.com>
Acked-by: Jassi Brar <jassisinghbrar@gmail.com>
Link: https://lore.kernel.org/r/20250818040920.272664-3-apatel@ventanamicro.com
Signed-off-by: Paul Walmsley <pjw@kernel.org>
Signed-off-by: Gao Rui <gao.rui@zte.com.cn>
Signed-off-by: Yanteng Si <si.yanteng@linux.dev>
mainline inclusion
from mainline-6.17
commit 508da38
category: feature
bugzilla: RVCK-Project#229

--------------------------------

Add defines for the new SBI message proxy extension which is part
of the SBI v3.0 specification.

Reviewed-by: Atish Patra <atishp@rivosinc.com>
Reviewed-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Co-developed-by: Rahul Pathak <rpathak@ventanamicro.com>
Signed-off-by: Rahul Pathak <rpathak@ventanamicro.com>
Signed-off-by: Anup Patel <apatel@ventanamicro.com>
Link: https://lore.kernel.org/r/20250818040920.272664-4-apatel@ventanamicro.com
Signed-off-by: Paul Walmsley <pjw@kernel.org>
Signed-off-by: Gao Rui <gao.rui@zte.com.cn>
Signed-off-by: Yanteng Si <si.yanteng@linux.dev>
mainline inclusion
from mainline-6.17
commit 340974c
category: feature
bugzilla: RVCK-Project#243

--------------------------------

The RPMI based mailbox controller drivers and mailbox clients need to
share defines related to RPMI messages over mailbox interface so add
a common header for this purpose.

Acked-by: Jassi Brar <jassisinghbrar@gmail.com>
Co-developed-by: Rahul Pathak <rpathak@ventanamicro.com>
Signed-off-by: Rahul Pathak <rpathak@ventanamicro.com>
Signed-off-by: Anup Patel <apatel@ventanamicro.com>
Link: https://lore.kernel.org/r/20250818040920.272664-5-apatel@ventanamicro.com
Signed-off-by: Paul Walmsley <pjw@kernel.org>
Signed-off-by: Gao Rui <gao.rui@zte.com.cn>
Signed-off-by: Yanteng Si <si.yanteng@linux.dev>
mainline inclusion
from mainline-6.17
commit 6f01c24
category: feature
bugzilla: RVCK-Project#243

--------------------------------

Add common memcpy APIs for copying u32 array to/from __le32 array.

Suggested-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Reviewed-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Signed-off-by: Anup Patel <apatel@ventanamicro.com>
Reviewed-by: Linus Walleij <linus.walleij@linaro.org>
Acked-by: Jassi Brar <jassisinghbrar@gmail.com>
Link: https://lore.kernel.org/r/20250818040920.272664-7-apatel@ventanamicro.com
Signed-off-by: Paul Walmsley <pjw@kernel.org>
Signed-off-by: Gao Rui <gao.rui@zte.com.cn>
Signed-off-by: Yanteng Si <si.yanteng@linux.dev>
mainline inclusion
from mainline-6.17
commit bf3022a
category: feature
bugzilla: RVCK-Project#243

--------------------------------

Add a mailbox controller driver for the new SBI message proxy extension
which is part of the SBI v3.0 specification.

Acked-by: Jassi Brar <jassisinghbrar@gmail.com>
Co-developed-by: Rahul Pathak <rpathak@ventanamicro.com>
Signed-off-by: Rahul Pathak <rpathak@ventanamicro.com>
Signed-off-by: Anup Patel <apatel@ventanamicro.com>
Link: https://lore.kernel.org/r/20250818040920.272664-8-apatel@ventanamicro.com
Signed-off-by: Paul Walmsley <pjw@kernel.org>
Signed-off-by: Gao Rui <gao.rui@zte.com.cn>
Signed-off-by: Yanteng Si <si.yanteng@linux.dev>
mainline inclusion
from mainline-6.17
commit 54e184f
category: feature
bugzilla: RVCK-Project#243

--------------------------------

Add device tree bindings for the RPMI clock service group based
message proxy implemented by the SBI implementation (machine mode
firmware or hypervisor).

The RPMI clock service group is defined by the RISC-V platform
management interface (RPMI) specification.

Reviewed-by: Conor Dooley <conor.dooley@microchip.com>
Signed-off-by: Anup Patel <apatel@ventanamicro.com>
Acked-by: Stephen Boyd <sboyd@kernel.org>
Link: https://lore.kernel.org/r/20250818040920.272664-9-apatel@ventanamicro.com
Signed-off-by: Paul Walmsley <pjw@kernel.org>
Signed-off-by: Gao Rui <gao.rui@zte.com.cn>
Signed-off-by: Yanteng Si <si.yanteng@linux.dev>
mainline inclusion
from mainline-6.17
commit b385830
category: feature
bugzilla: RVCK-Project#243

--------------------------------

Add device tree bindings for the RPMI clock service group based
controller for the supervisor software.

The RPMI clock service group is defined by the RISC-V platform
management interface (RPMI) specification.

Reviewed-by: Conor Dooley <conor.dooley@microchip.com>
Reviewed-by: Stephen Boyd <sboyd@kernel.org>
Signed-off-by: Anup Patel <apatel@ventanamicro.com>
Acked-by: Jassi Brar <jassisinghbrar@gmail.com>
Link: https://lore.kernel.org/r/20250818040920.272664-10-apatel@ventanamicro.com
Signed-off-by: Paul Walmsley <pjw@kernel.org>
Signed-off-by: Gao Rui <gao.rui@zte.com.cn>
Signed-off-by: Yanteng Si <si.yanteng@linux.dev>
mainline inclusion
from mainline-6.17
commit 5ba9f52
category: feature
bugzilla: RVCK-Project#243

--------------------------------

The RPMI specification defines a clock service group which can be
accessed via SBI MPXY extension or dedicated S-mode RPMI transport.

Add mailbox client based clock driver for the RISC-V RPMI clock
service group.

Reviewed-by: Stephen Boyd <sboyd@kernel.org>
Reviewed-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Co-developed-by: Anup Patel <apatel@ventanamicro.com>
Signed-off-by: Anup Patel <apatel@ventanamicro.com>
Signed-off-by: Rahul Pathak <rpathak@ventanamicro.com>
Link: https://lore.kernel.org/r/20250818040920.272664-11-apatel@ventanamicro.com
[pjw@kernel.org: converted rpmi_clkrate_u64 macro to a function; replaced bare constant with a macro]
Signed-off-by: Paul Walmsley <pjw@kernel.org>
Signed-off-by: Gao Rui <gao.rui@zte.com.cn>
Signed-off-by: Yanteng Si <si.yanteng@linux.dev>
mainline inclusion
from mainline-6.17
commit a72ab25
category: feature
bugzilla: RVCK-Project#243

--------------------------------

Add device tree bindings for the RPMI system MSI service group
based message proxy implemented by the SBI implementation (machine
mode firmware or hypervisor).

The RPMI system MSI service group is defined by the RISC-V
platform management interface (RPMI) specification.

Reviewed-by: Atish Patra <atishp@rivosinc.com>
Reviewed-by: Conor Dooley <conor.dooley@microchip.com>
Signed-off-by: Anup Patel <apatel@ventanamicro.com>
Acked-by: Jassi Brar <jassisinghbrar@gmail.com>
Link: https://lore.kernel.org/r/20250818040920.272664-12-apatel@ventanamicro.com
Signed-off-by: Paul Walmsley <pjw@kernel.org>
Signed-off-by: Gao Rui <gao.rui@zte.com.cn>
Signed-off-by: Yanteng Si <si.yanteng@linux.dev>
mainline inclusion
from mainline-6.17
commit 3e6cf38
category: feature
bugzilla: RVCK-Project#243

--------------------------------

Add device tree bindings for the RPMI system MSI service group
based interrupt controller for the supervisor software.

The RPMI system MSI service group is defined by the RISC-V
platform management interface (RPMI) specification.

Reviewed-by: Atish Patra <atishp@rivosinc.com>
Reviewed-by: Conor Dooley <conor.dooley@microchip.com>
Signed-off-by: Anup Patel <apatel@ventanamicro.com>
Acked-by: Jassi Brar <jassisinghbrar@gmail.com>
Link: https://lore.kernel.org/r/20250818040920.272664-13-apatel@ventanamicro.com
Signed-off-by: Paul Walmsley <pjw@kernel.org>
Signed-off-by: Gao Rui <gao.rui@zte.com.cn>
Signed-off-by: Yanteng Si <si.yanteng@linux.dev>
mainline inclusion
from mainline-6.17
commit aa43953
category: feature
bugzilla: RVCK-Project#243

--------------------------------

The RPMI specification defines a system MSI service group which
allows application processors to receive MSIs upon system events
such as graceful shutdown/reboot request, CPU hotplug event, memory
hotplug event, etc.

Add an irqchip driver for the RISC-V RPMI system MSI service group
to directly receive system MSIs in Linux kernel.

Reviewed-by: Thomas Gleixner <tglx@linutronix.de>
Signed-off-by: Anup Patel <apatel@ventanamicro.com>
Link: https://lore.kernel.org/r/20250818040920.272664-14-apatel@ventanamicro.com
Signed-off-by: Paul Walmsley <pjw@kernel.org>
Signed-off-by: Gao Rui <gao.rui@zte.com.cn>
Signed-off-by: Yanteng Si <si.yanteng@linux.dev>
…nargs_prop

mainline inclusion
from mainline-6.17
commit e121be7
category: feature
bugzilla: RVCK-Project#243

--------------------------------

Currently, acpi_fwnode_get_reference_args() delegates to the internal
function __acpi_node_get_property_reference() to retrieve property
references. However, this function does not handle the nargs_prop (cells
property) parameter, and instead expects the number of arguments (nargs)
to be known or hardcoded.

As a result, when fwnode_property_get_reference_args() is used with a
valid nargs_prop, the ACPI backend ignores it, whereas the Device Tree
(DT) backend uses the #*-cells property from the reference node to
determine the number of arguments dynamically.

To support the nargs_prop in ACPI, refactor the code as follows:

- Move the implementation from __acpi_node_get_property_reference()
  into acpi_fwnode_get_reference_args().

- Update __acpi_node_get_property_reference() to call the (now updated)
  acpi_fwnode_get_reference_args() passing NULL as nargs_prop to keep
  the behavior of __acpi_node_get_property_reference() intact.

Acked-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
Suggested-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Reviewed-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Signed-off-by: Sunil V L <sunilvl@ventanamicro.com>
Signed-off-by: Anup Patel <apatel@ventanamicro.com>
Acked-by: Jassi Brar <jassisinghbrar@gmail.com>
Link: https://lore.kernel.org/r/20250818040920.272664-15-apatel@ventanamicro.com
Signed-off-by: Paul Walmsley <pjw@kernel.org>
Signed-off-by: Gao Rui <gao.rui@zte.com.cn>
Signed-off-by: Yanteng Si <si.yanteng@linux.dev>
mainline inclusion
from mainline-6.17
commit 159c86f
category: feature
bugzilla: RVCK-Project#243

--------------------------------

Currently, ACPI does not support the use of a nargs_prop (e.g.,
associated with a reference in fwnode_property_get_reference_args().
Instead, ACPI expects the number of arguments (nargs) to be explicitly
passed or known.

This behavior diverges from Open Firmware (OF), which allows the use of
a #*-cells property in the referenced node to determine the number of
arguments. Since fwnode_property_get_reference_args() is a common
interface used across both OF and ACPI firmware paradigms, it is
desirable to have a unified calling convention that works seamlessly for
both.

Add the support for ACPI to parse a nargs_prop from the referenced
fwnode, aligning its behavior with the OF backend. This allows drivers
and subsystems using fwnode_property_get_reference_args() to work in a
firmware-agnostic way without having to hardcode or special-case
argument counts for ACPI.

Acked-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
Reviewed-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Signed-off-by: Sunil V L <sunilvl@ventanamicro.com>
Signed-off-by: Anup Patel <apatel@ventanamicro.com>
Acked-by: Jassi Brar <jassisinghbrar@gmail.com>
Link: https://lore.kernel.org/r/20250818040920.272664-16-apatel@ventanamicro.com
Signed-off-by: Paul Walmsley <pjw@kernel.org>
Signed-off-by: Gao Rui <gao.rui@zte.com.cn>
Signed-off-by: Yanteng Si <si.yanteng@linux.dev>
mainline inclusion
from mainline-6.17
commit 4215d1c
category: feature
bugzilla: RVCK-Project#243

--------------------------------

The RPMI System MSI interrupt controller (just like PLIC and APLIC)
needs to probed prior to devices like GED which use interrupts provided
by it. Also, it has dependency on the SBI MPXY mailbox device.

Add HIDs of RPMI System MSI and SBI MPXY mailbox devices to the honor
list so that those dependencies are handled.

Reviewed-by: Atish Patra <atishp@rivosinc.com>
Reviewed-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Acked-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
Signed-off-by: Sunil V L <sunilvl@ventanamicro.com>
Signed-off-by: Anup Patel <apatel@ventanamicro.com>
Acked-by: Jassi Brar <jassisinghbrar@gmail.com>
Link: https://lore.kernel.org/r/20250818040920.272664-17-apatel@ventanamicro.com
Signed-off-by: Paul Walmsley <pjw@kernel.org>
Signed-off-by: Gao Rui <gao.rui@zte.com.cn>
Signed-off-by: Yanteng Si <si.yanteng@linux.dev>
mainline inclusion
from mainline-6.17
commit 694b2ef
category: feature
bugzilla: RVCK-Project#243

--------------------------------

Currently, the interrupt controller list is created without any order.
Create the list sorted with the GSI base of the interrupt controllers.

Signed-off-by: Sunil V L <sunilvl@ventanamicro.com>
Signed-off-by: Anup Patel <apatel@ventanamicro.com>
Acked-by: Jassi Brar <jassisinghbrar@gmail.com>
Link: https://lore.kernel.org/r/20250818040920.272664-18-apatel@ventanamicro.com
Signed-off-by: Paul Walmsley <pjw@kernel.org>
Signed-off-by: Gao Rui <gao.rui@zte.com.cn>
Signed-off-by: Yanteng Si <si.yanteng@linux.dev>
mainline inclusion
from mainline-6.17
commit 4d185fd
category: feature
bugzilla: RVCK-Project#243

--------------------------------

Some RISC-V interrupt controllers like RPMI based system MSI interrupt
controllers do not have MADT entry defined. These interrupt controllers
exist only in the namespace. ACPI spec defines _GSB method to get the
GSI base of the interrupt controller, However, there is no such standard
method to get the GSI range. To support such interrupt controllers, set
the GSI range of such interrupt controllers to non-overlapping range and
provide API for interrupt controller driver to update it with proper
value.

Signed-off-by: Sunil V L <sunilvl@ventanamicro.com>
Signed-off-by: Anup Patel <apatel@ventanamicro.com>
Acked-by: Jassi Brar <jassisinghbrar@gmail.com>
Link: https://lore.kernel.org/r/20250818040920.272664-19-apatel@ventanamicro.com
Signed-off-by: Paul Walmsley <pjw@kernel.org>
Signed-off-by: Gao Rui <gao.rui@zte.com.cn>
Signed-off-by: Yanteng Si <si.yanteng@linux.dev>
mainline inclusion
from mainline-6.17
commit bb96fb5
category: feature
bugzilla: RVCK-Project#243

--------------------------------

The RPMI System MSI device will provide GSIs to downstream devices
(such as GED) so add it to the RISC-V GSI to fwnode mapping.

Signed-off-by: Sunil V L <sunilvl@ventanamicro.com>
Signed-off-by: Anup Patel <apatel@ventanamicro.com>
Acked-by: Jassi Brar <jassisinghbrar@gmail.com>
Link: https://lore.kernel.org/r/20250818040920.272664-20-apatel@ventanamicro.com
Signed-off-by: Paul Walmsley <pjw@kernel.org>
Signed-off-by: Gao Rui <gao.rui@zte.com.cn>
Signed-off-by: Yanteng Si <si.yanteng@linux.dev>
mainline inclusion
from mainline-6.17
commit 3f5d7a5
category: feature
bugzilla: RVCK-Project#243

--------------------------------

ACPI based loadable drivers which need MSIs will also need
imsic_acpi_get_fwnode() to update the device MSI domain so
export this function.

Reviewed-by: Thomas Gleixner <tglx@linutronix.de>
Signed-off-by: Sunil V L <sunilvl@ventanamicro.com>
Signed-off-by: Anup Patel <apatel@ventanamicro.com>
Link: https://lore.kernel.org/r/20250818040920.272664-21-apatel@ventanamicro.com
Signed-off-by: Paul Walmsley <pjw@kernel.org>
Signed-off-by: Gao Rui <gao.rui@zte.com.cn>
Signed-off-by: Yanteng Si <si.yanteng@linux.dev>
mainline inclusion
from mainline-6.17
commit 7e64042
category: feature
bugzilla: RVCK-Project#243

--------------------------------

Add ACPI support for the RISC-V SBI message proxy (MPXY) based
mailbox driver.

Acked-by: Jassi Brar <jassisinghbrar@gmail.com>
Signed-off-by: Sunil V L <sunilvl@ventanamicro.com>
Signed-off-by: Anup Patel <apatel@ventanamicro.com>
Link: https://lore.kernel.org/r/20250818040920.272664-22-apatel@ventanamicro.com
Signed-off-by: Paul Walmsley <pjw@kernel.org>
Signed-off-by: Gao Rui <gao.rui@zte.com.cn>
Signed-off-by: Yanteng Si <si.yanteng@linux.dev>
mainline inclusion
from mainline-6.17
commit 4752b0c
category: feature
bugzilla: RVCK-Project#243

--------------------------------

Add ACPI support for the RISC-V RPMI system MSI based irqchip driver.

Reviewed-by: Thomas Gleixner <tglx@linutronix.de>
Signed-off-by: Sunil V L <sunilvl@ventanamicro.com>
Signed-off-by: Anup Patel <apatel@ventanamicro.com>
Acked-by: Jassi Brar <jassisinghbrar@gmail.com>
Link: https://lore.kernel.org/r/20250818040920.272664-23-apatel@ventanamicro.com
Signed-off-by: Paul Walmsley <pjw@kernel.org>
Signed-off-by: Gao Rui <gao.rui@zte.com.cn>
Signed-off-by: Yanteng Si <si.yanteng@linux.dev>
mainline inclusion
from mainline-6.17
commit f30d7cc
category: feature
bugzilla: RVCK-Project#243

--------------------------------

The GPIO keyboard and event device can be used to receive graceful
shutdown or reboot input keys so let us enable it by default for
RV64 (just like ARM64).

Signed-off-by: Anup Patel <apatel@ventanamicro.com>
Acked-by: Jassi Brar <jassisinghbrar@gmail.com>
Link: https://lore.kernel.org/r/20250818040920.272664-24-apatel@ventanamicro.com
Signed-off-by: Paul Walmsley <pjw@kernel.org>
Signed-off-by: Gao Rui <gao.rui@zte.com.cn>
Signed-off-by: Yanteng Si <si.yanteng@linux.dev>
mainline inclusion
from mainline-6.17
commit 67b8766
category: feature
bugzilla: RVCK-Project#243

--------------------------------

Add Rahul and myself as maintainers for RISC-V RPMI and MPXY drivers.

Signed-off-by: Anup Patel <apatel@ventanamicro.com>
Acked-by: Jassi Brar <jassisinghbrar@gmail.com>
Link: https://lore.kernel.org/r/20250818040920.272664-25-apatel@ventanamicro.com
Signed-off-by: Paul Walmsley <pjw@kernel.org>
Signed-off-by: Gao Rui <gao.rui@zte.com.cn>
Signed-off-by: Yanteng Si <si.yanteng@linux.dev>
dist inclusion
category: cleanup
Link: RVCK-Project#252

--------------------------------

This reverts commit 9898f99.

Signed-off-by: Fangyu Yu <fangyu.yu@linux.alibaba.com>
Signed-off-by: ZhenXing Zhu <zhenxing.zhu@linux.alibaba.com>
Signed-off-by: Yanteng Si <si.yanteng@linux.dev>
dist inclusion
category: bugfix
Link: RVCK-Project#258

--------------------------------

Commit 3d4a329 ("Revert chore: use xuantie instead of thead")
removed the source line for drivers/clk/xuantie/Kconfig but did not
add back the source line for drivers/clk/thead/Kconfig.

This causes CONFIG_CLK_TH1520_FM to be unavailable in menuconfig,
which leads to clock driver not being built and boot failures on
TH1520 boards.

Fixes: 3d4a329 ("Revert chore: use xuantie instead of thead")
Signed-off-by: ZhenXing Zhu <zhenxing.zhu@linux.alibaba.com>
Signed-off-by: Yanteng Si <si.yanteng@linux.dev>
dist inclusion
category: bugfix
Link: RVCK-Project#258

--------------------------------

The openEuler OpenSBI firmware looks for "xuantie,th1520-aon" compatible
string and requires the "opensbi-mboxes" property to initialize the AON
subsystem for CPU hotplug and suspend-to-RAM functionality.

After the revert commit 3d4a329, the aon node only has
"thead,th1520-aon" compatible which causes OpenSBI to fail with:
  "aon node not found in FDT"

This patch fixes the aon node by:
1. Adding "xuantie,th1520-aon" compatible for OpenSBI compatibility
2. Adding "opensbi-mboxes" property pointing to mbox_910r
3. Adding third parameter to mboxes for proper mailbox channel config
4. Adding status = "okay" to enable the node

Fixes: 3d4a329 ("Revert chore: use xuantie instead of thead")
Signed-off-by: ZhenXing Zhu <zhenxing.zhu@linux.alibaba.com>
Signed-off-by: Yanteng Si <si.yanteng@linux.dev>
@unicornx

Copy link
Copy Markdown

请详细提供测试的过程,一来我这里需要验证一下,另外可以考虑以后集成到回归测试中。
最好是基于 qemu 的测试方法。谢谢

@unicornx unicornx left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

1st review:

通用问题:
commit 的信息和上游原始 commit 不一致,主要体现在你摘取的 commit 看上去不是主线的 commit,譬如主线都会带有 LKML link 信息,但是你丢掉了,我怀疑你是拿的 LKML 的 patch,不是 linus 仓库 master 上的 commit。请检查。

具体到 commit 有以下几个问题

  • 对 "riscv: Add support for the tagged address ABI" 这个 commit,我发现原补丁中下面这个你没有pick,是何原因?
+#ifdef CONFIG_RISCV_ISA_SUPM
+#define mm_untag_mask mm_untag_mask
+static inline unsigned long mm_untag_mask(struct mm_struct *mm)
+{
+	return -1UL >> mm->context.pmlen;
+}
+#endif
+

如果 backpor 时不是简单的 pick 而是的确有需要改动,需要在 commit message 中做出说明,具体位置就是在

    mainline inclusion
    from Linux 6.13-rc1
    commit 29eedc7d1587f42f33ae209be45c89c424ee9c00
    category: feature
    bugzilla: https://github.com/RVCK-Project/rvck/issues/335
	
	如果基于原上游补丁有自己的修改,请在这里添加修改的原因和修改方案说明。
    
    --------------------------------
  • 对 "riscv: selftests: Add a pointer masking test" 这个 commit。 同理,不是简单的 pick 有改动,请补充说明
    我是指
+RISCV_SUBTARGETS ?= abi hwprobe vector mm sse cfi
  • 对 "riscv: add compile-time test into is_compat_task()" 这个 commit, 缺少原补丁中对 arch/riscv/include/asm/processor.h 的改动,请补充说明。

@fangyu0809

Copy link
Copy Markdown
Author

1st review:

通用问题: commit 的信息和上游原始 commit 不一致,主要体现在你摘取的 commit 看上去不是主线的 commit,譬如主线都会带有 LKML link 信息,但是你丢掉了,我怀疑你是拿的 LKML 的 patch,不是 linus 仓库 master 上的 commit。请检查。

这里的确是从mail list拿的提交,需要修改一下

具体到 commit 有以下几个问题

  • 对 "riscv: Add support for the tagged address ABI" 这个 commit,我发现原补丁中下面这个你没有pick,是何原因?
+#ifdef CONFIG_RISCV_ISA_SUPM
+#define mm_untag_mask mm_untag_mask
+static inline unsigned long mm_untag_mask(struct mm_struct *mm)
+{
+	return -1UL >> mm->context.pmlen;
+}
+#endif
+

mm_untag_mask():本地父提交已存在,来自 97644be

如果 backpor 时不是简单的 pick 而是的确有需要改动,需要在 commit message 中做出说明,具体位置就是在

    mainline inclusion
    from Linux 6.13-rc1
    commit 29eedc7d1587f42f33ae209be45c89c424ee9c00
    category: feature
    bugzilla: https://github.com/RVCK-Project/rvck/issues/335
	
	如果基于原上游补丁有自己的修改,请在这里添加修改的原因和修改方案说明。
    
    --------------------------------
  • 对 "riscv: selftests: Add a pointer masking test" 这个 commit。 同理,不是简单的 pick 有改动,请补充说明
    我是指
+RISCV_SUBTARGETS ?= abi hwprobe vector mm sse cfi

RISCV_SUBTARGETS:只加入 abi,保留 rvck 的 sse cfi,不引入本地不存在的 upstream context sigreturn。

  • 对 "riscv: add compile-time test into is_compat_task()" 这个 commit, 缺少原补丁中对 arch/riscv/include/asm/processor.h 的改动,请补充说明。

processor.h:rvck 已有后续 stable 修复 f5f235b / upstream 2116988,对应代码已被简化,upstream 4c0b 的两处修改目标不存在。

@fangyu0809

Copy link
Copy Markdown
Author

请详细提供测试的过程,一来我这里需要验证一下,另外可以考虑以后集成到回归测试中。 最好是基于 qemu 的测试方法。谢谢

重新编译 selftests
- RISC-V ABI selftest:
make -C tools/testing/selftests/riscv/abi CC=riscv64-unknown-linux-gnu-gcc
- KVM get-reg-list selftest,静态链接:
make -C tools/testing/selftests/kvm ARCH=riscv CC=riscv64-unknown-linux-gnu-gcc CROSS_COMPILE=riscv64-unknown-linux-gnu- LDFLAGS=-static .../get-reg-list
重新打包 initramfs
- 把最新的:
- pointer_masking
- get-reg-list
系统起来后,进行pointer_masking self test和kvm-get-reg-list测试

@github-actions

github-actions Bot commented Jul 22, 2026

Copy link
Copy Markdown

开始测试 log: https://github.com/RVCK-Project/rvck/actions/runs/29914895629

参数解析结果
args value
repository RVCK-Project/rvck
head ref pull/336/head
base ref rvck-6.6
LAVA repo RVCK-Project/lavaci
LAVA hardware ['qemu']
LAVA Testcase path lava-testcases/common-test/ltp/ltp.yaml
need run job kunit-test,kernel-build,check-patch,lava-trigger

测试完成

详细结果:
check result
kunit-test success
kernel-build success
check-patch success
lava-trigger-qemu success
lava-trigger-sg2042 skipped
lava-trigger-k1 skipped
lava-trigger-lpi4a skipped

Kunit Test Result

[11:17:59] Testing complete. Ran 482 tests: passed: 465, skipped: 17

Kernel Build Result

Check Patch Result

Total Errors 0
Total Warnings 19

LAVA Check (qemu)

args value
testcase_repo RVCK-Project/lavaci
lava_template lava-job-template/qemu/qemu-ltp.yaml
testcase_path lava-testcases/common-test/ltp/ltp.yaml
kernel_download_url http://10.30.190.110/openEuler-RISC-V/RVCK/OERV-RVCI/RVCK-Project/rvck/336_29914895629_1/Image
initramfs_download_url http://10.30.190.110/openEuler-RISC-V/RVCK/OERV-RVCI/RVCK-Project/rvck/336_29914895629_1/initramfs.img
rootfs_download_url https://fast-mirror.isrc.ac.cn/openeuler-sig-riscv/openEuler-RISC-V/RVCK/openEuler24.03-LTS-SP1/openeuler-rootfs.img.zst
testcase_ref main
testitem_name RVCK-Project_rvck_pull_request_target_336__common-test_qemu

result: Lava check done!

@unicornx

Copy link
Copy Markdown

2nd review

针对 “riscv: Add support for the tagged address ABI” 这笔提交,你的 commit message 中的如下描述有个小问题需要改一下

Backport note:
RVCK already contains mm_untag_mask() in
arch/riscv/include/asm/mmu_context.h from commit 97644be6352a
(riscv/shstk: If needed allocate a new shadow stack on clone), so this
backport does not add that hunk again and only adds the remaining
pmlen/context locking changes.

在引用 rvck-6.6 分支上的补丁时,只要引用标题即可,不要引用 commit 的 hashcode。原因是 rvck-6.6 分支每个月会 rebase,导致该分支上的所有 commit 的 hashcode 会发生改变(这是目前 rvck-6.6 分支的管理方式决定的,和主线的 master 不同,主线的 master 上 commit 永远不变的)。所以我们引用时如果用了 hashcode,反而会对以后的人阅读造成困惑,而 commit 的 title 是不变的。所以可以改成如下方式:

Backport note:
RVCK already contains mm_untag_mask() in
arch/riscv/include/asm/mmu_context.h from commit 
"riscv/shstk: If needed allocate a new shadow stack on clone", so this
backport does not add that hunk again and only adds the remaining
pmlen/context locking changes.

我仔细看了一下修改历史,实际上这个问题我不清楚是不是当初 rvck 上合入 "riscv/shstk: If needed allocate a new shadow stack on clone" 的一个 bug,照理当时就应该已经 back port "riscv: Add support for the tagged address ABI" 了。怎么能直接改上游的补丁呢。

其他的 LGTM。

我再找时间测试一下。

USB: spacemit-k3: Add Spacemit K3 USB host controller support
@unicornx

Copy link
Copy Markdown

请详细提供测试的过程,一来我这里需要验证一下,另外可以考虑以后集成到回归测试中。 最好是基于 qemu 的测试方法。谢谢

重新编译 selftests - RISC-V ABI selftest: make -C tools/testing/selftests/riscv/abi CC=riscv64-unknown-linux-gnu-gcc - KVM get-reg-list selftest,静态链接: make -C tools/testing/selftests/kvm ARCH=riscv CC=riscv64-unknown-linux-gnu-gcc CROSS_COMPILE=riscv64-unknown-linux-gnu- LDFLAGS=-static .../get-reg-list 重新打包 initramfs - 把最新的: - pointer_masking - get-reg-list 系统起来后,进行pointer_masking self test和kvm-get-reg-list测试

我构建了 pointer_masking 和 get-reg-list。并将他们复制到 qemu riscv64 上运行

pointer_masking 可以正常 pass,见附件
pointer_masking.log

但 get-reg-list 运行失败,

$ ./get-reg-list --config=smnpm
1..0 # SKIP - /dev/kvm not available (errno: 2)
$ ./get-reg-list --config=ssnpm
1..0 # SKIP - /dev/kvm not available (errno: 2)

两个问题:

  1. 我看你在 PR 中写的是 kvm-get-reg-list smnpmkvm-get-reg-list ssnpm 是不是写错了?生成的测试程序是 get-reg-list,没有 kvm-get-reg-list
  2. 是不是在 QEMU 上无法测试 KVM 相关的 case? 请问你是在什么设备上测试的?

@fangyu0809

fangyu0809 commented Jul 23, 2026

Copy link
Copy Markdown
Author

请详细提供测试的过程,一来我这里需要验证一下,另外可以考虑以后集成到回归测试中。 最好是基于 qemu 的测试方法。谢谢

重新编译 selftests - RISC-V ABI selftest: make -C tools/testing/selftests/riscv/abi CC=riscv64-unknown-linux-gnu-gcc - KVM get-reg-list selftest,静态链接: make -C tools/testing/selftests/kvm ARCH=riscv CC=riscv64-unknown-linux-gnu-gcc CROSS_COMPILE=riscv64-unknown-linux-gnu- LDFLAGS=-static .../get-reg-list 重新打包 initramfs - 把最新的: - pointer_masking - get-reg-list 系统起来后,进行pointer_masking self test和kvm-get-reg-list测试

我构建了 pointer_masking 和 get-reg-list。并将他们复制到 qemu riscv64 上运行

pointer_masking 可以正常 pass,见附件 pointer_masking.log

但 get-reg-list 运行失败,

$ ./get-reg-list --config=smnpm
1..0 # SKIP - /dev/kvm not available (errno: 2)
$ ./get-reg-list --config=ssnpm
1..0 # SKIP - /dev/kvm not available (errno: 2)

两个问题:

  1. 我看你在 PR 中写的是 kvm-get-reg-list smnpmkvm-get-reg-list ssnpm 是不是写错了?生成的测试程序是 get-reg-list,没有 kvm-get-reg-list

是get-reg-list

  1. 是不是在 QEMU 上无法测试 KVM 相关的 case? 请问你是在什么设备上测试的?

在Qemu上测试的,编译内核时打开KVM的config

@unicornx

Copy link
Copy Markdown

在Qemu上测试的,编译内核时打开KVM的config

我用的 rvck 的 defconfig,CONFIG_KVM=y

请问你用的 QEMU 是什么版本,以及启动 QEMU 的选项参数是什么?

@fangyu0809

Copy link
Copy Markdown
Author

在Qemu上测试的,编译内核时打开KVM的config

我用的 rvck 的 defconfig,CONFIG_KVM=y

请问你用的 QEMU 是什么版本,以及启动 QEMU 的选项参数是什么?

帮忙把你启动qemu的参数,还有你内核启动的log贴一下,我这边check一下。

@unicornx

Copy link
Copy Markdown

发现一个问题,make clean 时 tools/testing/selftests/riscv/abi/pointer_masking 清不掉,请看看上游是否有补丁 fix 这个清理?

@unicornx

unicornx commented Jul 24, 2026

Copy link
Copy Markdown

在Qemu上测试的,编译内核时打开KVM的config

我用的 rvck 的 defconfig,CONFIG_KVM=y
请问你用的 QEMU 是什么版本,以及启动 QEMU 的选项参数是什么?

帮忙把你启动qemu的参数,还有你内核启动的log贴一下,我这边check一下。

看上去我这里暂时找不到可以支持 kvm 的 rv 硬件作为 host 测试 kvm 的特性,kvm 的测试就靠你先测试吧,你先把我提的几个问题先解决了吧。
p.s. rvck-6.6 更新了,记得 rebase 一下先

@fangyu0809

Copy link
Copy Markdown
Author

发现一个问题,make clean 时 tools/testing/selftests/riscv/abi/pointer_masking 清不掉,请看看上游是否有补丁 fix 这个清理?

检索了一下,没看到针对这个问题的上游patch。这个问题也不是pointer_masking引入的,建议不在当前pr跟踪解决了。

SiFiveHolland and others added 10 commits July 28, 2026 17:43
mainline inclusion
from Linux 6.13-rc1
commit 29eedc7
category: feature
bugzilla: RVCK-Project#335

--------------------------------

Pointer masking is controlled via a two-bit PMM field, which appears in
various CSRs depending on which extensions are implemented. Smmpm adds
the field to mseccfg; Smnpm adds the field to menvcfg; Ssnpm adds the
field to senvcfg. If the H extension is implemented, Ssnpm also defines
henvcfg.PMM and hstatus.HUPMM.

Reviewed-by: Charlie Jenkins <charlie@rivosinc.com>
Signed-off-by: Samuel Holland <samuel.holland@sifive.com>
Link: https://lore.kernel.org/r/20241016202814.4061541-4-samuel.holland@sifive.com
Signed-off-by: Palmer Dabbelt <palmer@rivosinc.com>
Signed-off-by: Fangyu Yu <fangyu.yu@linux.alibaba.com>
mainline inclusion
from Linux 6.13-rc1
commit 09d6775
category: feature
bugzilla: RVCK-Project#335

--------------------------------

RISC-V supports pointer masking with a variable number of tag bits
(which is called "PMLEN" in the specification) and which is configured
at the next higher privilege level.

Wire up the PR_SET_TAGGED_ADDR_CTRL and PR_GET_TAGGED_ADDR_CTRL prctls
so userspace can request a lower bound on the number of tag bits and
determine the actual number of tag bits. As with arm64's
PR_TAGGED_ADDR_ENABLE, the pointer masking configuration is
thread-scoped, inherited on clone() and fork() and cleared on execve().

Reviewed-by: Charlie Jenkins <charlie@rivosinc.com>
Tested-by: Charlie Jenkins <charlie@rivosinc.com>
Signed-off-by: Samuel Holland <samuel.holland@sifive.com>
Link: https://lore.kernel.org/r/20241016202814.4061541-5-samuel.holland@sifive.com
Signed-off-by: Palmer Dabbelt <palmer@rivosinc.com>
Signed-off-by: Fangyu Yu <fangyu.yu@linux.alibaba.com>
mainline inclusion
from Linux 6.13-rc1
commit 2e17430
category: feature
bugzilla: RVCK-Project#335

Backport note:
RVCK already contains mm_untag_mask() in
arch/riscv/include/asm/mmu_context.h from commit
"riscv/shstk: If needed allocate a new shadow stack on clone", so this
backport does not add that hunk again and only adds the remaining
pmlen/context locking changes.

--------------------------------

When pointer masking is enabled for userspace, the kernel can accept
tagged pointers as arguments to some system calls. Allow this by
untagging the pointers in access_ok() and the uaccess routines. The
uaccess routines must peform untagging in software because U-mode and
S-mode have entirely separate pointer masking configurations. In fact,
hardware may not even implement pointer masking for S-mode.

Since the number of tag bits is variable, untagged_addr_remote() needs
to know what PMLEN to use for the remote mm. Therefore, the pointer
masking mode must be the same for all threads sharing an mm. Enforce
this with a lock flag in the mm context, as x86 does for LAM. The flag
gets reset in init_new_context() during fork(), as the new mm is no
longer multithreaded.

Reviewed-by: Charlie Jenkins <charlie@rivosinc.com>
Tested-by: Charlie Jenkins <charlie@rivosinc.com>
Signed-off-by: Samuel Holland <samuel.holland@sifive.com>
Link: https://lore.kernel.org/r/20241016202814.4061541-6-samuel.holland@sifive.com
Signed-off-by: Palmer Dabbelt <palmer@rivosinc.com>
Signed-off-by: Fangyu Yu <fangyu.yu@linux.alibaba.com>
mainline inclusion
from Linux 6.13-rc1
commit 7884448
category: feature
bugzilla: RVCK-Project#335

--------------------------------

This allows a tracer to control the ABI of the tracee, as on arm64.

Signed-off-by: Samuel Holland <samuel.holland@sifive.com>
Link: https://lore.kernel.org/r/20241016202814.4061541-7-samuel.holland@sifive.com
Signed-off-by: Palmer Dabbelt <palmer@rivosinc.com>
Signed-off-by: Fangyu Yu <fangyu.yu@linux.alibaba.com>
mainline inclusion
from Linux 6.13-rc1
commit 7470b5a
category: feature
bugzilla: RVCK-Project#335

Backport note:
RVCK already has local sse and cfi RISC-V selftest targets, and this tree
does not have the upstream sigreturn selftest directory. This backport
only adds the new abi target while preserving the existing RVCK-local
sse/cfi entries and not adding the sigreturn context.

--------------------------------

This test covers the behavior of the PR_SET_TAGGED_ADDR_CTRL and
PR_GET_TAGGED_ADDR_CTRL prctl() operations, their effects on the
userspace ABI, and their effects on the system call ABI.

Reviewed-by: Charlie Jenkins <charlie@rivosinc.com>
Tested-by: Charlie Jenkins <charlie@rivosinc.com>
Signed-off-by: Samuel Holland <samuel.holland@sifive.com>
Link: https://lore.kernel.org/r/20241016202814.4061541-8-samuel.holland@sifive.com
Signed-off-by: Palmer Dabbelt <palmer@rivosinc.com>
Signed-off-by: Fangyu Yu <fangyu.yu@linux.alibaba.com>
mainline inclusion
from Linux 6.13-rc1
commit 036a140
category: feature
bugzilla: RVCK-Project#335

--------------------------------

Add testing for the pointer masking extensions exposed to KVM guests.

Reviewed-by: Anup Patel <anup@brainfault.org>
Signed-off-by: Samuel Holland <samuel.holland@sifive.com>
Link: https://lore.kernel.org/r/20241016202814.4061541-11-samuel.holland@sifive.com
Signed-off-by: Palmer Dabbelt <palmer@rivosinc.com>
Signed-off-by: Fangyu Yu <fangyu.yu@linux.alibaba.com>
mainline inclusion
from Linux 6.9-rc1
commit 9dc3041
category: feature
bugzilla: RVCK-Project#335

--------------------------------

There is some code that detects compat mode into a task by checking the
flag directly, and other code that check using the helper is_compat_task().

Since the helper already exists, use it instead of checking the flags
directly.

Signed-off-by: Leonardo Bras <leobras@redhat.com>
Link: https://lore.kernel.org/r/20240103160024.70305-4-leobras@redhat.com
Signed-off-by: Palmer Dabbelt <palmer@rivosinc.com>
Signed-off-by: Fangyu Yu <fangyu.yu@linux.alibaba.com>
mainline inclusion
from Linux 6.9-rc1
commit 4c0b5a4
category: feature
bugzilla: RVCK-Project#335

Backport note:
The upstream processor.h hunks update the old
arch_get_mmap_end()/arch_get_mmap_base() logic, but RVCK already contains
the later stable fix f5f235b (upstream commit 2116988) which
simplified those macros. Those hunks no longer apply and are intentionally
omitted.

--------------------------------

Currently several places will test for CONFIG_COMPAT before testing
is_compat_task(), probably in order to avoid a run-time test into the task
structure.

Since is_compat_task() is an inlined function, it would be helpful to add a
compile-time test of CONFIG_COMPAT, making sure it always returns zero when
the option is not enabled during the kernel build.

With this, the compiler is able to understand in build-time that
is_compat_task() will always return 0, and optimize-out some of the extra
code introduced by the option.

This will also allow removing a lot #ifdefs that were introduced, and make
the code more clean.

Signed-off-by: Leonardo Bras <leobras@redhat.com>
Reviewed-by: Guo Ren <guoren@kernel.org>
Reviewed-by: Andy Chiu <andy.chiu@sifive.com>
Link: https://lore.kernel.org/r/20240103160024.70305-5-leobras@redhat.com
Signed-off-by: Palmer Dabbelt <palmer@rivosinc.com>
Signed-off-by: Fangyu Yu <fangyu.yu@linux.alibaba.com>
mainline inclusion
from Linux 6.9-rc1
commit 5917ea1
category: feature
bugzilla: RVCK-Project#335

--------------------------------

task_user_regset_view() makes use of a function very similar to
is_compat_task(), but pointing to a any thread.

In arm64 asm/compat.h there is a function very similar to that:
is_compat_thread(struct thread_info *thread)

Copy this function to riscv asm/compat.h and make use of it into
task_user_regset_view().

Also, introduce a compile-time test for CONFIG_COMPAT and simplify the
function code by removing the #ifdef.

Signed-off-by: Leonardo Bras <leobras@redhat.com>
Reviewed-by: Guo Ren <guoren@kernel.org>
Reviewed-by: Andy Chiu <andy.chiu@sifive.com>
Link: https://lore.kernel.org/r/20240103160024.70305-6-leobras@redhat.com
Signed-off-by: Palmer Dabbelt <palmer@rivosinc.com>
Signed-off-by: Fangyu Yu <fangyu.yu@linux.alibaba.com>
mainline inclusion
from Linux 6.9-rc1
commit 2a8986f
category: feature
bugzilla: RVCK-Project#335

--------------------------------

In order to have all task compat bit access directly in compat.h, introduce
set_compat_task() to set/reset those when needed.

Also, since it's only used on an if/else scenario, simplify the macro using
it.

Signed-off-by: Leonardo Bras <leobras@redhat.com>
Reviewed-by: Guo Ren <guoren@kernel.org>
Link: https://lore.kernel.org/r/20240103160024.70305-7-leobras@redhat.com
Signed-off-by: Palmer Dabbelt <palmer@rivosinc.com>
Signed-off-by: Fangyu Yu <fangyu.yu@linux.alibaba.com>
@github-actions

github-actions Bot commented Jul 28, 2026

Copy link
Copy Markdown

开始测试 log: https://github.com/RVCK-Project/rvck/actions/runs/30353319661

参数解析结果
args value
repository RVCK-Project/rvck
head ref pull/336/head
base ref rvck-6.6
LAVA repo RVCK-Project/lavaci
LAVA hardware ['qemu']
LAVA Testcase path lava-testcases/common-test/ltp/ltp.yaml
need run job kunit-test,kernel-build,check-patch,lava-trigger

测试完成

详细结果:
check result
kunit-test success
kernel-build success
check-patch success
lava-trigger-qemu failure
lava-trigger-sg2042 skipped
lava-trigger-k1 skipped
lava-trigger-lpi4a skipped

Kunit Test Result

[11:09:36] Testing complete. Ran 482 tests: passed: 465, skipped: 17

Kernel Build Result

Check Patch Result

Total Errors 0
Total Warnings 19

LAVA Check (qemu)


lava 执行失败.

@fangyu0809

fangyu0809 commented Aug 3, 2026

Copy link
Copy Markdown
Author

/check


开始测试 log: https://github.com/RVCK-Project/rvck/actions/runs/30794244938

参数解析结果
args value
repository RVCK-Project/rvck
head ref pull/336/head
base ref rvck-6.6
LAVA repo RVCK-Project/lavaci
LAVA hardware ['qemu']
LAVA Testcase path lava-testcases/common-test/ltp/ltp.yaml
need run job kunit-test,kernel-build,check-patch,lava-trigger

测试完成

详细结果:
check result
kunit-test success
kernel-build success
check-patch success
lava-trigger-qemu failure
lava-trigger-sg2042 skipped
lava-trigger-k1 skipped
lava-trigger-lpi4a skipped

Kunit Test Result

[07:41:03] Testing complete. Ran 482 tests: passed: 465, skipped: 17

Kernel Build Result

Check Patch Result

Total Errors 0
Total Warnings 19

LAVA Check (qemu)


lava 执行失败.

@sterling-teng

Copy link
Copy Markdown
Contributor

8月份的rvck-6.6滚动基线很快会推送,该pr赶不上了,届时rebase后继续审阅吧。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Backport subject : Userspace pointer masking and tagged address ABI