• Hans de Goede's avatar
    HID: core: Do not call request_module() in async context · 4ceabaf7
    Hans de Goede authored
    request_module() may not be called form async context and in some cases
    hid devices may be added from an async context. One example of this
    happening is under hyperv, where this was triggering a WARN_ON in
    request_module():
    
    [   11.174497]  hid_add_device+0xee/0x2b0 [hid]
    [   11.174499]  mousevsc_probe+0x223/0x2eb [hid_hyperv]
    [   11.174501]  vmbus_probe+0x3a/0x90
    [   11.174504]  really_probe+0x229/0x420
    [   11.174506]  driver_probe_device+0x115/0x130
    [   11.174507]  __driver_attach_async_helper+0x87/0x90
    [   11.174509]  async_run_entry_fn+0x37/0x150
    
    This commit skips the request_module(), falling back to the old behavior
    of letting userspace deal with this, in case we are called from an async
    context.
    
    Cc: Lili Deng <v-lide@microsoft.com>
    Reported-by: default avatarLili Deng <v-lide@microsoft.com>
    Signed-off-by: default avatarHans de Goede <hdegoede@redhat.com>
    Signed-off-by: default avatarBenjamin Tissoires <benjamin.tissoires@redhat.com>
    4ceabaf7
hid-core.c 63.3 KB