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 majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to