[v2] sh: implicit access_ok() needs an #include

Message ID 20230202053113.2782-1-rdunlap@infradead.org
State New
Headers
Series [v2] sh: implicit access_ok() needs an #include |

Commit Message

Randy Dunlap Feb. 2, 2023, 5:31 a.m. UTC
  Building arch/sh/ has a build error/warning that is fixed by
adding an #include of a header file.

../arch/sh/include/asm/checksum_32.h: In function 'csum_and_copy_from_user':
../arch/sh/include/asm/checksum_32.h:53:14: error: implicit declaration of function 'access_ok' [-Werror=implicit-function-declaration]
   53 |         if (!access_ok(src, len))
      |              ^~~~~~~~~

Fixes: 7fe8970a78a1 ("sh32: convert to csum_and_copy_from_user()")
Signed-off-by: Randy Dunlap <rdunlap@infradead.org>
Cc: Al Viro <viro@zeniv.linux.org.uk>
Cc: Yoshinori Sato <ysato@users.sourceforge.jp>
Cc: Rich Felker <dalias@libc.org>
Cc: linux-sh@vger.kernel.org
Cc: John Paul Adrian Glaubitz <glaubitz@physik.fu-berlin.de>
Cc: Arnd Bergmann <arnd@arndb.de>
Cc: Andrew Morton <akpm@linux-foundation.org>
---
v2: add Subject: and patch description

 arch/sh/include/asm/checksum_32.h |    1 +
 1 file changed, 1 insertion(+)
  

Comments

Arnd Bergmann Feb. 2, 2023, 7:45 a.m. UTC | #1
On Thu, Feb 2, 2023, at 06:31, Randy Dunlap wrote:
> Building arch/sh/ has a build error/warning that is fixed by
> adding an #include of a header file.
>
> ../arch/sh/include/asm/checksum_32.h: In function 
> 'csum_and_copy_from_user':
> ../arch/sh/include/asm/checksum_32.h:53:14: error: implicit declaration 
> of function 'access_ok' [-Werror=implicit-function-declaration]
>    53 |         if (!access_ok(src, len))
>       |              ^~~~~~~~~
>
> Fixes: 7fe8970a78a1 ("sh32: convert to csum_and_copy_from_user()")
> Signed-off-by: Randy Dunlap <rdunlap@infradead.org>
> Cc: Al Viro <viro@zeniv.linux.org.uk>
> Cc: Yoshinori Sato <ysato@users.sourceforge.jp>
> Cc: Rich Felker <dalias@libc.org>
> Cc: linux-sh@vger.kernel.org
> Cc: John Paul Adrian Glaubitz <glaubitz@physik.fu-berlin.de>
> Cc: Arnd Bergmann <arnd@arndb.de>
> Cc: Andrew Morton <akpm@linux-foundation.org>
> ---
> v2: add Subject: and patch description

Thanks for the fix!

>
>  arch/sh/include/asm/checksum_32.h |    1 +
>  1 file changed, 1 insertion(+)
>
> diff -- a/arch/sh/include/asm/checksum_32.h b/arch/sh/include/asm/checksum_32.h
> --- a/arch/sh/include/asm/checksum_32.h
> +++ b/arch/sh/include/asm/checksum_32.h
> @@ -7,6 +7,7 @@
>   */
> 
>  #include <linux/in6.h>
> +#include <asm-generic/access_ok.h>

