diff options
author | Stephen M. Cameron <stephenmcameron@gmail.com> | 2014-11-14 18:27:14 -0500 |
---|---|---|
committer | Christoph Hellwig <hch@lst.de> | 2014-11-20 03:11:26 -0500 |
commit | 2f371c92c446a1ca2d1911c7479de4c78c4b3804 (patch) | |
tree | fa223583b88df38d2276219792d49656d82cd610 | |
parent | 0cbf768ef834c810d1eab205f21a434b9356d329 (diff) |
hpsa: do not be so noisy about check conditions
We were printing a lot of useless information before ultimately
just passing things up to the SCSI mid layer. Just let the
midlayer handle it without LLD chatter.
Signed-off-by: Don Brace <don.brace@pmcs.com>
Signed-off-by: Stephen M. Cameron <stephenmcameron@gmail.com>
Reviewed-by: Joe Handzik <joseph.t.handzik@hp.com>
Reviewed-by: Scott Teel <scott.teel@hp.com>
Signed-off-by: Christoph Hellwig <hch@lst.de>
-rw-r--r-- | drivers/scsi/hpsa.c | 59 |
1 files changed, 0 insertions, 59 deletions
diff --git a/drivers/scsi/hpsa.c b/drivers/scsi/hpsa.c index c079bb94f86b..236e2fa93086 100644 --- a/drivers/scsi/hpsa.c +++ b/drivers/scsi/hpsa.c | |||
@@ -1760,72 +1760,13 @@ static void complete_scsi_command(struct CommandList *cp) | |||
1760 | /* Get addition sense code qualifier */ | 1760 | /* Get addition sense code qualifier */ |
1761 | ascq = ei->SenseInfo[13]; | 1761 | ascq = ei->SenseInfo[13]; |
1762 | } | 1762 | } |
1763 | |||
1764 | if (ei->ScsiStatus == SAM_STAT_CHECK_CONDITION) { | 1763 | if (ei->ScsiStatus == SAM_STAT_CHECK_CONDITION) { |
1765 | if (check_for_unit_attention(h, cp)) | ||
1766 | break; | ||
1767 | if (sense_key == ILLEGAL_REQUEST) { | ||
1768 | /* | ||
1769 | * SCSI REPORT_LUNS is commonly unsupported on | ||
1770 | * Smart Array. Suppress noisy complaint. | ||
1771 | */ | ||
1772 | if (cp->Request.CDB[0] == REPORT_LUNS) | ||
1773 | break; | ||
1774 | |||
1775 | /* If ASC/ASCQ indicate Logical Unit | ||
1776 | * Not Supported condition, | ||
1777 | */ | ||
1778 | if ((asc == 0x25) && (ascq == 0x0)) { | ||
1779 | dev_warn(&h->pdev->dev, "cp %p " | ||
1780 | "has check condition\n", cp); | ||
1781 | break; | ||
1782 | } | ||
1783 | } | ||
1784 | |||
1785 | if (sense_key == NOT_READY) { | ||
1786 | /* If Sense is Not Ready, Logical Unit | ||
1787 | * Not ready, Manual Intervention | ||
1788 | * required | ||
1789 | */ | ||
1790 | if ((asc == 0x04) && (ascq == 0x03)) { | ||
1791 | dev_warn(&h->pdev->dev, "cp %p " | ||
1792 | "has check condition: unit " | ||
1793 | "not ready, manual " | ||
1794 | "intervention required\n", cp); | ||
1795 | break; | ||
1796 | } | ||
1797 | } | ||
1798 | if (sense_key == ABORTED_COMMAND) { | 1764 | if (sense_key == ABORTED_COMMAND) { |
1799 | /* Aborted command is retryable */ | ||
1800 | dev_warn(&h->pdev->dev, "cp %p " | ||
1801 | "has check condition: aborted command: " | ||
1802 | "ASC: 0x%x, ASCQ: 0x%x\n", | ||
1803 | cp, asc, ascq); | ||
1804 | cmd->result |= DID_SOFT_ERROR << 16; | 1765 | cmd->result |= DID_SOFT_ERROR << 16; |
1805 | break; | 1766 | break; |
1806 | } | 1767 | } |
1807 | /* Must be some other type of check condition */ | ||
1808 | dev_dbg(&h->pdev->dev, "cp %p has check condition: " | ||
1809 | "unknown type: " | ||
1810 | "Sense: 0x%x, ASC: 0x%x, ASCQ: 0x%x, " | ||
1811 | "Returning result: 0x%x, " | ||
1812 | "cmd=[%02x %02x %02x %02x %02x " | ||
1813 | "%02x %02x %02x %02x %02x %02x " | ||
1814 | "%02x %02x %02x %02x %02x]\n", | ||
1815 | cp, sense_key, asc, ascq, | ||
1816 | cmd->result, | ||
1817 | cmd->cmnd[0], cmd->cmnd[1], | ||
1818 | cmd->cmnd[2], cmd->cmnd[3], | ||
1819 | cmd->cmnd[4], cmd->cmnd[5], | ||
1820 | cmd->cmnd[6], cmd->cmnd[7], | ||
1821 | cmd->cmnd[8], cmd->cmnd[9], | ||
1822 | cmd->cmnd[10], cmd->cmnd[11], | ||
1823 | cmd->cmnd[12], cmd->cmnd[13], | ||
1824 | cmd->cmnd[14], cmd->cmnd[15]); | ||
1825 | break; | 1768 | break; |
1826 | } | 1769 | } |
1827 | |||
1828 | |||
1829 | /* Problem was not a check condition | 1770 | /* Problem was not a check condition |
1830 | * Pass it up to the upper layers... | 1771 | * Pass it up to the upper layers... |
1831 | */ | 1772 | */ |