linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [jolsa-perf:kprobe/multi 4/13] include/linux/kprobes.h:76:21: error: field has incomplete type 'struct ftrace_ops'
@ 2021-12-27 18:18 kernel test robot
  0 siblings, 0 replies; only message in thread
From: kernel test robot @ 2021-12-27 18:18 UTC (permalink / raw)
  To: Jiri Olsa; +Cc: llvm, kbuild-all, linux-kernel

tree:   https://git.kernel.org/pub/scm/linux/kernel/git/jolsa/perf.git kprobe/multi
head:   bc59262730d5cfc95d6cae84f247d2e8690a309b
commit: 9ea9f7bc2b16659a9932cc80aed62216856c111e [4/13] kprobe: Add support to register multiple ftrace kprobes
config: arm64-randconfig-r033-20211227 (https://download.01.org/0day-ci/archive/20211228/202112280215.yJhYdrvd-lkp@intel.com/config)
compiler: clang version 14.0.0 (https://github.com/llvm/llvm-project 511726c64d3b6cca66f7c54d457d586aa3129f67)
reproduce (this is a W=1 build):
        wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
        chmod +x ~/bin/make.cross
        # install arm64 cross compiling tool for clang build
        # apt-get install binutils-aarch64-linux-gnu
        # https://git.kernel.org/pub/scm/linux/kernel/git/jolsa/perf.git/commit/?id=9ea9f7bc2b16659a9932cc80aed62216856c111e
        git remote add jolsa-perf https://git.kernel.org/pub/scm/linux/kernel/git/jolsa/perf.git
        git fetch --no-tags jolsa-perf kprobe/multi
        git checkout 9ea9f7bc2b16659a9932cc80aed62216856c111e
        # save the config file to linux build tree
        mkdir build_dir
        COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross W=1 O=build_dir ARCH=arm64 prepare

If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@intel.com>

All errors (new ones prefixed by >>):

   In file included from arch/arm64/kernel/asm-offsets.c:15:
   In file included from include/linux/kvm_host.h:39:
   In file included from arch/arm64/include/asm/kvm_host.h:21:
   In file included from arch/arm64/include/asm/arch_gicv3.h:17:
   In file included from arch/arm64/include/asm/cacheflush.h:11:
   In file included from include/linux/kgdb.h:19:
>> include/linux/kprobes.h:76:21: error: field has incomplete type 'struct ftrace_ops'
                   struct ftrace_ops ops;
                                     ^
   include/linux/ftrace.h:332:8: note: forward declaration of 'struct ftrace_ops'
   struct ftrace_ops;
          ^
   1 error generated.
   make[2]: *** [scripts/Makefile.build:121: arch/arm64/kernel/asm-offsets.s] Error 1
   make[2]: Target '__build' not remade because of errors.
   make[1]: *** [Makefile:1197: prepare0] Error 2
   make[1]: Target 'prepare' not remade because of errors.
   make: *** [Makefile:219: __sub-make] Error 2
   make: Target 'prepare' not remade because of errors.


vim +76 include/linux/kprobes.h

    48	
    49	struct kprobe;
    50	struct pt_regs;
    51	struct kretprobe;
    52	struct kretprobe_instance;
    53	typedef int (*kprobe_pre_handler_t) (struct kprobe *, struct pt_regs *);
    54	typedef void (*kprobe_post_handler_t) (struct kprobe *, struct pt_regs *,
    55					       unsigned long flags);
    56	typedef int (*kretprobe_handler_t) (struct kretprobe_instance *,
    57					    struct pt_regs *);
    58	
    59	struct kprobe {
    60		struct hlist_node hlist;
    61	
    62		/* list of kprobes for multi-handler support */
    63		struct list_head list;
    64	
    65		/*count the number of times this probe was temporarily disarmed */
    66		unsigned long nmissed;
    67	
    68		/* location of the probe point */
    69		kprobe_opcode_t *addr;
    70	
    71		/* location of the multi probe points */
    72		struct {
    73			const char **symbols;
    74			kprobe_opcode_t **addrs;
    75			unsigned int cnt;
  > 76			struct ftrace_ops ops;
    77		} multi;
    78	
    79		/* Allow user to indicate symbol name of the probe point */
    80		const char *symbol_name;
    81	
    82		/* Offset into the symbol */
    83		unsigned int offset;
    84	
    85		/* traced function address */
    86		unsigned long func_addr;
    87	
    88		/* Called before addr is executed. */
    89		kprobe_pre_handler_t pre_handler;
    90	
    91		/* Called after addr is executed, unless... */
    92		kprobe_post_handler_t post_handler;
    93	
    94		/* Saved opcode (which has been replaced with breakpoint) */
    95		kprobe_opcode_t opcode;
    96	
    97		/* copy of the original instruction */
    98		struct arch_specific_insn ainsn;
    99	
   100		/*
   101		 * Indicates various status flags.
   102		 * Protected by kprobe_mutex after this kprobe is registered.
   103		 */
   104		u32 flags;
   105	};
   106	

---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org

^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2021-12-27 18:19 UTC | newest]

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-12-27 18:18 [jolsa-perf:kprobe/multi 4/13] include/linux/kprobes.h:76:21: error: field has incomplete type 'struct ftrace_ops' kernel test robot

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).