On Mon, Aug 13, 2018 at 03:42:38PM +0800, shan.gavin@linux.alibaba.com wrote:
The controller memory buffer is remapped into a kernel address on each reset, but the driver was setting the submission queue base address only on the very first queue creation. The remapped address is likely to change after a reset, so accessing the old address will hit a kernel bug.
This patch fixes that by setting the queue's CMB base address each time the queue is created.
Cherry-pick from upstream commit 815c6704bf9f ("nvme-pci: Remap CMB SQ entries on every controller reset")
Fixes: f63572dff1421 ("nvme: unmap CMB and remove sysfs file in reset path") Reported-by: Christian Black christian.d.black@intel.com Cc: Jon Derrick jonathan.derrick@intel.com Cc: stable@vger.kernel.org # 4.9+
This one is already in 4.9-stable.