* [next:master 452/458] undefined reference to `__bad_size_call_parameter'
@ 2014-03-06 14:48 kbuild test robot
2014-03-06 21:18 ` Andrew Morton
0 siblings, 1 reply; 4+ messages in thread
From: kbuild test robot @ 2014-03-06 14:48 UTC (permalink / raw)
To: Christoph Lameter; +Cc: Linux Memory Management List, Andrew Morton, kbuild-all
tree: git://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git master
head: 0ffb2fe7b9c30082876fa3a17da018bf0632cf03
commit: 3b0fc5a9f85472be761e51de110e0aa8d15e7f41 [452/458] sh: replace __get_cpu_var uses
config: make ARCH=sh r7785rp_defconfig
All error/warnings:
arch/sh/kernel/built-in.o: In function `kprobe_exceptions_notify':
>> (.kprobes.text+0x8c8): undefined reference to `__bad_size_call_parameter'
---
0-DAY kernel build testing backend Open Source Technology Center
http://lists.01.org/mailman/listinfo/kbuild Intel Corporation
--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org. For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [next:master 452/458] undefined reference to `__bad_size_call_parameter'
2014-03-06 14:48 [next:master 452/458] undefined reference to `__bad_size_call_parameter' kbuild test robot
@ 2014-03-06 21:18 ` Andrew Morton
2014-03-07 17:07 ` Christoph Lameter
0 siblings, 1 reply; 4+ messages in thread
From: Andrew Morton @ 2014-03-06 21:18 UTC (permalink / raw)
To: kbuild test robot
Cc: Christoph Lameter, Linux Memory Management List, kbuild-all
On Thu, 06 Mar 2014 22:48:11 +0800 kbuild test robot <fengguang.wu@intel.com> wrote:
> tree: git://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git master
> head: 0ffb2fe7b9c30082876fa3a17da018bf0632cf03
> commit: 3b0fc5a9f85472be761e51de110e0aa8d15e7f41 [452/458] sh: replace __get_cpu_var uses
> config: make ARCH=sh r7785rp_defconfig
>
> All error/warnings:
>
> arch/sh/kernel/built-in.o: In function `kprobe_exceptions_notify':
> >> (.kprobes.text+0x8c8): undefined reference to `__bad_size_call_parameter'
This has me stumped - the same code
p = __this_cpu_read(current_kprobe);
works OK elsewhere in that file. I'm suspecting a miscompile - it's
not unknown for gcc to screw up when we use this trick.
I can reproduce it with gcc-3.4.5 for sh.
--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org. For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [next:master 452/458] undefined reference to `__bad_size_call_parameter'
2014-03-06 21:18 ` Andrew Morton
@ 2014-03-07 17:07 ` Christoph Lameter
2014-03-07 21:00 ` Andrew Morton
0 siblings, 1 reply; 4+ messages in thread
From: Christoph Lameter @ 2014-03-07 17:07 UTC (permalink / raw)
To: Andrew Morton; +Cc: kbuild test robot, Linux Memory Management List, kbuild-all
On Thu, 6 Mar 2014, Andrew Morton wrote:
> On Thu, 06 Mar 2014 22:48:11 +0800 kbuild test robot
> <fengguang.wu@intel.com> wrote:
> This has me stumped - the same code
>
> p = __this_cpu_read(current_kprobe);
>
> works OK elsewhere in that file. I'm suspecting a miscompile - it's
> not unknown for gcc to screw up when we use this trick.
>
> I can reproduce it with gcc-3.4.5 for sh.
This is again the autoconversion not applying because current_kprobe is
probably a pointer. __bad_size_call_parameter is failure because reads
from structures larger than word size are not supported.
p = this_cpu_ptr(¤t_kprobe);
would fix it.
--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org. For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [next:master 452/458] undefined reference to `__bad_size_call_parameter'
2014-03-07 17:07 ` Christoph Lameter
@ 2014-03-07 21:00 ` Andrew Morton
0 siblings, 0 replies; 4+ messages in thread
From: Andrew Morton @ 2014-03-07 21:00 UTC (permalink / raw)
To: Christoph Lameter
Cc: kbuild test robot, Linux Memory Management List, kbuild-all
On Fri, 7 Mar 2014 11:07:45 -0600 (CST) Christoph Lameter <cl@linux.com> wrote:
> On Thu, 6 Mar 2014, Andrew Morton wrote:
>
> > On Thu, 06 Mar 2014 22:48:11 +0800 kbuild test robot
> > <fengguang.wu@intel.com> wrote:
> > This has me stumped - the same code
> >
> > p = __this_cpu_read(current_kprobe);
> >
> > works OK elsewhere in that file. I'm suspecting a miscompile - it's
> > not unknown for gcc to screw up when we use this trick.
> >
> > I can reproduce it with gcc-3.4.5 for sh.
>
> This is again the autoconversion not applying because current_kprobe is
> probably a pointer. __bad_size_call_parameter is failure because reads
> from structures larger than word size are not supported.
>
But there are two instances of
__this_cpu_read(current_kprobe);
in arch/sh/kernel/kprobes.c. One generates the bad_size thing and one
does not.
> p = this_cpu_ptr(¤t_kprobe);
>
> would fix it.
This compiles:
--- a/arch/sh/kernel/kprobes.c~a
+++ a/arch/sh/kernel/kprobes.c
@@ -511,7 +511,7 @@ int __kprobes kprobe_exceptions_notify(s
if (kprobe_handler(args->regs)) {
ret = NOTIFY_STOP;
} else {
- p = __this_cpu_read(current_kprobe);
+ p = *this_cpu_ptr(¤t_kprobe);
if (p->break_handler &&
p->break_handler(p, args->regs))
ret = NOTIFY_STOP;
But still generates a reference to __bad_size_call_parameter.
As does this:
--- a/arch/sh/kernel/kprobes.c~a
+++ a/arch/sh/kernel/kprobes.c
@@ -249,7 +249,7 @@ static int __kprobes kprobe_handler(stru
kcb->kprobe_status = KPROBE_REENTER;
return 1;
} else {
- p = __this_cpu_read(current_kprobe);
+ p = *this_cpu_ptr(¤t_kprobe);
if (p->break_handler && p->break_handler(p, regs)) {
goto ss_probe;
}
@@ -511,7 +511,7 @@ int __kprobes kprobe_exceptions_notify(s
if (kprobe_handler(args->regs)) {
ret = NOTIFY_STOP;
} else {
- p = __this_cpu_read(current_kprobe);
+ p = *this_cpu_ptr(¤t_kprobe);
if (p->break_handler &&
p->break_handler(p, args->regs))
ret = NOTIFY_STOP;
_
--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org. For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2014-03-07 21:00 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2014-03-06 14:48 [next:master 452/458] undefined reference to `__bad_size_call_parameter' kbuild test robot
2014-03-06 21:18 ` Andrew Morton
2014-03-07 17:07 ` Christoph Lameter
2014-03-07 21:00 ` Andrew Morton
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).