On Fri, 2016-11-11 at 09:40 +0800, Even Xu wrote: > 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 <even.xu@xxxxxxxxx> Acked-by: Srinivas Pandruvada <srinivas.pandruvada@xxxxxxxxxxxxxxx> > --- > drivers/hid/intel-ish-hid/ipc/ipc.c | 4 +++- > 1 file changed, 3 insertions(+), 1 deletion(-) > > diff --git a/drivers/hid/intel-ish-hid/ipc/ipc.c b/drivers/hid/intel- > ish-hid/ipc/ipc.c > index 8194c35..86a36eb 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); > ��.n��������+%������w��{.n�����{��)��^n�r������&��z�ޗ�zf���h���~����������_��+v���)ߣ