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