Skip to content

[PW_SID:1091438] riscv: add copy_mc_to_{kernel,user} support to enable MC fault tolerance#1883

Closed
linux-riscv-bot wants to merge 2 commits into
workflow__riscv__fixesfrom
pw1091438
Closed

[PW_SID:1091438] riscv: add copy_mc_to_{kernel,user} support to enable MC fault tolerance#1883
linux-riscv-bot wants to merge 2 commits into
workflow__riscv__fixesfrom
pw1091438

Conversation

@linux-riscv-bot
Copy link
Copy Markdown

PR for series 1091438 applied to workflow__riscv__fixes

Name: riscv: add copy_mc_to_{kernel,user} support to enable MC fault tolerance
URL: https://patchwork.kernel.org/project/linux-riscv/list/?series=1091438
Version: 1

Linux RISC-V bot and others added 2 commits May 2, 2026 08:13
copy_mc_to_kernel() and copy_mc_to_user() are architecture hooks that
let the kernel survive an uncorrectable hardware memory error (e.g. an
uncorrectable ECC fault) raised during the *source* read of a memory
copy.  They are the cornerstone of graceful error recovery on every
path that has to duplicate a page whose contents might already be bad:

  - COW (copy-on-write): wp_page_copy(), do_cow_fault(),
    copy_present_page() in fork, and __wp_page_copy_user() all
    route their per-page copy through copy_mc_user_highpage();
  - hugetlb / THP: copy_user_gigantic_page(), copy_subpage(),
    __collapse_huge_page_copy() and collapse_file() rely on the
    same hook (copy_mc_user_highpage / copy_mc_highpage) to clone
    or collapse 2 MiB / 1 GiB folios without tearing the kernel
    down on a single bad cacheline;
  - page reclaim / migration / KSM: folio_mc_copy(),
    ksm_might_need_to_copy(), compaction and NUMA balancing;
  - file I/O on byte-addressable memory (DAX, CXL.mem, and the
    iov_iter MC helpers) and core-dump writeout.

When any of these callers hits a hardware error during the load, the
copy_mc_* helper returns a non-zero byte count instead of oopsing the
kernel.  The caller can then react in whatever way fits the context:
propagate -EFAULT back to the originating syscall, isolate the poisoned
page through memory_failure_queue(), retry on a clean replica, or as
a last resort kill the owning task.  The system as a whole keeps
running.

This is also why a new copy routine is required rather than reusing
the existing memcpy().  The C contract for memcpy() is

        void *memcpy(void *dst, const void *src, size_t n);

it returns dst unconditionally and has no out-of-band way to tell
the caller whether the copy actually succeeded.  MC-aware callers
need exactly that signal - a single "did the hardware raise an
exception during this copy or not" bit - so the API has to be

        unsigned long memcpy_mc(void *dst, const void *src, size_t n);

where the return value serves as the error indicator (0 on success,
non-zero when a load faulted).  The fact that the non-zero value
happens to be the remaining byte count is just a useful implementation
detail for optional follow-up work such as poisoning the exact
sub-range; the essential point is that a successful copy and a
failed copy can no longer be distinguished from the outside with
memcpy()'s void-pointer return, so a new function is unavoidable.

RISC-V previously did not provide either of the copy_mc_* hooks, so
the generic fallback in <linux/uaccess.h> was used:

        static inline unsigned long
        copy_mc_to_kernel(void *dst, const void *src, size_t cnt)
        {
                memcpy(dst, src, cnt);
                return 0;
        }

That fallback has no exception-table entry on the load side, so an
access to poisoned memory (reported through the RAS/AIA path) takes
the kernel down just like any other unhandled fault - defeating the
whole point of the copy_mc_* API and leaving every COW / hugetlb /
THP-collapse / migration path above exposed on RISC-V.  A native
implementation that actually stops on the faulting load and signals
the error through its return value is therefore required.

A word on the exception-table entry type used by this patch: x86 and
arm64 both carry dedicated "MC-safe" flavours in their extable
infrastructure.  x86 defines EX_TYPE_DEFAULT_MCE_SAFE and
EX_TYPE_FAULT_MCE_SAFE (see arch/x86/include/asm/extable_fixup_types.h
and the fixups in arch/x86/lib/copy_mc_64.S), while arm64 ends up
reusing EX_TYPE_KACCESS_ERR_ZERO for the same purpose.  Tempting as
it is to mirror that and introduce a new RISC-V-specific type, it
turns out to buy very little in practice: inspecting
arch/x86/mm/extable.c shows that EX_TYPE_DEFAULT_MCE_SAFE shares its
handler with EX_TYPE_DEFAULT, and EX_TYPE_FAULT_MCE_SAFE shares its
handler with EX_TYPE_FAULT - in every case the fixup simply redirects
PC to the fixup label and lets the caller return.  The tag mostly
serves as documentation.  Because the fix-up behaviour we need is
identical to that of a plain extable entry, this patch keeps things
simple and uses the existing _asm_extable helper rather than growing
a new EX_TYPE_* constant; if a future RAS integration ever needs to
discriminate MC-safe sites from ordinary ones, the tag can be added
later without touching any call site.

Implement it by factoring the existing hand-written memcpy into a
shared template and reusing it for the MC variant:

  - memcpy_template.S
    The whole body of the original memcpy.S is moved here verbatim,
    with every load/store expressed through six parametric macros:
    LOAD_B / STORE_B, LOAD_W / STORE_W and LOAD_REG / STORE_REG.
    The template is #include'd into a SYM_FUNC_START/END wrapper by
    the caller, which also supplies the macro definitions.

  - memcpy.S
    Now only defines plain lb/sb, lw/sw and REG_L/REG_S macros and
    includes the template.  The generated code for __memcpy() is
    byte-for-byte equivalent to the previous open-coded version, so
    the hot path for regular kernel memcpy is unchanged.

  - memcpy_mc.S (new)
    Defines the same macros, but every *load* is wrapped in a "fixup"
    macro that emits an _asm_extable entry pointing at a local label
    6:.  On the happy path __memcpy_mc() returns 0; on a hardware
    error the exception handler jumps to label 6:, which returns a
    non-zero value (the still-outstanding byte count held
    in a2) to flag the failure to the caller.

Signed-off-by: Ruidong Tian <tianruidong@linux.alibaba.com>
Signed-off-by: Linux RISC-V bot <linux.riscv.bot@gmail.com>
@linux-riscv-bot
Copy link
Copy Markdown
Author

Patch 1: "riscv: add copy_mc_to_{kernel,user} support to enable MC fault tolerance"
build-rv32-defconfig
Desc: Builds riscv32 defconfig
Duration: 138.22 seconds
Result: PASS

