From patchwork Fri Oct 18 08:24:19 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Zheng Bin X-Patchwork-Id: 11197749 Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 92F8517E1 for ; Fri, 18 Oct 2019 08:17:37 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id 7DE0421D7C for ; Fri, 18 Oct 2019 08:17:37 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S2442202AbfJRIRh (ORCPT ); Fri, 18 Oct 2019 04:17:37 -0400 Received: from szxga05-in.huawei.com ([45.249.212.191]:4729 "EHLO huawei.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S2442167AbfJRIRg (ORCPT ); Fri, 18 Oct 2019 04:17:36 -0400 Received: from DGGEMS411-HUB.china.huawei.com (unknown [172.30.72.58]) by Forcepoint Email with ESMTP id B9506A84C06E339B6573; Fri, 18 Oct 2019 16:17:29 +0800 (CST) Received: from huawei.com (10.90.53.225) by DGGEMS411-HUB.china.huawei.com (10.3.19.211) with Microsoft SMTP Server id 14.3.439.0; Fri, 18 Oct 2019 16:17:21 +0800 From: zhengbin To: , , , CC: , , Subject: [PATCH v5 01/13] scsi: core: need to check the result of scsi_execute in scsi_report_opcode Date: Fri, 18 Oct 2019 16:24:19 +0800 Message-ID: <1571387071-28853-2-git-send-email-zhengbin13@huawei.com> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1571387071-28853-1-git-send-email-zhengbin13@huawei.com> References: <1571387071-28853-1-git-send-email-zhengbin13@huawei.com> MIME-Version: 1.0 X-Originating-IP: [10.90.53.225] X-CFilter-Loop: Reflected Sender: linux-scsi-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-scsi@vger.kernel.org Like sd_pr_command, before use sshdr, we need to check the result of scsi_execute. Signed-off-by: zhengbin --- drivers/scsi/scsi.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) -- 2.7.4 diff --git a/drivers/scsi/scsi.c b/drivers/scsi/scsi.c index 4f76841..15d1fe9 100644 --- a/drivers/scsi/scsi.c +++ b/drivers/scsi/scsi.c @@ -509,7 +509,7 @@ int scsi_report_opcode(struct scsi_device *sdev, unsigned char *buffer, result = scsi_execute_req(sdev, cmd, DMA_FROM_DEVICE, buffer, len, &sshdr, 30 * HZ, 3, NULL); - if (result && scsi_sense_valid(&sshdr) && + if (driver_byte(result) == DRIVER_SENSE && scsi_sense_valid(&sshdr) && sshdr.sense_key == ILLEGAL_REQUEST && (sshdr.asc == 0x20 || sshdr.asc == 0x24) && sshdr.ascq == 0x00) return -EINVAL; From patchwork Fri Oct 18 08:24:20 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Zheng Bin X-Patchwork-Id: 11197743 Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id E476819A1 for ; Fri, 18 Oct 2019 08:17:35 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id D080021D7C for ; Fri, 18 Oct 2019 08:17:35 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S2442191AbfJRIRf (ORCPT ); Fri, 18 Oct 2019 04:17:35 -0400 Received: from szxga05-in.huawei.com ([45.249.212.191]:4723 "EHLO huawei.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S2404225AbfJRIRe (ORCPT ); Fri, 18 Oct 2019 04:17:34 -0400 Received: from DGGEMS411-HUB.china.huawei.com (unknown [172.30.72.58]) by Forcepoint Email with ESMTP id 9D5A750AD73045A636D; Fri, 18 Oct 2019 16:17:29 +0800 (CST) Received: from huawei.com (10.90.53.225) by DGGEMS411-HUB.china.huawei.com (10.3.19.211) with Microsoft SMTP Server id 14.3.439.0; Fri, 18 Oct 2019 16:17:21 +0800 From: zhengbin To: , , , CC: , , Subject: [PATCH v5 02/13] scsi: core: need to check the result of scsi_execute in scsi_test_unit_ready Date: Fri, 18 Oct 2019 16:24:20 +0800 Message-ID: <1571387071-28853-3-git-send-email-zhengbin13@huawei.com> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1571387071-28853-1-git-send-email-zhengbin13@huawei.com> References: <1571387071-28853-1-git-send-email-zhengbin13@huawei.com> MIME-Version: 1.0 X-Originating-IP: [10.90.53.225] X-CFilter-Loop: Reflected Sender: linux-scsi-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-scsi@vger.kernel.org Like sd_pr_command, before use sshdr, we need to check the result of scsi_execute. Signed-off-by: zhengbin --- drivers/scsi/scsi_lib.c | 3 +++ 1 file changed, 3 insertions(+) -- 2.7.4 diff --git a/drivers/scsi/scsi_lib.c b/drivers/scsi/scsi_lib.c index 5447738..2970190 100644 --- a/drivers/scsi/scsi_lib.c +++ b/drivers/scsi/scsi_lib.c @@ -2216,6 +2216,9 @@ scsi_test_unit_ready(struct scsi_device *sdev, int timeout, int retries, do { result = scsi_execute_req(sdev, cmd, DMA_NONE, NULL, 0, sshdr, timeout, 1, NULL); + if (driver_byte(result) != DRIVER_SENSE) + break; + if (sdev->removable && scsi_sense_valid(sshdr) && sshdr->sense_key == UNIT_ATTENTION) sdev->changed = 1; From patchwork Fri Oct 18 08:24:21 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Zheng Bin X-Patchwork-Id: 11197737 Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 6429E69B1 for ; Fri, 18 Oct 2019 08:17:33 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id 5132C21925 for ; Fri, 18 Oct 2019 08:17:33 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S2404291AbfJRIRc (ORCPT ); Fri, 18 Oct 2019 04:17:32 -0400 Received: from szxga05-in.huawei.com ([45.249.212.191]:4725 "EHLO huawei.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S2404165AbfJRIRc (ORCPT ); Fri, 18 Oct 2019 04:17:32 -0400 Received: from DGGEMS411-HUB.china.huawei.com (unknown [172.30.72.58]) by Forcepoint Email with ESMTP id A6D0CBBB6821DD335E89; Fri, 18 Oct 2019 16:17:29 +0800 (CST) Received: from huawei.com (10.90.53.225) by DGGEMS411-HUB.china.huawei.com (10.3.19.211) with Microsoft SMTP Server id 14.3.439.0; Fri, 18 Oct 2019 16:17:22 +0800 From: zhengbin To: , , , CC: , , Subject: [PATCH v5 03/13] scsi: core: need to check the result of scsi_execute in scsi_report_lun_scan Date: Fri, 18 Oct 2019 16:24:21 +0800 Message-ID: <1571387071-28853-4-git-send-email-zhengbin13@huawei.com> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1571387071-28853-1-git-send-email-zhengbin13@huawei.com> References: <1571387071-28853-1-git-send-email-zhengbin13@huawei.com> MIME-Version: 1.0 X-Originating-IP: [10.90.53.225] X-CFilter-Loop: Reflected Sender: linux-scsi-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-scsi@vger.kernel.org Like sd_pr_command, before use sshdr, we need to check the result of scsi_execute. Signed-off-by: zhengbin --- drivers/scsi/scsi_scan.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) -- 2.7.4 diff --git a/drivers/scsi/scsi_scan.c b/drivers/scsi/scsi_scan.c index 058079f..781f82a 100644 --- a/drivers/scsi/scsi_scan.c +++ b/drivers/scsi/scsi_scan.c @@ -1385,7 +1385,8 @@ static int scsi_report_lun_scan(struct scsi_target *starget, blist_flags_t bflag retries, result)); if (result == 0) break; - else if (scsi_sense_valid(&sshdr)) { + else if (driver_byte(result) == DRIVER_SENSE && + scsi_sense_valid(&sshdr)) { if (sshdr.sense_key != UNIT_ATTENTION) break; } From patchwork Fri Oct 18 08:24:22 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Zheng Bin X-Patchwork-Id: 11197735 Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id DBBE517E1 for ; Fri, 18 Oct 2019 08:17:32 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id C7940222C3 for ; Fri, 18 Oct 2019 08:17:32 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S2404256AbfJRIRc (ORCPT ); Fri, 18 Oct 2019 04:17:32 -0400 Received: from szxga05-in.huawei.com ([45.249.212.191]:4722 "EHLO huawei.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S2395313AbfJRIRb (ORCPT ); Fri, 18 Oct 2019 04:17:31 -0400 Received: from DGGEMS411-HUB.china.huawei.com (unknown [172.30.72.58]) by Forcepoint Email with ESMTP id 9897D60E22E5ABECFCC9; Fri, 18 Oct 2019 16:17:29 +0800 (CST) Received: from huawei.com (10.90.53.225) by DGGEMS411-HUB.china.huawei.com (10.3.19.211) with Microsoft SMTP Server id 14.3.439.0; Fri, 18 Oct 2019 16:17:22 +0800 From: zhengbin To: , , , CC: , , Subject: [PATCH v5 04/13] scsi: sr: need to check the result of scsi_execute in sr_get_events Date: Fri, 18 Oct 2019 16:24:22 +0800 Message-ID: <1571387071-28853-5-git-send-email-zhengbin13@huawei.com> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1571387071-28853-1-git-send-email-zhengbin13@huawei.com> References: <1571387071-28853-1-git-send-email-zhengbin13@huawei.com> MIME-Version: 1.0 X-Originating-IP: [10.90.53.225] X-CFilter-Loop: Reflected Sender: linux-scsi-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-scsi@vger.kernel.org Like sd_pr_command, before use sshdr, we need to check the result of scsi_execute. Signed-off-by: zhengbin --- drivers/scsi/sr.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) -- 2.7.4 diff --git a/drivers/scsi/sr.c b/drivers/scsi/sr.c index 4664fdf..5c5476b 100644 --- a/drivers/scsi/sr.c +++ b/drivers/scsi/sr.c @@ -205,7 +205,8 @@ static unsigned int sr_get_events(struct scsi_device *sdev) result = scsi_execute_req(sdev, cmd, DMA_FROM_DEVICE, buf, sizeof(buf), &sshdr, SR_TIMEOUT, MAX_RETRIES, NULL); - if (scsi_sense_valid(&sshdr) && sshdr.sense_key == UNIT_ATTENTION) + if (driver_byte(result) == DRIVER_SENSE && scsi_sense_valid(&sshdr) && + sshdr.sense_key == UNIT_ATTENTION) return DISK_EVENT_MEDIA_CHANGE; if (result || be16_to_cpu(eh->data_len) < sizeof(*med)) From patchwork Fri Oct 18 08:24:23 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Zheng Bin X-Patchwork-Id: 11197741 Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 98E8819A1 for ; Fri, 18 Oct 2019 08:17:34 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id 8511921D7C for ; Fri, 18 Oct 2019 08:17:34 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S2442190AbfJRIRe (ORCPT ); Fri, 18 Oct 2019 04:17:34 -0400 Received: from szxga05-in.huawei.com ([45.249.212.191]:4727 "EHLO huawei.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S2395313AbfJRIRd (ORCPT ); Fri, 18 Oct 2019 04:17:33 -0400 Received: from DGGEMS411-HUB.china.huawei.com (unknown [172.30.72.58]) by Forcepoint Email with ESMTP id B4FDF23E2871ABE41309; Fri, 18 Oct 2019 16:17:29 +0800 (CST) Received: from huawei.com (10.90.53.225) by DGGEMS411-HUB.china.huawei.com (10.3.19.211) with Microsoft SMTP Server id 14.3.439.0; Fri, 18 Oct 2019 16:17:22 +0800 From: zhengbin To: , , , CC: , , Subject: [PATCH v5 05/13] scsi: sr: need to check the result of scsi_execute in sr_do_ioctl Date: Fri, 18 Oct 2019 16:24:23 +0800 Message-ID: <1571387071-28853-6-git-send-email-zhengbin13@huawei.com> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1571387071-28853-1-git-send-email-zhengbin13@huawei.com> References: <1571387071-28853-1-git-send-email-zhengbin13@huawei.com> MIME-Version: 1.0 X-Originating-IP: [10.90.53.225] X-CFilter-Loop: Reflected Sender: linux-scsi-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-scsi@vger.kernel.org Like sd_pr_command, before use sshdr, we need to check the result of scsi_execute, also need to check whether sshdr is valid. Signed-off-by: zhengbin --- drivers/scsi/sr_ioctl.c | 6 ++++++ 1 file changed, 6 insertions(+) -- 2.7.4 diff --git a/drivers/scsi/sr_ioctl.c b/drivers/scsi/sr_ioctl.c index ffcf902..7672fc1 100644 --- a/drivers/scsi/sr_ioctl.c +++ b/drivers/scsi/sr_ioctl.c @@ -206,6 +206,12 @@ int sr_do_ioctl(Scsi_CD *cd, struct packet_command *cgc) /* Minimal error checking. Ignore cases we know about, and report the rest. */ if (driver_byte(result) != 0) { + if (driver_byte(result) != DRIVER_SENSE || + !scsi_sense_valid(sshdr)) { + err = -EIO; + goto out; + } + switch (sshdr->sense_key) { case UNIT_ATTENTION: SDev->changed = 1; From patchwork Fri Oct 18 08:24:24 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Zheng Bin X-Patchwork-Id: 11197745 Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 9A4D217E1 for ; Fri, 18 Oct 2019 08:17:36 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id 85EA321D7C for ; Fri, 18 Oct 2019 08:17:36 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S2442198AbfJRIRf (ORCPT ); Fri, 18 Oct 2019 04:17:35 -0400 Received: from szxga05-in.huawei.com ([45.249.212.191]:4726 "EHLO huawei.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S2404268AbfJRIRe (ORCPT ); Fri, 18 Oct 2019 04:17:34 -0400 Received: from DGGEMS411-HUB.china.huawei.com (unknown [172.30.72.58]) by Forcepoint Email with ESMTP id B038C8FFBA145C611A77; Fri, 18 Oct 2019 16:17:29 +0800 (CST) Received: from huawei.com (10.90.53.225) by DGGEMS411-HUB.china.huawei.com (10.3.19.211) with Microsoft SMTP Server id 14.3.439.0; Fri, 18 Oct 2019 16:17:22 +0800 From: zhengbin To: , , , CC: , , Subject: [PATCH v5 06/13] scsi: scsi_dh_emc: need to check the result of scsi_execute in send_trespass_cmd Date: Fri, 18 Oct 2019 16:24:24 +0800 Message-ID: <1571387071-28853-7-git-send-email-zhengbin13@huawei.com> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1571387071-28853-1-git-send-email-zhengbin13@huawei.com> References: <1571387071-28853-1-git-send-email-zhengbin13@huawei.com> MIME-Version: 1.0 X-Originating-IP: [10.90.53.225] X-CFilter-Loop: Reflected Sender: linux-scsi-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-scsi@vger.kernel.org Like sd_pr_command, before use sshdr, we need to check the result of scsi_execute. Signed-off-by: zhengbin --- drivers/scsi/device_handler/scsi_dh_emc.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) -- 2.7.4 diff --git a/drivers/scsi/device_handler/scsi_dh_emc.c b/drivers/scsi/device_handler/scsi_dh_emc.c index caa685c..cf49378 100644 --- a/drivers/scsi/device_handler/scsi_dh_emc.c +++ b/drivers/scsi/device_handler/scsi_dh_emc.c @@ -267,7 +267,8 @@ static int send_trespass_cmd(struct scsi_device *sdev, &sshdr, CLARIION_TIMEOUT * HZ, CLARIION_RETRIES, req_flags, 0, NULL); if (err) { - if (scsi_sense_valid(&sshdr)) + if (driver_byte(err) == DRIVER_SENSE && + scsi_sense_valid(&sshdr)) res = trespass_endio(sdev, &sshdr); else { sdev_printk(KERN_INFO, sdev, From patchwork Fri Oct 18 08:24:25 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Zheng Bin X-Patchwork-Id: 11197739 Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 0877F17E1 for ; Fri, 18 Oct 2019 08:17:34 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id DD05521D7C for ; Fri, 18 Oct 2019 08:17:33 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S2442178AbfJRIRd (ORCPT ); Fri, 18 Oct 2019 04:17:33 -0400 Received: from szxga05-in.huawei.com ([45.249.212.191]:4721 "EHLO huawei.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S2395504AbfJRIRd (ORCPT ); Fri, 18 Oct 2019 04:17:33 -0400 Received: from DGGEMS411-HUB.china.huawei.com (unknown [172.30.72.58]) by Forcepoint Email with ESMTP id 93AB94374CF1B545FD83; Fri, 18 Oct 2019 16:17:29 +0800 (CST) Received: from huawei.com (10.90.53.225) by DGGEMS411-HUB.china.huawei.com (10.3.19.211) with Microsoft SMTP Server id 14.3.439.0; Fri, 18 Oct 2019 16:17:23 +0800 From: zhengbin To: , , , CC: , , Subject: [PATCH v5 07/13] scsi: scsi_dh_rdac: need to check the result of scsi_execute in send_mode_select Date: Fri, 18 Oct 2019 16:24:25 +0800 Message-ID: <1571387071-28853-8-git-send-email-zhengbin13@huawei.com> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1571387071-28853-1-git-send-email-zhengbin13@huawei.com> References: <1571387071-28853-1-git-send-email-zhengbin13@huawei.com> MIME-Version: 1.0 X-Originating-IP: [10.90.53.225] X-CFilter-Loop: Reflected Sender: linux-scsi-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-scsi@vger.kernel.org Like sd_pr_command, before use sshdr, we need to check the result of scsi_execute. Signed-off-by: zhengbin --- drivers/scsi/device_handler/scsi_dh_rdac.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) -- 2.7.4 diff --git a/drivers/scsi/device_handler/scsi_dh_rdac.c b/drivers/scsi/device_handler/scsi_dh_rdac.c index 5efc959..2a43985 100644 --- a/drivers/scsi/device_handler/scsi_dh_rdac.c +++ b/drivers/scsi/device_handler/scsi_dh_rdac.c @@ -531,6 +531,7 @@ static void send_mode_select(struct work_struct *work) struct scsi_device *sdev = ctlr->ms_sdev; struct rdac_dh_data *h = sdev->handler_data; int err = SCSI_DH_OK, retry_cnt = RDAC_RETRY_COUNT; + int result; struct rdac_queue_data *tmp, *qdata; LIST_HEAD(list); unsigned char cdb[MAX_COMMAND_SIZE]; @@ -555,9 +556,10 @@ static void send_mode_select(struct work_struct *work) (char *) h->ctlr->array_name, h->ctlr->index, (retry_cnt == RDAC_RETRY_COUNT) ? "queueing" : "retrying"); - if (scsi_execute(sdev, cdb, DMA_TO_DEVICE, &h->ctlr->mode_select, - data_size, NULL, &sshdr, RDAC_TIMEOUT * HZ, - RDAC_RETRIES, req_flags, 0, NULL)) { + result = scsi_execute(sdev, cdb, DMA_TO_DEVICE, &h->ctlr->mode_select, + data_size, NULL, &sshdr, RDAC_TIMEOUT * HZ, + RDAC_RETRIES, req_flags, 0, NULL); + if (driver_byte(result) == DRIVER_SENSE) { err = mode_select_handle_sense(sdev, &sshdr); if (err == SCSI_DH_RETRY && retry_cnt--) goto retry; From patchwork Fri Oct 18 08:24:26 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Zheng Bin X-Patchwork-Id: 11197733 Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 46AF919A1 for ; Fri, 18 Oct 2019 08:17:32 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id 273E721D7C for ; Fri, 18 Oct 2019 08:17:32 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S2404212AbfJRIRb (ORCPT ); Fri, 18 Oct 2019 04:17:31 -0400 Received: from szxga05-in.huawei.com ([45.249.212.191]:4724 "EHLO huawei.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1731008AbfJRIRb (ORCPT ); Fri, 18 Oct 2019 04:17:31 -0400 Received: from DGGEMS411-HUB.china.huawei.com (unknown [172.30.72.58]) by Forcepoint Email with ESMTP id A226A72041FC7C62A339; Fri, 18 Oct 2019 16:17:29 +0800 (CST) Received: from huawei.com (10.90.53.225) by DGGEMS411-HUB.china.huawei.com (10.3.19.211) with Microsoft SMTP Server id 14.3.439.0; Fri, 18 Oct 2019 16:17:23 +0800 From: zhengbin To: , , , CC: , , Subject: [PATCH v5 08/13] scsi: scsi_dh_hp_sw: need to check the result of scsi_execute in hp_sw_tur,hp_sw_start_stop Date: Fri, 18 Oct 2019 16:24:26 +0800 Message-ID: <1571387071-28853-9-git-send-email-zhengbin13@huawei.com> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1571387071-28853-1-git-send-email-zhengbin13@huawei.com> References: <1571387071-28853-1-git-send-email-zhengbin13@huawei.com> MIME-Version: 1.0 X-Originating-IP: [10.90.53.225] X-CFilter-Loop: Reflected Sender: linux-scsi-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-scsi@vger.kernel.org Like sd_pr_command, before use sshdr, we need to check the result of scsi_execute. Signed-off-by: zhengbin --- drivers/scsi/device_handler/scsi_dh_hp_sw.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) -- 2.7.4 diff --git a/drivers/scsi/device_handler/scsi_dh_hp_sw.c b/drivers/scsi/device_handler/scsi_dh_hp_sw.c index 8acd4bb..be8c139 100644 --- a/drivers/scsi/device_handler/scsi_dh_hp_sw.c +++ b/drivers/scsi/device_handler/scsi_dh_hp_sw.c @@ -90,7 +90,8 @@ static int hp_sw_tur(struct scsi_device *sdev, struct hp_sw_dh_data *h) res = scsi_execute(sdev, cmd, DMA_NONE, NULL, 0, NULL, &sshdr, HP_SW_TIMEOUT, HP_SW_RETRIES, req_flags, 0, NULL); if (res) { - if (scsi_sense_valid(&sshdr)) + if (driver_byte(res) == DRIVER_SENSE && + scsi_sense_valid(&sshdr)) ret = tur_done(sdev, h, &sshdr); else { sdev_printk(KERN_WARNING, sdev, @@ -128,7 +129,8 @@ static int hp_sw_start_stop(struct hp_sw_dh_data *h) res = scsi_execute(sdev, cmd, DMA_NONE, NULL, 0, NULL, &sshdr, HP_SW_TIMEOUT, HP_SW_RETRIES, req_flags, 0, NULL); if (res) { - if (!scsi_sense_valid(&sshdr)) { + if (driver_byte(result) != DRIVER_SENSE || + !scsi_sense_valid(&sshdr)) { sdev_printk(KERN_WARNING, sdev, "%s: sending start_stop_unit failed, " "no sense available\n", HP_SW_NAME); From patchwork Fri Oct 18 08:24:27 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Zheng Bin X-Patchwork-Id: 11197751 Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 025C469B1 for ; Fri, 18 Oct 2019 08:17:38 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id D6B8C222C6 for ; Fri, 18 Oct 2019 08:17:37 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S2442203AbfJRIRh (ORCPT ); Fri, 18 Oct 2019 04:17:37 -0400 Received: from szxga04-in.huawei.com ([45.249.212.190]:4684 "EHLO huawei.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S2442194AbfJRIRg (ORCPT ); Fri, 18 Oct 2019 04:17:36 -0400 Received: from DGGEMS411-HUB.china.huawei.com (unknown [172.30.72.58]) by Forcepoint Email with ESMTP id A20CA3DD8DB71C51A62B; Fri, 18 Oct 2019 16:17:34 +0800 (CST) Received: from huawei.com (10.90.53.225) by DGGEMS411-HUB.china.huawei.com (10.3.19.211) with Microsoft SMTP Server id 14.3.439.0; Fri, 18 Oct 2019 16:17:24 +0800 From: zhengbin To: , , , CC: , , Subject: [PATCH v5 09/13] scsi: scsi_dh_alua: need to check the result of scsi_execute in alua_rtpg,alua_stpg Date: Fri, 18 Oct 2019 16:24:27 +0800 Message-ID: <1571387071-28853-10-git-send-email-zhengbin13@huawei.com> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1571387071-28853-1-git-send-email-zhengbin13@huawei.com> References: <1571387071-28853-1-git-send-email-zhengbin13@huawei.com> MIME-Version: 1.0 X-Originating-IP: [10.90.53.225] X-CFilter-Loop: Reflected Sender: linux-scsi-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-scsi@vger.kernel.org Like sd_pr_command, before use sshdr, we need to check the result of scsi_execute. submit_rtpg/submit_stpg scsi_execute Signed-off-by: zhengbin --- drivers/scsi/device_handler/scsi_dh_alua.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) -- 2.7.4 diff --git a/drivers/scsi/device_handler/scsi_dh_alua.c b/drivers/scsi/device_handler/scsi_dh_alua.c index f32da0c..97c38ed 100644 --- a/drivers/scsi/device_handler/scsi_dh_alua.c +++ b/drivers/scsi/device_handler/scsi_dh_alua.c @@ -548,7 +548,8 @@ static int alua_rtpg(struct scsi_device *sdev, struct alua_port_group *pg) kfree(buff); return SCSI_DH_OK; } - if (!scsi_sense_valid(&sense_hdr)) { + if (driver_byte(retval) != DRIVER_SENSE || + !scsi_sense_valid(&sense_hdr)) { sdev_printk(KERN_INFO, sdev, "%s: rtpg failed, result %d\n", ALUA_DH_NAME, retval); @@ -773,7 +774,8 @@ static unsigned alua_stpg(struct scsi_device *sdev, struct alua_port_group *pg) retval = submit_stpg(sdev, pg->group_id, &sense_hdr); if (retval) { - if (!scsi_sense_valid(&sense_hdr)) { + if (driver_byte(retval) != DRIVER_SENSE || + !scsi_sense_valid(&sense_hdr)) { sdev_printk(KERN_INFO, sdev, "%s: stpg failed, result %d", ALUA_DH_NAME, retval); From patchwork Fri Oct 18 08:24:28 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Zheng Bin X-Patchwork-Id: 11197755 Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 9C9D619A1 for ; Fri, 18 Oct 2019 08:17:38 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id 8744521D7C for ; Fri, 18 Oct 2019 08:17:38 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S2442205AbfJRIRi (ORCPT ); Fri, 18 Oct 2019 04:17:38 -0400 Received: from szxga04-in.huawei.com ([45.249.212.190]:4685 "EHLO huawei.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S2442193AbfJRIRh (ORCPT ); Fri, 18 Oct 2019 04:17:37 -0400 Received: from DGGEMS411-HUB.china.huawei.com (unknown [172.30.72.58]) by Forcepoint Email with ESMTP id A6504C70BEB43160CD04; Fri, 18 Oct 2019 16:17:34 +0800 (CST) Received: from huawei.com (10.90.53.225) by DGGEMS411-HUB.china.huawei.com (10.3.19.211) with Microsoft SMTP Server id 14.3.439.0; Fri, 18 Oct 2019 16:17:24 +0800 From: zhengbin To: , , , CC: , , Subject: [PATCH v5 10/13] scsi: scsi_transport_spi: need to check whether sshdr is valid in spi_execute Date: Fri, 18 Oct 2019 16:24:28 +0800 Message-ID: <1571387071-28853-11-git-send-email-zhengbin13@huawei.com> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1571387071-28853-1-git-send-email-zhengbin13@huawei.com> References: <1571387071-28853-1-git-send-email-zhengbin13@huawei.com> MIME-Version: 1.0 X-Originating-IP: [10.90.53.225] X-CFilter-Loop: Reflected Sender: linux-scsi-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-scsi@vger.kernel.org Like sd_pr_command, before use sshdr, we need to check whether sshdr is valid. Signed-off-by: zhengbin --- drivers/scsi/scsi_transport_spi.c | 1 + 1 file changed, 1 insertion(+) -- 2.7.4 diff --git a/drivers/scsi/scsi_transport_spi.c b/drivers/scsi/scsi_transport_spi.c index f866106..428f9b8 100644 --- a/drivers/scsi/scsi_transport_spi.c +++ b/drivers/scsi/scsi_transport_spi.c @@ -124,6 +124,7 @@ static int spi_execute(struct scsi_device *sdev, const void *cmd, REQ_FAILFAST_DRIVER, 0, NULL); if (driver_byte(result) != DRIVER_SENSE || + !scsi_sense_valid(sshdr) || sshdr->sense_key != UNIT_ATTENTION) break; } From patchwork Fri Oct 18 08:24:29 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Zheng Bin X-Patchwork-Id: 11197753 Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 72ADA69B7 for ; Fri, 18 Oct 2019 08:17:38 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id 5E2B221925 for ; Fri, 18 Oct 2019 08:17:38 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S2442194AbfJRIRh (ORCPT ); Fri, 18 Oct 2019 04:17:37 -0400 Received: from szxga04-in.huawei.com ([45.249.212.190]:4682 "EHLO huawei.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S2442196AbfJRIRh (ORCPT ); Fri, 18 Oct 2019 04:17:37 -0400 Received: from DGGEMS411-HUB.china.huawei.com (unknown [172.30.72.58]) by Forcepoint Email with ESMTP id 991DF778835C0B7F7411; Fri, 18 Oct 2019 16:17:34 +0800 (CST) Received: from huawei.com (10.90.53.225) by DGGEMS411-HUB.china.huawei.com (10.3.19.211) with Microsoft SMTP Server id 14.3.439.0; Fri, 18 Oct 2019 16:17:24 +0800 From: zhengbin To: , , , CC: , , Subject: [PATCH v5 11/13] scsi: cxlflash: need to check whether sshdr is valid in read_cap16 Date: Fri, 18 Oct 2019 16:24:29 +0800 Message-ID: <1571387071-28853-12-git-send-email-zhengbin13@huawei.com> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1571387071-28853-1-git-send-email-zhengbin13@huawei.com> References: <1571387071-28853-1-git-send-email-zhengbin13@huawei.com> MIME-Version: 1.0 X-Originating-IP: [10.90.53.225] X-CFilter-Loop: Reflected Sender: linux-scsi-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-scsi@vger.kernel.org Like sd_pr_command, before use sshdr, we need to check whether sshdr is valid. Signed-off-by: zhengbin --- drivers/scsi/cxlflash/superpipe.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) -- 2.7.4 diff --git a/drivers/scsi/cxlflash/superpipe.c b/drivers/scsi/cxlflash/superpipe.c index 593669a..1e90ff3 100644 --- a/drivers/scsi/cxlflash/superpipe.c +++ b/drivers/scsi/cxlflash/superpipe.c @@ -369,7 +369,7 @@ static int read_cap16(struct scsi_device *sdev, struct llun_info *lli) goto out; } - if (driver_byte(result) == DRIVER_SENSE) { + if (driver_byte(result) == DRIVER_SENSE && scsi_sense_valid(&sshdr)) { result &= ~(0xFF<<24); /* DRIVER_SENSE is not an error */ if (result & SAM_STAT_CHECK_CONDITION) { switch (sshdr.sense_key) { From patchwork Fri Oct 18 08:24:30 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Zheng Bin X-Patchwork-Id: 11197757 Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 6D86619A1 for ; Fri, 18 Oct 2019 08:17:40 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id 5820421D7C for ; Fri, 18 Oct 2019 08:17:40 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S2504758AbfJRIRj (ORCPT ); Fri, 18 Oct 2019 04:17:39 -0400 Received: from szxga04-in.huawei.com ([45.249.212.190]:4683 "EHLO huawei.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S2442195AbfJRIRh (ORCPT ); Fri, 18 Oct 2019 04:17:37 -0400 Received: from DGGEMS411-HUB.china.huawei.com (unknown [172.30.72.58]) by Forcepoint Email with ESMTP id 9DA3F8352246DED30907; Fri, 18 Oct 2019 16:17:34 +0800 (CST) Received: from huawei.com (10.90.53.225) by DGGEMS411-HUB.china.huawei.com (10.3.19.211) with Microsoft SMTP Server id 14.3.439.0; Fri, 18 Oct 2019 16:17:25 +0800 From: zhengbin To: , , , CC: , , Subject: [PATCH v5 12/13] scsi: ufs: need to check whether sshdr is valid in ufshcd_set_dev_pwr_mode Date: Fri, 18 Oct 2019 16:24:30 +0800 Message-ID: <1571387071-28853-13-git-send-email-zhengbin13@huawei.com> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1571387071-28853-1-git-send-email-zhengbin13@huawei.com> References: <1571387071-28853-1-git-send-email-zhengbin13@huawei.com> MIME-Version: 1.0 X-Originating-IP: [10.90.53.225] X-CFilter-Loop: Reflected Sender: linux-scsi-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-scsi@vger.kernel.org Like sd_pr_command, before use sshdr, we need to check whether sshdr is valid. Signed-off-by: zhengbin --- drivers/scsi/ufs/ufshcd.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) -- 2.7.4 diff --git a/drivers/scsi/ufs/ufshcd.c b/drivers/scsi/ufs/ufshcd.c index c28c144..5afc426 100644 --- a/drivers/scsi/ufs/ufshcd.c +++ b/drivers/scsi/ufs/ufshcd.c @@ -7600,7 +7600,8 @@ static int ufshcd_set_dev_pwr_mode(struct ufs_hba *hba, sdev_printk(KERN_WARNING, sdp, "START_STOP failed for power mode: %d, result %x\n", pwr_mode, ret); - if (driver_byte(ret) == DRIVER_SENSE) + if (driver_byte(ret) == DRIVER_SENSE && + scsi_sense_valid(&sshdr)) scsi_print_sense_hdr(sdp, NULL, &sshdr); } From patchwork Fri Oct 18 08:24:31 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Zheng Bin X-Patchwork-Id: 11197759 Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id D6EBA69B1 for ; Fri, 18 Oct 2019 08:17:40 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id C27A821D7C for ; Fri, 18 Oct 2019 08:17:40 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S2504793AbfJRIRk (ORCPT ); Fri, 18 Oct 2019 04:17:40 -0400 Received: from szxga04-in.huawei.com ([45.249.212.190]:4686 "EHLO huawei.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S2442192AbfJRIRh (ORCPT ); Fri, 18 Oct 2019 04:17:37 -0400 Received: from DGGEMS411-HUB.china.huawei.com (unknown [172.30.72.60]) by Forcepoint Email with ESMTP id C7F95E95AFB6B0DBA3E2; Fri, 18 Oct 2019 16:17:34 +0800 (CST) Received: from huawei.com (10.90.53.225) by DGGEMS411-HUB.china.huawei.com (10.3.19.211) with Microsoft SMTP Server id 14.3.439.0; Fri, 18 Oct 2019 16:17:25 +0800 From: zhengbin To: , , , CC: , , Subject: [PATCH v5 13/13] scsi: ch: need to check whether sshdr is valid in ch_do_scsi Date: Fri, 18 Oct 2019 16:24:31 +0800 Message-ID: <1571387071-28853-14-git-send-email-zhengbin13@huawei.com> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1571387071-28853-1-git-send-email-zhengbin13@huawei.com> References: <1571387071-28853-1-git-send-email-zhengbin13@huawei.com> MIME-Version: 1.0 X-Originating-IP: [10.90.53.225] X-CFilter-Loop: Reflected Sender: linux-scsi-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-scsi@vger.kernel.org Like sd_pr_command, before use sshdr, we need to check whether sshdr is valid. Signed-off-by: zhengbin --- drivers/scsi/ch.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) -- 2.7.4 diff --git a/drivers/scsi/ch.c b/drivers/scsi/ch.c index 76751d6..dba6fe2 100644 --- a/drivers/scsi/ch.c +++ b/drivers/scsi/ch.c @@ -200,7 +200,7 @@ ch_do_scsi(scsi_changer *ch, unsigned char *cmd, int cmd_len, buflength, &sshdr, timeout * HZ, MAX_RETRIES, NULL); - if (driver_byte(result) == DRIVER_SENSE) { + if (driver_byte(result) == DRIVER_SENSE && scsi_sense_valid(&sshdr)) { if (debug) scsi_print_sense_hdr(ch->device, ch->name, &sshdr); errno = ch_find_errno(&sshdr); @@ -212,7 +212,9 @@ ch_do_scsi(scsi_changer *ch, unsigned char *cmd, int cmd_len, goto retry; break; } - } + } else if (result) + errno = -EIO; + return errno; }