Skip to content

Conversation

@linux-riscv-bot
Copy link

PR for series 1045501 applied to workflow__riscv__fixes

Name: Ensure some device initialization before init task
URL: https://patchwork.kernel.org/project/linux-riscv/list/?series=1045501
Version: 1

Yicong Yang added 2 commits January 22, 2026 07:54
The device object rescan in acpi_scan_clear_dep_fn is scheduled
in the system workqueue which is not guaranteed to be finished
before entering userspace. This will cause the problem that
some key devices are missed when the init task try to find them,
e.g. console devices and root devices (PCIe nvme, etc).
This issues is more possbile to happen on RISCV since these
devices using GSI interrupt may depend on APLIC and will be
scanned in acpi_scan_clear_dep_queue() after APLIC initialized.

Fix this by scheduling the acpi_scan_clear_dep_queue() using async
schedule function rather than the system workqueue. The deferred
works will be synchronized by async_synchronize_full() before
entering init task.

Update the comment as well.

Signed-off-by: Yicong Yang <yang.yicong@picoheart.com>
Signed-off-by: Linux RISC-V bot <linux.riscv.bot@gmail.com>
Currently the console_on_rootfs() is called before
async_synchronize_full(), the console initialization
could be still in process in theory due to async
probe, etc. Make it after the async_synchronize_full()
to make sure the initialization work is done.

Log the error code as well if we failed to open the console.

Signed-off-by: Yicong Yang <yang.yicong@picoheart.com>
Signed-off-by: Linux RISC-V bot <linux.riscv.bot@gmail.com>
@linux-riscv-bot
Copy link
Author

Patch 1: "[1/2] ACPI: scan: Use async schedule function for acpi_scan_clear_dep_fn"
build-rv32-defconfig
Desc: Builds riscv32 defconfig
Duration: 113.83 seconds
Result: PASS

@linux-riscv-bot
Copy link
Author

Patch 1: "[1/2] ACPI: scan: Use async schedule function for acpi_scan_clear_dep_fn"
build-rv64-clang-allmodconfig
Desc: Builds riscv64 allmodconfig with Clang, and checks for errors and added warnings
Duration: 1226.79 seconds
Result: PASS

@linux-riscv-bot
Copy link
Author

Patch 1: "[1/2] ACPI: scan: Use async schedule function for acpi_scan_clear_dep_fn"
build-rv64-gcc-allmodconfig
Desc: Builds riscv64 allmodconfig with GCC, and checks for errors and added warnings
Duration: 1685.34 seconds
Result: PASS

@linux-riscv-bot
Copy link
Author

Patch 1: "[1/2] ACPI: scan: Use async schedule function for acpi_scan_clear_dep_fn"
build-rv64-nommu-k210-defconfig
Desc: Builds riscv64 defconfig with NOMMU for K210
Duration: 25.25 seconds
Result: PASS

@linux-riscv-bot
Copy link
Author

Patch 1: "[1/2] ACPI: scan: Use async schedule function for acpi_scan_clear_dep_fn"
build-rv64-nommu-k210-virt
Desc: Builds riscv64 defconfig with NOMMU for the virt platform
Duration: 25.82 seconds
Result: PASS

@linux-riscv-bot
Copy link
Author

Patch 1: "[1/2] ACPI: scan: Use async schedule function for acpi_scan_clear_dep_fn"
checkpatch
Desc: Runs checkpatch.pl on the patch
Duration: 0.87 seconds
Result: PASS

@linux-riscv-bot
Copy link
Author

Patch 1: "[1/2] ACPI: scan: Use async schedule function for acpi_scan_clear_dep_fn"
dtb-warn-rv64
Desc: Checks for Device Tree warnings/errors
Duration: 81.52 seconds
Result: PASS

@linux-riscv-bot
Copy link
Author

Patch 1: "[1/2] ACPI: scan: Use async schedule function for acpi_scan_clear_dep_fn"
header-inline
Desc: Detects static functions without inline keyword in header files
Duration: 0.22 seconds
Result: PASS

@linux-riscv-bot
Copy link
Author

Patch 1: "[1/2] ACPI: scan: Use async schedule function for acpi_scan_clear_dep_fn"
kdoc
Desc: Detects for kdoc errors
Duration: 0.99 seconds
Result: PASS

