From mboxrd@z Thu Jan 1 00:00:00 1970 From: akinobu.mita@gmail.com (Akinobu Mita) Date: Mon, 20 May 2019 00:06:58 +0900 Subject: [PATCH v4 7/7] nvme-pci: enable to trigger device coredump by hand In-Reply-To: <1558278418-5702-1-git-send-email-akinobu.mita@gmail.com> References: <1558278418-5702-1-git-send-email-akinobu.mita@gmail.com> Message-ID: <1558278418-5702-8-git-send-email-akinobu.mita@gmail.com> This provides a way to trigger the nvme device coredump by writing anything to /sys/devices/.../coredump attribute. Cc: Johannes Berg Cc: Keith Busch Cc: Jens Axboe Cc: Christoph Hellwig Cc: Sagi Grimberg Cc: Minwoo Im Cc: Kenneth Heitke Cc: Chaitanya Kulkarni Signed-off-by: Akinobu Mita --- * v4 - No change since v3 drivers/nvme/host/pci.c | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/drivers/nvme/host/pci.c b/drivers/nvme/host/pci.c index 6436e72..04084b9 100644 --- a/drivers/nvme/host/pci.c +++ b/drivers/nvme/host/pci.c @@ -3266,6 +3266,14 @@ static void nvme_coredump_complete(struct nvme_dev *dev) nvme_coredump_clear(dev); } +static void nvme_coredump(struct device *dev) +{ + struct nvme_dev *ndev = dev_get_drvdata(dev); + + nvme_dev_disable(ndev, false, true); + nvme_reset_ctrl_sync(&ndev->ctrl); +} + #else static void nvme_coredump_init(struct nvme_dev *dev) @@ -3281,6 +3289,10 @@ static void nvme_coredump_complete(struct nvme_dev *dev) { } +static void nvme_coredump(struct device *dev) +{ +} + #endif /* CONFIG_DEV_COREDUMP */ static pci_ers_result_t nvme_error_detected(struct pci_dev *pdev, @@ -3388,6 +3400,7 @@ static struct pci_driver nvme_driver = { .shutdown = nvme_shutdown, .driver = { .pm = &nvme_dev_pm_ops, + .coredump = nvme_coredump, }, .sriov_configure = pci_sriov_configure_simple, .err_handler = &nvme_err_handler, -- 2.7.4