Bug 18012
Summary: | PM1a registers in MMIO space causes panic | ||
---|---|---|---|
Product: | ACPI | Reporter: | Bjorn Helgaas (bjorn.helgaas) |
Component: | Config-Other | Assignee: | Myron Stowe (myron.stowe) |
Status: | CLOSED CODE_FIX | ||
Severity: | normal | CC: | lenb, ming.m.lin, myron.stowe, Robert.Moore, rui.zhang, yakui.zhao |
Priority: | P1 | ||
Hardware: | All | ||
OS: | Linux | ||
Kernel Version: | 2.6.36-rc3 | Subsystem: | |
Regression: | No | Bisected commit-id: |
Description
Bjorn Helgaas
2010-09-07 20:30:08 UTC
Will you please attach the output of acpidump/dmesg on your box? Thanks. The stacktrace above is the relevant part of the dmesg log. Here is the relevant part of the FADT: [FACP] 0x36EF1B38 0xF4 bytes PM1A_EVNT_BLK : 0x0 PM1B_EVNT_BLK : 0x0 PM1A_CNT_BLK : 0x0 PM1B_CNT_BLK : 0x0 PM2_CNT_BLK : 0x0 PM_TMR_BLK : 0x0 GPE0_BLK : 0x0 GPE1_BLK : 0x0 PM1_EVNT_LEN : 0x4 PM1_CNT_LEN : 0x2 PM2_CNT_LEN : 0x0 PM_TMR_LEN : 0x4 GPE0_BLK_LEN : 0x20 GPE1_BLK_LEN : 0x20 X_PM1a_EVT_BLK : 0xFE7E206000802002000 X_PM1b_EVT_BLK : 0x1 X_PM1a_CNT_BLK : 0xFE7E206000C01001000 X_PM1b_CNT_BLK : 0x1 X_PM2_CNT_BLK : 0x1 X_PM_TMR_BLK : 0xFE7E206000403002000 X_GPE0_BLK : 0xFE7E206001001000000 X_GPE1_BLK : 0xFE7E206003001000000 We may need to rewrite acpi_os_read_memory with atomic mmio accessing method implemented in commit 15651291a(ACPI, IO memory pre-mapping and atomic accessing) see http://marc.info/?l=git-commits-head&m=127508754831493&w=2 Yes, I think if we integrate some of the atomicio code into acpi_os_map_memory() and acpi_os_read_memory(), we can have the property that "acpi_os_read_memory() is safe in interrupt context if acpi_os_map_memory() has been done previously." That would fix this problem and also let us get rid of atomicio. Myron has much of this already coded, and it looks feasible so far. I posted the initial patch series that addresses this issue. Much like Bjorn hinted at in Comment #4 - The functionality of 'atomicio.c' has been re-factored into './drivers/acpi/osl.c' which now provides equivalent functionality but in a more generalized manner allowing usage in non-specific contexts. drivers/acpi/Makefile | 1 drivers/acpi/apei/apei-base.c | 11 + drivers/acpi/apei/ghes.c | 9 - drivers/acpi/atomicio.c | 361 ----------------------------------------- include/acpi/atomicio.h | 10 - 5 files changed, 9 insertions(+), 383 deletions(-) delete mode 100644 drivers/acpi/atomicio.c delete mode 100644 include/acpi/atomicio.h see http://marc.info/?l=linux-acpi&m=128769263327206&w=2 Darn - in Comment #5 I posted the diffstat for patch 7/7. I meant to post it for the entire patch series - here is the diffstat for the entire series. drivers/acpi/Makefile | 1 drivers/acpi/apei/apei-base.c | 11 + drivers/acpi/apei/ghes.c | 9 - drivers/acpi/atomicio.c | 361 ----------------------------------------- drivers/acpi/osl.c | 276 ++++++++++++++++++++++++++----- include/acpi/atomicio.h | 10 - include/linux/acpi.h | 3 7 files changed, 242 insertions(+), 429 deletions(-) delete mode 100644 drivers/acpi/atomicio.c delete mode 100644 include/acpi/atomicio.h Ming, any update on this one? I believe that this issue was addressed by Myron's series that went into 2.6.37, including: commit 620242ae8c3d9c0b1a77451744fb2d855d1e7342 Author: Myron Stowe <myron.stowe@hp.com> Date: Thu Oct 21 14:23:53 2010 -0600 ACPI: Maintain a list of ACPI memory mapped I/O remappings Please re-open if there is still a problem with the upstream kernel. |