• Huang Ying's avatar
    ACPI, IO memory pre-mapping and atomic accessing · 15651291
    Huang Ying authored
    Some ACPI IO accessing need to be done in atomic context. For example,
    APEI ERST operations may be used for permanent storage in hardware
    error handler. That is, it may be called in atomic contexts such as
    IRQ or NMI, etc. And, ERST/EINJ implement their operations via IO
    memory/port accessing.  But the IO memory accessing method provided by
    ACPI (acpi_read/acpi_write) maps the IO memory during it is accessed,
    so it can not be used in atomic context. To solve the issue, the IO
    memory should be pre-mapped during EINJ/ERST initializing. A linked
    list is used to record which memory area has been mapped, when memory
    is accessed in hardware error handler, search the linked list for the
    mapped virtual address from the given physical address.
    Signed-off-by: default avatarHuang Ying <ying.huang@intel.com>
    Signed-off-by: default avatarAndi Kleen <ak@linux.intel.com>
    Signed-off-by: default avatarLen Brown <len.brown@intel.com>
    15651291
atomicio.c 8.18 KB