> -----Original Message----- > From: Praveen Madhavan > Sent: Friday, September 4, 2015 6:12 AM > To: Anish Bhatt; Nicholas Krause; JBottomley@xxxxxxxx > Cc: hare@xxxxxxx; michaelc@xxxxxxxxxxx; davem@xxxxxxxxxxxxx; > Hariprasad S; linux-scsi@xxxxxxxxxxxxxxx; linux-kernel@xxxxxxxxxxxxxxx > Subject: RE: [PATCH] csiostor:Fix locking issues in the function > csio_scsim_cleanup_io_lnode > > csio_scsim_cleanup_io_lnode always called with spin_lock_irq held. > Please refer: > csio_attr.c:624: csio_scsim_cleanup_io_lnode(csio_hw_to_scsim(hw), > ln); > csio_attr.c:649: > csio_scsim_cleanup_io_lnode(csio_hw_to_scsim(hw), ln); > > -----Original Message----- > From: linux-scsi-owner@xxxxxxxxxxxxxxx [mailto:linux-scsi- > owner@xxxxxxxxxxxxxxx] On Behalf Of Anish Bhatt > Sent: Thursday, September 03, 2015 7:07 AM > To: Nicholas Krause; JBottomley@xxxxxxxx > Cc: hare@xxxxxxx; michaelc@xxxxxxxxxxx; davem@xxxxxxxxxxxxx; > Hariprasad S; linux-scsi@xxxxxxxxxxxxxxx; linux-kernel@xxxxxxxxxxxxxxx > Subject: RE: [PATCH] csiostor:Fix locking issues in the function > csio_scsim_cleanup_io_lnode > > > -----Original Message----- > > From: Nicholas Krause [mailto:xerofoify@xxxxxxxxx] > > Sent: Wednesday, September 2, 2015 10:36 AM > > To: JBottomley@xxxxxxxx > > Cc: hare@xxxxxxx; michaelc@xxxxxxxxxxx; davem@xxxxxxxxxxxxx; Anish > > Bhatt; Hariprasad S; linux-scsi@xxxxxxxxxxxxxxx; linux- > > kernel@xxxxxxxxxxxxxxx > > Subject: [PATCH] csiostor:Fix locking issues in the function > > csio_scsim_cleanup_io_lnode > > > > This fixes locking issues in the function csio_scsim_cleanup_io_lnode > > by locking around the call to the function csio_csci_gather_active_ios > > with the function pair spin_lock_irq/spin_unlock_irq as any function > > calling this particular function must do in order to avoid concurrent > > threads of execution on the passed structure pointer of type csio_hw > > as this structure pointer can be shared across mutliple threads in the > kernel. > > > > Signed-off-by: Nicholas Krause <xerofoify@xxxxxxxxx> > > --- > > drivers/scsi/csiostor/csio_scsi.c | 2 ++ > > 1 file changed, 2 insertions(+) > > > > diff --git a/drivers/scsi/csiostor/csio_scsi.c > > b/drivers/scsi/csiostor/csio_scsi.c > > index 2c4562d..c318855 100644 > > --- a/drivers/scsi/csiostor/csio_scsi.c > > +++ b/drivers/scsi/csiostor/csio_scsi.c > > @@ -1327,7 +1327,9 @@ csio_scsim_cleanup_io_lnode(struct csio_scsim > > *scm, struct csio_lnode *ln) > > sld.level = CSIO_LEV_LNODE; > > sld.lnode = ln; > > INIT_LIST_HEAD(&ln->cmpl_q); > > + spin_lock_irq(&hw->lock); > > csio_scsi_gather_active_ios(scm, &sld, &ln->cmpl_q); > > + spin_unlock_irq(&hw->lock); > > > > /* No I/Os pending on this lnode */ > > if (list_empty(&ln->cmpl_q)) > > -- > > 2.1.4 > > Acked-By: Anish Bhatt <anish@xxxxxxxxxxx> My bad, NACK. -- To unsubscribe from this list: send the line "unsubscribe linux-scsi" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html