@linux-riscv-bot
Copy link
Copy Markdown
Author

Patch 1: "riscv: add copy_mc_to_{kernel,user} support to enable MC fault tolerance"
build-rv64-clang-allmodconfig
Desc: Builds riscv64 allmodconfig with Clang, and checks for errors and added warnings
Duration: 756.65 seconds
Result: ERROR
Output:

Redirect to /build/tmp.3MwhXtYPgJ and /build/tmp.AWbkiomoyD
Tree base:
2c3b264109de1 ("Adding CI files")
Building the whole tree with the patch
error:
Warning: /build/tmp608_ebvu/drivers/pmdomain/mediatek/mtk-mfg-pmdomain.c:245 struct __packed mtk_mfg_opp_entry { __le32 freq_khz; __le32 voltage_core; __le32 voltage_sram; __le32 posdiv; __le32 voltage_margin; __le32 power_mw; }; error: Cannot parse struct or union!



real	12m30.087s
user	472m39.468s
sys	82m32.690s

@linux-riscv-bot
Copy link
Copy Markdown
Author

Patch 1: "riscv: add copy_mc_to_{kernel,user} support to enable MC fault tolerance"
build-rv64-gcc-allmodconfig
Desc: Builds riscv64 allmodconfig with GCC, and checks for errors and added warnings
Duration: 1128.38 seconds
Result: ERROR
Output:

Redirect to /build/tmp.2BJrb7wswu and /build/tmp.VhHVAJPeRZ
Tree base:
2c3b264109de1 ("Adding CI files")
Building the whole tree with the patch
error:
Warning: /build/tmp608_ebvu/drivers/pmdomain/mediatek/mtk-mfg-pmdomain.c:245 struct __packed mtk_mfg_opp_entry { __le32 freq_khz; __le32 voltage_core; __le32 voltage_sram; __le32 posdiv; __le32 voltage_margin; __le32 power_mw; }; error: Cannot parse struct or union!



real	18m41.805s
user	665m56.340s
sys	101m58.919s

@linux-riscv-bot
Copy link
Copy Markdown
Author

Patch 1: "riscv: add copy_mc_to_{kernel,user} support to enable MC fault tolerance"
build-rv64-nommu-k210-defconfig
Desc: Builds riscv64 defconfig with NOMMU for K210
Duration: 22.91 seconds
Result: ERROR
Output:

