> -----Original Message----- > From: Praveen Madhavan > Sent: Friday, September 4, 2015 6:12 AM > To: Anish Bhatt; Nicholas Krause; [email protected] > Cc: [email protected]; [email protected]; [email protected]; > Hariprasad S; [email protected]; [email protected] > 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: [email protected] [mailto:linux-scsi- > [email protected]] On Behalf Of Anish Bhatt > Sent: Thursday, September 03, 2015 7:07 AM > To: Nicholas Krause; [email protected] > Cc: [email protected]; [email protected]; [email protected]; > Hariprasad S; [email protected]; [email protected] > Subject: RE: [PATCH] csiostor:Fix locking issues in the function > csio_scsim_cleanup_io_lnode > > > -----Original Message----- > > From: Nicholas Krause [mailto:[email protected]] > > Sent: Wednesday, September 2, 2015 10:36 AM > > To: [email protected] > > Cc: [email protected]; [email protected]; [email protected]; Anish > > Bhatt; Hariprasad S; [email protected]; linux- > > [email protected] > > 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 <[email protected]> > > --- > > 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 <[email protected]>
My bad, NACK. -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to [email protected] More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/

