linux-scsi.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* Re: [PATCH v2] uas: replace WARN_ON_ONCE() with lockdep_assert_held()
  2014-08-12  6:08 [PATCH v2] uas: replace WARN_ON_ONCE() with lockdep_assert_held() Sanjeev Sharma
@ 2014-08-12  5:58 ` Hans de Goede
  2014-08-12  6:01 ` Greg KH
  1 sibling, 0 replies; 5+ messages in thread
From: Hans de Goede @ 2014-08-12  5:58 UTC (permalink / raw)
  To: Sanjeev Sharma
  Cc: gregkh, kraxel, mdharm-usb, linux-usb, linux-kernel, linux-scsi

Hi,

On 08/12/2014 08:08 AM, Sanjeev Sharma wrote:
> spin_is_locked() always return false in uniprocessor configuration and therefore it
> would be advise to replace with lockdep_assert_held().
> 
> Signed-off-by: Sanjeev Sharma <Sanjeev_Sharma@mentor.com>
> ---
> Changes in v2:
>  - replaced WARN_ON_ONCE() with lockdep_assert_held() to
>  avoid runtime overhead instead of assert_spin_locked()

Thanks!

Acked-by: Hans de Goede <hdegoede@redhat.com>

Regards,

Hans

> 
>  drivers/usb/storage/uas.c | 8 ++++----
>  1 file changed, 4 insertions(+), 4 deletions(-)
> 
> diff --git a/drivers/usb/storage/uas.c b/drivers/usb/storage/uas.c
> index 3f42785..05b2d8e 100644
> --- a/drivers/usb/storage/uas.c
> +++ b/drivers/usb/storage/uas.c
> @@ -154,7 +154,7 @@ static void uas_mark_cmd_dead(struct uas_dev_info *devinfo,
>  	struct scsi_cmnd *cmnd = container_of(scp, struct scsi_cmnd, SCp);
>  
>  	uas_log_cmd_state(cmnd, caller);
> -	WARN_ON_ONCE(!spin_is_locked(&devinfo->lock));
> +	lockdep_assert_held(&devinfo->lock);
>  	WARN_ON_ONCE(cmdinfo->state & COMMAND_ABORTED);
>  	cmdinfo->state |= COMMAND_ABORTED;
>  	cmdinfo->state &= ~IS_IN_WORK_LIST;
> @@ -181,7 +181,7 @@ static void uas_add_work(struct uas_cmd_info *cmdinfo)
>  	struct scsi_cmnd *cmnd = container_of(scp, struct scsi_cmnd, SCp);
>  	struct uas_dev_info *devinfo = cmnd->device->hostdata;
>  
> -	WARN_ON_ONCE(!spin_is_locked(&devinfo->lock));
> +	lockdep_assert_held(&devinfo->lock);
>  	cmdinfo->state |= IS_IN_WORK_LIST;
>  	schedule_work(&devinfo->work);
>  }
> @@ -283,7 +283,7 @@ static int uas_try_complete(struct scsi_cmnd *cmnd, const char *caller)
>  	struct uas_cmd_info *cmdinfo = (void *)&cmnd->SCp;
>  	struct uas_dev_info *devinfo = (void *)cmnd->device->hostdata;
>  
> -	WARN_ON_ONCE(!spin_is_locked(&devinfo->lock));
> +	lockdep_assert_held(&devinfo->lock);
>  	if (cmdinfo->state & (COMMAND_INFLIGHT |
>  			      DATA_IN_URB_INFLIGHT |
>  			      DATA_OUT_URB_INFLIGHT |
> @@ -622,7 +622,7 @@ static int uas_submit_urbs(struct scsi_cmnd *cmnd,
>  	struct urb *urb;
>  	int err;
>  
> -	WARN_ON_ONCE(!spin_is_locked(&devinfo->lock));
> +	lockdep_assert_held(&devinfo->lock);
>  	if (cmdinfo->state & SUBMIT_STATUS_URB) {
>  		urb = uas_submit_sense_urb(cmnd, gfp, cmdinfo->stream);
>  		if (!urb)
> 

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

* Re: [PATCH v2] uas: replace WARN_ON_ONCE() with lockdep_assert_held()
  2014-08-12  6:08 [PATCH v2] uas: replace WARN_ON_ONCE() with lockdep_assert_held() Sanjeev Sharma
  2014-08-12  5:58 ` Hans de Goede
@ 2014-08-12  6:01 ` Greg KH
  2014-08-12  6:28   ` Sharma, Sanjeev
  2014-08-12  6:31   ` Guenter Roeck
  1 sibling, 2 replies; 5+ messages in thread
From: Greg KH @ 2014-08-12  6:01 UTC (permalink / raw)
  To: Sanjeev Sharma
  Cc: hdegoede, kraxel, mdharm-usb, linux-usb, linux-kernel, linux-scsi

On Tue, Aug 12, 2014 at 11:38:37AM +0530, Sanjeev Sharma wrote:
> spin_is_locked() always return false in uniprocessor configuration and therefore it
> would be advise to replace with lockdep_assert_held().

Add "on some architectures" in here somewhere, as it's not broken on the
large majority of UP cpus :)

thanks,

greg k-h

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

* [PATCH v2] uas: replace WARN_ON_ONCE() with lockdep_assert_held()
@ 2014-08-12  6:08 Sanjeev Sharma
  2014-08-12  5:58 ` Hans de Goede
  2014-08-12  6:01 ` Greg KH
  0 siblings, 2 replies; 5+ messages in thread
From: Sanjeev Sharma @ 2014-08-12  6:08 UTC (permalink / raw)
  To: hdegoede
  Cc: gregkh, kraxel, mdharm-usb, linux-usb, linux-kernel, linux-scsi,
	Sanjeev Sharma, Sanjeev Sharma

spin_is_locked() always return false in uniprocessor configuration and therefore it
would be advise to replace with lockdep_assert_held().

Signed-off-by: Sanjeev Sharma <Sanjeev_Sharma@mentor.com>
---
Changes in v2:
 - replaced WARN_ON_ONCE() with lockdep_assert_held() to
 avoid runtime overhead instead of assert_spin_locked()

 drivers/usb/storage/uas.c | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/drivers/usb/storage/uas.c b/drivers/usb/storage/uas.c
index 3f42785..05b2d8e 100644
--- a/drivers/usb/storage/uas.c
+++ b/drivers/usb/storage/uas.c
@@ -154,7 +154,7 @@ static void uas_mark_cmd_dead(struct uas_dev_info *devinfo,
 	struct scsi_cmnd *cmnd = container_of(scp, struct scsi_cmnd, SCp);
 
 	uas_log_cmd_state(cmnd, caller);
-	WARN_ON_ONCE(!spin_is_locked(&devinfo->lock));
+	lockdep_assert_held(&devinfo->lock);
 	WARN_ON_ONCE(cmdinfo->state & COMMAND_ABORTED);
 	cmdinfo->state |= COMMAND_ABORTED;
 	cmdinfo->state &= ~IS_IN_WORK_LIST;
@@ -181,7 +181,7 @@ static void uas_add_work(struct uas_cmd_info *cmdinfo)
 	struct scsi_cmnd *cmnd = container_of(scp, struct scsi_cmnd, SCp);
 	struct uas_dev_info *devinfo = cmnd->device->hostdata;
 
-	WARN_ON_ONCE(!spin_is_locked(&devinfo->lock));
+	lockdep_assert_held(&devinfo->lock);
 	cmdinfo->state |= IS_IN_WORK_LIST;
 	schedule_work(&devinfo->work);
 }
@@ -283,7 +283,7 @@ static int uas_try_complete(struct scsi_cmnd *cmnd, const char *caller)
 	struct uas_cmd_info *cmdinfo = (void *)&cmnd->SCp;
 	struct uas_dev_info *devinfo = (void *)cmnd->device->hostdata;
 
-	WARN_ON_ONCE(!spin_is_locked(&devinfo->lock));
+	lockdep_assert_held(&devinfo->lock);
 	if (cmdinfo->state & (COMMAND_INFLIGHT |
 			      DATA_IN_URB_INFLIGHT |
 			      DATA_OUT_URB_INFLIGHT |
@@ -622,7 +622,7 @@ static int uas_submit_urbs(struct scsi_cmnd *cmnd,
 	struct urb *urb;
 	int err;
 
-	WARN_ON_ONCE(!spin_is_locked(&devinfo->lock));
+	lockdep_assert_held(&devinfo->lock);
 	if (cmdinfo->state & SUBMIT_STATUS_URB) {
 		urb = uas_submit_sense_urb(cmnd, gfp, cmdinfo->stream);
 		if (!urb)
-- 
1.7.11.7

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

* RE: [PATCH v2] uas: replace WARN_ON_ONCE() with lockdep_assert_held()
  2014-08-12  6:01 ` Greg KH
@ 2014-08-12  6:28   ` Sharma, Sanjeev
  2014-08-12  6:31   ` Guenter Roeck
  1 sibling, 0 replies; 5+ messages in thread
From: Sharma, Sanjeev @ 2014-08-12  6:28 UTC (permalink / raw)
  To: Greg KH
  Cc: hdegoede@redhat.com, kraxel@redhat.com,
	mdharm-usb@one-eyed-alien.net, linux-usb@vger.kernel.org,
	linux-kernel@vger.kernel.org, linux-scsi@vger.kernel.org

Done !

Thanks
Sanjeev Sharma

-----Original Message-----
From: Greg KH [mailto:gregkh@linuxfoundation.org] 
Sent: Tuesday, August 12, 2014 11:32 AM
To: Sharma, Sanjeev
Cc: hdegoede@redhat.com; kraxel@redhat.com; mdharm-usb@one-eyed-alien.net; linux-usb@vger.kernel.org; linux-kernel@vger.kernel.org; linux-scsi@vger.kernel.org
Subject: Re: [PATCH v2] uas: replace WARN_ON_ONCE() with lockdep_assert_held()

On Tue, Aug 12, 2014 at 11:38:37AM +0530, Sanjeev Sharma wrote:
> spin_is_locked() always return false in uniprocessor configuration and 
> therefore it would be advise to replace with lockdep_assert_held().

Add "on some architectures" in here somewhere, as it's not broken on the large majority of UP cpus :)

thanks,

greg k-h

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

* Re: [PATCH v2] uas: replace WARN_ON_ONCE() with lockdep_assert_held()
  2014-08-12  6:01 ` Greg KH
  2014-08-12  6:28   ` Sharma, Sanjeev
@ 2014-08-12  6:31   ` Guenter Roeck
  1 sibling, 0 replies; 5+ messages in thread
From: Guenter Roeck @ 2014-08-12  6:31 UTC (permalink / raw)
  To: Greg KH
  Cc: Sanjeev Sharma, hdegoede, kraxel, mdharm-usb, linux-usb,
	linux-kernel, linux-scsi

On Tue, Aug 12, 2014 at 02:01:53PM +0800, Greg KH wrote:
> On Tue, Aug 12, 2014 at 11:38:37AM +0530, Sanjeev Sharma wrote:
> > spin_is_locked() always return false in uniprocessor configuration and therefore it
> > would be advise to replace with lockdep_assert_held().
> 
> Add "on some architectures" in here somewhere, as it's not broken on the
> large majority of UP cpus :)
> 
FWIW, it is confirmed broken on mips (32 and 64 bit), ppc, and sparc64.
I have not tested on x86. Might be worth trying. arm64 seems to be ok,
unless I did something wrong in my test, as well as at least some of
the architectures which don't support smp to start with (such as sparc32
or microblaze).

Guenter

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

end of thread, other threads:[~2014-08-12  6:31 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2014-08-12  6:08 [PATCH v2] uas: replace WARN_ON_ONCE() with lockdep_assert_held() Sanjeev Sharma
2014-08-12  5:58 ` Hans de Goede
2014-08-12  6:01 ` Greg KH
2014-08-12  6:28   ` Sharma, Sanjeev
2014-08-12  6:31   ` Guenter Roeck

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