[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[xen master] acpi: reboot: log reset parameters



commit d92587f0081b7e375715996aa78ebf0e35c71d71
Author:     Denis Mukhin <dmukhin@xxxxxxxx>
AuthorDate: Wed Aug 12 10:47:40 2026 +0200
Commit:     Jan Beulich <jbeulich@xxxxxxxx>
CommitDate: Wed Aug 12 10:47:40 2026 +0200

    acpi: reboot: log reset parameters
    
    Xen does not provide much details for system reset debugging in case
    system reset happens via ACPI subsystem.
    
    Log reset I/O address and reset value.
    
    While here, add the missing default case, add breaks between case
    statements and drop full stops in the loglines.
    
    Signed-off-by: Denis Mukhin <dmukhin@xxxxxxxx>
    Reviewed-by: Jan Beulich <jbeulich@xxxxxxxx>
---
 xen/drivers/acpi/reboot.c | 23 +++++++++++++++++------
 1 file changed, 17 insertions(+), 6 deletions(-)

diff --git a/xen/drivers/acpi/reboot.c b/xen/drivers/acpi/reboot.c
index f6345be874..78456bca30 100644
--- a/xen/drivers/acpi/reboot.c
+++ b/xen/drivers/acpi/reboot.c
@@ -6,6 +6,7 @@ void acpi_reboot(void)
 {
        struct acpi_generic_address *rr;
        u8 reset_value;
+       pci_sbdf_t sbdf;
 
        rr = &acpi_gbl_FADT.reset_register;
 
@@ -21,17 +22,27 @@ void acpi_reboot(void)
         * on a device on bus 0. */
        switch (rr->space_id) {
        case ACPI_ADR_SPACE_PCI_CONFIG:
-               printk("Resetting with ACPI PCI RESET_REG.\n");
+               sbdf = PCI_SBDF(0, 0, rr->address >> 32, rr->address >> 16);
+               printk("Resetting with ACPI PCI %pp RESET_REG at %#"PRIx64" 
(%#x)\n",
+                      &sbdf, rr->address & 0xff, reset_value);
                /* Write the value that resets us. */
-               pci_conf_write8(PCI_SBDF(0, 0, rr->address >> 32,
-                                        rr->address >> 16),
-                               (rr->address & 255),
-                               reset_value);
+               pci_conf_write8(sbdf, rr->address & 0xff, reset_value);
                break;
+
        case ACPI_ADR_SPACE_SYSTEM_MEMORY:
+               printk("Resetting with ACPI MEMORY at %#"PRIx64" (%#x)\n",
+                      rr->address, reset_value);
+               acpi_hw_low_level_write(8, reset_value, rr);
+               break;
+
        case ACPI_ADR_SPACE_SYSTEM_IO:
-               printk("Resetting with ACPI MEMORY or I/O RESET_REG.\n");
+               printk("Resetting with I/O RESET_REG at %#"PRIx64" (%#x)\n",
+                      rr->address, reset_value);
                acpi_hw_low_level_write(8, reset_value, rr);
                break;
+
+       default:
+               /* Fallback to alternative reboot methods */
+               break;
        }
 }
--
generated by git-patchbot for /home/xen/git/xen.git#master



 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.