@linux-riscv-bot
Copy link
Author

Patch 1: "[1/2] ACPI: scan: Use async schedule function for acpi_scan_clear_dep_fn"
module-param
Desc: Detect module_param changes
Duration: 0.24 seconds
Result: PASS

@linux-riscv-bot
Copy link
Author

Patch 1: "[1/2] ACPI: scan: Use async schedule function for acpi_scan_clear_dep_fn"
verify-fixes
Desc: Verifies that the Fixes: tags exist
Duration: 1.51 seconds
Result: PASS

@linux-riscv-bot
Copy link
Author

Patch 1: "[1/2] ACPI: scan: Use async schedule function for acpi_scan_clear_dep_fn"
verify-signedoff
Desc: Verifies that Signed-off-by: tags are correct
Duration: 0.29 seconds
Result: PASS

@linux-riscv-bot
Copy link
Author

Patch 2: "[2/2] init: Move console_on_rootfs after async_synchronize_full"
build-rv32-defconfig
Desc: Builds riscv32 defconfig
Duration: 113.56 seconds
Result: PASS

@linux-riscv-bot
Copy link
Author

Patch 2: "[2/2] init: Move console_on_rootfs after async_synchronize_full"
build-rv64-clang-allmodconfig
Desc: Builds riscv64 allmodconfig with Clang, and checks for errors and added warnings
Duration: 1228.97 seconds
Result: PASS

@linux-riscv-bot
Copy link
Author

Patch 2: "[2/2] init: Move console_on_rootfs after async_synchronize_full"
build-rv64-gcc-allmodconfig
Desc: Builds riscv64 allmodconfig with GCC, and checks for errors and added warnings
Duration: 1686.33 seconds
Result: PASS

@linux-riscv-bot
Copy link
Author

Patch 2: "[2/2] init: Move console_on_rootfs after async_synchronize_full"
build-rv64-nommu-k210-defconfig
Desc: Builds riscv64 defconfig with NOMMU for K210
Duration: 24.58 seconds
Result: PASS

@linux-riscv-bot
Copy link
Author

Patch 2: "[2/2] init: Move console_on_rootfs after async_synchronize_full"
build-rv64-nommu-k210-virt
Desc: Builds riscv64 defconfig with NOMMU for the virt platform
Duration: 27.12 seconds
Result: PASS

@linux-riscv-bot
Copy link
Author

Patch 2: "[2/2] init: Move console_on_rootfs after async_synchronize_full"
checkpatch
Desc: Runs checkpatch.pl on the patch
Duration: 0.88 seconds
Result: PASS

@linux-riscv-bot
Copy link
Author

Patch 2: "[2/2] init: Move console_on_rootfs after async_synchronize_full"
dtb-warn-rv64
Desc: Checks for Device Tree warnings/errors
Duration: 81.69 seconds
Result: PASS

@linux-riscv-bot
Copy link
Author

Patch 2: "[2/2] init: Move console_on_rootfs after async_synchronize_full"
header-inline
Desc: Detects static functions without inline keyword in header files
Duration: 0.23 seconds
Result: PASS

@linux-riscv-bot
Copy link
Author

Patch 2: "[2/2] init: Move console_on_rootfs after async_synchronize_full"
kdoc
Desc: Detects for kdoc errors
Duration: 0.97 seconds
Result: PASS

@linux-riscv-bot
Copy link
Author

Patch 2: "[2/2] init: Move console_on_rootfs after async_synchronize_full"
module-param
Desc: Detect module_param changes
Duration: 0.24 seconds
Result: PASS

@linux-riscv-bot
Copy link
Author

Patch 2: "[2/2] init: Move console_on_rootfs after async_synchronize_full"
verify-fixes
Desc: Verifies that the Fixes: tags exist
Duration: 0.21 seconds
Result: PASS

@linux-riscv-bot
Copy link
Author

Patch 2: "[2/2] init: Move console_on_rootfs after async_synchronize_full"
verify-signedoff
Desc: Verifies that Signed-off-by: tags are correct
Duration: 0.30 seconds
Result: PASS

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.

2 participants