• Bart Van Assche's avatar
    ACPI / OSL: Use 'jiffies' as the time bassis for acpi_os_get_timer() · a3b026a3
    Bart Van Assche authored
    commit 83b2348e upstream.
    
    Since acpi_os_get_timer() may be called after the timer subsystem has
    been suspended, use the jiffies counter instead of ktime_get(). This
    patch avoids that the following warning is reported during hibernation:
    
    WARNING: CPU: 0 PID: 612 at kernel/time/timekeeping.c:751 ktime_get+0x116/0x120
    RIP: 0010:ktime_get+0x116/0x120
    Call Trace:
     acpi_os_get_timer+0xe/0x30
     acpi_ds_exec_begin_control_op+0x175/0x1de
     acpi_ds_exec_begin_op+0x2c7/0x39a
     acpi_ps_create_op+0x573/0x5e4
     acpi_ps_parse_loop+0x349/0x1220
     acpi_ps_parse_aml+0x25b/0x6da
     acpi_ps_execute_method+0x327/0x41b
     acpi_ns_evaluate+0x4e9/0x6f5
     acpi_ut_evaluate_object+0xd9/0x2f2
     acpi_rs_get_method_data+0x8f/0x114
     acpi_walk_resources+0x122/0x1b6
     acpi_pci_link_get_current.isra.2+0x157/0x280
     acpi_pci_link_set+0x32f/0x4a0
     irqrouter_resume+0x58/0x80
     syscore_resume+0x84/0x380
     hibernation_snapshot+0x20c/0x4f0
     hibernate+0x22d/0x3a6
     state_store+0x99/0xa0
     kobj_attr_store+0x37/0x50
     sysfs_kf_write+0x87/0xa0
     kernfs_fop_write+0x1a5/0x240
     __vfs_write+0xd2/0x410
     vfs_write+0x101/0x250
     ksys_write+0xab/0x120
     __x64_sys_write+0x43/0x50
     do_syscall_64+0x71/0x220
     entry_SYSCALL_64_after_hwframe+0x49/0xbe
    
    Fixes: 164a08ce (ACPICA: Dispatcher: Introduce timeout mechanism for infinite loop detection)
    Reported-by: default avatarFengguang Wu <fengguang.wu@intel.com>
    References: https://lists.01.org/pipermail/lkp/2018-April/008406.htmlSigned-off-by: default avatarBart Van Assche <bvanassche@acm.org>
    Cc: 4.16+ <stable@vger.kernel.org> # 4.16+
    Signed-off-by: default avatarRafael J. Wysocki <rafael.j.wysocki@intel.com>
    Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
    a3b026a3
osl.c 42.3 KB