diff mbox

staging: nvec: cleanup USLEEP_RANGE checkpatch checks

Message ID 20170302142418.GA16773@singhal-Inspiron-5558
State Rejected
Headers show

Commit Message

Simran Singhal March 2, 2017, 2:24 p.m. UTC
Resolve strict checkpatch USLEEP_RANGE checks by converting delays and
sleeps as described in ./Documentation/timers/timers-howto.txt.

CHECK: usleep_range is preferred over udelay; see Documentation/
timers/timers-howto.txt

Signed-off-by: simran singhal <singhalsimran0@gmail.com>
---
 drivers/staging/nvec/nvec.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

Comments

Julia Lawall March 2, 2017, 2:36 p.m. UTC | #1
On Thu, 2 Mar 2017, simran singhal wrote:

> Resolve strict checkpatch USLEEP_RANGE checks by converting delays and
> sleeps as described in ./Documentation/timers/timers-howto.txt.
>
> CHECK: usleep_range is preferred over udelay; see Documentation/
> timers/timers-howto.txt
>
> Signed-off-by: simran singhal <singhalsimran0@gmail.com>
> ---
>  drivers/staging/nvec/nvec.c | 4 ++--
>  1 file changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/staging/nvec/nvec.c b/drivers/staging/nvec/nvec.c
> index c1feccf..cd35e64 100644
> --- a/drivers/staging/nvec/nvec.c
> +++ b/drivers/staging/nvec/nvec.c
> @@ -631,7 +631,7 @@ static irqreturn_t nvec_interrupt(int irq, void *dev)
>  		break;
>  	case 2:		/* first byte after command */
>  		if (status == (I2C_SL_IRQ | RNW | RCVD)) {
> -			udelay(33);
> +			usleep_range(33, 100);

How did you choose the upper limit.

I believe that Greg previously suggested not to make these changes if you
have no way to test them.

julia


>  			if (nvec->rx->data[0] != 0x01) {
>  				dev_err(nvec->dev,
>  					"Read without prior read command\n");
> @@ -718,7 +718,7 @@ static irqreturn_t nvec_interrupt(int irq, void *dev)
>  	 * We experience less incomplete messages with this delay than without
>  	 * it, but we don't know why. Help is appreciated.
>  	 */
> -	udelay(100);
> +	usleep_range(100, 200);
>
>  	return IRQ_HANDLED;
>  }
> --
> 2.7.4
>
> --
> You received this message because you are subscribed to the Google Groups "outreachy-kernel" group.
> To unsubscribe from this group and stop receiving emails from it, send an email to outreachy-kernel+unsubscribe@googlegroups.com.
> To post to this group, send email to outreachy-kernel@googlegroups.com.
> To view this discussion on the web visit https://groups.google.com/d/msgid/outreachy-kernel/20170302142418.GA16773%40singhal-Inspiron-5558.
> For more options, visit https://groups.google.com/d/optout.
>
--
To unsubscribe from this list: send the line "unsubscribe linux-tegra" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Marc Dietrich March 2, 2017, 2:57 p.m. UTC | #2
Hi Simran,

Am Donnerstag, 2. März 2017, 15:48:13 CET schrieb SIMRAN SINGHAL:
> On Thursday, March 2, 2017 at 8:06:40 PM UTC+5:30, Julia Lawall wrote:
> > On Thu, 2 Mar 2017, simran singhal wrote:
> > > Resolve strict checkpatch USLEEP_RANGE checks by converting delays and
> > > sleeps as described in ./Documentation/timers/timers-howto.txt.
> > > 
> > > CHECK: usleep_range is preferred over udelay; see Documentation/
> > > timers/timers-howto.txt
> > > 
> > > Signed-off-by: simran singhal <singhal...@gmail.com <javascript:>>

I prefer not to change this. The whole interrupt routine is very wonky, and 
changing some delays might break the communication with the i2c master. Also 
this is in interrupt context, so a change to usleep_range may not by 
justified.

Marc



> > > ---
> > > 
> > >  drivers/staging/nvec/nvec.c | 4 ++--
> > >  1 file changed, 2 insertions(+), 2 deletions(-)
> > > 
> > > diff --git a/drivers/staging/nvec/nvec.c b/drivers/staging/nvec/nvec.c
> > > index c1feccf..cd35e64 100644
> > > --- a/drivers/staging/nvec/nvec.c
> > > +++ b/drivers/staging/nvec/nvec.c
> > > @@ -631,7 +631,7 @@ static irqreturn_t nvec_interrupt(int irq, void
> > 
> > *dev)
> > 
> > >                  break;
> > >          
> > >          case 2:                /* first byte after command */
> > >          
> > >                  if (status == (I2C_SL_IRQ | RNW | RCVD)) {
> > > 
> > > -                        udelay(33);
> > > +                        usleep_range(33, 100);
> > 
> > How did you choose the upper limit.
> > 
> > I believe that Greg previously suggested not to make these changes if you
> > have no way to test them.
> > 
> > Julia, After going through the reply given by Nicholas Mc Guire
> 
> https://www.mail-archive.com/kernelnewbies@kernelnewbies.org/msg16464.html
> in this reply he has mentioned that even the range of 10 microsecond is
> enough,
> so I prefer to take 100 as upper limit.
> 
> Simran
> 
> julia
> 
> > >                          if (nvec->rx->data[0] != 0x01) {
> > >                          
> > >                                  dev_err(nvec->dev,
> > >                                  
> > >                                          "Read without prior read
> > 
> > command\n");
> > 
> > > @@ -718,7 +718,7 @@ static irqreturn_t nvec_interrupt(int irq, void
> > 
> > *dev)
> > 
> > >           * We experience less incomplete messages with this delay than
> > 
> > without
> > 
> > >           * it, but we don't know why. Help is appreciated.
> > >           */
> > > 
> > > -        udelay(100);
> > > +        usleep_range(100, 200);
> > > 
> > >          return IRQ_HANDLED;
> > >  
> > >  }
> > 
> > Groups "outreachy-kernel" group.
> > 
> > > To unsubscribe from this group and stop receiving emails from it, send
> > 
> > an email to outreachy-kern...@googlegroups.com <javascript:>.
> > 
> > > To post to this group, send email to outreach...@googlegroups.com
> > 
> > <javascript:>.
> > 
> > > To view this discussion on the web visit
> > 
> > https://groups.google.com/d/msgid/outreachy-kernel/20170302142418.GA16773%
> > 40singhal-Inspiron-5558.> 
> > > For more options, visit https://groups.google.com/d/optout.
Julia Lawall March 2, 2017, 3:01 p.m. UTC | #3
On Thu, 2 Mar 2017, SIMRAN SINGHAL wrote:

>
>
> On Thursday, March 2, 2017 at 8:06:40 PM UTC+5:30, Julia Lawall wrote:
>
>
>       On Thu, 2 Mar 2017, simran singhal wrote:
>
>       > Resolve strict checkpatch USLEEP_RANGE checks by converting
>       delays and
>       > sleeps as described in
>       ./Documentation/timers/timers-howto.txt.
>       >
>       > CHECK: usleep_range is preferred over udelay; see
>       Documentation/
>       > timers/timers-howto.txt
>       >
>       > Signed-off-by: simran singhal <singhal...@gmail.com>
>       > ---
>       >  drivers/staging/nvec/nvec.c | 4 ++--
>       >  1 file changed, 2 insertions(+), 2 deletions(-)
>       >
>       > diff --git a/drivers/staging/nvec/nvec.c
>       b/drivers/staging/nvec/nvec.c
>       > index c1feccf..cd35e64 100644
>       > --- a/drivers/staging/nvec/nvec.c
>       > +++ b/drivers/staging/nvec/nvec.c
>       > @@ -631,7 +631,7 @@ static irqreturn_t nvec_interrupt(int irq,
>       void *dev)
>       >                  break;
>       >          case 2:                /* first byte after command */
>       >                  if (status == (I2C_SL_IRQ | RNW | RCVD)) {
>       > -                        udelay(33);
>       > +                        usleep_range(33, 100);
>
>       How did you choose the upper limit.
>
>       I believe that Greg previously suggested not to make these
>       changes if you
>       have no way to test them.
>
> Julia, After going through the reply given by Nicholas Mc Guire 
> https://www.mail-archive.com/kernelnewbies@kernelnewbies.org/msg16464.html
> in this reply he has mentioned that even the range of 10 microsecond is
> enough,
> so I prefer to take 100 as upper limit.  

Than you for the link.

It looks like he suggests to change 33 to 30-40, not to 33-100.  In any
case, you have three choices for this kind of issue:
1. Don't make the change, because you can't test the result
2. Make the change, and explain the commit log what your rationale is
3. Make the change, and explain below the --- that you have no idea what
you are doing, and you are just proposing the patch as something concrete
to start a discussion.

But your preference is not a suitable justification.  The hardware does
something, and the choice can only really be made by the person who knows
what it does.

julia

>  
> Simran
>
>       julia
>
>
>       >                          if (nvec->rx->data[0] != 0x01) {
>       >                                  dev_err(nvec->dev,
>       >                                          "Read without prior
>       read command\n");
>       > @@ -718,7 +718,7 @@ static irqreturn_t nvec_interrupt(int irq,
>       void *dev)
>       >           * We experience less incomplete messages with this
>       delay than without
>       >           * it, but we don't know why. Help is appreciated.
>       >           */
>       > -        udelay(100);
>       > +        usleep_range(100, 200);
>       >
>       >          return IRQ_HANDLED;
>       >  }
>       > --
>       > 2.7.4
>       >
>       > --
>       > You received this message because you are subscribed to the
>       Google Groups "outreachy-kernel" group.
>       > To unsubscribe from this group and stop receiving emails from
>       it, send an email to outreachy-kern...@googlegroups.com.
>       > To post to this group, send email to
>       outreach...@googlegroups.com.
>       > To view this discussion on the web visithttps://groups.google.com/d/msgid/outreachy-kernel/20170302142418.GA16773%4
>       0singhal-Inspiron-5558.
>       > For more options, visit https://groups.google.com/d/optout.
>       >
>
> --
> You received this message because you are subscribed to the Google Groups
> "outreachy-kernel" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to outreachy-kernel+unsubscribe@googlegroups.com.
> To post to this group, send email to outreachy-kernel@googlegroups.com.
> To view this discussion on the web visithttps://groups.google.com/d/msgid/outreachy-kernel/b90bc602-cf06-4abb-bea2-
> 6386d4976864%40googlegroups.com.
> For more options, visit https://groups.google.com/d/optout.
>
>
Julia Lawall March 2, 2017, 3:18 p.m. UTC | #4
On Thu, 2 Mar 2017, SIMRAN SINGHAL wrote:

>
>
> On Thursday, March 2, 2017 at 8:31:23 PM UTC+5:30, Julia Lawall wrote:
>
>
>       On Thu, 2 Mar 2017, SIMRAN SINGHAL wrote:
>
>       >
>       >
>       > On Thursday, March 2, 2017 at 8:06:40 PM UTC+5:30, Julia
>       Lawall wrote:
>       >
>       >
>       >       On Thu, 2 Mar 2017, simran singhal wrote:
>       >
>       >       > Resolve strict checkpatch USLEEP_RANGE checks by
>       converting
>       >       delays and
>       >       > sleeps as described in
>       >       ./Documentation/timers/timers-howto.txt.
>       >       >
>       >       > CHECK: usleep_range is preferred over udelay; see
>       >       Documentation/
>       >       > timers/timers-howto.txt
>       >       >
>       >       > Signed-off-by: simran singhal <singhal...@gmail.com>
>       >       > ---
>       >       >  drivers/staging/nvec/nvec.c | 4 ++--
>       >       >  1 file changed, 2 insertions(+), 2 deletions(-)
>       >       >
>       >       > diff --git a/drivers/staging/nvec/nvec.c
>       >       b/drivers/staging/nvec/nvec.c
>       >       > index c1feccf..cd35e64 100644
>       >       > --- a/drivers/staging/nvec/nvec.c
>       >       > +++ b/drivers/staging/nvec/nvec.c
>       >       > @@ -631,7 +631,7 @@ static irqreturn_t
>       nvec_interrupt(int irq,
>       >       void *dev)
>       >       >                  break;
>       >       >          case 2:                /* first byte after
>       command */
>       >       >                  if (status == (I2C_SL_IRQ | RNW |
>       RCVD)) {
>       >       > -                        udelay(33);
>       >       > +                        usleep_range(33, 100);
>       >
>       >       How did you choose the upper limit.
>       >
>       >       I believe that Greg previously suggested not to make
>       these
>       >       changes if you
>       >       have no way to test them.
>       >
>       > Julia, After going through the reply given by Nicholas Mc
>       Guire 
>       >
>       https://www.mail-archive.com/kernelnewbies@kernelnewbies.org/msg16464.html
>       > in this reply he has mentioned that even the range of 10
>       microsecond is
>       > enough,
>       > so I prefer to take 100 as upper limit.  
>
>       Than you for the link.
>
>       It looks like he suggests to change 33 to 30-40, not to 33-100.
>        In any
>       case, you have three choices for this kind of issue:
>       1. Don't make the change, because you can't test the result
>       2. Make the change, and explain the commit log what your
>       rationale is
>       3. Make the change, and explain below the --- that you have no
>       idea what
>       you are doing, and you are just proposing the patch as something
>       concrete
>       to start a discussion.
>
>       But your preference is not a suitable justification.  The
>       hardware does
>       something, and the choice can only really be made by the person
>       who knows
>       what it does.
>
>  
> Thanks, 
> Julia I'll keep this in mind from next time.
>
> I choose the range from 33 to 100 for being on more safer side.
> Should I make it 30-40 and send v2.

I thought that the maintainer already responded saying that one shouldnot
change this code?

julia

>
>       julia
>
>       >  
>       > Simran
>       >
>       >       julia
>       >
>       >
>       >       >                          if (nvec->rx->data[0] !=
>       0x01) {
>       >       >                                  dev_err(nvec->dev,
>       >       >                                          "Read without
>       prior
>       >       read command\n");
>       >       > @@ -718,7 +718,7 @@ static irqreturn_t
>       nvec_interrupt(int irq,
>       >       void *dev)
>       >       >           * We experience less incomplete messages
>       with this
>       >       delay than without
>       >       >           * it, but we don't know why. Help is
>       appreciated.
>       >       >           */
>       >       > -        udelay(100);
>       >       > +        usleep_range(100, 200);
>       >       >
>       >       >          return IRQ_HANDLED;
>       >       >  }
>       >       > --
>       >       > 2.7.4
>       >       >
>       >       > --
>       >       > You received this message because you are subscribed
>       to the
>       >       Google Groups "outreachy-kernel" group.
>       >       > To unsubscribe from this group and stop receiving
>       emails from
>       >       it, send an email to outreachy-kern...@googlegroups.com.
>       >       > To post to this group, send email to
>       >       outreach...@googlegroups.com.
>       >       > To view this discussion on the webvisithttps://groups.google.com/d/msgid/outreachy-kernel/20170302142418.GA16
>       773%4
>       >       0singhal-Inspiron-5558.
>       >       > For more options, visit
>       https://groups.google.com/d/optout.
>       >       >
>       >
>       > --
>       > You received this message because you are subscribed to the
>       Google Groups
>       > "outreachy-kernel" group.
>       > To unsubscribe from this group and stop receiving emails from
>       it, send an
>       > email to outreachy-kern...@googlegroups.com.
>       > To post to this group, send email to
>       outreach...@googlegroups.com.
>       > To view this discussion on the webvisithttps://groups.google.com/d/msgid/outreachy-kernel/b90bc602-cf06-4abb-
>       bea2-
>       > 6386d4976864%40googlegroups.com.
>       > For more options, visit https://groups.google.com/d/optout.
>       >
>       >
>
> --
> You received this message because you are subscribed to the Google Groups
> "outreachy-kernel" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to outreachy-kernel+unsubscribe@googlegroups.com.
> To post to this group, send email to outreachy-kernel@googlegroups.com.
> To view this discussion on the web visithttps://groups.google.com/d/msgid/outreachy-kernel/4958c8a8-4b50-4567-91d8-
> 9554e9bdf7f6%40googlegroups.com.
> For more options, visit https://groups.google.com/d/optout.
>
>
Thierry Reding March 8, 2017, 12:46 p.m. UTC | #5
On Thu, Mar 02, 2017 at 03:57:01PM +0100, Marc Dietrich wrote:
> Hi Simran,
> 
> Am Donnerstag, 2. März 2017, 15:48:13 CET schrieb SIMRAN SINGHAL:
> > On Thursday, March 2, 2017 at 8:06:40 PM UTC+5:30, Julia Lawall wrote:
> > > On Thu, 2 Mar 2017, simran singhal wrote:
> > > > Resolve strict checkpatch USLEEP_RANGE checks by converting delays and
> > > > sleeps as described in ./Documentation/timers/timers-howto.txt.
> > > > 
> > > > CHECK: usleep_range is preferred over udelay; see Documentation/
> > > > timers/timers-howto.txt
> > > > 
> > > > Signed-off-by: simran singhal <singhal...@gmail.com <javascript:>>
> 
> I prefer not to change this. The whole interrupt routine is very wonky, and 
> changing some delays might break the communication with the i2c master. Also 
> this is in interrupt context, so a change to usleep_range may not by 
> justified.

Yeah, I think this is going to trigger a WARN_ON from somewhere in the
scheduler because of the interrupt context. I suppose checkpatch could
be made smarter about this, though I doubt my perl skills would be up
to it.

Thierry
diff mbox

Patch

diff --git a/drivers/staging/nvec/nvec.c b/drivers/staging/nvec/nvec.c
index c1feccf..cd35e64 100644
--- a/drivers/staging/nvec/nvec.c
+++ b/drivers/staging/nvec/nvec.c
@@ -631,7 +631,7 @@  static irqreturn_t nvec_interrupt(int irq, void *dev)
 		break;
 	case 2:		/* first byte after command */
 		if (status == (I2C_SL_IRQ | RNW | RCVD)) {
-			udelay(33);
+			usleep_range(33, 100);
 			if (nvec->rx->data[0] != 0x01) {
 				dev_err(nvec->dev,
 					"Read without prior read command\n");
@@ -718,7 +718,7 @@  static irqreturn_t nvec_interrupt(int irq, void *dev)
 	 * We experience less incomplete messages with this delay than without
 	 * it, but we don't know why. Help is appreciated.
 	 */
-	udelay(100);
+	usleep_range(100, 200);
 
 	return IRQ_HANDLED;
 }