Message ID | 1557933437-4693-3-git-send-email-akinobu.mita@gmail.com (mailing list archive) |
---|---|
State | Superseded |
Delegated to: | Eduardo Valentin |
Headers | show |
Series | nvme: add thermal zone devices | expand |
On Thu, May 16, 2019 at 12:17:17AM +0900, Akinobu Mita wrote: > This enables to use thermal zone interfaces for NVMe > temperature sensors. > > Cc: Zhang Rui <rui.zhang@intel.com> > Cc: Eduardo Valentin <edubezval@gmail.com> > Cc: Daniel Lezcano <daniel.lezcano@linaro.org> > Cc: Keith Busch <keith.busch@intel.com> > Cc: Jens Axboe <axboe@fb.com> > Cc: Christoph Hellwig <hch@lst.de> > Cc: Sagi Grimberg <sagi@grimberg.me> > Signed-off-by: Akinobu Mita <akinobu.mita@gmail.com> > --- > drivers/nvme/host/pci.c | 5 +++++ > 1 file changed, 5 insertions(+) > > diff --git a/drivers/nvme/host/pci.c b/drivers/nvme/host/pci.c > index fad5395..88a25dc 100644 > --- a/drivers/nvme/host/pci.c > +++ b/drivers/nvme/host/pci.c > @@ -2470,6 +2470,7 @@ static void nvme_pci_free_ctrl(struct nvme_ctrl *ctrl) > if (dev->ctrl.admin_q) > blk_put_queue(dev->ctrl.admin_q); > kfree(dev->queues); > + nvme_thermal_zones_unregister(&dev->ctrl); This unregister should probably go in the nvme_remove() rather than in the last reference release.
2019年5月16日(木) 2:08 Keith Busch <kbusch@kernel.org>: > > On Thu, May 16, 2019 at 12:17:17AM +0900, Akinobu Mita wrote: > > This enables to use thermal zone interfaces for NVMe > > temperature sensors. > > > > Cc: Zhang Rui <rui.zhang@intel.com> > > Cc: Eduardo Valentin <edubezval@gmail.com> > > Cc: Daniel Lezcano <daniel.lezcano@linaro.org> > > Cc: Keith Busch <keith.busch@intel.com> > > Cc: Jens Axboe <axboe@fb.com> > > Cc: Christoph Hellwig <hch@lst.de> > > Cc: Sagi Grimberg <sagi@grimberg.me> > > Signed-off-by: Akinobu Mita <akinobu.mita@gmail.com> > > --- > > drivers/nvme/host/pci.c | 5 +++++ > > 1 file changed, 5 insertions(+) > > > > diff --git a/drivers/nvme/host/pci.c b/drivers/nvme/host/pci.c > > index fad5395..88a25dc 100644 > > --- a/drivers/nvme/host/pci.c > > +++ b/drivers/nvme/host/pci.c > > @@ -2470,6 +2470,7 @@ static void nvme_pci_free_ctrl(struct nvme_ctrl *ctrl) > > if (dev->ctrl.admin_q) > > blk_put_queue(dev->ctrl.admin_q); > > kfree(dev->queues); > > + nvme_thermal_zones_unregister(&dev->ctrl); > > This unregister should probably go in the nvme_remove() rather than in > the last reference release. You are right. It is too late to unregister and it caused a lot of sysfs_remove_link() failures when removing driver.
diff --git a/drivers/nvme/host/pci.c b/drivers/nvme/host/pci.c index fad5395..88a25dc 100644 --- a/drivers/nvme/host/pci.c +++ b/drivers/nvme/host/pci.c @@ -2470,6 +2470,7 @@ static void nvme_pci_free_ctrl(struct nvme_ctrl *ctrl) if (dev->ctrl.admin_q) blk_put_queue(dev->ctrl.admin_q); kfree(dev->queues); + nvme_thermal_zones_unregister(&dev->ctrl); free_opal_dev(dev->ctrl.opal_dev); mempool_destroy(dev->iod_mempool); kfree(dev); @@ -2553,6 +2554,10 @@ static void nvme_reset_work(struct work_struct *work) dev->ctrl.opal_dev = NULL; } + result = nvme_thermal_zones_register(&dev->ctrl); + if (result < 0) + goto out; + if (dev->ctrl.oacs & NVME_CTRL_OACS_DBBUF_SUPP) { result = nvme_dbbuf_dma_alloc(dev); if (result)
This enables to use thermal zone interfaces for NVMe temperature sensors. Cc: Zhang Rui <rui.zhang@intel.com> Cc: Eduardo Valentin <edubezval@gmail.com> Cc: Daniel Lezcano <daniel.lezcano@linaro.org> Cc: Keith Busch <keith.busch@intel.com> Cc: Jens Axboe <axboe@fb.com> Cc: Christoph Hellwig <hch@lst.de> Cc: Sagi Grimberg <sagi@grimberg.me> Signed-off-by: Akinobu Mita <akinobu.mita@gmail.com> --- drivers/nvme/host/pci.c | 5 +++++ 1 file changed, 5 insertions(+)