diff options
author | Kashyap, Desai <kashyap.desai@lsi.com> | 2010-03-18 09:53:19 -0400 |
---|---|---|
committer | James Bottomley <James.Bottomley@suse.de> | 2010-04-11 10:24:11 -0400 |
commit | 69b2e9b4431798645e3d8fb51413db97c9845db1 (patch) | |
tree | 6f6c2b095fbaa4f3e87915c394604969948fa5d6 /drivers/message/fusion/mptscsih.c | |
parent | 08f5c5c23d52aa385ff304becffb0e0c37cedfe5 (diff) |
[SCSI] mptfusion: Task abort is not supported for Volumes
1) corrected return value as SUCCESS instead of 0.
2) Added check in mptscsih_abort.
mptfusion do not support task abort for Volumes.
Signed-off-by: Kashyap Desai <kashyap.desai@lsi.com>
Signed-off-by: James Bottomley <James.Bottomley@suse.de>
Diffstat (limited to 'drivers/message/fusion/mptscsih.c')
-rw-r--r-- | drivers/message/fusion/mptscsih.c | 14 |
1 files changed, 13 insertions, 1 deletions
diff --git a/drivers/message/fusion/mptscsih.c b/drivers/message/fusion/mptscsih.c index 90a1dff7eb84..7bd4c0fc23cc 100644 --- a/drivers/message/fusion/mptscsih.c +++ b/drivers/message/fusion/mptscsih.c | |||
@@ -1723,6 +1723,7 @@ mptscsih_get_tm_timeout(MPT_ADAPTER *ioc) | |||
1723 | case FC: | 1723 | case FC: |
1724 | return 40; | 1724 | return 40; |
1725 | case SAS: | 1725 | case SAS: |
1726 | return 30; | ||
1726 | case SPI: | 1727 | case SPI: |
1727 | default: | 1728 | default: |
1728 | return 10; | 1729 | return 10; |
@@ -1772,7 +1773,7 @@ mptscsih_abort(struct scsi_cmnd * SCpnt) | |||
1772 | ioc->name, SCpnt)); | 1773 | ioc->name, SCpnt)); |
1773 | SCpnt->result = DID_NO_CONNECT << 16; | 1774 | SCpnt->result = DID_NO_CONNECT << 16; |
1774 | SCpnt->scsi_done(SCpnt); | 1775 | SCpnt->scsi_done(SCpnt); |
1775 | retval = 0; | 1776 | retval = SUCCESS; |
1776 | goto out; | 1777 | goto out; |
1777 | } | 1778 | } |
1778 | 1779 | ||
@@ -1787,6 +1788,17 @@ mptscsih_abort(struct scsi_cmnd * SCpnt) | |||
1787 | goto out; | 1788 | goto out; |
1788 | } | 1789 | } |
1789 | 1790 | ||
1791 | /* Task aborts are not supported for volumes. | ||
1792 | */ | ||
1793 | if (vdevice->vtarget->raidVolume) { | ||
1794 | dtmprintk(ioc, printk(MYIOC_s_DEBUG_FMT | ||
1795 | "task abort: raid volume (sc=%p)\n", | ||
1796 | ioc->name, SCpnt)); | ||
1797 | SCpnt->result = DID_RESET << 16; | ||
1798 | retval = FAILED; | ||
1799 | goto out; | ||
1800 | } | ||
1801 | |||
1790 | /* Find this command | 1802 | /* Find this command |
1791 | */ | 1803 | */ |
1792 | if ((scpnt_idx = SCPNT_TO_LOOKUP_IDX(ioc, SCpnt)) < 0) { | 1804 | if ((scpnt_idx = SCPNT_TO_LOOKUP_IDX(ioc, SCpnt)) < 0) { |