From patchwork Wed Apr 22 14:26:55 2015 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?q?Matias_Bj=C3=B8rling?= X-Patchwork-Id: 6256551 Return-Path: X-Original-To: patchwork-linux-fsdevel@patchwork.kernel.org Delivered-To: patchwork-parsemail@patchwork2.web.kernel.org Received: from mail.kernel.org (mail.kernel.org [198.145.29.136]) by patchwork2.web.kernel.org (Postfix) with ESMTP id 0FF4DBF4A6 for ; Wed, 22 Apr 2015 14:29:07 +0000 (UTC) Received: from mail.kernel.org (localhost [127.0.0.1]) by mail.kernel.org (Postfix) with ESMTP id 33D5820303 for ; Wed, 22 Apr 2015 14:29:06 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id 3D16B202F8 for ; Wed, 22 Apr 2015 14:29:05 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S933801AbbDVO2C (ORCPT ); Wed, 22 Apr 2015 10:28:02 -0400 Received: from mail-lb0-f178.google.com ([209.85.217.178]:34829 "EHLO mail-lb0-f178.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S932443AbbDVO1V (ORCPT ); Wed, 22 Apr 2015 10:27:21 -0400 Received: by lbbuc2 with SMTP id uc2so181502189lbb.2 for ; Wed, 22 Apr 2015 07:27:19 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bjorling.me; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-type:content-transfer-encoding; bh=hLV8l69dmWzpsoESuXssYKJsEeJZPfdTP/ZUDF3dqeI=; b=t0PCU30nMgeTUcTYMqRnQv+Gg7t4lDpWBWT0IScUGPoZdWNwIrmcRgKIeihrEl6R7r Fw2Ti9/H7pDMBambQ5VAwAe9F6YLYtqT902FFdtfwEYDwc3AtpC+CQPQUoMGoXBPNJ/L BhgKfu+pjGQ1bvGYIIVST+yf8Eq+ENfed03+Q= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-type:content-transfer-encoding; bh=hLV8l69dmWzpsoESuXssYKJsEeJZPfdTP/ZUDF3dqeI=; b=fTOdKLFvuZH5hsU+frOX3nRrwXj5FKJwB7638dLM1tMT7tXCR2NIRd9LuRIp0lC0hB MgPTpjQf7dBxicQeFnrlHIr5sjSoaTWjyj0VQBRnzAXo8RZnCbm40ay73E7wmhHQelxZ YR5J/2zx9mVngyLE/2D0exn4n83faOf0tmNf21UeaGvvhnNdKHKGQK2ZXFoK2WtXM99g akHJ1mgcDDxtL3K5hegZwL3zzLSr4lFfQaPWemcS0fXOkaQ7AgkFc2T9kcqcAHiEz2EE IilIT4oJMnJ1qXYmPuN+JEC80z8WiQnnbCKf7ijGW/Xf3iVn5dAUNY0Y7+E3Qjy4fhSL EWaQ== X-Gm-Message-State: ALoCoQlqf+xC88R3DYH2bioYAafvFcNvkDUc2iOCn954NmZG4HbcLEY9UZ8qQETiX1YzaJHugSH1 X-Received: by 10.152.2.105 with SMTP id 9mr24521207lat.16.1429712839831; Wed, 22 Apr 2015 07:27:19 -0700 (PDT) Received: from MacroNinja.itu.dk ([130.226.133.111]) by mx.google.com with ESMTPSA id xx2sm1105262lbb.13.2015.04.22.07.27.18 (version=TLSv1.2 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Wed, 22 Apr 2015 07:27:18 -0700 (PDT) From: =?UTF-8?q?Matias=20Bj=C3=B8rling?= To: hch@infradead.org, axboe@fb.com, linux-fsdevel@vger.kernel.org, linux-kernel@vger.kernel.org, linux-nvme@lists.infradead.org Cc: javier@paletta.io, keith.busch@intel.com, =?UTF-8?q?Matias=20Bj=C3=B8rling?= Subject: [PATCH v3 6/7] nvme: rename and expose nvme_alloc_iod Date: Wed, 22 Apr 2015 16:26:55 +0200 Message-Id: <1429712816-10336-7-git-send-email-m@bjorling.me> X-Mailer: git-send-email 1.9.1 In-Reply-To: <1429712816-10336-1-git-send-email-m@bjorling.me> References: <1429712816-10336-1-git-send-email-m@bjorling.me> MIME-Version: 1.0 Sender: linux-fsdevel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-fsdevel@vger.kernel.org X-Spam-Status: No, score=-6.8 required=5.0 tests=BAYES_00,DKIM_SIGNED, RCVD_IN_DNSWL_HI,T_DKIM_INVALID,T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=unavailable version=3.3.1 X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on mail.kernel.org X-Virus-Scanned: ClamAV using ClamSMTP From: Javier González Users of the kernel interface of the NVMe driver are limited to sending custom commands without iod's. By renaming __nvme_alloc_iod to nvme_alloc_phys_seg_iod and expose it through the header file, an outside translation layer such as scsi or lightnvm can integrate commands with iod structure. Signed-off-by: Matias Bjørling --- drivers/block/nvme-core.c | 9 ++++----- include/linux/nvme.h | 2 ++ 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/drivers/block/nvme-core.c b/drivers/block/nvme-core.c index e23be20..8459fa8 100644 --- a/drivers/block/nvme-core.c +++ b/drivers/block/nvme-core.c @@ -413,9 +413,8 @@ static inline void iod_init(struct nvme_iod *iod, unsigned nbytes, iod->nents = 0; } -static struct nvme_iod * -__nvme_alloc_iod(unsigned nseg, unsigned bytes, struct nvme_dev *dev, - unsigned long priv, gfp_t gfp) +struct nvme_iod *nvme_alloc_phys_seg_iod(unsigned nseg, unsigned bytes, + struct nvme_dev *dev, unsigned long priv, gfp_t gfp) { struct nvme_iod *iod = kmalloc(sizeof(struct nvme_iod) + sizeof(__le64 *) * nvme_npages(bytes, dev) + @@ -446,7 +445,7 @@ static struct nvme_iod *nvme_alloc_iod(struct request *rq, struct nvme_dev *dev, return iod; } - return __nvme_alloc_iod(rq->nr_phys_segments, size, dev, + return nvme_alloc_phys_seg_iod(rq->nr_phys_segments, size, dev, (unsigned long) rq, gfp); } @@ -1699,7 +1698,7 @@ struct nvme_iod *nvme_map_user_pages(struct nvme_dev *dev, int write, } err = -ENOMEM; - iod = __nvme_alloc_iod(count, length, dev, 0, GFP_KERNEL); + iod = nvme_alloc_phys_seg_iod(count, length, dev, 0, GFP_KERNEL); if (!iod) goto put_pages; diff --git a/include/linux/nvme.h b/include/linux/nvme.h index 0adad4a..f67adb6 100644 --- a/include/linux/nvme.h +++ b/include/linux/nvme.h @@ -168,6 +168,8 @@ int nvme_get_features(struct nvme_dev *dev, unsigned fid, unsigned nsid, dma_addr_t dma_addr, u32 *result); int nvme_set_features(struct nvme_dev *dev, unsigned fid, unsigned dword11, dma_addr_t dma_addr, u32 *result); +struct nvme_iod *nvme_alloc_phys_seg_iod(unsigned nseg, unsigned bytes, + struct nvme_dev *dev, unsigned long priv, gfp_t gfp); struct sg_io_hdr;