While doing memremap from pci_dev's system bus address to kernel virtual address, we assign a wrong value to the %end of pgmap.res, which ends up with a wrong resource size in the process of memremap, and that further prevent the second virtiofs pci device from being probed successfully. Signed-off-by: Liu Bo <bo.liu@xxxxxxxxxxxxxxxxx> --- fs/fuse/virtio_fs.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/fs/fuse/virtio_fs.c b/fs/fuse/virtio_fs.c index 88b00055589b..7abf2187d85f 100644 --- a/fs/fuse/virtio_fs.c +++ b/fs/fuse/virtio_fs.c @@ -713,7 +713,7 @@ static int virtio_fs_setup_dax(struct virtio_device *vdev, struct virtio_fs *fs) pgmap->res = (struct resource){ .name = "virtio-fs dax window", .start = phys_addr, - .end = phys_addr + cache_len, + .end = phys_addr + cache_len - 1, }; fs->window_kaddr = devm_memremap_pages(&pci_dev->dev, pgmap); -- 2.20.1.2.gb21ebb6