Received: by 2002:a05:6a10:413:0:0:0:0 with SMTP id 19csp750013pxp; Fri, 11 Mar 2022 14:08:22 -0800 (PST) X-Google-Smtp-Source: ABdhPJwIQreVsNN5hiVxkIzU8mdZXJcodOXmBqlQgaRzPc82C/pd5wsmXvTFmNe8VYXpT4Agda8P X-Received: by 2002:a17:90a:600a:b0:1b9:dd79:ea77 with SMTP id y10-20020a17090a600a00b001b9dd79ea77mr13073967pji.44.1647036501999; Fri, 11 Mar 2022 14:08:21 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1647036501; cv=none; d=google.com; s=arc-20160816; b=NDBpslEeZFoq+SSPRK1A2g0WuGAMTZ8cTolZed0mi+u1dBbqjvk4uc9sybfr582bYP 36PffeU8Vmgi1oQJtjTwebnI8fusus6fgifHuZv8kWJhk+gMITclLfhe+b8ou2A3GJTs cVi+y98HuZE8k563JDmE7npKVTyjANNQDM9kFjrLlRJ/1nXKharbQtzy0p1o5bCwkFYP 9sghV0k1BHo91ZFPkRnZ51rJHHNE9H2QpNxa23405JxSwkX5mRtsY6iZhsduLr+7FuQc X9nTT1OGv9zkoPFOHGP0hfIYAK/u8xtiEg1r9aK9x8dtJkS5+EPo7WuGV5hAfj65cptR fmoA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:mime-version:references:in-reply-to:message-id :date:subject:cc:to:from; bh=p/fj5ARBxZUnVsUozvb9wjA66AtPOHBRrBsa8UJ8vlc=; b=RkZTgujPb5nLs8HiRrkrhe4N2pMGwZuZYLWUZlmUR+AcOmnwpWfCo72w3tcmH16vQb ADo4x1uLBX8YUu/jA3c+SJOCb7T5aNd4yAncb5p666OfkH5nmm5Idam/3u7RWpzZRTtp eU5mRILbTtMts7N0kkAX9bgEC/Gu5u/wxT/5l1HYwfa6AxucYlD7qtujX1Y/x5lPWd5c mXaMJucaWfCZcO74bKQQABdjZZAt3PlcqSeFGbN/87d2+gpd0FUxrU+kK9bvWG2un7QJ Jem2wjebkS8iEUNDC96B45vFsYzboKXkJippbV92qfsJxoO9kFoTzdcGX9616nKY81RF YqdQ== ARC-Authentication-Results: i=1; mx.google.com; spf=softfail (google.com: domain of transitioning linux-kernel-owner@vger.kernel.org does not designate 23.128.96.19 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=huawei.com Return-Path: Received: from lindbergh.monkeyblade.net (lindbergh.monkeyblade.net. [23.128.96.19]) by mx.google.com with ESMTPS id b21-20020a170902d41500b00151838059adsi8013916ple.480.2022.03.11.14.08.21 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 11 Mar 2022 14:08:21 -0800 (PST) Received-SPF: softfail (google.com: domain of transitioning linux-kernel-owner@vger.kernel.org does not designate 23.128.96.19 as permitted sender) client-ip=23.128.96.19; Authentication-Results: mx.google.com; spf=softfail (google.com: domain of transitioning linux-kernel-owner@vger.kernel.org does not designate 23.128.96.19 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=huawei.com Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by lindbergh.monkeyblade.net (Postfix) with ESMTP id 2E9B02A7AFF; Fri, 11 Mar 2022 13:21:32 -0800 (PST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1348579AbiCKMa7 (ORCPT + 99 others); Fri, 11 Mar 2022 07:30:59 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:38316 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1348568AbiCKMaw (ORCPT ); Fri, 11 Mar 2022 07:30:52 -0500 Received: from frasgout.his.huawei.com (frasgout.his.huawei.com [185.176.79.56]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 426A71C910; Fri, 11 Mar 2022 04:29:49 -0800 (PST) Received: from fraeml736-chm.china.huawei.com (unknown [172.18.147.226]) by frasgout.his.huawei.com (SkyGuard) with ESMTP id 4KFQGd4n4gz688Wb; Fri, 11 Mar 2022 20:29:13 +0800 (CST) Received: from lhreml724-chm.china.huawei.com (10.201.108.75) by fraeml736-chm.china.huawei.com (10.206.15.217) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2308.21; Fri, 11 Mar 2022 13:29:46 +0100 Received: from localhost.localdomain (10.69.192.58) by lhreml724-chm.china.huawei.com (10.201.108.75) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2308.21; Fri, 11 Mar 2022 12:29:42 +0000 From: John Garry To: , , , CC: , , , , , , , , John Garry Subject: [PATCH v2 2/4] scsi: libsas: Add sas_execute_internal_abort_dev() Date: Fri, 11 Mar 2022 20:23:50 +0800 Message-ID: <1647001432-239276-3-git-send-email-john.garry@huawei.com> X-Mailer: git-send-email 2.8.1 In-Reply-To: <1647001432-239276-1-git-send-email-john.garry@huawei.com> References: <1647001432-239276-1-git-send-email-john.garry@huawei.com> MIME-Version: 1.0 Content-Type: text/plain X-Originating-IP: [10.69.192.58] X-ClientProxiedBy: dggems705-chm.china.huawei.com (10.3.19.182) To lhreml724-chm.china.huawei.com (10.201.108.75) X-CFilter-Loop: Reflected X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00, HEADER_FROM_DIFFERENT_DOMAINS,MAILING_LIST_MULTI,RDNS_NONE, SPF_HELO_NONE,T_SCC_BODY_TEXT_LINE autolearn=no autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Add support for a "device" variant of internal abort, which will abort all pending IOs for a specific device. Signed-off-by: John Garry Tested-by: Damien Le Moal --- drivers/scsi/libsas/sas_scsi_host.c | 8 ++++++++ include/scsi/libsas.h | 8 ++++++++ 2 files changed, 16 insertions(+) diff --git a/drivers/scsi/libsas/sas_scsi_host.c b/drivers/scsi/libsas/sas_scsi_host.c index bb6baa52264d..13142ec97f1d 100644 --- a/drivers/scsi/libsas/sas_scsi_host.c +++ b/drivers/scsi/libsas/sas_scsi_host.c @@ -994,6 +994,14 @@ int sas_execute_internal_abort_single(struct domain_device *device, u16 tag, } EXPORT_SYMBOL_GPL(sas_execute_internal_abort_single); +int sas_execute_internal_abort_dev(struct domain_device *device, + unsigned int qid, void *data) +{ + return sas_execute_internal_abort(device, SAS_INTERNAL_ABORT_DEV, + SCSI_NO_TAG, qid, data); +} +EXPORT_SYMBOL_GPL(sas_execute_internal_abort_dev); + int sas_execute_tmf(struct domain_device *device, void *parameter, int para_len, int force_phy_id, struct sas_tmf_task *tmf) diff --git a/include/scsi/libsas.h b/include/scsi/libsas.h index 2d30d57916e5..71f632b2d2bd 100644 --- a/include/scsi/libsas.h +++ b/include/scsi/libsas.h @@ -560,6 +560,7 @@ struct sas_ata_task { /* LLDDs rely on these values */ enum sas_internal_abort { SAS_INTERNAL_ABORT_SINGLE = 0, + SAS_INTERNAL_ABORT_DEV = 1, }; struct sas_internal_abort_task { @@ -641,6 +642,11 @@ extern struct sas_task *sas_alloc_task(gfp_t flags); extern struct sas_task *sas_alloc_slow_task(gfp_t flags); extern void sas_free_task(struct sas_task *task); +static inline bool sas_is_internal_abort(struct sas_task *task) +{ + return task->task_proto == SAS_PROTOCOL_INTERNAL_ABORT; +} + struct sas_domain_function_template { /* The class calls these to notify the LLDD of an event. */ void (*lldd_port_formed)(struct asd_sas_phy *); @@ -697,6 +703,8 @@ extern int sas_bios_param(struct scsi_device *, struct block_device *, int sas_execute_internal_abort_single(struct domain_device *device, u16 tag, unsigned int qid, void *data); +int sas_execute_internal_abort_dev(struct domain_device *device, + unsigned int qid, void *data); extern struct scsi_transport_template * sas_domain_attach_transport(struct sas_domain_function_template *); extern struct device_attribute dev_attr_phy_event_threshold; -- 2.26.2