From 3bb405e48fd6cd5f09b0ea1f40435cccad83aba8 Mon Sep 17 00:00:00 2001 From: "Moore, Eric" Date: Wed, 25 Jan 2006 18:05:12 -0700 Subject: [PATCH] --- yaml --- r: 19122 b: refs/heads/master c: 7d3eecf7b2195c64d26f7e7d105d00e5a6dd702e h: refs/heads/master v: v3 --- [refs] | 2 +- trunk/drivers/message/fusion/mptsas.c | 24 +++++++++++++++++++++++- 2 files changed, 24 insertions(+), 2 deletions(-) diff --git a/[refs] b/[refs] index f653ec861954..e245a57dc358 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: c73787eecdbe4691d4e3f989052db8b552e1ac34 +refs/heads/master: 7d3eecf7b2195c64d26f7e7d105d00e5a6dd702e diff --git a/trunk/drivers/message/fusion/mptsas.c b/trunk/drivers/message/fusion/mptsas.c index 8e77837c07ec..190bd940bb01 100644 --- a/trunk/drivers/message/fusion/mptsas.c +++ b/trunk/drivers/message/fusion/mptsas.c @@ -324,6 +324,7 @@ mptsas_slave_destroy(struct scsi_device *sdev) struct sas_rphy *rphy; struct mptsas_portinfo *p; int i; + VirtDevice *vdev; /* * Handle hotplug removal case. @@ -347,8 +348,29 @@ mptsas_slave_destroy(struct scsi_device *sdev) out: mutex_unlock(&hd->ioc->sas_topology_mutex); /* - * TODO: Issue target reset to flush firmware outstanding commands. + * Issue target reset to flush firmware outstanding commands. */ + vdev = sdev->hostdata; + if (vdev->configured_lun){ + if (mptscsih_TMHandler(hd, + MPI_SCSITASKMGMT_TASKTYPE_TARGET_RESET, + vdev->bus_id, + vdev->target_id, + 0, 0, 5 /* 5 second timeout */) + < 0){ + + /* The TM request failed! + * Fatal error case. + */ + printk(MYIOC_s_WARN_FMT + "Error processing TaskMgmt id=%d TARGET_RESET\n", + hd->ioc->name, + vdev->target_id); + + hd->tmPending = 0; + hd->tmState = TM_STATE_NONE; + } + } mptscsih_slave_destroy(sdev); }