Full log:
W: Support for running offline not available (unshare: unshare failed: Operation not permitted)
tuxmake --download-all-korg-gcc-toolchains --target-arch=riscv --kconfig=nommu_k210_defconfig --toolchain=gcc --wrapper=ccache --environment=KBUILD_BUILD_TIMESTAMP=@1621270510 --environment=KBUILD_BUILD_USER=tuxmake --environment=KBUILD_BUILD_HOST=tuxmake --environment=KCFLAGS=-ffile-prefix-map=/build/tmp.fIn6ED9mzj/build/= --runtime=null --image=docker.io/tuxmake/riscv_gcc CROSS_COMPILE=riscv64-linux- config default kernel xipkernel modules dtbs dtbs-legacy debugkernel headers
make --silent --keep-going --jobs=48 O=/build/tmp.fIn6ED9mzj/build ARCH=riscv CROSS_COMPILE=riscv64-linux- 'CC=ccache riscv64-linux-gcc' 'HOSTCC=ccache gcc' nommu_k210_defconfig
make --silent --keep-going --jobs=48 O=/build/tmp.fIn6ED9mzj/build ARCH=riscv CROSS_COMPILE=riscv64-linux- 'CC=ccache riscv64-linux-gcc' 'HOSTCC=ccache gcc'
/build/tmp608_ebvu/arch/riscv/lib/memcpy_template.S: Assembler messages:
/build/tmp608_ebvu/arch/riscv/lib/memcpy_template.S:13: Error: unrecognized opcode `_asm_extable 100b,6f'
/build/tmp608_ebvu/arch/riscv/lib/memcpy_template.S:24:  Info: macro invoked from here
/build/tmp608_ebvu/arch/riscv/lib/memcpy_template.S:48:   Info: macro invoked from here
/build/tmp608_ebvu/arch/riscv/lib/memcpy_template.S:13: Error: unrecognized opcode `_asm_extable 100b,6f'
/build/tmp608_ebvu/arch/riscv/lib/memcpy_template.S:28:  Info: macro invoked from here
/build/tmp608_ebvu/arch/riscv/lib/memcpy_template.S:50:   Info: macro invoked from here
/build/tmp608_ebvu/arch/riscv/lib/memcpy_template.S:13: Error: unrecognized opcode `_asm_extable 100b,6f'
/build/tmp608_ebvu/arch/riscv/lib/memcpy_template.S:32:  Info: macro invoked from here
/build/tmp608_ebvu/arch/riscv/lib/memcpy_template.S:60:   Info: macro invoked from here
/build/tmp608_ebvu/arch/riscv/lib/memcpy_template.S:13: Error: unrecognized opcode `_asm_extable 100b,6f'
/build/tmp608_ebvu/arch/riscv/lib/memcpy_template.S:32:  Info: macro invoked from here
/build/tmp608_ebvu/arch/riscv/lib/memcpy_template.S:61:   Info: macro invoked from here
/build/tmp608_ebvu/arch/riscv/lib/memcpy_template.S:13: Error: unrecognized opcode `_asm_extable 100b,6f'
/build/tmp608_ebvu/arch/riscv/lib/memcpy_template.S:32:  Info: macro invoked from here
/build/tmp608_ebvu/arch/riscv/lib/memcpy_template.S:62:   Info: macro invoked from here
/build/tmp608_ebvu/arch/riscv/lib/memcpy_template.S:13: Error: unrecognized opcode `_asm_extable 100b,6f'
/build/tmp608_ebvu/arch/riscv/lib/memcpy_template.S:32:  Info: macro invoked from here
/build/tmp608_ebvu/arch/riscv/lib/memcpy_template.S:63:   Info: macro invoked from here
/build/tmp608_ebvu/arch/riscv/lib/memcpy_template.S:13: Error: unrecognized opcode `_asm_extable 100b,6f'
/build/tmp608_ebvu/arch/riscv/lib/memcpy_template.S:32:  Info: macro invoked from here
/build/tmp608_ebvu/arch/riscv/lib/memcpy_template.S:64:   Info: macro invoked from here
/build/tmp608_ebvu/arch/riscv/lib/memcpy_template.S:13: Error: unrecognized opcode `_asm_extable 100b,6f'
/build/tmp608_ebvu/arch/riscv/lib/memcpy_template.S:32:  Info: macro invoked from here
/build/tmp608_ebvu/arch/riscv/lib/memcpy_template.S:65:   Info: macro invoked from here
/build/tmp608_ebvu/arch/riscv/lib/memcpy_template.S:13: Error: unrecognized opcode `_asm_extable 100b,6f'
/build/tmp608_ebvu/arch/riscv/lib/memcpy_template.S:32:  Info: macro invoked from here
/build/tmp608_ebvu/arch/riscv/lib/memcpy_template.S:66:   Info: macro invoked from here
/build/tmp608_ebvu/arch/riscv/lib/memcpy_template.S:13: Error: unrecognized opcode `_asm_extable 100b,6f'
/build/tmp608_ebvu/arch/riscv/lib/memcpy_template.S:32:  Info: macro invoked from here
/build/tmp608_ebvu/arch/riscv/lib/memcpy_template.S:67:   Info: macro invoked from here
/build/tmp608_ebvu/arch/riscv/lib/memcpy_template.S:13: Error: unrecognized opcode `_asm_extable 100b,6f'
/build/tmp608_ebvu/arch/riscv/lib/memcpy_template.S:32:  Info: macro invoked from here
/build/tmp608_ebvu/arch/riscv/lib/memcpy_template.S:68:   Info: macro invoked from here
/build/tmp608_ebvu/arch/riscv/lib/memcpy_template.S:13: Error: unrecognized opcode `_asm_extable 100b,6f'
/build/tmp608_ebvu/arch/riscv/lib/memcpy_template.S:32:  Info: macro invoked from here
/build/tmp608_ebvu/arch/riscv/lib/memcpy_template.S:69:   Info: macro invoked from here
/build/tmp608_ebvu/arch/riscv/lib/memcpy_template.S:13: Error: unrecognized opcode `_asm_extable 100b,6f'
/build/tmp608_ebvu/arch/riscv/lib/memcpy_template.S:36:  Info: macro invoked from here
/build/tmp608_ebvu/arch/riscv/lib/memcpy_template.S:70:   Info: macro invoked from here
/build/tmp608_ebvu/arch/riscv/lib/memcpy_template.S:13: Error: unrecognized opcode `_asm_extable 100b,6f'
/build/tmp608_ebvu/arch/riscv/lib/memcpy_template.S:36:  Info: macro invoked from here
/build/tmp608_ebvu/arch/riscv/lib/memcpy_template.S:71:   Info: macro invoked from here
/build/tmp608_ebvu/arch/riscv/lib/memcpy_template.S:13: Error: unrecognized opcode `_asm_extable 100b,6f'
/build/tmp608_ebvu/arch/riscv/lib/memcpy_template.S:36:  Info: macro invoked from here
/build/tmp608_ebvu/arch/riscv/lib/memcpy_template.S:72:   Info: macro invoked from here
/build/tmp608_ebvu/arch/riscv/lib/memcpy_template.S:13: Error: unrecognized opcode `_asm_extable 100b,6f'
/build/tmp608_ebvu/arch/riscv/lib/memcpy_template.S:36:  Info: macro invoked from here
/build/tmp608_ebvu/arch/riscv/lib/memcpy_template.S:73:   Info: macro invoked from here
/build/tmp608_ebvu/arch/riscv/lib/memcpy_template.S:13: Error: unrecognized opcode `_asm_extable 100b,6f'
/build/tmp608_ebvu/arch/riscv/lib/memcpy_template.S:36:  Info: macro invoked from here
/build/tmp608_ebvu/arch/riscv/lib/memcpy_template.S:74:   Info: macro invoked from here
/build/tmp608_ebvu/arch/riscv/lib/memcpy_template.S:13: Error: unrecognized opcode `_asm_extable 100b,6f'
/build/tmp608_ebvu/arch/riscv/lib/memcpy_template.S:36:  Info: macro invoked from here
/build/tmp608_ebvu/arch/riscv/lib/memcpy_template.S:75:   Info: macro invoked from here
/build/tmp608_ebvu/arch/riscv/lib/memcpy_template.S:13: Error: unrecognized opcode `_asm_extable 100b,6f'
/build/tmp608_ebvu/arch/riscv/lib/memcpy_template.S:36:  Info: macro invoked from here
/build/tmp608_ebvu/arch/riscv/lib/memcpy_template.S:76:   Info: macro invoked from here
/build/tmp608_ebvu/arch/riscv/lib/memcpy_template.S:13: Error: unrecognized opcode `_asm_extable 100b,6f'
/build/tmp608_ebvu/arch/riscv/lib/memcpy_template.S:36:  Info: macro invoked from here
/build/tmp608_ebvu/arch/riscv/lib/memcpy_template.S:77:   Info: macro invoked from here
/build/tmp608_ebvu/arch/riscv/lib/memcpy_template.S:13: Error: unrecognized opcode `_asm_extable 100b,6f'
/build/tmp608_ebvu/arch/riscv/lib/memcpy_template.S:36:  Info: macro invoked from here
/build/tmp608_ebvu/arch/riscv/lib/memcpy_template.S:78:   Info: macro invoked from here
/build/tmp608_ebvu/arch/riscv/lib/memcpy_template.S:13: Error: unrecognized opcode `_asm_extable 100b,6f'
/build/tmp608_ebvu/arch/riscv/lib/memcpy_template.S:36:  Info: macro invoked from here
/build/tmp608_ebvu/arch/riscv/lib/memcpy_template.S:79:   Info: macro invoked from here
/build/tmp608_ebvu/arch/riscv/lib/memcpy_template.S:13: Error: unrecognized opcode `_asm_extable 100b,6f'
/build/tmp608_ebvu/arch/riscv/lib/memcpy_template.S:32:  Info: macro invoked from here
/build/tmp608_ebvu/arch/riscv/lib/memcpy_template.S:80:   Info: macro invoked from here
/build/tmp608_ebvu/arch/riscv/lib/memcpy_template.S:13: Error: unrecognized opcode `_asm_extable 100b,6f'
/build/tmp608_ebvu/arch/riscv/lib/memcpy_template.S:32:  Info: macro invoked from here
/build/tmp608_ebvu/arch/riscv/lib/memcpy_template.S:81:   Info: macro invoked from here
/build/tmp608_ebvu/arch/riscv/lib/memcpy_template.S:13: Error: unrecognized opcode `_asm_extable 100b,6f'
/build/tmp608_ebvu/arch/riscv/lib/memcpy_template.S:32:  Info: macro invoked from here
/build/tmp608_ebvu/arch/riscv/lib/memcpy_template.S:82:   Info: macro invoked from here
/build/tmp608_ebvu/arch/riscv/lib/memcpy_template.S:13: Error: unrecognized opcode `_asm_extable 100b,6f'
/build/tmp608_ebvu/arch/riscv/lib/memcpy_template.S:32:  Info: macro invoked from here
/build/tmp608_ebvu/arch/riscv/lib/memcpy_template.S:83:   Info: macro invoked from here
I: config: PASS in 0:00:04.928432
I: default: FAIL in 0:00:12.959948
I: kernel: SKIP in 0:00:00.000005
I: xipkernel: SKIP in 0:00:00.000002
I: modules: SKIP in 0:00:00.002567
I: dtbs: PASS in 0:00:01.046323
I: dtbs-legacy: SKIP in 0:00:00.004689
I: debugkernel: SKIP in 0:00:00.000004
I: headers: PASS in 0:00:01.212134
I: build output in /build/tmp.fIn6ED9mzj
/build/tmp608_ebvu/arch/riscv/lib/memcpy_template.S:13: Error: unrecognized opcode `_asm_extable 100b,6f'
/build/tmp608_ebvu/arch/riscv/lib/memcpy_template.S:32:  Info: macro invoked from here
/build/tmp608_ebvu/arch/riscv/lib/memcpy_template.S:84:   Info: macro invoked from here
/build/tmp608_ebvu/arch/riscv/lib/memcpy_template.S:13: Error: unrecognized opcode `_asm_extable 100b,6f'
/build/tmp608_ebvu/arch/riscv/lib/memcpy_template.S:32:  Info: macro invoked from here
/build/tmp608_ebvu/arch/riscv/lib/memcpy_template.S:85:   Info: macro invoked from here
/build/tmp608_ebvu/arch/riscv/lib/memcpy_template.S:13: Error: unrecognized opcode `_asm_extable 100b,6f'
/build/tmp608_ebvu/arch/riscv/lib/memcpy_template.S:36:  Info: macro invoked from here
/build/tmp608_ebvu/arch/riscv/lib/memcpy_template.S:87:   Info: macro invoked from here
/build/tmp608_ebvu/arch/riscv/lib/memcpy_template.S:13: Error: unrecognized opcode `_asm_extable 100b,6f'
/build/tmp608_ebvu/arch/riscv/lib/memcpy_template.S:36:  Info: macro invoked from here
/build/tmp608_ebvu/arch/riscv/lib/memcpy_template.S:88:   Info: macro invoked from here
/build/tmp608_ebvu/arch/riscv/lib/memcpy_template.S:13: Error: unrecognized opcode `_asm_extable 100b,6f'
/build/tmp608_ebvu/arch/riscv/lib/memcpy_template.S:36:  Info: macro invoked from here
/build/tmp608_ebvu/arch/riscv/lib/memcpy_template.S:89:   Info: macro invoked from here
/build/tmp608_ebvu/arch/riscv/lib/memcpy_template.S:13: Error: unrecognized opcode `_asm_extable 100b,6f'
/build/tmp608_ebvu/arch/riscv/lib/memcpy_template.S:36:  Info: macro invoked from here
/build/tmp608_ebvu/arch/riscv/lib/memcpy_template.S:90:   Info: macro invoked from here
/build/tmp608_ebvu/arch/riscv/lib/memcpy_template.S:13: Error: unrecognized opcode `_asm_extable 100b,6f'
/build/tmp608_ebvu/arch/riscv/lib/memcpy_template.S:36:  Info: macro invoked from here
/build/tmp608_ebvu/arch/riscv/lib/memcpy_template.S:91:   Info: macro invoked from here
/build/tmp608_ebvu/arch/riscv/lib/memcpy_template.S:13: Error: unrecognized opcode `_asm_extable 100b,6f'
/build/tmp608_ebvu/arch/riscv/lib/memcpy_template.S:36:  Info: macro invoked from here
/build/tmp608_ebvu/arch/riscv/lib/memcpy_template.S:92:   Info: macro invoked from here
/build/tmp608_ebvu/arch/riscv/lib/memcpy_template.S:13: Error: unrecognized opcode `_asm_extable 100b,6f'
/build/tmp608_ebvu/arch/riscv/lib/memcpy_template.S:40:  Info: macro invoked from here
/build/tmp608_ebvu/arch/riscv/lib/memcpy_template.S:109:   Info: macro invoked from here
/build/tmp608_ebvu/arch/riscv/lib/memcpy_template.S:13: Error: unrecognized opcode `_asm_extable 100b,6f'
/build/tmp608_ebvu/arch/riscv/lib/memcpy_template.S:44:  Info: macro invoked from here
/build/tmp608_ebvu/arch/riscv/lib/memcpy_template.S:111:   Info: macro invoked from here
/build/tmp608_ebvu/arch/riscv/lib/memcpy_template.S:13: Error: unrecognized opcode `_asm_extable 100b,6f'
/build/tmp608_ebvu/arch/riscv/lib/memcpy_template.S:24:  Info: macro invoked from here
/build/tmp608_ebvu/arch/riscv/lib/memcpy_template.S:117:   Info: macro invoked from here
/build/tmp608_ebvu/arch/riscv/lib/memcpy_template.S:13: Error: unrecognized opcode `_asm_extable 100b,6f'
/build/tmp608_ebvu/arch/riscv/lib/memcpy_template.S:28:  Info: macro invoked from here
/build/tmp608_ebvu/arch/riscv/lib/memcpy_template.S:119:   Info: macro invoked from here
make[4]: *** [/build/tmp608_ebvu/scripts/Makefile.build:434: arch/riscv/lib/memcpy_mc.o] Error 1
make[4]: Target 'arch/riscv/lib/' not remade because of errors.
make[3]: *** [/build/tmp608_ebvu/scripts/Makefile.build:548: arch/riscv/lib] Error 2
/build/tmp608_ebvu/lib/iov_iter.c: In function 'copy_to_user_iter_mc':
/build/tmp608_ebvu/lib/iov_iter.c:210:23: error: implicit declaration of function 'copy_mc_to_user'; did you mean '_copy_mc_to_iter'? [-Wimplicit-function-declaration]
  210 |                 len = copy_mc_to_user(iter_to, from, len);
      |                       ^~~~~~~~~~~~~~~
      |                       _copy_mc_to_iter
