acpi_os_read_memory() from interrupt context

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

 



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
--
To unsubscribe from this list: send the line "unsubscribe linux-acpi" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Index of Archives]     [Linux IBM ACPI]     [Linux Power Management]     [Linux Kernel]     [Linux Laptop]     [Kernel Newbies]     [Share Photos]     [Security]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Samba]     [Video 4 Linux]     [Device Mapper]     [Linux Resources]

  Powered by Linux