linux-input.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH 3/3] hid: intel-ish-hid: ipc: use msleep_interrupt() for wait
@ 2016-11-11  1:40 Even Xu
  2016-11-15 13:27 ` Jiri Kosina
  2016-11-15 18:10 ` Pandruvada, Srinivas
  0 siblings, 2 replies; 4+ messages in thread
From: Even Xu @ 2016-11-11  1:40 UTC (permalink / raw)
  To: jikos; +Cc: linux-input, srinivas.pandruvada, Even Xu

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@intel.com>
---
 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);
 
-- 
2.7.4


^ permalink raw reply related	[flat|nested] 4+ messages in thread

* Re: [PATCH 3/3] hid: intel-ish-hid: ipc: use msleep_interrupt() for wait
  2016-11-11  1:40 [PATCH 3/3] hid: intel-ish-hid: ipc: use msleep_interrupt() for wait Even Xu
@ 2016-11-15 13:27 ` Jiri Kosina
  2016-11-15 14:37   ` Xu, Even
  2016-11-15 18:10 ` Pandruvada, Srinivas
  1 sibling, 1 reply; 4+ messages in thread
From: Jiri Kosina @ 2016-11-15 13:27 UTC (permalink / raw)
  To: Even Xu; +Cc: linux-input, srinivas.pandruvada

On Fri, 11 Nov 2016, 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@intel.com>

Is this fixing a bug that has been observed / reported in a real life, or 
has this been found purely via code inspection? (asking to schedule 
upstream merge properly).

Thanks,

-- 
Jiri Kosina
SUSE Labs


^ permalink raw reply	[flat|nested] 4+ messages in thread

* RE: [PATCH 3/3] hid: intel-ish-hid: ipc: use msleep_interrupt() for wait
  2016-11-15 13:27 ` Jiri Kosina
@ 2016-11-15 14:37   ` Xu, Even
  0 siblings, 0 replies; 4+ messages in thread
From: Xu, Even @ 2016-11-15 14:37 UTC (permalink / raw)
  To: Jiri Kosina; +Cc: linux-input@vger.kernel.org, Pandruvada, Srinivas

Hi, Jiri,

This issue was found by code inspection, no real bug was reported.
Thanks!

Best Regards,
Even Xu

-----Original Message-----
From: Jiri Kosina [mailto:jikos@kernel.org] 
Sent: Tuesday, November 15, 2016 9:27 PM
To: Xu, Even <even.xu@intel.com>
Cc: linux-input@vger.kernel.org; Pandruvada, Srinivas <srinivas.pandruvada@intel.com>
Subject: Re: [PATCH 3/3] hid: intel-ish-hid: ipc: use msleep_interrupt() for wait

On Fri, 11 Nov 2016, 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@intel.com>

Is this fixing a bug that has been observed / reported in a real life, or has this been found purely via code inspection? (asking to schedule upstream merge properly).

Thanks,

--
Jiri Kosina
SUSE Labs


^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [PATCH 3/3] hid: intel-ish-hid: ipc: use msleep_interrupt() for wait
  2016-11-11  1:40 [PATCH 3/3] hid: intel-ish-hid: ipc: use msleep_interrupt() for wait Even Xu
  2016-11-15 13:27 ` Jiri Kosina
@ 2016-11-15 18:10 ` Pandruvada, Srinivas
  1 sibling, 0 replies; 4+ messages in thread
From: Pandruvada, Srinivas @ 2016-11-15 18:10 UTC (permalink / raw)
  To: jikos@kernel.org, Xu, Even; +Cc: linux-input@vger.kernel.org

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@intel.com>
Acked-by: Srinivas Pandruvada <srinivas.pandruvada@linux.intel.com>

> ---
>  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);
>  

^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2016-11-15 18:10 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2016-11-11  1:40 [PATCH 3/3] hid: intel-ish-hid: ipc: use msleep_interrupt() for wait Even Xu
2016-11-15 13:27 ` Jiri Kosina
2016-11-15 14:37   ` Xu, Even
2016-11-15 18:10 ` Pandruvada, Srinivas

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).