make[4]: *** [/build/tmp608_ebvu/scripts/Makefile.build:289: lib/iov_iter.o] Error 1
make[4]: Target 'lib/' not remade because of errors.
make[3]: *** [/build/tmp608_ebvu/scripts/Makefile.build:548: lib] Error 2
make[3]: Target './' not remade because of errors.
make[2]: *** [/build/tmp608_ebvu/Makefile:2141: .] Error 2
make[2]: Target '__all' not remade because of errors.
make[1]: *** [/build/tmp608_ebvu/Makefile:248: __sub-make] Error 2
make[1]: Target '__all' not remade because of errors.
make: *** [Makefile:248: __sub-make] Error 2
make: Target '__all' not remade because of errors.
make --silent --keep-going --jobs=48 O=/build/tmp.fIn6ED9mzj/build INSTALL_DTBS_PATH=/build/tmp.fIn6ED9mzj/build/dtbsinstall/dtbs ARCH=riscv CROSS_COMPILE=riscv64-linux- 'CC=ccache riscv64-linux-gcc' 'HOSTCC=ccache gcc' dtbs
rm -rf /build/tmp.fIn6ED9mzj/build/dtbsinstall
mkdir -p /build/tmp.fIn6ED9mzj/build/dtbsinstall/dtbs
make --silent --keep-going --jobs=48 O=/build/tmp.fIn6ED9mzj/build INSTALL_DTBS_PATH=/build/tmp.fIn6ED9mzj/build/dtbsinstall/dtbs ARCH=riscv CROSS_COMPILE=riscv64-linux- 'CC=ccache riscv64-linux-gcc' 'HOSTCC=ccache gcc' dtbs_install
tar --sort=name --owner=tuxmake:1000 --group=tuxmake:1000 --mtime=@1778224251 --clamp-mtime -caf /build/tmp.fIn6ED9mzj/build/dtbs.tar -C /build/tmp.fIn6ED9mzj/build/dtbsinstall dtbs
rm -rf /build/tmp.fIn6ED9mzj/build/install_hdr
make --silent --keep-going --jobs=48 O=/build/tmp.fIn6ED9mzj/build INSTALL_HDR_PATH=/build/tmp.fIn6ED9mzj/build/install_hdr/ ARCH=riscv CROSS_COMPILE=riscv64-linux- 'CC=ccache riscv64-linux-gcc' 'HOSTCC=ccache gcc' headers_install
tar --sort=name --owner=tuxmake:1000 --group=tuxmake:1000 --mtime=@1778224251 --clamp-mtime -caf /build/tmp.fIn6ED9mzj/build/headers.tar -C /build/tmp.fIn6ED9mzj/build/install_hdr .
warnings/errors:
/build/tmp608_ebvu/lib/iov_iter.c:210:23: error: implicit declaration of function 'copy_mc_to_user'; did you mean '_copy_mc_to_iter'? [-Wimplicit-function-declaration]


