On Fri, Feb 10, 2012 at 12:44 AM, Dan Williams <dan.j.williams@xxxxxxxxx> wrote: > diff --git a/drivers/scsi/libsas/sas_ata.c b/drivers/scsi/libsas/sas_ata.c > index 37a9e73..852b1b1 100644 > --- a/drivers/scsi/libsas/sas_ata.c > +++ b/drivers/scsi/libsas/sas_ata.c > @@ -661,6 +661,10 @@ static void async_sas_ata_eh(void *data, async_cookie_t cookie) > struct ata_port *ap = dev->sata_dev.ap; > struct sas_ha_struct *ha = dev->port->ha; > > + /* hold a reference over eh since we may be racing with final > + * remove once all commands are completed > + */ > + kref_get(&dev->kref); > ata_port_printk(ap, KERN_DEBUG, "sas eh calling libata port error handler"); > ata_scsi_port_error_handler(ha->core.shost, ap); The last rebase ate the matching call to "sas_put_device()" that needs to be here. -- 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