2017-09-19 11:48:31

by Jonathan Liu

[permalink] [raw]
Subject: [PATCH] ARM: uaccess: Add missing include for set_thread_flag

Fixes "implicit declaration of function" compile error for out-of-tree
kernel modules including asm/uaccess.h.

Fixes: 73ac5d6a2b6a ("arm/syscalls: Check address limit on user-mode return")
Signed-off-by: Jonathan Liu <[email protected]>
---
arch/arm/include/asm/uaccess.h | 1 +
1 file changed, 1 insertion(+)

diff --git a/arch/arm/include/asm/uaccess.h b/arch/arm/include/asm/uaccess.h
index 87936dd5d151..13d1877ffb75 100644
--- a/arch/arm/include/asm/uaccess.h
+++ b/arch/arm/include/asm/uaccess.h
@@ -17,6 +17,7 @@
#include <asm/unified.h>
#include <asm/compiler.h>

+#include <linux/thread_info.h>
#include <asm/extable.h>

/*
--
2.13.2


2017-09-19 14:32:19

by Thomas Garnier

[permalink] [raw]
Subject: Re: [PATCH] ARM: uaccess: Add missing include for set_thread_flag

On Tue, Sep 19, 2017 at 4:50 AM, Jonathan Liu <[email protected]> wrote:
> Fixes "implicit declaration of function" compile error for out-of-tree
> kernel modules including asm/uaccess.h.

I failed to reproduce this issue by creating an out of tree module
with a separate file (with only uaccess.h). Are you using a special
config?

Looking at the headers on uaccess.h. You get thread_info through:

asm/domain.h -> asm/thread_info.h

>
> Fixes: 73ac5d6a2b6a ("arm/syscalls: Check address limit on user-mode return")
> Signed-off-by: Jonathan Liu <[email protected]>
> ---
> arch/arm/include/asm/uaccess.h | 1 +
> 1 file changed, 1 insertion(+)
>
> diff --git a/arch/arm/include/asm/uaccess.h b/arch/arm/include/asm/uaccess.h
> index 87936dd5d151..13d1877ffb75 100644
> --- a/arch/arm/include/asm/uaccess.h
> +++ b/arch/arm/include/asm/uaccess.h
> @@ -17,6 +17,7 @@
> #include <asm/unified.h>
> #include <asm/compiler.h>
>
> +#include <linux/thread_info.h>
> #include <asm/extable.h>
>
> /*
> --
> 2.13.2
>



--
Thomas

2017-09-19 21:35:26

by Jonathan Liu

[permalink] [raw]
Subject: Re: [PATCH] ARM: uaccess: Add missing include for set_thread_flag

Hi Thomas,

The top of the C source file I am compiling has:
#include <linux/kernel.h>
#include <asm/uaccess.h>

Tracing through the asm/uaccess.h include I see
asm/uaccess.h -> asm/domain.h -> asm/thread_info.h

but set_thread_info is defined in linux/thread_info.h not
asm/thread_info.h (see
http://elixir.free-electrons.com/linux/v4.14-rc1/ident/set_thread_flag).

Regards,
Jonathan

On 20 September 2017 at 00:32, Thomas Garnier <[email protected]> wrote:
> On Tue, Sep 19, 2017 at 4:50 AM, Jonathan Liu <[email protected]> wrote:
>> Fixes "implicit declaration of function" compile error for out-of-tree
>> kernel modules including asm/uaccess.h.
>
> I failed to reproduce this issue by creating an out of tree module
> with a separate file (with only uaccess.h). Are you using a special
> config?
>
> Looking at the headers on uaccess.h. You get thread_info through:
>
> asm/domain.h -> asm/thread_info.h
>
>>
>> Fixes: 73ac5d6a2b6a ("arm/syscalls: Check address limit on user-mode return")
>> Signed-off-by: Jonathan Liu <[email protected]>
>> ---
>> arch/arm/include/asm/uaccess.h | 1 +
>> 1 file changed, 1 insertion(+)
>>
>> diff --git a/arch/arm/include/asm/uaccess.h b/arch/arm/include/asm/uaccess.h
>> index 87936dd5d151..13d1877ffb75 100644
>> --- a/arch/arm/include/asm/uaccess.h
>> +++ b/arch/arm/include/asm/uaccess.h
>> @@ -17,6 +17,7 @@
>> #include <asm/unified.h>
>> #include <asm/compiler.h>
>>
>> +#include <linux/thread_info.h>
>> #include <asm/extable.h>
>>
>> /*
>> --
>> 2.13.2
>>
>
>
>
> --
> Thomas

2017-09-20 16:31:35

by Thomas Garnier

[permalink] [raw]
Subject: Re: [PATCH] ARM: uaccess: Add missing include for set_thread_flag

On Tue, Sep 19, 2017 at 2:35 PM, Jonathan Liu <[email protected]> wrote:
>
> Hi Thomas,
>
> The top of the C source file I am compiling has:
> #include <linux/kernel.h>
> #include <asm/uaccess.h>
>
> Tracing through the asm/uaccess.h include I see
> asm/uaccess.h -> asm/domain.h -> asm/thread_info.h
>
> but set_thread_info is defined in linux/thread_info.h not
> asm/thread_info.h (see
> http://elixir.free-electrons.com/linux/v4.14-rc1/ident/set_thread_flag).

I see, I think I could not reproduce this issue because I already
reverted the original commit in favor of a different approach on
linux-next (see commit 2404269bc4e77a67875c8db6667be34c9913c96e).

Let me know if this commit resolve the issue and thanks for reaching out.

>
> Regards,
> Jonathan
>
> On 20 September 2017 at 00:32, Thomas Garnier <[email protected]> wrote:
> > On Tue, Sep 19, 2017 at 4:50 AM, Jonathan Liu <[email protected]> wrote:
> >> Fixes "implicit declaration of function" compile error for out-of-tree
> >> kernel modules including asm/uaccess.h.
> >
> > I failed to reproduce this issue by creating an out of tree module
> > with a separate file (with only uaccess.h). Are you using a special
> > config?
> >
> > Looking at the headers on uaccess.h. You get thread_info through:
> >
> > asm/domain.h -> asm/thread_info.h
> >
> >>
> >> Fixes: 73ac5d6a2b6a ("arm/syscalls: Check address limit on user-mode return")
> >> Signed-off-by: Jonathan Liu <[email protected]>
> >> ---
> >> arch/arm/include/asm/uaccess.h | 1 +
> >> 1 file changed, 1 insertion(+)
> >>
> >> diff --git a/arch/arm/include/asm/uaccess.h b/arch/arm/include/asm/uaccess.h
> >> index 87936dd5d151..13d1877ffb75 100644
> >> --- a/arch/arm/include/asm/uaccess.h
> >> +++ b/arch/arm/include/asm/uaccess.h
> >> @@ -17,6 +17,7 @@
> >> #include <asm/unified.h>
> >> #include <asm/compiler.h>
> >>
> >> +#include <linux/thread_info.h>
> >> #include <asm/extable.h>
> >>
> >> /*
> >> --
> >> 2.13.2
> >>
> >
> >
> >
> > --
> > Thomas




--
Thomas

2017-09-20 22:03:39

by Jonathan Liu

[permalink] [raw]
Subject: Re: [PATCH] ARM: uaccess: Add missing include for set_thread_flag

Hi Thomas,

On 21 September 2017 at 02:31, Thomas Garnier <[email protected]> wrote:
> On Tue, Sep 19, 2017 at 2:35 PM, Jonathan Liu <[email protected]> wrote:
>>
>> Hi Thomas,
>>
>> The top of the C source file I am compiling has:
>> #include <linux/kernel.h>
>> #include <asm/uaccess.h>
>>
>> Tracing through the asm/uaccess.h include I see
>> asm/uaccess.h -> asm/domain.h -> asm/thread_info.h
>>
>> but set_thread_info is defined in linux/thread_info.h not
>> asm/thread_info.h (see
>> http://elixir.free-electrons.com/linux/v4.14-rc1/ident/set_thread_flag).
>
> I see, I think I could not reproduce this issue because I already
> reverted the original commit in favor of a different approach on
> linux-next (see commit 2404269bc4e77a67875c8db6667be34c9913c96e).
>
> Let me know if this commit resolve the issue and thanks for reaching out.
>

Cherry-picking commit 2404269bc4e77a67875c8db6667be34c9913c96e on top
of 4.14-rc1 resolves the issue.
Thanks.

>>
>> Regards,
>> Jonathan
>>
>> On 20 September 2017 at 00:32, Thomas Garnier <[email protected]> wrote:
>> > On Tue, Sep 19, 2017 at 4:50 AM, Jonathan Liu <[email protected]> wrote:
>> >> Fixes "implicit declaration of function" compile error for out-of-tree
>> >> kernel modules including asm/uaccess.h.
>> >
>> > I failed to reproduce this issue by creating an out of tree module
>> > with a separate file (with only uaccess.h). Are you using a special
>> > config?
>> >
>> > Looking at the headers on uaccess.h. You get thread_info through:
>> >
>> > asm/domain.h -> asm/thread_info.h
>> >
>> >>
>> >> Fixes: 73ac5d6a2b6a ("arm/syscalls: Check address limit on user-mode return")
>> >> Signed-off-by: Jonathan Liu <[email protected]>
>> >> ---
>> >> arch/arm/include/asm/uaccess.h | 1 +
>> >> 1 file changed, 1 insertion(+)
>> >>
>> >> diff --git a/arch/arm/include/asm/uaccess.h b/arch/arm/include/asm/uaccess.h
>> >> index 87936dd5d151..13d1877ffb75 100644
>> >> --- a/arch/arm/include/asm/uaccess.h
>> >> +++ b/arch/arm/include/asm/uaccess.h
>> >> @@ -17,6 +17,7 @@
>> >> #include <asm/unified.h>
>> >> #include <asm/compiler.h>
>> >>
>> >> +#include <linux/thread_info.h>
>> >> #include <asm/extable.h>
>> >>
>> >> /*
>> >> --
>> >> 2.13.2
>> >>
>> >
>> >
>> >
>> > --
>> > Thomas
>
>
>
>
> --
> Thomas

Regards,
Jonathan