• Rafael J. Wysocki's avatar
    ACPI: Introduce acpi_os_ioremap() · 2d6d9fd3
    Rafael J. Wysocki authored
    Commit ca9b600b ("ACPI / PM: Make suspend_nvs_save() use
    acpi_os_map_memory()") attempted to prevent the code in osl.c and nvs.c
    from using different ioremap() variants by making the latter use
    acpi_os_map_memory() for mapping the NVS pages.  However, that also
    requires acpi_os_unmap_memory() to be used for unmapping them, which
    causes synchronize_rcu() to be executed many times in a row
    unnecessarily and introduces substantial delays during resume on some
    systems.
    
    Instead of using acpi_os_map_memory() for mapping the NVS pages in nvs.c
    introduce acpi_os_ioremap() calling ioremap_cache() and make the code in
    both osl.c and nvs.c use it.
    Reported-by: default avatarJeff Chua <jeff.chua.linux@gmail.com>
    Signed-off-by: default avatarRafael J. Wysocki <rjw@sisk.pl>
    Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
    2d6d9fd3
osl.c 37.9 KB