Re: include/linux/kprobes.h:361:2: error: invalid use of undefined type 'struct kprobe_ctlblk'

From: Russell King - ARM Linux
Date: Sun Nov 13 2016 - 04:02:16 EST


lib/nmi-backtrace.c needs linux/kprobes.h to get at the definition of
NOKPROBE_SYMBOL().

I guess MN10300 does not support CONFIG_KPROBES=y. CONFIG_KPROBES=y
requires the architecture asm/kprobes.h to define this structure,
and mn10300 does not.

I guess that as things like the scheduler also include linux/kprobes.h,
this is not the only instance of this error when building mn10300 with
KPROBES enabled.

So, I guess that there's nothing that can be done about the build error
other than "don't build mn10300 with KPROBES enabled".

On Sun, Nov 13, 2016 at 09:09:26AM +0800, kbuild test robot wrote:
> Hi Russell,
>
> FYI, the error/warning still remains.
>
> tree: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
> head: 86e4ee760ef2f7571e233a3abf065ffd0bb4089d
> commit: b2c0b2cbb282f0cf42518ffacbe197e6f2884168 nmi: create generic NMI backtrace implementation
> date: 1 year, 4 months ago
> config: mn10300-allmodconfig (attached as .config)
> compiler: am33_2.0-linux-gcc (GCC) 6.2.0
> reproduce:
> wget https://git.kernel.org/cgit/linux/kernel/git/wfg/lkp-tests.git/plain/sbin/make.cross -O ~/bin/make.cross
> chmod +x ~/bin/make.cross
> git checkout b2c0b2cbb282f0cf42518ffacbe197e6f2884168
> # save the attached .config to linux build tree
> make.cross ARCH=mn10300
>
> All errors (new ones prefixed by >>):
>
> In file included from lib/nmi_backtrace.c:17:0:
> include/linux/kprobes.h: In function 'get_kprobe_ctlblk':
> >> include/linux/kprobes.h:361:2: error: invalid use of undefined type 'struct kprobe_ctlblk'
> return this_cpu_ptr(&kprobe_ctlblk);
> ^~~~~~
>
> vim +361 include/linux/kprobes.h
>
> e65845235 Ananth N Mavinakayanahalli 2005-11-07 355 {
> b76834bc1 Christoph Lameter 2010-12-06 356 __this_cpu_write(current_kprobe, NULL);
> e65845235 Ananth N Mavinakayanahalli 2005-11-07 357 }
> e65845235 Ananth N Mavinakayanahalli 2005-11-07 358
> e65845235 Ananth N Mavinakayanahalli 2005-11-07 359 static inline struct kprobe_ctlblk *get_kprobe_ctlblk(void)
> e65845235 Ananth N Mavinakayanahalli 2005-11-07 360 {
> bdffd893a Christoph Lameter 2014-04-29 @361 return this_cpu_ptr(&kprobe_ctlblk);
> e65845235 Ananth N Mavinakayanahalli 2005-11-07 362 }
> e65845235 Ananth N Mavinakayanahalli 2005-11-07 363
> ^1da177e4 Linus Torvalds 2005-04-16 364 int register_kprobe(struct kprobe *p);
>
> :::::: The code at line 361 was first introduced by commit
> :::::: bdffd893a0e9c431304142d12d9a0a21d365c502 tracing: Replace __get_cpu_var uses with this_cpu_ptr
>
> :::::: TO: Christoph Lameter <cl@xxxxxxxxx>
> :::::: CC: Steven Rostedt <rostedt@xxxxxxxxxxx>
>
> ---
> 0-DAY kernel test infrastructure Open Source Technology Center
> https://lists.01.org/pipermail/kbuild-all Intel Corporation



--
RMK's Patch system: http://www.armlinux.org.uk/developer/patches/
FTTC broadband for 0.8mile line: currently at 9.6Mbps down 400kbps up
according to speedtest.net.