@linux-riscv-bot
Copy link
Copy Markdown
Author

Patch 1: "riscv: add copy_mc_to_{kernel,user} support to enable MC fault tolerance"
build-rv64-nommu-k210-virt
Desc: Builds riscv64 defconfig with NOMMU for the virt platform
Duration: 24.13 seconds
Result: ERROR
Output:

Full log:
W: Support for running offline not available (unshare: unshare failed: Operation not permitted)
tuxmake --download-all-korg-gcc-toolchains --target-arch=riscv --kconfig=nommu_virt_defconfig --toolchain=gcc --wrapper=ccache --environment=KBUILD_BUILD_TIMESTAMP=@1621270510 --environment=KBUILD_BUILD_USER=tuxmake --environment=KBUILD_BUILD_HOST=tuxmake --environment=KCFLAGS=-ffile-prefix-map=/build/tmp.7amPnygv1D/build/= --runtime=null --image=docker.io/tuxmake/riscv_gcc CROSS_COMPILE=riscv64-linux- config default kernel xipkernel modules dtbs dtbs-legacy debugkernel headers
make --silent --keep-going --jobs=48 O=/build/tmp.7amPnygv1D/build ARCH=riscv CROSS_COMPILE=riscv64-linux- 'CC=ccache riscv64-linux-gcc' 'HOSTCC=ccache gcc' nommu_virt_defconfig
make --silent --keep-going --jobs=48 O=/build/tmp.7amPnygv1D/build ARCH=riscv CROSS_COMPILE=riscv64-linux- 'CC=ccache riscv64-linux-gcc' 'HOSTCC=ccache gcc'
/build/tmp608_ebvu/arch/riscv/lib/memcpy_template.S: Assembler messages:
/build/tmp608_ebvu/arch/riscv/lib/memcpy_template.S:13: Error: unrecognized opcode `_asm_extable 100b,6f'
/build/tmp608_ebvu/arch/riscv/lib/memcpy_template.S:24:  Info: macro invoked from here
/build/tmp608_ebvu/arch/riscv/lib/memcpy_template.S:48:   Info: macro invoked from here
/build/tmp608_ebvu/arch/riscv/lib/memcpy_template.S:13: Error: unrecognized opcode `_asm_extable 100b,6f'
/build/tmp608_ebvu/arch/riscv/lib/memcpy_template.S:28:  Info: macro invoked from here
/build/tmp608_ebvu/arch/riscv/lib/memcpy_template.S:50:   Info: macro invoked from here
/build/tmp608_ebvu/arch/riscv/lib/memcpy_template.S:13: Error: unrecognized opcode `_asm_extable 100b,6f'
/build/tmp608_ebvu/arch/riscv/lib/memcpy_template.S:32:  Info: macro invoked from here
/build/tmp608_ebvu/arch/riscv/lib/memcpy_template.S:60:   Info: macro invoked from here
/build/tmp608_ebvu/arch/riscv/lib/memcpy_template.S:13: Error: unrecognized opcode `_asm_extable 100b,6f'
/build/tmp608_ebvu/arch/riscv/lib/memcpy_template.S:32:  Info: macro invoked from here
/build/tmp608_ebvu/arch/riscv/lib/memcpy_template.S:61:   Info: macro invoked from here
/build/tmp608_ebvu/arch/riscv/lib/memcpy_template.S:13: Error: unrecognized opcode `_asm_extable 100b,6f'
/build/tmp608_ebvu/arch/riscv/lib/memcpy_template.S:32:  Info: macro invoked from here
/build/tmp608_ebvu/arch/riscv/lib/memcpy_template.S:62:   Info: macro invoked from here
/build/tmp608_ebvu/arch/riscv/lib/memcpy_template.S:13: Error: unrecognized opcode `_asm_extable 100b,6f'
/build/tmp608_ebvu/arch/riscv/lib/memcpy_template.S:32:  Info: macro invoked from here
/build/tmp608_ebvu/arch/riscv/lib/memcpy_template.S:63:   Info: macro invoked from here
/build/tmp608_ebvu/arch/riscv/lib/memcpy_template.S:13: Error: unrecognized opcode `_asm_extable 100b,6f'
/build/tmp608_ebvu/arch/riscv/lib/memcpy_template.S:32:  Info: macro invoked from here
/build/tmp608_ebvu/arch/riscv/lib/memcpy_template.S:64:   Info: macro invoked from here
/build/tmp608_ebvu/arch/riscv/lib/memcpy_template.S:13: Error: unrecognized opcode `_asm_extable 100b,6f'
/build/tmp608_ebvu/arch/riscv/lib/memcpy_template.S:32:  Info: macro invoked from here
/build/tmp608_ebvu/arch/riscv/lib/memcpy_template.S:65:   Info: macro invoked from here
/build/tmp608_ebvu/arch/riscv/lib/memcpy_template.S:13: Error: unrecognized opcode `_asm_extable 100b,6f'
/build/tmp608_ebvu/arch/riscv/lib/memcpy_template.S:32:  Info: macro invoked from here
/build/tmp608_ebvu/arch/riscv/lib/memcpy_template.S:66:   Info: macro invoked from here
/build/tmp608_ebvu/arch/riscv/lib/memcpy_template.S:13: Error: unrecognized opcode `_asm_extable 100b,6f'
/build/tmp608_ebvu/arch/riscv/lib/memcpy_template.S:32:  Info: macro invoked from here
/build/tmp608_ebvu/arch/riscv/lib/memcpy_template.S:67:   Info: macro invoked from here
/build/tmp608_ebvu/arch/riscv/lib/memcpy_template.S:13: Error: unrecognized opcode `_asm_extable 100b,6f'
/build/tmp608_ebvu/arch/riscv/lib/memcpy_template.S:32:  Info: macro invoked from here
/build/tmp608_ebvu/arch/riscv/lib/memcpy_template.S:68:   Info: macro invoked from here
/build/tmp608_ebvu/arch/riscv/lib/memcpy_template.S:13: Error: unrecognized opcode `_asm_extable 100b,6f'
/build/tmp608_ebvu/arch/riscv/lib/memcpy_template.S:32:  Info: macro invoked from here
/build/tmp608_ebvu/arch/riscv/lib/memcpy_template.S:69:   Info: macro invoked from here
/build/tmp608_ebvu/arch/riscv/lib/memcpy_template.S:13: Error: unrecognized opcode `_asm_extable 100b,6f'
/build/tmp608_ebvu/arch/riscv/lib/memcpy_template.S:36:  Info: macro invoked from here
/build/tmp608_ebvu/arch/riscv/lib/memcpy_template.S:70:   Info: macro invoked from here
/build/tmp608_ebvu/arch/riscv/lib/memcpy_template.S:13: Error: unrecognized opcode `_asm_extable 100b,6f'
/build/tmp608_ebvu/arch/riscv/lib/memcpy_template.S:36:  Info: macro invoked from here
/build/tmp608_ebvu/arch/riscv/lib/memcpy_template.S:71:   Info: macro invoked from here
/build/tmp608_ebvu/arch/riscv/lib/memcpy_template.S:13: Error: unrecognized opcode `_asm_extable 100b,6f'
/build/tmp608_ebvu/arch/riscv/lib/memcpy_template.S:36:  Info: macro invoked from here
/build/tmp608_ebvu/arch/riscv/lib/memcpy_template.S:72:   Info: macro invoked from here
/build/tmp608_ebvu/arch/riscv/lib/memcpy_template.S:13: Error: unrecognized opcode `_asm_extable 100b,6f'
/build/tmp608_ebvu/arch/riscv/lib/memcpy_template.S:36:  Info: macro invoked from here
/build/tmp608_ebvu/arch/riscv/lib/memcpy_template.S:73:   Info: macro invoked from here
/build/tmp608_ebvu/arch/riscv/lib/memcpy_template.S:13: Error: unrecognized opcode `_asm_extable 100b,6f'
/build/tmp608_ebvu/arch/riscv/lib/memcpy_template.S:36:  Info: macro invoked from here
/build/tmp608_ebvu/arch/riscv/lib/memcpy_template.S:74:   Info: macro invoked from here
/build/tmp608_ebvu/arch/riscv/lib/memcpy_template.S:13: Error: unrecognized opcode `_asm_extable 100b,6f'
/build/tmp608_ebvu/arch/riscv/lib/memcpy_template.S:36:  Info: macro invoked from here
/build/tmp608_ebvu/arch/riscv/lib/memcpy_template.S:75:   Info: macro invoked from here
/build/tmp608_ebvu/arch/riscv/lib/memcpy_template.S:13: Error: unrecognized opcode `_asm_extable 100b,6f'
/build/tmp608_ebvu/arch/riscv/lib/memcpy_template.S:36:  Info: macro invoked from here
/build/tmp608_ebvu/arch/riscv/lib/memcpy_template.S:76:   Info: macro invoked from here
/build/tmp608_ebvu/arch/riscv/lib/memcpy_template.S:13: Error: unrecognized opcode `_asm_extable 100b,6f'
/build/tmp608_ebvu/arch/riscv/lib/memcpy_template.S:36:  Info: macro invoked from here
/build/tmp608_ebvu/arch/riscv/lib/memcpy_template.S:77:   Info: macro invoked from here
/build/tmp608_ebvu/arch/riscv/lib/memcpy_template.S:13: Error: unrecognized opcode `_asm_extable 100b,6f'
/build/tmp608_ebvu/arch/riscv/lib/memcpy_template.S:36:  Info: macro invoked from here
/build/tmp608_ebvu/arch/riscv/lib/memcpy_template.S:78:   Info: macro invoked from here
/build/tmp608_ebvu/arch/riscv/lib/memcpy_template.S:13: Error: unrecognized opcode `_asm_extable 100b,6f'
/build/tmp608_ebvu/arch/riscv/lib/memcpy_template.S:36:  Info: macro invoked from here
/build/tmp608_ebvu/arch/riscv/lib/memcpy_template.S:79:   Info: macro invoked from here
/build/tmp608_ebvu/arch/riscv/lib/memcpy_template.S:13: Error: unrecognized opcode `_asm_extable 100b,6f'
/build/tmp608_ebvu/arch/riscv/lib/memcpy_template.S:32:  Info: macro invoked from here
/build/tmp608_ebvu/arch/riscv/lib/memcpy_template.S:80:   Info: macro invoked from here
/build/tmp608_ebvu/arch/riscv/lib/memcpy_template.S:13: Error: unrecognized opcode `_asm_extable 100b,6f'
/build/tmp608_ebvu/arch/riscv/lib/memcpy_template.S:32:  Info: macro invoked from here
/build/tmp608_ebvu/arch/riscv/lib/memcpy_template.S:81:   Info: macro invoked from here
/build/tmp608_ebvu/arch/riscv/lib/memcpy_template.S:13: Error: unrecognized opcode `_asm_extable 100b,6f'
/build/tmp608_ebvu/arch/riscv/lib/memcpy_template.S:32:  Info: macro invoked from here
/build/tmp608_ebvu/arch/riscv/lib/memcpy_template.S:82:   Info: macro invoked from here
/build/tmp608_ebvu/arch/riscv/lib/memcpy_template.S:13: Error: unrecognized opcode `_asm_extable 100b,6f'
/build/tmp608_ebvu/arch/riscv/lib/memcpy_template.S:32:  Info: macro invoked from here
/build/tmp608_ebvu/arch/riscv/lib/memcpy_template.S:83:   Info: macro invoked from here
I: config: PASS in 0:00:04.908299
I: default: FAIL in 0:00:14.154039
I: kernel: SKIP in 0:00:00.000008
I: xipkernel: SKIP in 0:00:00.000005
I: modules: SKIP in 0:00:00.001727
I: dtbs: PASS in 0:00:01.122890
I: dtbs-legacy: SKIP in 0:00:00.003392
I: debugkernel: SKIP in 0:00:00.000004
I: headers: PASS in 0:00:01.122395
I: build output in /build/tmp.7amPnygv1D
/build/tmp608_ebvu/arch/riscv/lib/memcpy_template.S:13: Error: unrecognized opcode `_asm_extable 100b,6f'
/build/tmp608_ebvu/arch/riscv/lib/memcpy_template.S:32:  Info: macro invoked from here
/build/tmp608_ebvu/arch/riscv/lib/memcpy_template.S:84:   Info: macro invoked from here
/build/tmp608_ebvu/arch/riscv/lib/memcpy_template.S:13: Error: unrecognized opcode `_asm_extable 100b,6f'
/build/tmp608_ebvu/arch/riscv/lib/memcpy_template.S:32:  Info: macro invoked from here
/build/tmp608_ebvu/arch/riscv/lib/memcpy_template.S:85:   Info: macro invoked from here
/build/tmp608_ebvu/arch/riscv/lib/memcpy_template.S:13: Error: unrecognized opcode `_asm_extable 100b,6f'
/build/tmp608_ebvu/arch/riscv/lib/memcpy_template.S:36:  Info: macro invoked from here
/build/tmp608_ebvu/arch/riscv/lib/memcpy_template.S:87:   Info: macro invoked from here
/build/tmp608_ebvu/arch/riscv/lib/memcpy_template.S:13: Error: unrecognized opcode `_asm_extable 100b,6f'
/build/tmp608_ebvu/arch/riscv/lib/memcpy_template.S:36:  Info: macro invoked from here
/build/tmp608_ebvu/arch/riscv/lib/memcpy_template.S:88:   Info: macro invoked from here
/build/tmp608_ebvu/arch/riscv/lib/memcpy_template.S:13: Error: unrecognized opcode `_asm_extable 100b,6f'
/build/tmp608_ebvu/arch/riscv/lib/memcpy_template.S:36:  Info: macro invoked from here
/build/tmp608_ebvu/arch/riscv/lib/memcpy_template.S:89:   Info: macro invoked from here
/build/tmp608_ebvu/arch/riscv/lib/memcpy_template.S:13: Error: unrecognized opcode `_asm_extable 100b,6f'
/build/tmp608_ebvu/arch/riscv/lib/memcpy_template.S:36:  Info: macro invoked from here
/build/tmp608_ebvu/arch/riscv/lib/memcpy_template.S:90:   Info: macro invoked from here
/build/tmp608_ebvu/arch/riscv/lib/memcpy_template.S:13: Error: unrecognized opcode `_asm_extable 100b,6f'
/build/tmp608_ebvu/arch/riscv/lib/memcpy_template.S:36:  Info: macro invoked from here
/build/tmp608_ebvu/arch/riscv/lib/memcpy_template.S:91:   Info: macro invoked from here
/build/tmp608_ebvu/arch/riscv/lib/memcpy_template.S:13: Error: unrecognized opcode `_asm_extable 100b,6f'
/build/tmp608_ebvu/arch/riscv/lib/memcpy_template.S:36:  Info: macro invoked from here
/build/tmp608_ebvu/arch/riscv/lib/memcpy_template.S:92:   Info: macro invoked from here
/build/tmp608_ebvu/arch/riscv/lib/memcpy_template.S:13: Error: unrecognized opcode `_asm_extable 100b,6f'
/build/tmp608_ebvu/arch/riscv/lib/memcpy_template.S:40:  Info: macro invoked from here
/build/tmp608_ebvu/arch/riscv/lib/memcpy_template.S:109:   Info: macro invoked from here
/build/tmp608_ebvu/arch/riscv/lib/memcpy_template.S:13: Error: unrecognized opcode `_asm_extable 100b,6f'
/build/tmp608_ebvu/arch/riscv/lib/memcpy_template.S:44:  Info: macro invoked from here
/build/tmp608_ebvu/arch/riscv/lib/memcpy_template.S:111:   Info: macro invoked from here
/build/tmp608_ebvu/arch/riscv/lib/memcpy_template.S:13: Error: unrecognized opcode `_asm_extable 100b,6f'
/build/tmp608_ebvu/arch/riscv/lib/memcpy_template.S:24:  Info: macro invoked from here
/build/tmp608_ebvu/arch/riscv/lib/memcpy_template.S:117:   Info: macro invoked from here
/build/tmp608_ebvu/arch/riscv/lib/memcpy_template.S:13: Error: unrecognized opcode `_asm_extable 100b,6f'
/build/tmp608_ebvu/arch/riscv/lib/memcpy_template.S:28:  Info: macro invoked from here
/build/tmp608_ebvu/arch/riscv/lib/memcpy_template.S:119:   Info: macro invoked from here
make[4]: *** [/build/tmp608_ebvu/scripts/Makefile.build:434: arch/riscv/lib/memcpy_mc.o] Error 1
make[4]: Target 'arch/riscv/lib/' not remade because of errors.
make[3]: *** [/build/tmp608_ebvu/scripts/Makefile.build:548: arch/riscv/lib] Error 2
/build/tmp608_ebvu/lib/iov_iter.c: In function 'copy_to_user_iter_mc':
/build/tmp608_ebvu/lib/iov_iter.c:210:23: error: implicit declaration of function 'copy_mc_to_user'; did you mean '_copy_mc_to_iter'? [-Wimplicit-function-declaration]
  210 |                 len = copy_mc_to_user(iter_to, from, len);
      |                       ^~~~~~~~~~~~~~~
      |                       _copy_mc_to_iter
