This patch moves the calling of target_destroy next to the list_del. This closed a race being seen while doing a device add on the aic7xxx. Signed-off-by: Mike Anderson <andmike@xxxxxxxxxx> drivers/scsi/scsi_scan.c | 5 ++--- 1 files changed, 2 insertions(+), 3 deletions(-) Index: aic94xx-sas-2.6-patched/drivers/scsi/scsi_scan.c =================================================================== --- aic94xx-sas-2.6-patched.orig/drivers/scsi/scsi_scan.c 2006-03-12 14:39:27.000000000 -0800 +++ aic94xx-sas-2.6-patched/drivers/scsi/scsi_scan.c 2006-03-14 11:09:00.000000000 -0800 @@ -288,10 +288,7 @@ static void scsi_target_dev_release(stru { struct device *parent = dev->parent; struct scsi_target *starget = to_scsi_target(dev); - struct Scsi_Host *shost = dev_to_shost(parent); - if (shost->hostt->target_destroy) - shost->hostt->target_destroy(starget); kfree(starget); put_device(parent); } @@ -416,6 +413,8 @@ static void scsi_target_reap_usercontext device_del(&starget->dev); transport_destroy_device(&starget->dev); spin_lock_irqsave(shost->host_lock, flags); + if (shost->hostt->target_destroy) + shost->hostt->target_destroy(starget); list_del_init(&starget->siblings); spin_unlock_irqrestore(shost->host_lock, flags); put_device(&starget->dev); - : 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