All of lore.kernel.org
 help / color / mirror / Atom feed
From: Christoph Hellwig <hch@lst.de>
To: Mark Brown <broonie@kernel.org>
Cc: Jens Axboe <axboe@kernel.dk>, Keith Busch <keith.busch@intel.com>,
	Christoph Hellwig <hch@lst.de>,
	linux-next@vger.kernel.org, linux-kernel@vger.kernel.org,
	linux-block@vger.kernel.org
Subject: Re: linux-next: build failure after merge of the block tree
Date: Wed, 2 Dec 2015 17:45:27 +0100	[thread overview]
Message-ID: <20151202164527.GA31048@lst.de> (raw)
In-Reply-To: <20151202161936.22b23668cf9dea9872b5079b@kernel.org>

Looks like I didn't test with CONFIG_NVM enabled, and neither did
the build bot.

Most of this is really weird crazy shit in the lighnvm support, though.

Struct nvme_ns is a structure for the NVM I/O command set, and it has
no business poking into it.  Second this commit:

commit 47b3115ae7b799be8b77b0f024215ad4f68d6460
Author: Wenwei Tao <ww.tao0320@gmail.com>
Date:   Fri Nov 20 13:47:55 2015 +0100

    nvme: lightnvm: use admin queues for admin cmds

Does even more crazy stuff.  If a function gets a request_queue parameter
passed it'd better use that and not look for another one.

Quick patch below, but this code will need some more attention:

