Skip to contentSkip to conversation

ARM: uaccess: Add missing include for set_thread_flag

PATCH In review Jonathan Liu 2 participants 5 messages Sep 19, 2017 – Sep 20, 2017 Arm (32-bit)

lore
Share & tools
lore
#0 lore raw

PATCH 1/1 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")
---
 arch/arm/include/asm/uaccess.h | 1 +
 1 file changed, 1 insertion(+)
arch/arm/include/asm/uaccess.h +1 -0
index 87936dd5d151..13d1877ffb75 100644
@@ -17,6 +17,7 @@
 #include <asm/unified.h>
 #include <asm/compiler.h>
 
+#include <linux/thread_info.h>
 #include <asm/extable.h>
 
 /*
Signature · 1 line
2.13.2
#1 lore raw
Quoted 2 lines · Jonathan Liu

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

Quoted 22 lines
Fixes 73ac5d6a2b6a ("arm/syscalls: Check address limit on user-mode return")
---
 arch/arm/include/asm/uaccess.h | 1 +
 1 file changed, 1 insertion(+)
arch/arm/include/asm/uaccess.h +1 -1
index 87936dd5d151..13d1877ffb75 100644
@@ -17,6 +17,7 @@
 #include <asm/unified.h>
 #include <asm/compiler.h>
 
+#include <linux/thread_info.h>
 #include <asm/extable.h>
 
 /*
--

2.13.2

Signature · 1 line
Thomas
#2 lore raw

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

Quoted 39 lines · Thomas Garnier
Quoted 2 lines · Jonathan Liu

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

Quoted 20 lines
Fixes 73ac5d6a2b6a ("arm/syscalls: Check address limit on user-mode return")
---
 arch/arm/include/asm/uaccess.h | 1 +
 1 file changed, 1 insertion(+)
arch/arm/include/asm/uaccess.h +1 -1
index 87936dd5d151..13d1877ffb75 100644
@@ -17,6 +17,7 @@
 #include <asm/unified.h>
 #include <asm/compiler.h>
 
+#include <linux/thread_info.h>
 #include <asm/extable.h>
 
 /*
--
Quoted 2 lines

2.13.2

--
Thomas

#3 lore raw
Quoted 7 lines · Jonathan Liu

Hi Thomas,

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

Quoted 6 lines

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.

Quoted 44 lines

Regards,
Jonathan

Quoted 39 lines · Thomas Garnier
Quoted 2 lines · Jonathan Liu

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

Quoted 20 lines
Fixes 73ac5d6a2b6a ("arm/syscalls: Check address limit on user-mode return")
---
 arch/arm/include/asm/uaccess.h | 1 +
 1 file changed, 1 insertion(+)
arch/arm/include/asm/uaccess.h +1 -1
index 87936dd5d151..13d1877ffb75 100644
@@ -17,6 +17,7 @@
 #include <asm/unified.h>
 #include <asm/compiler.h>
 
+#include <linux/thread_info.h>
 #include <asm/extable.h>
 
 /*
--
Quoted 2 lines

2.13.2

--
Thomas

Signature · 1 line
Thomas
#4 lore raw

Hi Thomas,

Quoted 15 lines · Thomas Garnier
Quoted 7 lines · Jonathan Liu

Hi Thomas,

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

Quoted 6 lines

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

Quoted 6 lines

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.

Quoted 48 lines
Quoted 44 lines

Regards,
Jonathan

Quoted 39 lines · Thomas Garnier
Quoted 2 lines · Jonathan Liu

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

Quoted 20 lines
Fixes 73ac5d6a2b6a ("arm/syscalls: Check address limit on user-mode return")
---
 arch/arm/include/asm/uaccess.h | 1 +
 1 file changed, 1 insertion(+)
arch/arm/include/asm/uaccess.h +1 -1
index 87936dd5d151..13d1877ffb75 100644
@@ -17,6 +17,7 @@
 #include <asm/unified.h>
 #include <asm/compiler.h>
 
+#include <linux/thread_info.h>
 #include <asm/extable.h>
 
 /*
--
Quoted 2 lines

2.13.2

--
Thomas

Quoted 2 lines

--
Thomas

Regards,
Jonathan