Received: by 2002:a25:1985:0:0:0:0:0 with SMTP id 127csp4087142ybz; Mon, 20 Apr 2020 15:30:34 -0700 (PDT) X-Google-Smtp-Source: APiQypIB8Js/63d7wUAaomHfUCB2Av4VlYZfKYw94Rs9HV7lxE/l9BQBJz2tuIiG2YbFWrzxpLg2 X-Received: by 2002:a17:907:43c2:: with SMTP id i2mr18481246ejs.185.1587421834763; Mon, 20 Apr 2020 15:30:34 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1587421834; cv=none; d=google.com; s=arc-20160816; b=c3A5qxNBkdKd/VgIJy46y85acZlFU2ipWRRBJNRSix7n9TjtGsgfT/Pm0ElIuSebPA +HI4LeiV8iRlb8YwDDdaAC392KpxBLoML2CZP8q4TCDZmx+oW7L1LpFc1zL+62NmYV7L G/qnq/caJEzuXk3va/XhDJgo6+UPpSPP/JiUh90kOs7k0Zi1un0+G0yNkQ6dvNTFXPtq FUsVJ6b2C1O8E79fOXACMSqTpo/sREQ/dwwih6nL8eNcVuAXZWAhF5RImqPc2ixQHkwr HqZ/g7HnwXM20ChQ/MMTKLEg4AWNOubwile1DhKQpqn+cCkRCC3vVN29j/5x+ab7l8nz oD0Q== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:user-agent:in-reply-to :content-disposition:mime-version:references:message-id:subject:cc :to:from:date:dkim-signature; bh=NU0bsMhJNPJqWDzDxVGqou2UNKcsq6/e7HP+A/0lTXs=; b=OwPTxuWRMZ9nyGlgo/NLm9ze1R9EJ+HmbGzL4/4470pW79fxvA73Xa33+5R0eyKDT2 RgXyVklKetMLIBtUOsj/cVdCcyDWWbkmPecUgY7iIAbz1pYQdTJVG257pfY0DJHRDxeM gkQGZAgNdMnrh7izXq6rEBpU2xZOtOed45+dQXp87SHJ6TBPaHZ0e4qQ1z5f2G541d6E mwXnbJlNafsR5StvcsQUZMklgzLbwBGdXPkSXSA4pXtwXim0ednKJZpmfS/YTSAV1Cpz 8bj7RFRXQKJJQsML1nvKrQ+yxWKQqNA8fu/R/kiCilRYDTVnaw0A5kXzloDJJFQHUxu6 JIrA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=s8rq4igM; 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=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id a11si561016edn.170.2020.04.20.15.30.12; Mon, 20 Apr 2020 15:30:34 -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=pass header.i=@kernel.org header.s=default header.b=s8rq4igM; 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=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727928AbgDTW0z (ORCPT + 99 others); Mon, 20 Apr 2020 18:26:55 -0400 Received: from mail.kernel.org ([198.145.29.99]:47000 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726181AbgDTW0z (ORCPT ); Mon, 20 Apr 2020 18:26:55 -0400 Received: from redsun51.ssa.fujisawa.hgst.com (unknown [199.255.47.7]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPSA id 3ABAA2078C; Mon, 20 Apr 2020 22:26:53 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1587421614; bh=EWVzh88DNd4xeWlsexuidhZpIDlePK+hTSyEl1GX/8o=; h=Date:From:To:Cc:Subject:References:In-Reply-To:From; b=s8rq4igMfXXijc389ELBl5dQwloilfDDQMohpJXxaRWtdIKgyDc07+5kh8co+PUup r+6Z54NwOW5xZFGmhIX/9UUU37s4Z7yGbgpCmN8isJapDDS3+dQdMBqGLYl1Dfqq65 pk9gQ+cFF7aXKSpcYIsxq7I56fqA6ULGH895zwsI= Date: Tue, 21 Apr 2020 07:26:46 +0900 From: Keith Busch To: Logan Gunthorpe Cc: linux-kernel@vger.kernel.org, linux-nvme@lists.infradead.org, Christoph Hellwig , Sagi Grimberg , Jens Axboe , Chaitanya Kulkarni , Max Gurtovoy , Stephen Bates Subject: Re: [PATCH v12 1/9] nvme-core: Clear any SGL flags in passthru commands Message-ID: <20200420222646.GA11115@redsun51.ssa.fujisawa.hgst.com> References: <20200420164700.21620-1-logang@deltatee.com> <20200420164700.21620-2-logang@deltatee.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20200420164700.21620-2-logang@deltatee.com> User-Agent: Mutt/1.12.1 (2019-06-15) Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org 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: static int nvme_user_cmd(struct nvme_ctrl *ctrl, struct nvme_ns *ns, struct nvme_passthru_cmd __user *ucmd) { ... if (cmd.flags) return -EINVAL;