This will work correctly, but it is not the intended usage of the
header. Anything in asm-generic/*.h should only be included by
a particular header, usually the asm/*.h with the same name or in this
case the asm/uaccess.h header.

I think the correct fix here is to include asm/uaccess.h instead
of asm-generic/access_ok.h.

      Arnd
  
Geert Uytterhoeven Feb. 2, 2023, 8:22 a.m. UTC | #2
Hi Arnd,

On Thu, Feb 2, 2023 at 8:52 AM Arnd Bergmann <arnd@arndb.de> wrote:
> On Thu, Feb 2, 2023, at 06:31, Randy Dunlap wrote:
> > Building arch/sh/ has a build error/warning that is fixed by
> > adding an #include of a header file.
> >
> > ../arch/sh/include/asm/checksum_32.h: In function
> > 'csum_and_copy_from_user':
> > ../arch/sh/include/asm/checksum_32.h:53:14: error: implicit declaration
> > of function 'access_ok' [-Werror=implicit-function-declaration]
> >    53 |         if (!access_ok(src, len))
> >       |              ^~~~~~~~~
> >
> > Fixes: 7fe8970a78a1 ("sh32: convert to csum_and_copy_from_user()")
> > Signed-off-by: Randy Dunlap <rdunlap@infradead.org>
> > Cc: Al Viro <viro@zeniv.linux.org.uk>
> > Cc: Yoshinori Sato <ysato@users.sourceforge.jp>
> > Cc: Rich Felker <dalias@libc.org>
> > Cc: linux-sh@vger.kernel.org
> > Cc: John Paul Adrian Glaubitz <glaubitz@physik.fu-berlin.de>
> > Cc: Arnd Bergmann <arnd@arndb.de>
> > Cc: Andrew Morton <akpm@linux-foundation.org>
> > ---
> > v2: add Subject: and patch description
>
> Thanks for the fix!
>
> >
> >  arch/sh/include/asm/checksum_32.h |    1 +
> >  1 file changed, 1 insertion(+)
> >
> > diff -- a/arch/sh/include/asm/checksum_32.h b/arch/sh/include/asm/checksum_32.h
> > --- a/arch/sh/include/asm/checksum_32.h
> > +++ b/arch/sh/include/asm/checksum_32.h
> > @@ -7,6 +7,7 @@
> >   */
> >
> >  #include <linux/in6.h>
> > +#include <asm-generic/access_ok.h>
>
> This will work correctly, but it is not the intended usage of the
> header. Anything in asm-generic/*.h should only be included by
> a particular header, usually the asm/*.h with the same name or in this
> case the asm/uaccess.h header.
>
> I think the correct fix here is to include asm/uaccess.h instead
> of asm-generic/access_ok.h.

Which should already be there, or RSN:
https://lore.kernel.org/all/167514181688.11863.771497291150527329.git-patchwork-notify@kernel.org

Gr{oetje,eeting}s,

                        Geert

--
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@linux-m68k.org

In personal conversations with technical people, I call myself a hacker. But
when I'm talking to journalists I just say "programmer" or something like that.
                                -- Linus Torvalds
  
Randy Dunlap Feb. 2, 2023, 3:22 p.m. UTC | #3
On 2/2/23 00:22, Geert Uytterhoeven wrote:
> Hi Arnd,
> 
> On Thu, Feb 2, 2023 at 8:52 AM Arnd Bergmann <arnd@arndb.de> wrote:
>> On Thu, Feb 2, 2023, at 06:31, Randy Dunlap wrote:
>>> Building arch/sh/ has a build error/warning that is fixed by
>>> adding an #include of a header file.
>>>
>>> ../arch/sh/include/asm/checksum_32.h: In function
>>> 'csum_and_copy_from_user':
>>> ../arch/sh/include/asm/checksum_32.h:53:14: error: implicit declaration
>>> of function 'access_ok' [-Werror=implicit-function-declaration]
>>>    53 |         if (!access_ok(src, len))
>>>       |              ^~~~~~~~~
>>>
>>> Fixes: 7fe8970a78a1 ("sh32: convert to csum_and_copy_from_user()")
>>> Signed-off-by: Randy Dunlap <rdunlap@infradead.org>
>>> Cc: Al Viro <viro@zeniv.linux.org.uk>
>>> Cc: Yoshinori Sato <ysato@users.sourceforge.jp>
>>> Cc: Rich Felker <dalias@libc.org>
>>> Cc: linux-sh@vger.kernel.org
>>> Cc: John Paul Adrian Glaubitz <glaubitz@physik.fu-berlin.de>
>>> Cc: Arnd Bergmann <arnd@arndb.de>
>>> Cc: Andrew Morton <akpm@linux-foundation.org>
>>> ---
>>> v2: add Subject: and patch description
>>
>> Thanks for the fix!
>>
>>>
>>>  arch/sh/include/asm/checksum_32.h |    1 +
>>>  1 file changed, 1 insertion(+)
>>>
>>> diff -- a/arch/sh/include/asm/checksum_32.h b/arch/sh/include/asm/checksum_32.h
>>> --- a/arch/sh/include/asm/checksum_32.h
>>> +++ b/arch/sh/include/asm/checksum_32.h
>>> @@ -7,6 +7,7 @@
>>>   */
>>>
>>>  #include <linux/in6.h>
>>> +#include <asm-generic/access_ok.h>
>>
>> This will work correctly, but it is not the intended usage of the
>> header. Anything in asm-generic/*.h should only be included by
>> a particular header, usually the asm/*.h with the same name or in this
>> case the asm/uaccess.h header.
>>
>> I think the correct fix here is to include asm/uaccess.h instead
>> of asm-generic/access_ok.h.
> 
> Which should already be there, or RSN:
> https://lore.kernel.org/all/167514181688.11863.771497291150527329.git-patchwork-notify@kernel.org

Good to see that. And thanks to both of you.
  

Patch

diff -- a/arch/sh/include/asm/checksum_32.h b/arch/sh/include/asm/checksum_32.h
--- a/arch/sh/include/asm/checksum_32.h
+++ b/arch/sh/include/asm/checksum_32.h
@@ -7,6 +7,7 @@ 
  */
 
 #include <linux/in6.h>
+#include <asm-generic/access_ok.h>
 
 /*
  * computes the checksum of a memory block at buff, length len,