make[4]: *** [/build/tmp608_ebvu/scripts/Makefile.build:289: lib/iov_iter.o] Error 1
make[4]: Target 'lib/' not remade because of errors.
make[3]: *** [/build/tmp608_ebvu/scripts/Makefile.build:548: lib] Error 2
make[3]: Target './' not remade because of errors.
make[2]: *** [/build/tmp608_ebvu/Makefile:2141: .] Error 2
make[2]: Target '__all' not remade because of errors.
make[1]: *** [/build/tmp608_ebvu/Makefile:248: __sub-make] Error 2
make[1]: Target '__all' not remade because of errors.
make: *** [Makefile:248: __sub-make] Error 2
make: Target '__all' not remade because of errors.
make --silent --keep-going --jobs=48 O=/build/tmp.7amPnygv1D/build INSTALL_DTBS_PATH=/build/tmp.7amPnygv1D/build/dtbsinstall/dtbs ARCH=riscv CROSS_COMPILE=riscv64-linux- 'CC=ccache riscv64-linux-gcc' 'HOSTCC=ccache gcc' dtbs
rm -rf /build/tmp.7amPnygv1D/build/dtbsinstall
mkdir -p /build/tmp.7amPnygv1D/build/dtbsinstall/dtbs
make --silent --keep-going --jobs=48 O=/build/tmp.7amPnygv1D/build INSTALL_DTBS_PATH=/build/tmp.7amPnygv1D/build/dtbsinstall/dtbs ARCH=riscv CROSS_COMPILE=riscv64-linux- 'CC=ccache riscv64-linux-gcc' 'HOSTCC=ccache gcc' dtbs_install
tar --sort=name --owner=tuxmake:1000 --group=tuxmake:1000 --mtime=@1778224251 --clamp-mtime -caf /build/tmp.7amPnygv1D/build/dtbs.tar -C /build/tmp.7amPnygv1D/build/dtbsinstall dtbs
rm -rf /build/tmp.7amPnygv1D/build/install_hdr
make --silent --keep-going --jobs=48 O=/build/tmp.7amPnygv1D/build INSTALL_HDR_PATH=/build/tmp.7amPnygv1D/build/install_hdr/ ARCH=riscv CROSS_COMPILE=riscv64-linux- 'CC=ccache riscv64-linux-gcc' 'HOSTCC=ccache gcc' headers_install
tar --sort=name --owner=tuxmake:1000 --group=tuxmake:1000 --mtime=@1778224251 --clamp-mtime -caf /build/tmp.7amPnygv1D/build/headers.tar -C /build/tmp.7amPnygv1D/build/install_hdr .
warnings/errors:
/build/tmp608_ebvu/lib/iov_iter.c:210:23: error: implicit declaration of function 'copy_mc_to_user'; did you mean '_copy_mc_to_iter'? [-Wimplicit-function-declaration]


