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....@linux.alibaba.com>
---
 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

Reply via email to