Message ID | 20190111150834.GA2744@jordon-HP-15-Notebook-PC (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | Use vm_insert_range and vm_insert_range_buggy | expand |
On Fri, Jan 11, 2019 at 8:34 PM Souptick Joarder <jrdr.linux@gmail.com> wrote: > > Convert to use vm_insert_range_buggy to map range of kernel memory > to user vma. > > This driver has ignored vm_pgoff and mapped the entire pages. We > could later "fix" these drivers to behave according to the normal > vm_pgoff offsetting simply by removing the _buggy suffix on the > function name and if that causes regressions, it gives us an easy > way to revert. > > Signed-off-by: Souptick Joarder <jrdr.linux@gmail.com> Any comment on this patch ? > --- > drivers/firewire/core-iso.c | 15 ++------------- > 1 file changed, 2 insertions(+), 13 deletions(-) > > diff --git a/drivers/firewire/core-iso.c b/drivers/firewire/core-iso.c > index 35e784c..99a6582 100644 > --- a/drivers/firewire/core-iso.c > +++ b/drivers/firewire/core-iso.c > @@ -107,19 +107,8 @@ int fw_iso_buffer_init(struct fw_iso_buffer *buffer, struct fw_card *card, > int fw_iso_buffer_map_vma(struct fw_iso_buffer *buffer, > struct vm_area_struct *vma) > { > - unsigned long uaddr; > - int i, err; > - > - uaddr = vma->vm_start; > - for (i = 0; i < buffer->page_count; i++) { > - err = vm_insert_page(vma, uaddr, buffer->pages[i]); > - if (err) > - return err; > - > - uaddr += PAGE_SIZE; > - } > - > - return 0; > + return vm_insert_range_buggy(vma, buffer->pages, > + buffer->page_count); > } > > void fw_iso_buffer_destroy(struct fw_iso_buffer *buffer, > -- > 1.9.1 >
On Fri, Jan 25, 2019 at 11:55 AM Souptick Joarder <jrdr.linux@gmail.com> wrote: > > On Fri, Jan 11, 2019 at 8:34 PM Souptick Joarder <jrdr.linux@gmail.com> wrote: > > > > Convert to use vm_insert_range_buggy to map range of kernel memory > > to user vma. > > > > This driver has ignored vm_pgoff and mapped the entire pages. We > > could later "fix" these drivers to behave according to the normal > > vm_pgoff offsetting simply by removing the _buggy suffix on the > > function name and if that causes regressions, it gives us an easy > > way to revert. > > > > Signed-off-by: Souptick Joarder <jrdr.linux@gmail.com> > > Any comment on this patch ? Any comment on this patch ? > > > --- > > drivers/firewire/core-iso.c | 15 ++------------- > > 1 file changed, 2 insertions(+), 13 deletions(-) > > > > diff --git a/drivers/firewire/core-iso.c b/drivers/firewire/core-iso.c > > index 35e784c..99a6582 100644 > > --- a/drivers/firewire/core-iso.c > > +++ b/drivers/firewire/core-iso.c > > @@ -107,19 +107,8 @@ int fw_iso_buffer_init(struct fw_iso_buffer *buffer, struct fw_card *card, > > int fw_iso_buffer_map_vma(struct fw_iso_buffer *buffer, > > struct vm_area_struct *vma) > > { > > - unsigned long uaddr; > > - int i, err; > > - > > - uaddr = vma->vm_start; > > - for (i = 0; i < buffer->page_count; i++) { > > - err = vm_insert_page(vma, uaddr, buffer->pages[i]); > > - if (err) > > - return err; > > - > > - uaddr += PAGE_SIZE; > > - } > > - > > - return 0; > > + return vm_insert_range_buggy(vma, buffer->pages, > > + buffer->page_count); > > } > > > > void fw_iso_buffer_destroy(struct fw_iso_buffer *buffer, > > -- > > 1.9.1 > >
diff --git a/drivers/firewire/core-iso.c b/drivers/firewire/core-iso.c index 35e784c..99a6582 100644 --- a/drivers/firewire/core-iso.c +++ b/drivers/firewire/core-iso.c @@ -107,19 +107,8 @@ int fw_iso_buffer_init(struct fw_iso_buffer *buffer, struct fw_card *card, int fw_iso_buffer_map_vma(struct fw_iso_buffer *buffer, struct vm_area_struct *vma) { - unsigned long uaddr; - int i, err; - - uaddr = vma->vm_start; - for (i = 0; i < buffer->page_count; i++) { - err = vm_insert_page(vma, uaddr, buffer->pages[i]); - if (err) - return err; - - uaddr += PAGE_SIZE; - } - - return 0; + return vm_insert_range_buggy(vma, buffer->pages, + buffer->page_count); } void fw_iso_buffer_destroy(struct fw_iso_buffer *buffer,
Convert to use vm_insert_range_buggy to map range of kernel memory to user vma. This driver has ignored vm_pgoff and mapped the entire pages. We could later "fix" these drivers to behave according to the normal vm_pgoff offsetting simply by removing the _buggy suffix on the function name and if that causes regressions, it gives us an easy way to revert. Signed-off-by: Souptick Joarder <jrdr.linux@gmail.com> --- drivers/firewire/core-iso.c | 15 ++------------- 1 file changed, 2 insertions(+), 13 deletions(-)