@linux-riscv-bot
Copy link
Copy Markdown
Author

Patch 1: "riscv: add copy_mc_to_{kernel,user} support to enable MC fault tolerance"
checkpatch
Desc: Runs checkpatch.pl on the patch
Duration: 3.10 seconds
Result: WARNING
Output:

CHECK: Please use a blank line after function/struct/union/enum declarations
#164: FILE: arch/riscv/include/asm/uaccess.h:506:
+}
+#define copy_mc_to_kernel copy_mc_to_kernel

WARNING: added, moved or deleted file(s), does MAINTAINERS need updating?
#318: 
new file mode 100644

total: 0 errors, 1 warnings, 1 checks, 350 lines checked

NOTE: For some of the reported defects, checkpatch may be able to
      mechanically convert to the typical style using --fix or --fix-inplace.

Commit 06006bad9528 ("riscv: add copy_mc_to_{kernel,user} support to enable MC fault tolerance") has style problems, please review.

NOTE: Ignored message types: ALLOC_SIZEOF_STRUCT CAMELCASE COMMIT_LOG_LONG_LINE GIT_COMMIT_ID MACRO_ARG_REUSE NO_AUTHOR_SIGN_OFF

NOTE: If any of the errors are false positives, please report
      them to the maintainer, see CHECKPATCH in MAINTAINERS.
