From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-6.8 required=3.0 tests=DKIMWL_WL_HIGH,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH, MAILING_LIST_MULTI,SIGNED_OFF_BY,SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id D670AC7618B for ; Fri, 26 Jul 2019 09:50:05 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id A5B6E22CED for ; Fri, 26 Jul 2019 09:50:05 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (1024-bit key) header.d=broadcom.com header.i=@broadcom.com header.b="cp4F4YKD" Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726431AbfGZJuE (ORCPT ); Fri, 26 Jul 2019 05:50:04 -0400 Received: from mail-pf1-f196.google.com ([209.85.210.196]:36336 "EHLO mail-pf1-f196.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1725842AbfGZJuD (ORCPT ); Fri, 26 Jul 2019 05:50:03 -0400 Received: by mail-pf1-f196.google.com with SMTP id r7so24265342pfl.3 for ; Fri, 26 Jul 2019 02:50:03 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=broadcom.com; s=google; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=YLdfLrMSiT4KXAf/cjnjVZ2fM60YfkutQSVFLbjZHOQ=; b=cp4F4YKDtn8FmO7tNNvB1Zl3+soGtcVxxS1B3gZMO5dm5UHaIEj4ZvwJ49y/fcp7aF mYyqoW5O0g8Os9efZeigNDVGy3qdJDkXsKnCAGlnuMtVgVGJ6Jp5cDHrjpz8Id6GpWCS 3ZdVi9q/2s4zkI6SjQEULEWmkQOnWdR5ZyDSU= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=YLdfLrMSiT4KXAf/cjnjVZ2fM60YfkutQSVFLbjZHOQ=; b=gttx7RImmCYi8+KOg58zIbHnTubVaDcIRDCTfsfKblu0+sp6FFOEPeFZ6gkk2UElD5 gxZatlpMwpuHuFanUTlOsgXDVs0nU6gj6Dpco75mZwy5g+um2VO7PkK5oQFbnbhHGn8r mGJRwXe+7J4Z43tjhAHsVRNQdcQq2+gUB7ajRU79GYC/DwFMJKZmu2gmigxqVP2vDnqd badu4vVy0uechPy2+RkK6zc+IljbZHfUq0lRbYVHMN0tuxlxC/aN83PtC/s78KcHGgXx TJYl3tPpjzG29KLRxr2L7JbByt92Sd3q2gLs/zT1OnPMltSKWdCFar1HgyVG6Y/0XA8P VoKA== X-Gm-Message-State: APjAAAWYSSBKoF6AeCTyL/yHipnwcDv3+TcPhYSDKBawdgOyoRxmhHUr viCNH0w/meme5ClYNaf2r/MYZncM4y87xaSEz+TAvw== X-Google-Smtp-Source: APXvYqw1c2xASRmY1awQwTYYEA2qAtfGkQi+5W6p4QqQ6+VOVIAsQpW0Ti3ZVLpjihaeVcD5W4AeV12h6Zw0qkafmD0= X-Received: by 2002:a63:eb06:: with SMTP id t6mr85181196pgh.107.1564134601904; Fri, 26 Jul 2019 02:50:01 -0700 (PDT) MIME-Version: 1.0 References: <20190714034415epcms2p25f9787cb71993a30f58524d2f355b543@epcms2p2> In-Reply-To: <20190714034415epcms2p25f9787cb71993a30f58524d2f355b543@epcms2p2> From: Sreekanth Reddy Date: Fri, 26 Jul 2019 15:19:50 +0530 Message-ID: Subject: Re: [PATCH V2] mpt3sas: support target smid for [abort|query] task To: minwoo.im@samsung.com Cc: "sathya.prakash@broadcom.com" , "suganath-prabu.subramani@broadcom.com" , "jejb@linux.ibm.com" , "martin.petersen@oracle.com" , "MPT-FusionLinux.pdl@broadcom.com" , "linux-kernel@vger.kernel.org" , "linux-scsi@vger.kernel.org" , "linux-block@vger.kernel.org" , Euihyeok Kwon , Sarah Cho , Sanggwan Lee , Gyeongmin Nam , Sungjun Park , "minwoo.im.dev@gmail.com" Content-Type: text/plain; charset="UTF-8" Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Sun, Jul 14, 2019 at 9:14 AM Minwoo Im wrote: > > We can request task management IOCTL command(MPI2_FUNCTION_SCSI_TASK_MGMT) > to /dev/mpt3ctl. If the given task_type is either abort task or query > task, it may need a field named "Initiator Port Transfer Tag to Manage" > in the IU. > > Current code does not support to check target IPTT tag from the > tm_request. This patch introduces to check TaskMID given from the > userspace as a target tag. We have a rule of relationship between > (struct request *req->tag) and smid in mpt3sas_base.c: > > 3318 u16 > 3319 mpt3sas_base_get_smid_scsiio(struct MPT3SAS_ADAPTER *ioc, u8 cb_idx, > 3320 struct scsi_cmnd *scmd) > 3321 { > 3322 struct scsiio_tracker *request = scsi_cmd_priv(scmd); > 3323 unsigned int tag = scmd->request->tag; > 3324 u16 smid; > 3325 > 3326 smid = tag + 1; > > So if we want to abort a request tagged #X, then we can pass (X + 1) to > this IOCTL handler. Otherwise, user space just can pass 0 TaskMID to > abort the first outstanding smid which is legacy behaviour. > > Cc: Sreekanth Reddy > Cc: Suganath Prabu Subramani > Cc: Sathya Prakash > Cc: James E.J. Bottomley > Cc: Martin K. Petersen > Cc: MPT-FusionLinux.pdl@broadcom.com > Signed-off-by: Minwoo Im Acked-by: Sreekanth Reddy > --- > drivers/scsi/mpt3sas/mpt3sas_ctl.c | 12 ++++++++++-- > 1 file changed, 10 insertions(+), 2 deletions(-) > > diff --git a/drivers/scsi/mpt3sas/mpt3sas_ctl.c b/drivers/scsi/mpt3sas/mpt3sas_ctl.c > index b2bb47c14d35..f6b8fd90610a 100644 > --- a/drivers/scsi/mpt3sas/mpt3sas_ctl.c > +++ b/drivers/scsi/mpt3sas/mpt3sas_ctl.c > @@ -596,8 +596,16 @@ _ctl_set_task_mid(struct MPT3SAS_ADAPTER *ioc, struct mpt3_ioctl_command *karg, > if (priv_data->sas_target->handle != handle) > continue; > st = scsi_cmd_priv(scmd); > - tm_request->TaskMID = cpu_to_le16(st->smid); > - found = 1; > + > + /* > + * If the given TaskMID from the user space is zero, then the > + * first outstanding smid will be picked up. Otherwise, > + * targeted smid will be the one. > + */ > + if (!tm_request->TaskMID || tm_request->TaskMID == st->smid) { > + tm_request->TaskMID = cpu_to_le16(st->smid); > + found = 1; > + } > } > > if (!found) { > -- > 2.16.1 >