From: Even Xu Date: Fri, 11 Nov 2016 01:40:33 +0000 (+0800) Subject: HID: intel-ish-hid: ipc: use msleep_interrupt() for wait X-Git-Url: https://git.stricted.de/?a=commitdiff_plain;h=e5b56aa7906d6995007ffe11ecc181dd876dabd3;p=GitHub%2Fmoto-9609%2Fandroid_kernel_motorola_exynos9610.git HID: intel-ish-hid: ipc: use msleep_interrupt() for wait set_current_task() must be called before schedule_timeout(), for this driver, in order to avoid incorrect usage, use msleep_interrupt() instead. Signed-off-by: Even Xu Acked-by: Srinivas Pandruvada Signed-off-by: Jiri Kosina --- diff --git a/drivers/hid/intel-ish-hid/ipc/ipc.c b/drivers/hid/intel-ish-hid/ipc/ipc.c index 3d46cc0eec70..b9bf04a3f267 100644 --- a/drivers/hid/intel-ish-hid/ipc/ipc.c +++ b/drivers/hid/intel-ish-hid/ipc/ipc.c @@ -539,6 +539,8 @@ static int ish_fw_reset_handler(struct ishtp_device *dev) return 0; } +#define TIMEOUT_FOR_HW_RDY_MS 300 + /** * ish_fw_reset_work_fn() - FW reset worker function * @unused: not used @@ -552,7 +554,7 @@ static void fw_reset_work_fn(struct work_struct *unused) rv = ish_fw_reset_handler(ishtp_dev); if (!rv) { /* ISH is ILUP & ISHTP-ready. Restart ISHTP */ - schedule_timeout(HZ / 3); + msleep_interruptible(TIMEOUT_FOR_HW_RDY_MS); ishtp_dev->recvd_hw_ready = 1; wake_up_interruptible(&ishtp_dev->wait_hw_ready);