diff mbox series

virtio-fs: fix multiple tag support

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

Commit Message

Liu Bo March 17, 2019, 12:35 a.m. UTC
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(-)

Comments

Vivek Goyal March 19, 2019, 8:26 p.m. UTC | #1
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
>
Liu Bo March 20, 2019, 2:04 a.m. UTC | #2
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 mbox series

Patch

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);