Re: [PATCH] mm: gup: fix access_ok() argument type
* Arnd Bergmannwrote: > MIPS just got changed to only accept a pointer argument for access_ok(), > causing one warning in drivers/scsi/pmcraid.c. I tried changing x86 > the same way and found the same warning in __get_user_pages_fast() > and nowhere else in the kernel during randconfig testing: Doing that for x86 access_ok() would definitely be a good idea. > mm/gup.c: In function '__get_user_pages_fast': > mm/gup.c:1578:6: error: passing argument 1 of '__chk_range_not_ok' makes > pointer from integer without a cast [-Werror=int-conversion] > > It would probably be a good idea to enforce type-safety in general, > so let's change this file to not cause a warning if we do that. > > I don't know why the warning did not appear on MIPS. > > Fixes: 2667f50e8b81 ("mm: introduce a general RCU get_user_pages_fast()") > Cc: Alexander Viro > Signed-off-by: Arnd Bergmann > --- > mm/gup.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/mm/gup.c b/mm/gup.c > index 2559a3987de7..7f5bc26d9229 100644 > --- a/mm/gup.c > +++ b/mm/gup.c > @@ -1575,7 +1575,7 @@ int __get_user_pages_fast(unsigned long start, int > nr_pages, int write, > end = start + len; > > if (unlikely(!access_ok(write ? VERIFY_WRITE : VERIFY_READ, > - start, len))) > + (void __user *)start, len))) > return 0; Acked-by: Ingo Molnar Thanks, Ingo
Re: [PATCH] mm: gup: fix access_ok() argument type
* Arnd Bergmann wrote: > MIPS just got changed to only accept a pointer argument for access_ok(), > causing one warning in drivers/scsi/pmcraid.c. I tried changing x86 > the same way and found the same warning in __get_user_pages_fast() > and nowhere else in the kernel during randconfig testing: Doing that for x86 access_ok() would definitely be a good idea. > mm/gup.c: In function '__get_user_pages_fast': > mm/gup.c:1578:6: error: passing argument 1 of '__chk_range_not_ok' makes > pointer from integer without a cast [-Werror=int-conversion] > > It would probably be a good idea to enforce type-safety in general, > so let's change this file to not cause a warning if we do that. > > I don't know why the warning did not appear on MIPS. > > Fixes: 2667f50e8b81 ("mm: introduce a general RCU get_user_pages_fast()") > Cc: Alexander Viro > Signed-off-by: Arnd Bergmann > --- > mm/gup.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/mm/gup.c b/mm/gup.c > index 2559a3987de7..7f5bc26d9229 100644 > --- a/mm/gup.c > +++ b/mm/gup.c > @@ -1575,7 +1575,7 @@ int __get_user_pages_fast(unsigned long start, int > nr_pages, int write, > end = start + len; > > if (unlikely(!access_ok(write ? VERIFY_WRITE : VERIFY_READ, > - start, len))) > + (void __user *)start, len))) > return 0; Acked-by: Ingo Molnar Thanks, Ingo
[PATCH] mm: gup: fix access_ok() argument type
MIPS just got changed to only accept a pointer argument for access_ok(), causing one warning in drivers/scsi/pmcraid.c. I tried changing x86 the same way and found the same warning in __get_user_pages_fast() and nowhere else in the kernel during randconfig testing: mm/gup.c: In function '__get_user_pages_fast': mm/gup.c:1578:6: error: passing argument 1 of '__chk_range_not_ok' makes pointer from integer without a cast [-Werror=int-conversion] It would probably be a good idea to enforce type-safety in general, so let's change this file to not cause a warning if we do that. I don't know why the warning did not appear on MIPS. Fixes: 2667f50e8b81 ("mm: introduce a general RCU get_user_pages_fast()") Cc: Alexander ViroSigned-off-by: Arnd Bergmann --- mm/gup.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mm/gup.c b/mm/gup.c index 2559a3987de7..7f5bc26d9229 100644 --- a/mm/gup.c +++ b/mm/gup.c @@ -1575,7 +1575,7 @@ int __get_user_pages_fast(unsigned long start, int nr_pages, int write, end = start + len; if (unlikely(!access_ok(write ? VERIFY_WRITE : VERIFY_READ, - start, len))) + (void __user *)start, len))) return 0; /* -- 2.9.0
[PATCH] mm: gup: fix access_ok() argument type
MIPS just got changed to only accept a pointer argument for access_ok(), causing one warning in drivers/scsi/pmcraid.c. I tried changing x86 the same way and found the same warning in __get_user_pages_fast() and nowhere else in the kernel during randconfig testing: mm/gup.c: In function '__get_user_pages_fast': mm/gup.c:1578:6: error: passing argument 1 of '__chk_range_not_ok' makes pointer from integer without a cast [-Werror=int-conversion] It would probably be a good idea to enforce type-safety in general, so let's change this file to not cause a warning if we do that. I don't know why the warning did not appear on MIPS. Fixes: 2667f50e8b81 ("mm: introduce a general RCU get_user_pages_fast()") Cc: Alexander Viro Signed-off-by: Arnd Bergmann --- mm/gup.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mm/gup.c b/mm/gup.c index 2559a3987de7..7f5bc26d9229 100644 --- a/mm/gup.c +++ b/mm/gup.c @@ -1575,7 +1575,7 @@ int __get_user_pages_fast(unsigned long start, int nr_pages, int write, end = start + len; if (unlikely(!access_ok(write ? VERIFY_WRITE : VERIFY_READ, - start, len))) + (void __user *)start, len))) return 0; /* -- 2.9.0