Re: [PATCH v2] uas: replace WARN_ON_ONCE() with lockdep_assert_held()

2014-08-12 Thread Greg KH
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
--
To unsubscribe from this list: send the line unsubscribe linux-scsi in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


RE: [PATCH v2] uas: replace WARN_ON_ONCE() with lockdep_assert_held()

2014-08-12 Thread Sharma, Sanjeev
Done !

Thanks
Sanjeev Sharma

-Original Message-
From: Greg KH [mailto:gre...@linuxfoundation.org] 
Sent: Tuesday, August 12, 2014 11:32 AM
To: Sharma, Sanjeev
Cc: hdego...@redhat.com; kra...@redhat.com; mdharm-...@one-eyed-alien.net; 
linux-...@vger.kernel.org; linux-ker...@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
--
To unsubscribe from this list: send the line unsubscribe linux-scsi in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH v2] uas: replace WARN_ON_ONCE() with lockdep_assert_held()

2014-08-12 Thread Guenter Roeck
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
--
To unsubscribe from this list: send the line unsubscribe linux-scsi in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[PATCH v2] uas: replace WARN_ON_ONCE() with lockdep_assert_held()

2014-08-11 Thread 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_sha...@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

--
To unsubscribe from this list: send the line unsubscribe linux-scsi in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH v2] uas: replace WARN_ON_ONCE() with lockdep_assert_held()

2014-08-11 Thread Hans de Goede
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_sha...@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 hdego...@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)
 
--
To unsubscribe from this list: send the line unsubscribe linux-scsi in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html