[PW_SID:1148831] [v2] ACPI: scan: Defer device power initialization - #2503
[PW_SID:1148831] [v2] ACPI: scan: Defer device power initialization#2503linux-riscv-bot wants to merge 4 commits into
Conversation
…_RWX When CONFIG_STRICT_MODULE_RWX is not set, execmem cannot create temporary writable mappings for read-only executable pages. In this case, the execmem ranges must already have writable permissions. Currently EXECMEM_KPROBES unconditionally uses PAGE_KERNEL_READ_EXEC, which causes kprobe instruction slot writes to trigger page faults on systems where CONFIG_STRICT_MODULE_RWX is not enabled. Fix this by using PAGE_KERNEL_EXEC when CONFIG_STRICT_MODULE_RWX is not available. Signed-off-by: Xiaofeng Yuan <xiaofengmian@163.com> Tested-by: Lad Prabhakar <prabhakar.mahadev-lad.rj@bp.renesas.com> Reviewed-by: Nam Cao <namcao@linutronix.de> Link: https://patch.msgid.link/20260814082742.148403-2-xiaofengmian@163.com Signed-off-by: Paul Walmsley <pjw@kernel.org>
patch_map() always creates a temporary writable mapping via fixmap for kernel text addresses, even when CONFIG_STRICT_KERNEL_RWX is disabled and the kernel text is already mapped with _PAGE_WRITE. This is unnecessary overhead at best, and on minimal configurations it can cause page faults. Skip the fixmap path for kernel text when CONFIG_STRICT_KERNEL_RWX is not enabled, since the text pages are already writable in that case. The module text path is already gated on CONFIG_STRICT_MODULE_RWX and is kept unchanged. Reported-by: Klara Modin <klara@kasm.eu> Closes: https://lore.kernel.org/all/ant_8TaBbov_GS4i@soda.int.kasm.eu/ Reported-by: Lad Prabhakar <prabhakar.csengg@gmail.com> Closes: https://lore.kernel.org/all/CA+V-a8tQK8rih9SGGTyqrEBGpNkx4H0eX2YccCRrgkVAPr+EBg@mail.gmail.com/ Tested-by: Klara Modin <klarasmodin@gmail.com> Tested-by: Lad Prabhakar <prabhakar.mahadev-lad.rj@bp.renesas.com> Link: https://patch.msgid.link/20260814082742.148403-3-xiaofengmian@163.com Signed-off-by: Paul Walmsley <pjw@kernel.org>
acpi_bus_get_power_flags() initializes the device power state while the ACPI device object is being created, before checking whether the device is ready for enumeration. If enumeration is deferred, acpi_bus_attach() clears the initialized and power_manageable flags. When the dependency is later satisfied, acpi_bus_init_power() is called again and takes additional references to the power resources used by the device. These references prevent the resources from being turned off when the device enters D3. Remove the early acpi_bus_init_power() call and leave regular ACPI device objects uninitialized until acpi_bus_attach() runs after the device is ready for enumeration. Power resource objects are initialized through acpi_add_power_resource() and do not require the generic initialization in acpi_bus_attach(), so mark them as initialized there. This also avoids powering up devices before their dependencies are available. Signed-off-by: Peixin Xie <peixin.xie@linux.spacemit.com> Signed-off-by: Linux RISC-V bot <linux.riscv.bot@gmail.com>
|
Patch 1: "[v2] ACPI: scan: Defer device power initialization" |
|
Patch 1: "[v2] ACPI: scan: Defer device power initialization" |
|
Patch 1: "[v2] ACPI: scan: Defer device power initialization" |
|
Patch 1: "[v2] ACPI: scan: Defer device power initialization" |
|
Patch 1: "[v2] ACPI: scan: Defer device power initialization" |
|
Patch 1: "[v2] ACPI: scan: Defer device power initialization" |
|
Patch 1: "[v2] ACPI: scan: Defer device power initialization" |
|
Patch 1: "[v2] ACPI: scan: Defer device power initialization" |
|
Patch 1: "[v2] ACPI: scan: Defer device power initialization" |
|
Patch 1: "[v2] ACPI: scan: Defer device power initialization" |
|
Patch 1: "[v2] ACPI: scan: Defer device power initialization" |
|
Patch 1: "[v2] ACPI: scan: Defer device power initialization" |
bb1a926 to
6f6f7c0
Compare
PR for series 1148831 applied to workflow__riscv__fixes
Name: [v2] ACPI: scan: Defer device power initialization
URL: https://patchwork.kernel.org/project/linux-riscv/list/?series=1148831
Version: 2