diff --git a/drivers/hid/hid-core.c b/drivers/hid/hid-core.c index 2f843b84811e..59e95768142d 100644 --- a/drivers/hid/hid-core.c +++ b/drivers/hid/hid-core.c @@ -30,6 +30,7 @@ #include #include #include +#include #include #include @@ -2366,8 +2367,9 @@ int hid_add_device(struct hid_device *hdev) * not first have hid-generic binding only to have it replaced * immediately afterwards with a specialized driver. */ - request_module("hid:b%04Xg%04Xv%08Xp%08X", - hdev->bus, hdev->group, hdev->vendor, hdev->product); + if (!current_is_async()) + request_module("hid:b%04Xg%04Xv%08Xp%08X", hdev->bus, + hdev->group, hdev->vendor, hdev->product); hid_debug_register(hdev, dev_name(&hdev->dev)); ret = device_add(&hdev->dev);