Message ID | 20190317003521.69366-1-bo.liu@linux.alibaba.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | virtio-fs: fix multiple tag support | expand |
On Sun, Mar 17, 2019 at 08:35:21AM +0800, Liu Bo wrote: > 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@linux.alibaba.com> Hi Liu Bo, Thanks for the fix. This seems right. I will fix it in my internal branch. These patches are not upstream yet. Will fold this into existing patch for the next posting. Thanks Vivek > --- > 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 >
On Tue, Mar 19, 2019 at 04:26:54PM -0400, Vivek Goyal wrote: > On Sun, Mar 17, 2019 at 08:35:21AM +0800, Liu Bo wrote: > > 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@linux.alibaba.com> > > Hi Liu Bo, > > Thanks for the fix. This seems right. I will fix it in my internal > branch. These patches are not upstream yet. Will fold this into > existing patch for the next posting. > Feel free to fold it, and I'm looking forward to the 1.0 release. thanks, -liubo > Thanks > Vivek > > > --- > > 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 > >
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);
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@linux.alibaba.com> --- fs/fuse/virtio_fs.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)