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