total: 0 errors, 1 warnings, 1 checks, 350 lines checked
CHECK: Please use a blank line after function/struct/union/enum declarations
WARNING: added, moved or deleted file(s), does MAINTAINERS need updating?


@linux-riscv-bot
Copy link
Copy Markdown
Author

Patch 1: "riscv: add copy_mc_to_{kernel,user} support to enable MC fault tolerance"
dtb-warn-rv64
Desc: Checks for Device Tree warnings/errors
Duration: 86.52 seconds
Result: PASS

@linux-riscv-bot
Copy link
Copy Markdown
Author

Patch 1: "riscv: add copy_mc_to_{kernel,user} support to enable MC fault tolerance"
header-inline
Desc: Detects static functions without inline keyword in header files
Duration: 0.26 seconds
Result: PASS

@linux-riscv-bot
Copy link
Copy Markdown
Author

Patch 1: "riscv: add copy_mc_to_{kernel,user} support to enable MC fault tolerance"
kdoc
Desc: Detects for kdoc errors
Duration: 0.95 seconds
Result: PASS

@linux-riscv-bot
Copy link
Copy Markdown
Author

Patch 1: "riscv: add copy_mc_to_{kernel,user} support to enable MC fault tolerance"
module-param
Desc: Detect module_param changes
Duration: 0.28 seconds
Result: PASS

@linux-riscv-bot
Copy link
Copy Markdown
Author

Patch 1: "riscv: add copy_mc_to_{kernel,user} support to enable MC fault tolerance"
verify-fixes
Desc: Verifies that the Fixes: tags exist
Duration: 0.24 seconds
Result: PASS

@linux-riscv-bot
Copy link
Copy Markdown
Author

Patch 1: "riscv: add copy_mc_to_{kernel,user} support to enable MC fault tolerance"
verify-signedoff
Desc: Verifies that Signed-off-by: tags are correct
Duration: 1.46 seconds
Result: PASS

@linux-riscv-bot linux-riscv-bot force-pushed the workflow__riscv__fixes branch 2 times, most recently from 2d4fcdd to cd9d421 Compare May 14, 2026 08:49
@linux-riscv-bot linux-riscv-bot deleted the pw1091438 branch May 16, 2026 02:12
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant