From: Greg Kroah-Hartman Date: Fri, 9 Sep 2016 14:00:34 +0000 (+0200) Subject: delete queue-4.4/0033-NVMe-fix-build-with-CONFIG_NVM-enabled.patch X-Git-Tag: v3.14.79~14 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=20ae08c552076a18f1076b2d239091df73f43816;p=thirdparty%2Fkernel%2Fstable-queue.git delete queue-4.4/0033-NVMe-fix-build-with-CONFIG_NVM-enabled.patch --- diff --git a/queue-4.4/0033-NVMe-fix-build-with-CONFIG_NVM-enabled.patch b/queue-4.4/0033-NVMe-fix-build-with-CONFIG_NVM-enabled.patch deleted file mode 100644 index 37965a59215..00000000000 --- a/queue-4.4/0033-NVMe-fix-build-with-CONFIG_NVM-enabled.patch +++ /dev/null @@ -1,164 +0,0 @@ -From 949e31ee7225602105e4129b9a093d3fc546f701 Mon Sep 17 00:00:00 2001 -From: Christoph Hellwig -Date: Thu, 3 Dec 2015 09:52:05 -0700 -Subject: [PATCH 033/135] NVMe: fix build with CONFIG_NVM enabled - -[ Upstream commit ac02dddec63385ffef1397d3f56cec4108bcafe9 ] - -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 -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. - -Signed-off-by: Christoph Hellwig -Signed-off-by: Jens Axboe -Signed-off-by: Sasha Levin -Signed-off-by: Greg Kroah-Hartman ---- - drivers/nvme/host/lightnvm.c | 35 ++++++++++++++++------------------- - 1 file changed, 16 insertions(+), 19 deletions(-) - ---- a/drivers/nvme/host/lightnvm.c -+++ b/drivers/nvme/host/lightnvm.c -@@ -274,7 +274,6 @@ static int init_grps(struct nvm_id *nvm_ - static int nvme_nvm_identity(struct nvm_dev *nvmdev, struct nvm_id *nvm_id) - { - struct nvme_ns *ns = nvmdev->q->queuedata; -- struct nvme_dev *dev = ns->dev; - struct nvme_nvm_id *nvme_nvm_id; - struct nvme_nvm_command c = {}; - int ret; -@@ -287,7 +286,7 @@ static int nvme_nvm_identity(struct nvm_ - 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; -@@ -312,9 +311,8 @@ static int nvme_nvm_get_l2p_tbl(struct n - nvm_l2p_update_fn *update_l2p, void *priv) - { - struct nvme_ns *ns = nvmdev->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; -@@ -332,10 +330,10 @@ static int nvme_nvm_get_l2p_tbl(struct n - 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; -@@ -361,7 +359,7 @@ static int nvme_nvm_get_bb_tbl(struct nv - { - struct request_queue *q = nvmdev->q; - 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; -@@ -375,30 +373,30 @@ static int nvme_nvm_get_bb_tbl(struct nv - 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 nv - int type) - { - struct nvme_ns *ns = nvmdev->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 nv - 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; - } - -@@ -520,9 +517,8 @@ static int nvme_nvm_erase_block(struct n - static void *nvme_nvm_create_dma_pool(struct nvm_dev *nvmdev, char *name) - { - struct nvme_ns *ns = nvmdev->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) -@@ -580,8 +576,9 @@ void nvme_nvm_unregister(struct request_ - - 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_CNEX && diff --git a/queue-4.4/series b/queue-4.4/series index 66f61c17881..6c53e4ec41f 100644 --- a/queue-4.4/series +++ b/queue-4.4/series @@ -30,7 +30,6 @@ 0030-lightnvm-unlock-rq-and-free-ppa_list-on-submission-f.patch 0031-lightnvm-fix-locking-and-mempool-in-rrpc_lun_gc.patch 0032-lightnvm-fix-missing-grown-bad-block-type.patch -0033-NVMe-fix-build-with-CONFIG_NVM-enabled.patch 0034-Drivers-hv-util-Increase-the-timeout-for-util-servic.patch 0035-Drivers-hv-utils-run-polling-callback-always-in-inte.patch 0036-tools-hv-report-ENOSPC-errors-in-hv_fcopy_daemon.patch