Received: by 2002:a25:1985:0:0:0:0:0 with SMTP id 127csp186303ybz; Thu, 30 Apr 2020 19:19:41 -0700 (PDT) X-Google-Smtp-Source: APiQypJopBW7y1EltqLaVZOe7cFo5R9G+k95lTQLNpeZJf5jqK9WOLgc+HBG1O8XOvrXinhwQNoU X-Received: by 2002:a17:906:310e:: with SMTP id 14mr1339189ejx.177.1588299581416; Thu, 30 Apr 2020 19:19:41 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1588299581; cv=none; d=google.com; s=arc-20160816; b=EXNUHLcqor4y+aSyTDw5cZMlt9adKSnIowLSdlPBH6b4BrZg1b8W8uqmE/QxYfP7G3 GeTMb9ckdBqJVXIJvdHoEjL8nw06Fb7TusrVg8g+26tutL+qCP7Gg65Fzvocg3kI3YR7 5GsCcqfUESu1adfUDU/sNTsJ2MTP6RjDxzHtZeLM12HsOS91ZLHvyyX2KFbux1nfBXIW tCC9wf10nk36eCKkBy5IR++paFjgjdusRAo6KHOePJp2SP4XjOJfg/UClBm8TPZJxJbQ paEfE1jCkj6IBXO36o0mtVZTeUmA/4xrrzoAjRwQHsNiM9p0gTVmydiEYKKKnSI0iwf6 mjsg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding:mime-version :date:cc:to:from:subject:message-id:dkim-signature:dkim-signature; bh=YRmR9eKqlNNilPFLE7TBVL2326oh3omarFyDgQIpUQg=; b=Qw5yI8pMm3ftfsnIXPjrv1reVaZu9F1FU0phmf3mV+y21tPqylCbu3TdCgshMmLMwc MRruFYG1wyRB846TWkPTjiyMjeDGs1xiK3szxidpyNu7EsW6FCCAp+GUgukdkxIvkl52 /Lo+qKpg9sDjNRssrhA7iK9v9KFayywkXbDcOD19VZDLziLrISY+mQUMyzm8hR6oO1V8 Z22g+TjcamWliuItNHVhvrmpUucN5rrcaM1SHG5ve08WVVrv1T/xWevHzSPdW5qLmHR/ 33rN4OONdAW2FCynAVNPHCzgGQDBoRF3ZiZfFRwwfHAMN8U/MPfWfLlP4yCV8C8yOagz 3iww== ARC-Authentication-Results: i=1; mx.google.com; dkim=fail header.i=@hansenpartnership.com header.s=20151216 header.b=rNSg13nu; dkim=fail header.i=@hansenpartnership.com header.s=20151216 header.b=rNSg13nu; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=hansenpartnership.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id i1si972325edy.179.2020.04.30.19.19.18; Thu, 30 Apr 2020 19:19:41 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; dkim=fail header.i=@hansenpartnership.com header.s=20151216 header.b=rNSg13nu; dkim=fail header.i=@hansenpartnership.com header.s=20151216 header.b=rNSg13nu; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=hansenpartnership.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728116AbgEACPh (ORCPT + 99 others); Thu, 30 Apr 2020 22:15:37 -0400 Received: from bedivere.hansenpartnership.com ([66.63.167.143]:58038 "EHLO bedivere.hansenpartnership.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1728009AbgEACPh (ORCPT ); Thu, 30 Apr 2020 22:15:37 -0400 Received: from localhost (localhost [127.0.0.1]) by bedivere.hansenpartnership.com (Postfix) with ESMTP id E50C78EE105; Thu, 30 Apr 2020 19:15:36 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=hansenpartnership.com; s=20151216; t=1588299336; bh=12uN4iRrl7yWx582rVDDYLfsEquyL2jowDW9sfgfRXw=; h=Subject:From:To:Cc:Date:From; b=rNSg13nuV5PT92uBKBWV85D+TOdi/saZpD+nYgDBdaLr/9dgeUQ0ZDas/t7r4kAuX woWSK4NoZxJkBUDuyvL8sBA2ADhk/+/5Dju0sSNdcfx8cwyvAFnhdjX3i1M67kPJ7h xDjItO1lYUqztxnPFYXF1bIh0pjPZaXSto3fIto0= Received: from bedivere.hansenpartnership.com ([127.0.0.1]) by localhost (bedivere.hansenpartnership.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id U7Fzxe3Dq2Bk; Thu, 30 Apr 2020 19:15:36 -0700 (PDT) Received: from [153.66.254.194] (unknown [50.35.76.230]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by bedivere.hansenpartnership.com (Postfix) with ESMTPSA id 6C1698EE0EA; Thu, 30 Apr 2020 19:15:36 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=hansenpartnership.com; s=20151216; t=1588299336; bh=12uN4iRrl7yWx582rVDDYLfsEquyL2jowDW9sfgfRXw=; h=Subject:From:To:Cc:Date:From; b=rNSg13nuV5PT92uBKBWV85D+TOdi/saZpD+nYgDBdaLr/9dgeUQ0ZDas/t7r4kAuX woWSK4NoZxJkBUDuyvL8sBA2ADhk/+/5Dju0sSNdcfx8cwyvAFnhdjX3i1M67kPJ7h xDjItO1lYUqztxnPFYXF1bIh0pjPZaXSto3fIto0= Message-ID: <1588299335.6654.7.camel@HansenPartnership.com> Subject: [GIT PULL] SCSI fixes for 5.7-rc3 From: James Bottomley To: Andrew Morton , Linus Torvalds Cc: linux-scsi , linux-kernel Date: Thu, 30 Apr 2020 19:15:35 -0700 Content-Type: text/plain; charset="UTF-8" X-Mailer: Evolution 3.26.6 Mime-Version: 1.0 Content-Transfer-Encoding: 7bit Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Four minor fixes: three in drivers and one in the core. The core one allows an additional state change that fixes a regression introduced by an update to the aacraid driver in the previous merge window. The patch is available here: git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi.git scsi-fixes The short changelog is: David Disseldorp (1): scsi: target/iblock: fix WRITE SAME zeroing Dexuan Cui (1): scsi: core: Allow the state change from SDEV_QUIESCE to SDEV_BLOCK Martin Wilck (2): scsi: qla2xxx: check UNLOADING before posting async work scsi: qla2xxx: set UNLOADING before waiting for session deletion And the diffstat drivers/scsi/qla2xxx/qla_os.c | 35 +++++++++++++++++------------------ drivers/scsi/scsi_lib.c | 1 + drivers/target/target_core_iblock.c | 2 +- 3 files changed, 19 insertions(+), 19 deletions(-) With full diff below. James --- diff --git a/drivers/scsi/qla2xxx/qla_os.c b/drivers/scsi/qla2xxx/qla_os.c index d190db5ea7d9..1d9a4866f9a7 100644 --- a/drivers/scsi/qla2xxx/qla_os.c +++ b/drivers/scsi/qla2xxx/qla_os.c @@ -3732,6 +3732,13 @@ qla2x00_remove_one(struct pci_dev *pdev) } qla2x00_wait_for_hba_ready(base_vha); + /* + * if UNLOADING flag is already set, then continue unload, + * where it was set first. + */ + if (test_and_set_bit(UNLOADING, &base_vha->dpc_flags)) + return; + if (IS_QLA25XX(ha) || IS_QLA2031(ha) || IS_QLA27XX(ha) || IS_QLA28XX(ha)) { if (ha->flags.fw_started) @@ -3750,15 +3757,6 @@ qla2x00_remove_one(struct pci_dev *pdev) qla2x00_wait_for_sess_deletion(base_vha); - /* - * if UNLOAD flag is already set, then continue unload, - * where it was set first. - */ - if (test_bit(UNLOADING, &base_vha->dpc_flags)) - return; - - set_bit(UNLOADING, &base_vha->dpc_flags); - qla_nvme_delete(base_vha); dma_free_coherent(&ha->pdev->dev, @@ -4864,6 +4862,9 @@ qla2x00_alloc_work(struct scsi_qla_host *vha, enum qla_work_type type) struct qla_work_evt *e; uint8_t bail; + if (test_bit(UNLOADING, &vha->dpc_flags)) + return NULL; + QLA_VHA_MARK_BUSY(vha, bail); if (bail) return NULL; @@ -6628,13 +6629,6 @@ qla2x00_disable_board_on_pci_error(struct work_struct *work) struct pci_dev *pdev = ha->pdev; scsi_qla_host_t *base_vha = pci_get_drvdata(ha->pdev); - /* - * if UNLOAD flag is already set, then continue unload, - * where it was set first. - */ - if (test_bit(UNLOADING, &base_vha->dpc_flags)) - return; - ql_log(ql_log_warn, base_vha, 0x015b, "Disabling adapter.\n"); @@ -6645,9 +6639,14 @@ qla2x00_disable_board_on_pci_error(struct work_struct *work) return; } - qla2x00_wait_for_sess_deletion(base_vha); + /* + * if UNLOADING flag is already set, then continue unload, + * where it was set first. + */ + if (test_and_set_bit(UNLOADING, &base_vha->dpc_flags)) + return; - set_bit(UNLOADING, &base_vha->dpc_flags); + qla2x00_wait_for_sess_deletion(base_vha); qla2x00_delete_all_vps(ha, base_vha); diff --git a/drivers/scsi/scsi_lib.c b/drivers/scsi/scsi_lib.c index 47835c4b4ee0..06c260f6cdae 100644 --- a/drivers/scsi/scsi_lib.c +++ b/drivers/scsi/scsi_lib.c @@ -2284,6 +2284,7 @@ scsi_device_set_state(struct scsi_device *sdev, enum scsi_device_state state) switch (oldstate) { case SDEV_RUNNING: case SDEV_CREATED_BLOCK: + case SDEV_QUIESCE: case SDEV_OFFLINE: break; default: diff --git a/drivers/target/target_core_iblock.c b/drivers/target/target_core_iblock.c index 51ffd5c002de..1c181d31f4c8 100644 --- a/drivers/target/target_core_iblock.c +++ b/drivers/target/target_core_iblock.c @@ -432,7 +432,7 @@ iblock_execute_zero_out(struct block_device *bdev, struct se_cmd *cmd) target_to_linux_sector(dev, cmd->t_task_lba), target_to_linux_sector(dev, sbc_get_write_same_sectors(cmd)), - GFP_KERNEL, false); + GFP_KERNEL, BLKDEV_ZERO_NOUNMAP); if (ret) return TCM_LOGICAL_UNIT_COMMUNICATION_FAILURE;