* [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