From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Subject: [PATCH v5 10/21] pmem: Dynamically allocate partition numbers From: Dan Williams Date: Mon, 01 Jun 2015 20:15:03 -0400 Message-ID: <20150602001503.4506.10472.stgit@dwillia2-desk3.amr.corp.intel.com> In-Reply-To: <20150602001134.4506.45867.stgit@dwillia2-desk3.amr.corp.intel.com> References: <20150602001134.4506.45867.stgit@dwillia2-desk3.amr.corp.intel.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: 8bit Sender: linux-kernel-owner@vger.kernel.org To: linux-nvdimm@lists.01.org Cc: axboe@kernel.dk, sfr@canb.auug.org.au, rafael@kernel.org, neilb@suse.de, gregkh@linuxfoundation.org, linux-kernel@vger.kernel.org, mingo@kernel.org, linux-acpi@vger.kernel.org, jmoyer@redhat.com, linux-api@vger.kernel.org, akpm@linux-foundation.org, hch@lst.de List-ID: From: Ross Zwisler Dynamically allocate minor numbers for partitions instead of statically preallocating them. It gives us a simpler minors scheme, and makes it so we get a consistent major when moving past partition 16. Here's what happens with the current code: pmem0 249:0 0 63.5G 0 rom ├─pmem0p1 249:1 0 1G 0 part ├─pmem0p2 249:2 0 1G 0 part ├─pmem0p3 249:3 0 1G 0 part ├─pmem0p4 249:4 0 1G 0 part ├─pmem0p5 249:5 0 1G 0 part ├─pmem0p6 249:6 0 1G 0 part ├─pmem0p7 249:7 0 1G 0 part ├─pmem0p8 249:8 0 1G 0 part ├─pmem0p9 249:9 0 1G 0 part ├─pmem0p10 249:10 0 1G 0 part ├─pmem0p11 249:11 0 1G 0 part ├─pmem0p12 249:12 0 1G 0 part ├─pmem0p13 249:13 0 1G 0 part ├─pmem0p14 249:14 0 1G 0 part ├─pmem0p15 249:15 0 1G 0 part ├─pmem0p16 259:0 0 1G 0 part ├─pmem0p17 259:1 0 1G 0 part └─pmem0p18 259:2 0 1G 0 part Signed-off-by: Ross Zwisler Signed-off-by: Dan Williams --- drivers/nvdimm/pmem.c | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/drivers/nvdimm/pmem.c b/drivers/nvdimm/pmem.c index cf5d53eda9e5..0842d27ffc8d 100644 --- a/drivers/nvdimm/pmem.c +++ b/drivers/nvdimm/pmem.c @@ -26,8 +26,6 @@ #include #include "nd.h" -#define PMEM_MINORS 16 - struct pmem_device { struct request_queue *pmem_queue; struct gendisk *pmem_disk; @@ -156,12 +154,12 @@ static struct pmem_device *pmem_alloc(struct device *dev, struct resource *res, blk_queue_max_hw_sectors(pmem->pmem_queue, 1024); blk_queue_bounce_limit(pmem->pmem_queue, BLK_BOUNCE_ANY); - disk = alloc_disk(PMEM_MINORS); + disk = alloc_disk(0); if (!disk) goto out_free_queue; disk->major = pmem_major; - disk->first_minor = PMEM_MINORS * id; + disk->first_minor = 0; disk->fops = &pmem_fops; disk->private_data = pmem; disk->queue = pmem->pmem_queue; From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1754958AbbFBASF (ORCPT ); Mon, 1 Jun 2015 20:18:05 -0400 Received: from mga14.intel.com ([192.55.52.115]:12565 "EHLO mga14.intel.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1754891AbbFBARz (ORCPT ); Mon, 1 Jun 2015 20:17:55 -0400 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.13,536,1427785200"; d="scan'208";a="739069094" Subject: [PATCH v5 10/21] pmem: Dynamically allocate partition numbers From: Dan Williams To: linux-nvdimm@ml01.01.org Cc: axboe@kernel.dk, sfr@canb.auug.org.au, rafael@kernel.org, neilb@suse.de, gregkh@linuxfoundation.org, linux-kernel@vger.kernel.org, mingo@kernel.org, linux-acpi@vger.kernel.org, jmoyer@redhat.com, linux-api@vger.kernel.org, akpm@linux-foundation.org, hch@lst.de Date: Mon, 01 Jun 2015 20:15:03 -0400 Message-ID: <20150602001503.4506.10472.stgit@dwillia2-desk3.amr.corp.intel.com> In-Reply-To: <20150602001134.4506.45867.stgit@dwillia2-desk3.amr.corp.intel.com> References: <20150602001134.4506.45867.stgit@dwillia2-desk3.amr.corp.intel.com> User-Agent: StGit/0.17.1-8-g92dd MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: 8bit Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Ross Zwisler Dynamically allocate minor numbers for partitions instead of statically preallocating them. It gives us a simpler minors scheme, and makes it so we get a consistent major when moving past partition 16. Here's what happens with the current code: pmem0 249:0 0 63.5G 0 rom ├─pmem0p1 249:1 0 1G 0 part ├─pmem0p2 249:2 0 1G 0 part ├─pmem0p3 249:3 0 1G 0 part ├─pmem0p4 249:4 0 1G 0 part ├─pmem0p5 249:5 0 1G 0 part ├─pmem0p6 249:6 0 1G 0 part ├─pmem0p7 249:7 0 1G 0 part ├─pmem0p8 249:8 0 1G 0 part ├─pmem0p9 249:9 0 1G 0 part ├─pmem0p10 249:10 0 1G 0 part ├─pmem0p11 249:11 0 1G 0 part ├─pmem0p12 249:12 0 1G 0 part ├─pmem0p13 249:13 0 1G 0 part ├─pmem0p14 249:14 0 1G 0 part ├─pmem0p15 249:15 0 1G 0 part ├─pmem0p16 259:0 0 1G 0 part ├─pmem0p17 259:1 0 1G 0 part └─pmem0p18 259:2 0 1G 0 part Signed-off-by: Ross Zwisler Signed-off-by: Dan Williams --- drivers/nvdimm/pmem.c | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/drivers/nvdimm/pmem.c b/drivers/nvdimm/pmem.c index cf5d53eda9e5..0842d27ffc8d 100644 --- a/drivers/nvdimm/pmem.c +++ b/drivers/nvdimm/pmem.c @@ -26,8 +26,6 @@ #include #include "nd.h" -#define PMEM_MINORS 16 - struct pmem_device { struct request_queue *pmem_queue; struct gendisk *pmem_disk; @@ -156,12 +154,12 @@ static struct pmem_device *pmem_alloc(struct device *dev, struct resource *res, blk_queue_max_hw_sectors(pmem->pmem_queue, 1024); blk_queue_bounce_limit(pmem->pmem_queue, BLK_BOUNCE_ANY); - disk = alloc_disk(PMEM_MINORS); + disk = alloc_disk(0); if (!disk) goto out_free_queue; disk->major = pmem_major; - disk->first_minor = PMEM_MINORS * id; + disk->first_minor = 0; disk->fops = &pmem_fops; disk->private_data = pmem; disk->queue = pmem->pmem_queue;