From mboxrd@z Thu Jan 1 00:00:00 1970 From: Peter Hurley Subject: Re: [PATCH 01/21] uas: replace WARN_ON_ONCE() with lockdep_assert_held() Date: Wed, 10 Sep 2014 10:38:41 -0400 Message-ID: <54106271.5090909@hurleysoftware.com> References: <1410349611-17573-1-git-send-email-hdegoede@redhat.com> <1410349611-17573-2-git-send-email-hdegoede@redhat.com> Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit Return-path: Received: from mailout61.mail01.mtsvc.net ([216.70.64.9]:54117 "EHLO mailout61.mail01.mtsvc.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751762AbaIJOjR (ORCPT ); Wed, 10 Sep 2014 10:39:17 -0400 In-Reply-To: <1410349611-17573-2-git-send-email-hdegoede@redhat.com> Sender: linux-scsi-owner@vger.kernel.org List-Id: linux-scsi@vger.kernel.org To: Hans de Goede , Greg Kroah-Hartman Cc: linux-usb@vger.kernel.org, linux-scsi@vger.kernel.org, stable@vger.kernel.org, Sanjeev Sharma , Peter Zijlstra , Ingo Molnar [ +cc Peter Zijlstra, Ingo Molnar ] On 09/10/2014 07:46 AM, Hans de Goede wrote: > From: Sanjeev Sharma > > On some architecture 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 > Signed-off-by: Hans de Goede > --- > 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); This change isn't equivalent. lockdep_assert_held() will continue to emit warnings; ie., there is no "once" functionality. Same for the other changes below. Regards, Peter Hurley > 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) >