diff --git a/drivers/nvme/host/lightnvm.c b/drivers/nvme/host/lightnvm.c
index d5622f9..09cf0b9 100644
--- a/drivers/nvme/host/lightnvm.c
+++ b/drivers/nvme/host/lightnvm.c
@@ -276,7 +276,6 @@ static int init_grps(struct nvm_id *nvm_id, struct nvme_nvm_id *nvme_nvm_id)
 static int nvme_nvm_identity(struct request_queue *q, struct nvm_id *nvm_id)
 {
 	struct nvme_ns *ns = q->queuedata;
-	struct nvme_dev *dev = ns->dev;
 	struct nvme_nvm_id *nvme_nvm_id;
 	struct nvme_nvm_command c = {};
 	int ret;
@@ -289,7 +288,7 @@ static int nvme_nvm_identity(struct request_queue *q, struct nvm_id *nvm_id)
 	if (!nvme_nvm_id)
 		return -ENOMEM;
 
-	ret = nvme_submit_sync_cmd(dev->admin_q, (struct nvme_command *)&c,
+	ret = nvme_submit_sync_cmd(ns->ctrl->admin_q, (struct nvme_command *)&c,
 				nvme_nvm_id, sizeof(struct nvme_nvm_id));
 	if (ret) {
 		ret = -EIO;
@@ -314,9 +313,8 @@ static int nvme_nvm_get_l2p_tbl(struct request_queue *q, u64 slba, u32 nlb,
 				nvm_l2p_update_fn *update_l2p, void *priv)
 {
 	struct nvme_ns *ns = q->queuedata;
-	struct nvme_dev *dev = ns->dev;
 	struct nvme_nvm_command c = {};
-	u32 len = queue_max_hw_sectors(dev->admin_q) << 9;
+	u32 len = queue_max_hw_sectors(ns->ctrl->admin_q) << 9;
 	u32 nlb_pr_rq = len / sizeof(u64);
 	u64 cmd_slba = slba;
 	void *entries;
@@ -334,10 +332,10 @@ static int nvme_nvm_get_l2p_tbl(struct request_queue *q, u64 slba, u32 nlb,
 		c.l2p.slba = cpu_to_le64(cmd_slba);
 		c.l2p.nlb = cpu_to_le32(cmd_nlb);
 
-		ret = nvme_submit_sync_cmd(dev->admin_q,
+		ret = nvme_submit_sync_cmd(ns->ctrl->admin_q,
 				(struct nvme_command *)&c, entries, len);
 		if (ret) {
-			dev_err(dev->dev, "L2P table transfer failed (%d)\n",
+			dev_err(ns->ctrl->dev, "L2P table transfer failed (%d)\n",
 									ret);
 			ret = -EIO;
 			goto out;
@@ -362,7 +360,7 @@ static int nvme_nvm_get_bb_tbl(struct request_queue *q, struct ppa_addr ppa,
 				void *priv)
 {
 	struct nvme_ns *ns = q->queuedata;
-	struct nvme_dev *dev = ns->dev;
+	struct nvme_ctrl *ctrl = ns->ctrl;
 	struct nvme_nvm_command c = {};
 	struct nvme_nvm_bb_tbl *bb_tbl;
 	int tblsz = sizeof(struct nvme_nvm_bb_tbl) + nr_blocks;
@@ -376,30 +374,30 @@ static int nvme_nvm_get_bb_tbl(struct request_queue *q, struct ppa_addr ppa,
 	if (!bb_tbl)
 		return -ENOMEM;
 
-	ret = nvme_submit_sync_cmd(dev->admin_q, (struct nvme_command *)&c,
+	ret = nvme_submit_sync_cmd(ctrl->admin_q, (struct nvme_command *)&c,
 								bb_tbl, tblsz);
 	if (ret) {
-		dev_err(dev->dev, "get bad block table failed (%d)\n", ret);
+		dev_err(ctrl->dev, "get bad block table failed (%d)\n", ret);
 		ret = -EIO;
 		goto out;
 	}
 
 	if (bb_tbl->tblid[0] != 'B' || bb_tbl->tblid[1] != 'B' ||
 		bb_tbl->tblid[2] != 'L' || bb_tbl->tblid[3] != 'T') {
-		dev_err(dev->dev, "bbt format mismatch\n");
+		dev_err(ctrl->dev, "bbt format mismatch\n");
 		ret = -EINVAL;
 		goto out;
 	}
 
 	if (le16_to_cpu(bb_tbl->verid) != 1) {
 		ret = -EINVAL;
-		dev_err(dev->dev, "bbt version not supported\n");
+		dev_err(ctrl->dev, "bbt version not supported\n");
 		goto out;
 	}
 
 	if (le32_to_cpu(bb_tbl->tblks) != nr_blocks) {
 		ret = -EINVAL;
-		dev_err(dev->dev, "bbt unsuspected blocks returned (%u!=%u)",
+		dev_err(ctrl->dev, "bbt unsuspected blocks returned (%u!=%u)",
 					le32_to_cpu(bb_tbl->tblks), nr_blocks);
 		goto out;
 	}
@@ -419,7 +417,6 @@ static int nvme_nvm_set_bb_tbl(struct request_queue *q, struct nvm_rq *rqd,
 								int type)
 {
 	struct nvme_ns *ns = q->queuedata;
-	struct nvme_dev *dev = ns->dev;
 	struct nvme_nvm_command c = {};
 	int ret = 0;
 
@@ -429,10 +426,10 @@ static int nvme_nvm_set_bb_tbl(struct request_queue *q, struct nvm_rq *rqd,
 	c.set_bb.nlb = cpu_to_le16(rqd->nr_pages - 1);
 	c.set_bb.value = type;
 
-	ret = nvme_submit_sync_cmd(dev->admin_q, (struct nvme_command *)&c,
+	ret = nvme_submit_sync_cmd(ns->ctrl->admin_q, (struct nvme_command *)&c,
 								NULL, 0);
 	if (ret)
-		dev_err(dev->dev, "set bad block table failed (%d)\n", ret);
+		dev_err(ns->ctrl->dev, "set bad block table failed (%d)\n", ret);
 	return ret;
 }
 
@@ -518,9 +515,8 @@ static int nvme_nvm_erase_block(struct request_queue *q, struct nvm_rq *rqd)
 static void *nvme_nvm_create_dma_pool(struct request_queue *q, char *name)
 {
 	struct nvme_ns *ns = q->queuedata;
-	struct nvme_dev *dev = ns->dev;
 
-	return dma_pool_create(name, dev->dev, PAGE_SIZE, PAGE_SIZE, 0);
+	return dma_pool_create(name, ns->ctrl->dev, PAGE_SIZE, PAGE_SIZE, 0);
 }
 
 static void nvme_nvm_destroy_dma_pool(void *pool)
@@ -573,8 +569,9 @@ void nvme_nvm_unregister(struct request_queue *q, char *disk_name)
 
 int nvme_nvm_ns_supported(struct nvme_ns *ns, struct nvme_id_ns *id)
 {
-	struct nvme_dev *dev = ns->dev;
-	struct pci_dev *pdev = to_pci_dev(dev->dev);
+	struct nvme_ctrl *ctrl = ns->ctrl;
+	/* XXX: this is poking into PCI structures from generic code! */
+	struct pci_dev *pdev = to_pci_dev(ctrl->dev);
 
 	/* QEMU NVMe simulator - PCI ID + Vendor specific bit */
 	if (pdev->vendor == PCI_VENDOR_ID_INTEL && pdev->device == 0x5845 &&

  reply	other threads:[~2015-12-02 16:45 UTC|newest]

Thread overview: 276+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-12-02 16:19 linux-next: build failure after merge of the block tree Mark Brown
2015-12-02 16:45 ` Christoph Hellwig [this message]
2015-12-02 21:07   ` Jens Axboe
2015-12-02 21:14     ` Keith Busch
2015-12-02 21:27       ` Jens Axboe
2015-12-03  7:35         ` Christoph Hellwig
2015-12-03  8:39     ` Matias Bjørling
2015-12-03  9:06       ` Christoph Hellwig
2015-12-03  9:52         ` Matias Bjørling
2015-12-03  9:57           ` Christoph Hellwig
2015-12-03 10:09             ` Matias Bjørling
2015-12-03 10:21               ` Christoph Hellwig
2015-12-03 11:07                 ` Matias Bjørling
2015-12-03 16:42                   ` Christoph Hellwig
2015-12-04 12:16                     ` Matias Bjørling
  -- strict thread matches above, loose matches on Subject: below --
2023-12-21  3:01 Stephen Rothwell
2023-12-21  3:11 ` Jens Axboe
2023-12-21  5:25 ` Christoph Hellwig
2023-06-01  0:50 Stephen Rothwell
2023-06-01  8:27 ` Johannes Thumshirn
2023-06-01 15:14   ` Jens Axboe
2023-03-24  1:57 Stephen Rothwell
2023-03-22 23:33 Stephen Rothwell
2023-03-22 23:59 ` Stephen Rothwell
2023-01-19 23:07 Stephen Rothwell
2023-01-06  0:19 Stephen Rothwell
2023-01-06  2:53 ` Martin K. Petersen
2022-11-16  1:35 Stephen Rothwell
2022-10-04 21:50 Stephen Rothwell
2022-10-04 22:14 ` Jens Axboe
2022-08-22  4:46 Stephen Rothwell
2022-08-22 13:55 ` Jens Axboe
2022-08-22 15:34   ` Bart Van Assche
2022-08-22 15:40     ` Jens Axboe
2022-08-22 16:06       ` Bart Van Assche
2022-08-22 16:07         ` Jens Axboe
2022-07-27  4:09 Stephen Rothwell
2022-07-21  3:11 Stephen Rothwell
2022-07-21  4:23 ` Christoph Hellwig
2022-07-21 16:51 ` Jens Axboe
2022-07-15  4:02 Stephen Rothwell
2022-07-15  4:10 ` Al Viro
2022-07-15 14:42   ` Jens Axboe
2022-07-15 17:33     ` Linus Torvalds
2022-07-17  3:43       ` Al Viro
2022-05-23  2:49 Stephen Rothwell
2022-05-23  2:52 ` Jens Axboe
2022-05-23  6:05   ` Coly Li
2022-05-23 12:31     ` Jens Axboe
2022-05-04  1:40 Stephen Rothwell
2022-05-04 11:25 ` Jens Axboe
2022-03-09  2:16 Stephen Rothwell
2022-03-09  2:33 ` Jens Axboe
2022-03-09  2:42   ` Jens Axboe
2021-08-10 10:31 Stephen Rothwell
2021-08-10 10:52 ` Stephen Rothwell
2021-08-10 12:58 ` Christoph Hellwig
2021-08-10 13:01   ` Jens Axboe
2021-08-10 13:22   ` Stephen Rothwell
2021-02-23  1:42 Stephen Rothwell
2021-02-23  2:32 ` Jens Axboe
2021-02-02  2:57 Stephen Rothwell
2021-02-02  3:16 ` Stephen Rothwell
2021-02-02  6:55   ` Christoph Hellwig
2021-02-14 22:24   ` Stephen Rothwell
2020-12-14  4:18 Stephen Rothwell
2020-12-07  3:09 Stephen Rothwell
2020-12-07 20:09 ` Florent Revest
2020-12-14 20:29 ` Stephen Rothwell
2020-12-02  4:01 Stephen Rothwell
2020-12-02  7:19 ` Christoph Hellwig
2020-12-14 20:09 ` Stephen Rothwell
2020-12-14 20:12   ` Jens Axboe
2020-12-14 21:36     ` David Sterba
2020-12-14 21:43       ` Stephen Rothwell
2020-12-14 21:54         ` David Sterba
2020-12-14 22:01           ` Stephen Rothwell
2020-09-23  4:34 Stephen Rothwell
2020-07-15  2:14 Stephen Rothwell
2020-07-15  9:24 ` Geert Uytterhoeven
2020-07-15 15:08   ` Jens Axboe
2020-07-15 15:17     ` Geert Uytterhoeven
2020-07-15 15:22       ` Geert Uytterhoeven
2020-07-15 15:25         ` Jens Axboe
2020-07-15 15:08 ` Jens Axboe
2020-06-02  3:25 Stephen Rothwell
2020-05-25  5:08 Stephen Rothwell
2020-05-25 19:03 ` Jens Axboe
2020-05-26  4:36   ` Stephen Rothwell
2020-05-26 13:53     ` Jens Axboe
2020-05-22 11:32 Stephen Rothwell
2020-05-22 14:46 ` Jens Axboe
2020-05-14  8:57 Stephen Rothwell
2020-05-14 14:06 ` Jens Axboe
2020-05-11  4:27 Stephen Rothwell
2020-05-11 15:06 ` Jens Axboe
2020-05-11 15:17   ` Christoph Hellwig
2020-05-11 15:28     ` Jens Axboe
2020-05-08  5:28 Stephen Rothwell
2020-05-08 15:48 ` Jens Axboe
2020-03-12  2:54 Stephen Rothwell
2020-03-12 10:12 ` Matteo Croce
2020-03-12 13:07   ` Jens Axboe
2020-03-12 13:57     ` Matteo Croce
2020-03-13  7:24       ` Gao Xiang
2020-02-04  0:25 Stephen Rothwell
2020-02-04  0:28 ` Jens Axboe
2020-02-03  0:04 Stephen Rothwell
2020-02-03  4:12 ` Jens Axboe
2020-01-06  1:30 Stephen Rothwell
2020-01-07  4:04 ` Jens Axboe
2020-01-12 18:32   ` Al Viro
2020-01-13 17:09     ` Jens Axboe
2020-01-13 17:26       ` Jens Axboe
2019-10-28  2:59 Stephen Rothwell
2019-10-28  3:25 ` Jens Axboe
2019-07-11  5:15 Stephen Rothwell
2019-07-11 20:17 ` Tejun Heo
2019-07-11 20:36   ` Jens Axboe
2019-07-11  5:04 Stephen Rothwell
2019-06-21  3:56 Stephen Rothwell
2019-06-21  8:18 ` Christoph Hellwig
2019-06-21  8:36   ` Stephen Rothwell
2019-05-06  5:07 Stephen Rothwell
2019-01-16  2:55 Stephen Rothwell
2019-01-16  2:48 Stephen Rothwell
2019-01-16  2:50 ` Ming Lei
2019-01-16  2:35 Stephen Rothwell
2019-01-16  2:48 ` Ming Lei
2018-07-31  3:07 Stephen Rothwell
2018-07-31 14:59 ` Jens Axboe
2018-07-26  4:56 Stephen Rothwell
2018-07-26  8:48 ` Christoph Hellwig
2018-07-26  8:45   ` Stephen Rothwell
2018-07-26 17:48   ` Jens Axboe
2018-07-26 17:56     ` Christoph Hellwig
2018-07-26 17:59       ` Steve Wise
2018-07-26 20:54     ` Bart Van Assche
2018-07-26 21:13       ` Jens Axboe
2018-07-26 12:32 ` Steve Wise
2018-07-26 22:16   ` Stephen Rothwell
2018-08-15  1:43 ` Stephen Rothwell
2017-08-24  3:32 Stephen Rothwell
2017-08-24  3:34 ` Stephen Rothwell
2017-08-24  8:44   ` Christoph Hellwig
2017-08-24  8:54     ` Stephen Rothwell
2017-06-28  8:04 Stephen Rothwell
2017-06-28 12:43 ` Jens Axboe
2017-06-28 14:01   ` Jens Axboe
2017-06-28 15:11     ` Jens Axboe
2017-06-28 21:33       ` Stephen Rothwell
2017-06-13 10:54 Stephen Rothwell
2017-06-15 14:50 ` Sebastian Ott
2017-06-19  9:00   ` Sebastian Ott
2017-06-20  1:45     ` Stephen Rothwell
2017-07-04 15:15 ` Guenter Roeck
2017-07-04 21:40   ` Stephen Rothwell
2017-06-13  4:10 Stephen Rothwell
2017-04-18  3:02 Stephen Rothwell
2017-05-02  1:07 ` Stephen Rothwell
2017-05-02  1:09   ` Jens Axboe
2017-05-02  1:37     ` Stephen Rothwell
2017-05-02  1:45       ` Jens Axboe
2017-01-30  1:43 Stephen Rothwell
2017-01-30  1:53 ` Jens Axboe
2017-01-30  3:07   ` Jens Axboe
2017-01-30  6:34   ` Christoph Hellwig
2016-12-01  2:55 Stephen Rothwell
2016-12-01  3:00 ` Jens Axboe
2016-12-01  3:02   ` Stephen Rothwell
2016-12-01  3:04     ` Jens Axboe
2016-11-08  3:21 Stephen Rothwell
2016-11-08  3:28 ` Jens Axboe
2016-09-19  6:18 Stephen Rothwell
2016-09-19 13:48 ` Christoph Hellwig
2016-09-19 14:22 ` Jens Axboe
2016-09-16  1:14 Stephen Rothwell
2016-09-16  4:13 ` Jens Axboe
2016-04-26  3:38 Stephen Rothwell
2016-04-26 13:30 ` Michal Marek
2016-04-26 13:56   ` Stephen Rothwell
     [not found]   ` <v3THaCMkCzylcv3TJavAje@videotron.ca>
2016-04-26 14:40     ` Nicolas Pitre
2016-04-26 14:41       ` Jens Axboe
2016-04-26 15:18       ` Stephen Rothwell
2016-04-26 20:48         ` Nicolas Pitre
2016-04-26 21:39           ` Stephen Rothwell
2016-04-27  9:02           ` Michal Marek
2016-04-27 13:46             ` Nicolas Pitre
2016-03-07  3:29 Stephen Rothwell
2015-10-06  1:43 Stephen Rothwell
2015-10-06  1:54 ` kbuild test robot
2015-10-06  7:20 ` Ming Lei
2015-07-30  4:17 Stephen Rothwell
2015-07-30  6:19 ` Christoph Hellwig
2015-07-30 12:24   ` Stephen Rothwell
2015-07-30 14:38 ` Drokin, Oleg
2015-02-09  4:25 Stephen Rothwell
2015-01-21  3:45 Stephen Rothwell
2014-11-17  3:44 Stephen Rothwell
2014-11-17 19:51 ` Jens Axboe
2014-11-11  2:12 Stephen Rothwell
2014-11-11 11:20 ` Fabian Frederick
2014-11-11 15:27   ` Jens Axboe
2014-11-14 16:19     ` Fabian Frederick
2013-11-26  2:30 Stephen Rothwell
2013-11-04  3:13 Stephen Rothwell
2013-11-04  3:23 ` Jens Axboe
2013-11-04  3:32   ` Jens Axboe
2013-11-04  3:39   ` Stephen Rothwell
2013-11-01  4:01 Stephen Rothwell
2013-02-06  3:06 Stephen Rothwell
2013-02-06  3:06 ` Stephen Rothwell
2013-02-06  8:33 ` Jens Axboe
2012-10-10  1:14 Stephen Rothwell
2012-09-27  3:27 Stephen Rothwell
2012-09-27  7:37 ` Jens Axboe
2011-12-19  3:19 Stephen Rothwell
2011-12-19  9:37 ` Jens Axboe
2011-12-19 16:41   ` Tejun Heo
2011-12-19  9:45 ` Sedat Dilek
2011-12-19  9:48   ` Jens Axboe
2011-12-19 11:32     ` Stephen Rothwell
2011-12-16  1:50 Stephen Rothwell
2011-12-16  8:20 ` Jens Axboe
2011-09-17 11:18 Stephen Rothwell
2011-07-04  3:48 Stephen Rothwell
2011-06-01  1:01 Stephen Rothwell
2011-06-01  6:26 ` Jens Axboe
2011-06-01 13:43   ` Konrad Rzeszutek Wilk
2011-03-25  3:30 Stephen Rothwell
2011-03-25  4:08 ` Akinobu Mita
2011-03-25  5:25   ` Stephen Rothwell
2011-03-14  5:19 Stephen Rothwell
2011-03-16 23:32 ` Stephen Rothwell
2011-03-17 10:18   ` Jens Axboe
2011-03-17 10:36     ` David Woodhouse
2011-03-17 10:45       ` Jens Axboe
2011-03-21 23:33         ` Stephen Rothwell
2011-03-10  3:08 Stephen Rothwell
2011-03-10  7:15 ` Jens Axboe
2011-03-07  2:39 Stephen Rothwell
2011-01-07  0:05 Stephen Rothwell
2011-01-07  7:32 ` Jens Axboe
2011-01-07 10:52   ` Sedat Dilek
2011-01-07 12:17     ` Stephen Rothwell
2011-01-07 13:19       ` Sedat Dilek
2011-01-07 14:22         ` Stephen Rothwell
2011-01-07 15:08           ` Jens Axboe
2011-01-07 18:04             ` Sedat Dilek
2011-01-07 18:20               ` Sedat Dilek
2010-12-23  1:53 Stephen Rothwell
2010-12-23 22:36 ` Nicholas A. Bellinger
2010-10-11  3:18 Stephen Rothwell
2010-10-23  2:51 ` Stephen Rothwell
2010-09-17  1:37 Stephen Rothwell
2010-09-17  3:19 ` Christoph Hellwig
2010-08-09  1:28 Stephen Rothwell
2010-08-09  1:50 ` Jens Axboe
2010-08-05  1:47 Stephen Rothwell
2010-08-05  6:35 ` Jens Axboe
2010-08-03  3:12 Stephen Rothwell
2010-08-03  7:46 ` Jens Axboe
2010-08-03  8:26 ` Christoph Hellwig
2010-05-18  3:37 Stephen Rothwell
2010-05-18  8:56 ` Jens Axboe
2010-05-18 10:20   ` Stephen Rothwell
2010-05-18 10:50     ` Jens Axboe
2010-04-29  3:52 Stephen Rothwell
2010-04-29  7:31 ` Jens Axboe
2010-04-28  3:52 Stephen Rothwell
2010-04-28  5:34 ` Jens Axboe
2010-04-15  2:42 Stephen Rothwell
2010-04-15  5:23 ` Divyesh Shah
2010-04-15  6:16   ` Stephen Rothwell
2010-04-15  6:56     ` Jens Axboe
2010-02-23  2:26 Stephen Rothwell

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20151202164527.GA31048@lst.de \
    --to=hch@lst.de \
    --cc=axboe@kernel.dk \
    --cc=broonie@kernel.org \
    --cc=keith.busch@intel.com \
    --cc=linux-block@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-next@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.