Commit 58847f12 authored by Keith Busch's avatar Keith Busch Committed by Christoph Hellwig

nvme-pci: clear shadow doorbell memory on resets

The host memory doorbell and event buffers need to be initialized on
each reset so the driver doesn't observe stale values from the previous
instantiation.
Signed-off-by: default avatarKeith Busch <kbusch@kernel.org>
Tested-by: default avatarJohn Levon <john.levon@nutanix.com>
Signed-off-by: default avatarChristoph Hellwig <hch@lst.de>
parent 09748122
...@@ -245,8 +245,15 @@ static int nvme_dbbuf_dma_alloc(struct nvme_dev *dev) ...@@ -245,8 +245,15 @@ static int nvme_dbbuf_dma_alloc(struct nvme_dev *dev)
{ {
unsigned int mem_size = nvme_dbbuf_size(dev); unsigned int mem_size = nvme_dbbuf_size(dev);
if (dev->dbbuf_dbs) if (dev->dbbuf_dbs) {
/*
* Clear the dbbuf memory so the driver doesn't observe stale
* values from the previous instantiation.
*/
memset(dev->dbbuf_dbs, 0, mem_size);
memset(dev->dbbuf_eis, 0, mem_size);
return 0; return 0;
}
dev->dbbuf_dbs = dma_alloc_coherent(dev->dev, mem_size, dev->dbbuf_dbs = dma_alloc_coherent(dev->dev, mem_size,
&dev->dbbuf_dbs_dma_addr, &dev->dbbuf_dbs_dma_addr,
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment