Re: [PATCH 1/3] asm-prototypes: Clear any CPP defines before declaring the functions

2017-01-05 Thread Michal Marek
On 2017-01-05 10:33, Borislav Petkov wrote:
> On Tue, Jan 03, 2017 at 03:14:54PM +0100, Michal Marek wrote:
>> During real build, this manifests itself by genksyms segfaulting.
>>
>> Reported-by: Borislav Petkov 
> 
> ... -and-tested-by: ...
> 
> For all three.
> 
> Thanks!

Thanks for testing. I added 1/3 to kbuild.git#rc-fixes for -rc3 and the
remaining two to kbuild.git#kbuild for the next merge window.

Michal



Re: [PATCH 1/3] asm-prototypes: Clear any CPP defines before declaring the functions

2017-01-05 Thread Michal Marek
On 2017-01-05 10:33, Borislav Petkov wrote:
> On Tue, Jan 03, 2017 at 03:14:54PM +0100, Michal Marek wrote:
>> During real build, this manifests itself by genksyms segfaulting.
>>
>> Reported-by: Borislav Petkov 
> 
> ... -and-tested-by: ...
> 
> For all three.
> 
> Thanks!

Thanks for testing. I added 1/3 to kbuild.git#rc-fixes for -rc3 and the
remaining two to kbuild.git#kbuild for the next merge window.

Michal



Re: [PATCH 1/3] asm-prototypes: Clear any CPP defines before declaring the functions

