From: Stephen Rothwell <sfr@canb•auug.org.au>
To: Jens Axboe <axboe@kernel•dk>
Cc: linux-next@vger•kernel.org, linux-kernel@vger•kernel.org,
Keith Busch <keith.busch@intel•com>,
Sagi Grimberg <sagig@mellanox•com>,
Christoph Hellwig <hch@lst•de>
Subject: linux-next: manual merge of the block tree with Linus' tree
Date: Mon, 7 Mar 2016 14:08:26 +1100 [thread overview]
Message-ID: <20160307140826.7d59fdf2@canb.auug.org.au> (raw)
Hi Jens,
Today's linux-next merge of the block tree got a conflict in:
drivers/nvme/host/pci.c
between commit:
ff23a2a15a21 ("NVMe: Poll device while still active during remove")
f8e68a7c9af5 ("NVMe: Rate limit nvme IO warnings")
b00a726a9fd8 ("NVMe: Don't unmap controller registers on reset")
646017a612e7 ("NVMe: Fix namespace removal deadlock")
f58944e265d4 ("NVMe: Simplify device reset failure")
from Linus' tree and commit:
949928c1c731 ("NVMe: Fix possible queue use after freed")
1b3c47c182aa ("nvme: Log the ctrl device name instead of the underlying pci device name")
9396dec916c0 ("nvme: use a work item to submit async event requests")
2d55cd5f511d ("nvme: replace the kthread with a per-device watchdog timer")
from the block tree.
I fixed it up (maybe - see below) and can carry the fix as necessary (no action
is required).
--
Cheers,
Stephen Rothwell
diff --cc drivers/nvme/host/pci.c
index 680f5780750c,d47b08783110..000000000000
--- a/drivers/nvme/host/pci.c
+++ b/drivers/nvme/host/pci.c
@@@ -310,10 -288,10 +299,10 @@@ static void nvme_complete_async_event(s
switch (result & 0xff07) {
case NVME_AER_NOTICE_NS_CHANGED:
- dev_info(dev->dev, "rescanning\n");
+ dev_info(dev->ctrl.device, "rescanning\n");
- queue_work(nvme_workq, &dev->scan_work);
+ nvme_queue_scan(dev);
default:
- dev_warn(dev->dev, "async event result %08x\n", result);
+ dev_warn(dev->ctrl.device, "async event result %08x\n", result);
}
}
@@@ -1018,7 -992,7 +1011,7 @@@ static void nvme_cancel_queue_ios(struc
if (!blk_mq_request_started(req))
return;
- dev_dbg_ratelimited(nvmeq->q_dmadev,
- dev_warn(nvmeq->dev->ctrl.device,
++ dev_dbg_ratelimited(nvmeq->dev->ctrl.device,
"Cancelling I/O %d QID %d\n", req->tag, nvmeq->qid);
status = NVME_SC_ABORT_REQ;
@@@ -1709,8 -1651,14 +1676,14 @@@ static int nvme_dev_add(struct nvme_de
if (blk_mq_alloc_tag_set(&dev->tagset))
return 0;
dev->ctrl.tagset = &dev->tagset;
+ } else {
+ blk_mq_update_nr_hw_queues(&dev->tagset, dev->online_queues - 1);
+
+ /* Free previously allocated queues that are no longer usable */
+ nvme_free_queues(dev, dev->online_queues);
}
+
- queue_work(nvme_workq, &dev->scan_work);
+ nvme_queue_scan(dev);
return 0;
}
@@@ -1845,10 -1763,10 +1774,10 @@@ static void nvme_dev_disable(struct nvm
int i;
u32 csts = -1;
- nvme_dev_list_remove(dev);
+ del_timer_sync(&dev->watchdog_timer);
mutex_lock(&dev->shutdown_lock);
- if (dev->bar) {
+ if (pci_is_enabled(to_pci_dev(dev->dev))) {
nvme_stop_queues(&dev->ctrl);
csts = readl(dev->bar + NVME_REG_CSTS);
}
@@@ -1951,13 -1859,12 +1880,12 @@@ static void nvme_reset_work(struct work
result = nvme_setup_io_queues(dev);
if (result)
- goto free_tags;
+ goto out;
dev->ctrl.event_limit = NVME_NR_AEN_COMMANDS;
+ queue_work(nvme_workq, &dev->async_work);
- result = nvme_dev_list_add(dev);
- if (result)
- goto out;
+ mod_timer(&dev->watchdog_timer, round_jiffies(jiffies + HZ));
/*
* Keep the controller around but remove all namespaces if we don't have
@@@ -2085,11 -1988,6 +2014,10 @@@ static int nvme_probe(struct pci_dev *p
dev->dev = get_device(&pdev->dev);
pci_set_drvdata(pdev, dev);
+ result = nvme_dev_map(dev);
+ if (result)
+ goto free;
+
- INIT_LIST_HEAD(&dev->node);
INIT_WORK(&dev->scan_work, nvme_dev_scan);
INIT_WORK(&dev->reset_work, nvme_reset_work);
INIT_WORK(&dev->remove_work, nvme_remove_dead_ctrl_work);
@@@ -2145,8 -2042,11 +2078,11 @@@ static void nvme_remove(struct pci_dev
{
struct nvme_dev *dev = pci_get_drvdata(pdev);
+ set_bit(NVME_CTRL_REMOVING, &dev->flags);
+ del_timer_sync(&dev->watchdog_timer);
+
pci_set_drvdata(pdev, NULL);
+ flush_work(&dev->async_work);
- flush_work(&dev->reset_work);
flush_work(&dev->scan_work);
nvme_remove_namespaces(&dev->ctrl);
nvme_uninit_ctrl(&dev->ctrl);
next reply other threads:[~2016-03-07 3:08 UTC|newest]
Thread overview: 122+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-03-07 3:08 Stephen Rothwell [this message]
-- strict thread matches above, loose matches on Subject: below --
2025-05-05 3:25 linux-next: manual merge of the block tree with Linus' tree Stephen Rothwell
2025-05-05 13:15 ` Jens Axboe
2025-01-09 1:46 Stephen Rothwell
2025-01-10 15:02 ` Jens Axboe
2024-11-11 3:10 Stephen Rothwell
2024-11-11 15:14 ` Jens Axboe
2024-10-21 1:06 Stephen Rothwell
2024-10-21 16:52 ` Jens Axboe
2024-05-22 23:50 Stephen Rothwell
2024-05-23 13:04 ` Jens Axboe
2024-05-13 2:23 Stephen Rothwell
2024-05-13 23:50 ` Jens Axboe
2023-10-23 1:42 Stephen Rothwell
2023-06-26 3:04 Stephen Rothwell
2023-04-03 2:36 Stephen Rothwell
2022-11-21 2:46 Stephen Rothwell
2022-11-21 14:47 ` Jens Axboe
2022-04-20 2:31 Stephen Rothwell
2022-03-21 1:22 Stephen Rothwell
2021-11-25 23:38 Stephen Rothwell
2021-11-26 5:30 ` Christoph Hellwig
2021-11-01 1:36 Stephen Rothwell
2021-10-25 2:26 Stephen Rothwell
2021-08-17 5:25 Stephen Rothwell
2021-08-17 16:40 ` Tejun Heo
2021-08-17 16:50 ` Christoph Hellwig
2021-08-17 16:52 ` Tejun Heo
2021-08-09 4:29 Stephen Rothwell
2021-08-09 14:05 ` Jens Axboe
2020-12-14 3:56 Stephen Rothwell
2020-09-23 4:05 Stephen Rothwell
2020-01-28 0:38 Stephen Rothwell
2020-01-28 0:40 ` Jens Axboe
2019-04-15 3:06 Stephen Rothwell
2019-04-15 14:15 ` Jens Axboe
2019-04-15 3:00 Stephen Rothwell
2019-03-05 1:48 Stephen Rothwell
2018-11-16 2:19 Stephen Rothwell
2018-11-16 2:21 ` Jens Axboe
2017-09-04 3:09 Stephen Rothwell
2017-06-30 2:08 Stephen Rothwell
2017-06-26 2:44 Stephen Rothwell
2017-06-26 2:28 Stephen Rothwell
2017-06-23 3:06 Stephen Rothwell
2017-06-23 3:09 ` Jens Axboe
2017-06-23 3:24 ` Stephen Rothwell
2017-06-23 3:27 ` Jens Axboe
2017-06-23 3:33 ` Stephen Rothwell
2017-06-23 3:56 ` Jens Axboe
2017-06-23 3:29 ` Jens Axboe
2016-07-21 3:08 Stephen Rothwell
2016-07-08 3:07 Stephen Rothwell
2016-07-08 4:14 ` Stephen Rothwell
2016-07-08 14:11 ` Konrad Rzeszutek Wilk
2016-06-14 2:44 Stephen Rothwell
2016-05-03 4:25 Stephen Rothwell
2016-05-03 20:03 ` Jens Axboe
2016-03-07 3:12 Stephen Rothwell
2016-03-01 0:25 Stephen Rothwell
2016-02-18 2:10 Stephen Rothwell
2016-01-13 2:07 Stephen Rothwell
2015-12-31 3:34 Stephen Rothwell
2016-01-21 22:46 ` Stephen Rothwell
2016-01-21 22:48 ` Jens Axboe
2015-12-14 1:36 Stephen Rothwell
2015-12-07 4:27 Stephen Rothwell
2015-12-07 4:16 Stephen Rothwell
2015-10-06 1:33 Stephen Rothwell
2015-08-27 2:36 Stephen Rothwell
2015-08-17 4:04 Stephen Rothwell
2015-06-04 4:51 Stephen Rothwell
2015-06-04 4:36 Stephen Rothwell
2015-06-03 3:33 Stephen Rothwell
2015-06-03 3:28 Stephen Rothwell
2015-06-01 4:56 Stephen Rothwell
2015-06-01 14:31 ` Mike Snitzer
2015-04-13 4:58 Stephen Rothwell
2015-01-27 4:03 Stephen Rothwell
2014-03-17 3:55 Stephen Rothwell
2014-03-10 15:39 Mark Brown
2013-11-01 3:25 Stephen Rothwell
2013-09-25 3:11 Stephen Rothwell
2013-05-01 5:17 Stephen Rothwell
2013-03-26 2:05 Stephen Rothwell
2012-12-07 2:44 Stephen Rothwell
2012-10-31 2:04 Stephen Rothwell
2012-10-31 13:55 ` Ben Hutchings
2012-10-31 13:57 ` Jens Axboe
2012-11-01 10:04 ` Herton Ronaldo Krzesinski
2011-11-01 5:15 Stephen Rothwell
2011-11-01 8:09 ` Jens Axboe
2011-11-01 9:03 ` Stephen Rothwell
2011-05-19 1:34 Stephen Rothwell
2011-03-21 0:43 Stephen Rothwell
2011-03-21 9:48 ` Jens Axboe
2011-03-07 2:19 Stephen Rothwell
2011-03-07 6:36 ` Tejun Heo
2011-03-07 8:42 ` Jens Axboe
2011-03-07 10:41 ` Sedat Dilek
2011-03-07 10:47 ` Tejun Heo
2011-03-07 11:14 ` Sedat Dilek
2011-03-07 11:16 ` Jens Axboe
2011-03-07 11:25 ` Sedat Dilek
2011-03-07 11:26 ` Jens Axboe
2011-03-07 11:35 ` Sedat Dilek
2011-03-07 11:46 ` Jens Axboe
2011-03-07 12:26 ` Sedat Dilek
2011-03-07 11:42 ` Stephen Rothwell
2011-03-07 11:38 ` Stephen Rothwell
2010-09-16 2:04 Stephen Rothwell
2010-04-29 3:52 Stephen Rothwell
2010-04-29 7:33 ` Jens Axboe
2010-03-17 1:52 Stephen Rothwell
2010-03-17 2:03 ` Li Zefan
2010-02-25 3:10 Stephen Rothwell
2010-02-25 7:47 ` Jens Axboe
2010-02-25 23:11 ` Stephen Rothwell
2009-06-25 3:15 Stephen Rothwell
2009-06-25 3:30 ` Stephen Rothwell
2009-06-25 6:38 ` Jens Axboe
2009-06-25 7:42 ` Jens Axboe
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=20160307140826.7d59fdf2@canb.auug.org.au \
--to=sfr@canb$(echo .)auug.org.au \
--cc=axboe@kernel$(echo .)dk \
--cc=hch@lst$(echo .)de \
--cc=keith.busch@intel$(echo .)com \
--cc=linux-kernel@vger$(echo .)kernel.org \
--cc=linux-next@vger$(echo .)kernel.org \
--cc=sagig@mellanox$(echo .)com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox