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

From: Russell King - ARM Linux
Date: Sun Feb 12 2017 - 03:32:29 EST


The facts of this are:

linux/kprobes.h includes asm/kprobes.h

linux/kprobes.h wants the architecture to define struct kprobe_ctlblk.
arch/mn10300/include/asm/kprobes.h fails to define this structure.

So, I've no idea how kprobes can even work on this architecture. AFAICS
it should not allow kprobes to be enabled.

This problem needs resolving by the mn10300 maintainer. I can do nothing
about it.

On Sun, Feb 12, 2017 at 03:41:10PM +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: 1ce42845f987e92eabfc6e026d44d826c25c74a5
> commit: b2c0b2cbb282f0cf42518ffacbe197e6f2884168 nmi: create generic NMI backtrace implementation
> date: 1 year, 7 months ago
> config: mn10300-allyesconfig (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.