On Mon, 10 June 2013 09:40:52 +0200, Hannes Reinecke wrote: > + > + spin_lock_irqsave(&sdev->list_lock, flags); > + if (list_empty(&sdev->eh_abort_list)) > + kick_worker = 1; > + list_add(&scmd->eh_entry, &sdev->eh_abort_list); > + spin_unlock_irqrestore(&sdev->list_lock, flags); > + SCSI_LOG_ERROR_RECOVERY(3, > + scmd_printk(KERN_INFO, scmd, "adding to eh_abort_list\n")); > + if (kick_worker) > + schedule_work(&sdev->abort_work); You fixed the case with the non-empty list. But afaics the same workitem can still be called multiple times simultaneously, which will crash the system. Jörn -- The only real mistake is the one from which we learn nothing. -- John Powell -- 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