linux-acpi.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* acpi_os_read_memory() from interrupt context
@ 2010-08-04 17:19 Bjorn Helgaas
  2010-08-04 22:26 ` [Devel] " Moore, Robert
  2010-08-11  9:25 ` Andi Kleen
  0 siblings, 2 replies; 3+ messages in thread
From: Bjorn Helgaas @ 2010-08-04 17:19 UTC (permalink / raw)
  To: linux-acpi, devel

Linux reads some ACPI registers from interrupt context.  For example,
we read the PM1 Status register in the SCI interrupt handler via
this path:

    acpi_irq
      acpi_ev_sci_xrupt_handler
        acpi_ev_fixed_event_detect
          acpi_hw_register_read
            acpi_hw_read_multiple
              acpi_read

But acpi_read() takes a generic address structure, and if that
address happens to be in memory space (not I/O port space), we use
acpi_os_read_memory().  In Linux, that uses ioremap() to map the
address, and that doesn't work from interrupt context.

I can imagine fixing this by doing the ioremap() at boot-time
rather than at interrupt-time, but most of this interrupt path
is in the ACPI CA, not in Linux itself, so it would probably
require some redesign in the CA.

Any suggestions?

Bjorn

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2010-08-11  9:25 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2010-08-04 17:19 acpi_os_read_memory() from interrupt context Bjorn Helgaas
2010-08-04 22:26 ` [Devel] " Moore, Robert
2010-08-11  9:25 ` Andi Kleen

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).