Received: by 2002:a25:1985:0:0:0:0:0 with SMTP id 127csp4093044ybz; Mon, 20 Apr 2020 15:38:12 -0700 (PDT) X-Google-Smtp-Source: APiQypJk9V23kW+gxsZGEWElY0ksa4RXx2MblWoEJr62Kj4TP69634JguuPjtvWAS8hlG2wBE7MX X-Received: by 2002:a17:906:b896:: with SMTP id hb22mr4790026ejb.209.1587422292300; Mon, 20 Apr 2020 15:38:12 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1587422292; cv=none; d=google.com; s=arc-20160816; b=mXm2vExlHFtvCSEksZiI0h68wXiuASqkqWOyeidkiM/0akd+jdNFfwskBxigoenJrV 8k2zOuGS8cBrLYI7dAOktU1KIiPPzX8nEZ6QXfBbvGyFwNbvI19dTYAwMoyy6Chse1q4 NaTD0GZ8KpoxI+KYY7E2zG96o4QPxZ1GjE48wesQi+PJKForyH6AJ+6oxYgRpOCSDP41 nkCPQ56M0GBeHYPcek80yZthJIbOgQ7lygVFbkehcQIVkEP1Gvkq2iYGkOIzjf01F1ic ITCLJBkN/l5LxbVSYClZlNhRv0gz+XH/yFNc21CaHQ23ln1Z05zXmAUQ/kpAiA47ZI37 8lAQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:subject:content-transfer-encoding :content-language:in-reply-to:mime-version:user-agent:date :message-id:from:references:cc:to; bh=sy/gAA2Sb8Q1KEnqV3QOldC2h0VJnEoNULGZO9UFGdw=; b=S6gVBLJzYY21flL6NKTummFIzjlMgD1CJaOMYsS9Ay+ffE9svTDoLToB+aQIsTHuvK CBFg+3LS5OdPkuONuJIokmGfbvJ5uGOOpNtlTEW7mMdboBkj98Eca3agJMW5XJeQmppH dXacPeA4ZxCCwS+rfyn2lb21O156KxHA16azPWA+ZPSwYhyW89AO0zW7oF7w6hItZu5g IWOWpPUxSD1CXit9+xtx/owOPhiTxNLBDIX/jbqCguGPB+FIcgmpPtMeFX7fGcmyPsru /VTNC+3AW6+MIG7qwkmxieLLaQCmjLMKuwuM185i+KVBtQ5b7DFa6PuCCHg3tsiw3CW0 uYig== ARC-Authentication-Results: i=1; mx.google.com; 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 Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id cx18si467202edb.73.2020.04.20.15.37.49; Mon, 20 Apr 2020 15:38:12 -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; 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 Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728219AbgDTWe0 (ORCPT + 99 others); Mon, 20 Apr 2020 18:34:26 -0400 Received: from ale.deltatee.com ([207.54.116.67]:47076 "EHLO ale.deltatee.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726439AbgDTWe0 (ORCPT ); Mon, 20 Apr 2020 18:34:26 -0400 Received: from guinness.priv.deltatee.com ([172.16.1.162]) by ale.deltatee.com with esmtp (Exim 4.92) (envelope-from ) id 1jQezX-00056i-9U; Mon, 20 Apr 2020 16:34:16 -0600 To: Keith Busch Cc: linux-kernel@vger.kernel.org, linux-nvme@lists.infradead.org, Christoph Hellwig , Sagi Grimberg , Jens Axboe , Chaitanya Kulkarni , Max Gurtovoy , Stephen Bates References: <20200420164700.21620-1-logang@deltatee.com> <20200420164700.21620-2-logang@deltatee.com> <20200420222646.GA11115@redsun51.ssa.fujisawa.hgst.com> From: Logan Gunthorpe Message-ID: Date: Mon, 20 Apr 2020 16:34:14 -0600 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Thunderbird/60.9.0 MIME-Version: 1.0 In-Reply-To: <20200420222646.GA11115@redsun51.ssa.fujisawa.hgst.com> Content-Type: text/plain; charset=utf-8 Content-Language: en-CA Content-Transfer-Encoding: 7bit X-SA-Exim-Connect-IP: 172.16.1.162 X-SA-Exim-Rcpt-To: sbates@raithlin.com, maxg@mellanox.com, Chaitanya.Kulkarni@wdc.com, axboe@fb.com, sagi@grimberg.me, hch@lst.de, linux-nvme@lists.infradead.org, linux-kernel@vger.kernel.org, kbusch@kernel.org X-SA-Exim-Mail-From: logang@deltatee.com X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on ale.deltatee.com X-Spam-Level: X-Spam-Status: No, score=-8.9 required=5.0 tests=ALL_TRUSTED,BAYES_00, GREYLIST_ISWHITE autolearn=ham autolearn_force=no version=3.4.2 Subject: Re: [PATCH v12 1/9] nvme-core: Clear any SGL flags in passthru commands X-SA-Exim-Version: 4.2.1 (built Wed, 08 May 2019 21:11:16 +0000) X-SA-Exim-Scanned: Yes (on ale.deltatee.com) Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On 2020-04-20 4:26 p.m., Keith Busch wrote: > On Mon, Apr 20, 2020 at 10:46:52AM -0600, Logan Gunthorpe wrote: >> The host driver should decide whether to use SGLs or PRPs and they >> currently assume the flags are cleared after the call to >> nvme_setup_cmd(). However, passed-through commands may erroneously >> set these bits; so clear them for all cases. >> >> Signed-off-by: Logan Gunthorpe >> Reviewed-by: Sagi Grimberg >> --- >> drivers/nvme/host/core.c | 2 ++ >> 1 file changed, 2 insertions(+) >> >> diff --git a/drivers/nvme/host/core.c b/drivers/nvme/host/core.c >> index 91c1bd659947..f5283b300e87 100644 >> --- a/drivers/nvme/host/core.c >> +++ b/drivers/nvme/host/core.c >> @@ -756,6 +756,8 @@ blk_status_t nvme_setup_cmd(struct nvme_ns *ns, struct request *req, >> case REQ_OP_DRV_IN: >> case REQ_OP_DRV_OUT: >> memcpy(cmd, nvme_req(req)->cmd, sizeof(*cmd)); >> + /* passthru commands should let the driver set the SGL flags */ >> + cmd->common.flags &= ~NVME_CMD_SGL_ALL; >> break; > > Is this really necessary? The passthrough handler currently rejects user > commands that set command flags: Yes, the flags coming from the passthru target's host (in subsequent patches in this series) may have these set and we need to clear them somewhere. The passthru code submits the requests directly using blk_execute_rq_nowait() and thus the check in nvme_user_cmd() doesn't apply. If I recall correctly, we had originally cleared the flags in the target code, but Christoph had suggested it should be done more generally in nvme_setup_cmd(). Logan