2017-01-05 Thread Borislav Petkov
On Tue, Jan 03, 2017 at 03:14:54PM +0100, Michal Marek wrote:
> The asm-prototypes.h file is used to provide dummy function declarations
> for genksyms, when processing asm files with EXPORT_SYMBOL. Make sure
> that any architecture defines get out of our way. x86 currently has an
> issue with memcpy on 64bit with CONFIG_KMEMCHECK=y and with
> memset/__memset on 32bit:
> 
>   $ cat init/test.c
>   #include 
>   $ make -s init/test.o
>   $ make -s init/test.o
>   In file included from ./arch/x86/include/asm/string.h:4:0,
>from ./include/linux/string.h:18,
>from ./include/linux/bitmap.h:8,
>from ./include/linux/cpumask.h:11,
>from ./arch/x86/include/asm/cpumask.h:4,
>from ./arch/x86/include/asm/msr.h:10,
>from ./arch/x86/include/asm/processor.h:20,
>from ./arch/x86/include/asm/cpufeature.h:4,
>from ./arch/x86/include/asm/thread_info.h:52,
>from ./include/linux/thread_info.h:25,
>from ./arch/x86/include/asm/preempt.h:6,
>from ./include/linux/preempt.h:59,
>from ./include/linux/spinlock.h:50,
>from ./include/linux/seqlock.h:35,
>from ./include/linux/time.h:5,
>from ./include/uapi/linux/timex.h:56,
>from ./include/linux/timex.h:56,
>from ./include/linux/sched.h:19,
>from ./include/linux/uaccess.h:4,
>from ./arch/x86/include/asm/asm-prototypes.h:2,
>from init/test.c:1:
>   ./arch/x86/include/asm/string_64.h:52:47: error: expected declaration 
> specifiers or ‘...’ before ‘(’ token
>#define memcpy(dst, src, len) __inline_memcpy((dst), (src), (len))
>./include/asm-generic/asm-prototypes.h:6:14: note: in expansion of 
> macro ‘memcpy’
> extern void *memcpy(void *, const void *, __kernel_size_t);
> 
>  ^
>   ...
> 
> During real build, this manifests itself by genksyms segfaulting.
> 
> Reported-by: Borislav Petkov 

... -and-tested-by: ...

For all three.

Thanks!

-- 
Regards/Gruss,
Boris.

Good mailing practices for 400: avoid top-posting and trim the reply.


Re: [PATCH 1/3] asm-prototypes: Clear any CPP defines before declaring the functions

2017-01-05 Thread Borislav Petkov
On Tue, Jan 03, 2017 at 03:14:54PM +0100, Michal Marek wrote:
> The asm-prototypes.h file is used to provide dummy function declarations
> for genksyms, when processing asm files with EXPORT_SYMBOL. Make sure
> that any architecture defines get out of our way. x86 currently has an
> issue with memcpy on 64bit with CONFIG_KMEMCHECK=y and with
> memset/__memset on 32bit:
> 
>   $ cat init/test.c
>   #include 
>   $ make -s init/test.o
>   $ make -s init/test.o
>   In file included from ./arch/x86/include/asm/string.h:4:0,
>from ./include/linux/string.h:18,
>from ./include/linux/bitmap.h:8,
>from ./include/linux/cpumask.h:11,
>from ./arch/x86/include/asm/cpumask.h:4,
>from ./arch/x86/include/asm/msr.h:10,
>from ./arch/x86/include/asm/processor.h:20,
>from ./arch/x86/include/asm/cpufeature.h:4,
>from ./arch/x86/include/asm/thread_info.h:52,
>from ./include/linux/thread_info.h:25,
>from ./arch/x86/include/asm/preempt.h:6,
>from ./include/linux/preempt.h:59,
>from ./include/linux/spinlock.h:50,
>from ./include/linux/seqlock.h:35,
>from ./include/linux/time.h:5,
>from ./include/uapi/linux/timex.h:56,
>from ./include/linux/timex.h:56,
>from ./include/linux/sched.h:19,
>from ./include/linux/uaccess.h:4,
>from ./arch/x86/include/asm/asm-prototypes.h:2,
>from init/test.c:1:
>   ./arch/x86/include/asm/string_64.h:52:47: error: expected declaration 
> specifiers or ‘...’ before ‘(’ token
>#define memcpy(dst, src, len) __inline_memcpy((dst), (src), (len))
>./include/asm-generic/asm-prototypes.h:6:14: note: in expansion of 
> macro ‘memcpy’
> extern void *memcpy(void *, const void *, __kernel_size_t);
> 
>  ^
>   ...
> 
> During real build, this manifests itself by genksyms segfaulting.
> 
> Reported-by: Borislav Petkov 

... -and-tested-by: ...

For all three.

Thanks!

-- 
Regards/Gruss,
Boris.

Good mailing practices for 400: avoid top-posting and trim the reply.


[PATCH 1/3] asm-prototypes: Clear any CPP defines before declaring the functions

2017-01-03 Thread Michal Marek
The asm-prototypes.h file is used to provide dummy function declarations
for genksyms, when processing asm files with EXPORT_SYMBOL. Make sure
that any architecture defines get out of our way. x86 currently has an
issue with memcpy on 64bit with CONFIG_KMEMCHECK=y and with
memset/__memset on 32bit:

$ cat init/test.c
#include 
$ make -s init/test.o
$ make -s init/test.o
In file included from ./arch/x86/include/asm/string.h:4:0,
 from ./include/linux/string.h:18,
 from ./include/linux/bitmap.h:8,
 from ./include/linux/cpumask.h:11,
 from ./arch/x86/include/asm/cpumask.h:4,
 from ./arch/x86/include/asm/msr.h:10,
 from ./arch/x86/include/asm/processor.h:20,
 from ./arch/x86/include/asm/cpufeature.h:4,
 from ./arch/x86/include/asm/thread_info.h:52,
 from ./include/linux/thread_info.h:25,
 from ./arch/x86/include/asm/preempt.h:6,
 from ./include/linux/preempt.h:59,
 from ./include/linux/spinlock.h:50,
 from ./include/linux/seqlock.h:35,
 from ./include/linux/time.h:5,
 from ./include/uapi/linux/timex.h:56,
 from ./include/linux/timex.h:56,
 from ./include/linux/sched.h:19,
 from ./include/linux/uaccess.h:4,
 from ./arch/x86/include/asm/asm-prototypes.h:2,
 from init/test.c:1:
./arch/x86/include/asm/string_64.h:52:47: error: expected declaration 
specifiers or ‘...’ before ‘(’ token
 #define memcpy(dst, src, len) __inline_memcpy((dst), (src), (len))
 ./include/asm-generic/asm-prototypes.h:6:14: note: in expansion of 
macro ‘memcpy’
  extern void *memcpy(void *, const void *, __kernel_size_t);

   ^
...

During real build, this manifests itself by genksyms segfaulting.

Reported-by: Borislav Petkov 
Cc: Adam Borowski 
Signed-off-by: Michal Marek 
---
 include/asm-generic/asm-prototypes.h | 6 ++
 1 file changed, 6 insertions(+)

diff --git a/include/asm-generic/asm-prototypes.h 
b/include/asm-generic/asm-prototypes.h
index df13637e4017..939869c772b1 100644
--- a/include/asm-generic/asm-prototypes.h
+++ b/include/asm-generic/asm-prototypes.h
@@ -1,7 +1,13 @@
 #include 
+#undef __memset
 extern void *__memset(void *, int, __kernel_size_t);
+#undef __memcpy
 extern void *__memcpy(void *, const void *, __kernel_size_t);
+#undef __memmove
 extern void *__memmove(void *, const void *, __kernel_size_t);
+#undef memset
 extern void *memset(void *, int, __kernel_size_t);
+#undef memcpy
 extern void *memcpy(void *, const void *, __kernel_size_t);
+#undef memmove
 extern void *memmove(void *, const void *, __kernel_size_t);
-- 
2.10.2



[PATCH 1/3] asm-prototypes: Clear any CPP defines before declaring the functions

2017-01-03 Thread Michal Marek
The asm-prototypes.h file is used to provide dummy function declarations
for genksyms, when processing asm files with EXPORT_SYMBOL. Make sure
that any architecture defines get out of our way. x86 currently has an
issue with memcpy on 64bit with CONFIG_KMEMCHECK=y and with
memset/__memset on 32bit:

$ cat init/test.c
#include 
$ make -s init/test.o
$ make -s init/test.o
In file included from ./arch/x86/include/asm/string.h:4:0,
 from ./include/linux/string.h:18,
 from ./include/linux/bitmap.h:8,
 from ./include/linux/cpumask.h:11,
 from ./arch/x86/include/asm/cpumask.h:4,
 from ./arch/x86/include/asm/msr.h:10,
 from ./arch/x86/include/asm/processor.h:20,
 from ./arch/x86/include/asm/cpufeature.h:4,
 from ./arch/x86/include/asm/thread_info.h:52,
 from ./include/linux/thread_info.h:25,
 from ./arch/x86/include/asm/preempt.h:6,
 from ./include/linux/preempt.h:59,
 from ./include/linux/spinlock.h:50,
 from ./include/linux/seqlock.h:35,
 from ./include/linux/time.h:5,
 from ./include/uapi/linux/timex.h:56,
 from ./include/linux/timex.h:56,
 from ./include/linux/sched.h:19,
 from ./include/linux/uaccess.h:4,
 from ./arch/x86/include/asm/asm-prototypes.h:2,
 from init/test.c:1:
./arch/x86/include/asm/string_64.h:52:47: error: expected declaration 
specifiers or ‘...’ before ‘(’ token
 #define memcpy(dst, src, len) __inline_memcpy((dst), (src), (len))
 ./include/asm-generic/asm-prototypes.h:6:14: note: in expansion of 
macro ‘memcpy’
  extern void *memcpy(void *, const void *, __kernel_size_t);

   ^
...

During real build, this manifests itself by genksyms segfaulting.

Reported-by: Borislav Petkov 
Cc: Adam Borowski 
Signed-off-by: Michal Marek 
---
 include/asm-generic/asm-prototypes.h | 6 ++
 1 file changed, 6 insertions(+)

diff --git a/include/asm-generic/asm-prototypes.h 
b/include/asm-generic/asm-prototypes.h
index df13637e4017..939869c772b1 100644
--- a/include/asm-generic/asm-prototypes.h
+++ b/include/asm-generic/asm-prototypes.h
@@ -1,7 +1,13 @@
 #include 
+#undef __memset
 extern void *__memset(void *, int, __kernel_size_t);
+#undef __memcpy
 extern void *__memcpy(void *, const void *, __kernel_size_t);
+#undef __memmove
 extern void *__memmove(void *, const void *, __kernel_size_t);
+#undef memset
 extern void *memset(void *, int, __kernel_size_t);
+#undef memcpy
 extern void *memcpy(void *, const void *, __kernel_size_t);
+#undef memmove
 extern void *memmove(void *, const void *, __kernel_size_t);
-- 
2.10.2