Kei Tokunaga wrote: > Hi Kashyap, > > This patch fixes mptsas disk hot-removal processing. The > hot-removal processing doesn't complete because of this condition. > > drivers/message/fusion/mptsas.c: > mptsas_taskmgmt_complete() > > if ((mptsas_find_vtarget(ioc, channel, id)) && !ioc->fw_events_off) > mptsas_queue_device_delete(...); > > mptsas_queue_device_delete(), which must be called for > hot-removal, never gets called because mptsas_find_vtarget() > always returns 0 here. At that time, the vtarget has already > been freed in mptsas_target_destroy(), and also the scsi_device > has been marked as SDEV_DEL. > > As a result of the issue, port deletion functions won't get > called and the device ends up being in an incomplete state. > (Some data structures and sysfs entries, which should be > removed in hot-removal, remain.) One side effect of this is > that a hot-addition of the device (bringing the device back > on) fails. > > This patch just removes mptsas_find_vtarget() from the if-state > condition. > > This applies to 2.6.34-rc3. Kashyap, can you please give it an ACK? I confirmed it still applies to the latest git tree (scsi-misc-2.6). Thanks, Kei > Signed-off-by: Kei Tokunaga <tokunaga.keiich@xxxxxxxxxxxxxx> > --- > > linux-2.6.34-rc3-kei/drivers/message/fusion/mptsas.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff -puN drivers/message/fusion/mptsas.c~fix-mptsas_hot_removal drivers/message/fusion/mptsas.c > --- linux-2.6.34-rc3/drivers/message/fusion/mptsas.c~fix-mptsas_hot_removal 2010-04-07 16:47:36.000000000 +0900 > +++ linux-2.6.34-rc3-kei/drivers/message/fusion/mptsas.c 2010-04-07 16:48:17.000000000 +0900 > @@ -1221,7 +1221,7 @@ mptsas_taskmgmt_complete(MPT_ADAPTER *io > * enable work queue to remove device from upper layers > */ > list_del(&target_reset_list->list); > - if ((mptsas_find_vtarget(ioc, channel, id)) && !ioc->fw_events_off) > + if (!ioc->fw_events_off) > mptsas_queue_device_delete(ioc, > &target_reset_list->sas_event_data); > > > _ > > > > > -- 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