lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [day] [month] [year] [list]
Message-ID: <202107120518.5SLoeeWK-lkp@intel.com>
Date:   Mon, 12 Jul 2021 05:19:20 +0800
From:   kernel test robot <lkp@...el.com>
To:     Josh Poimboeuf <jpoimboe@...hat.com>
Cc:     kbuild-all@...ts.01.org, linux-kernel@...r.kernel.org,
        Masami Hiramatsu <mhiramat@...nel.org>
Subject: [mhiramat:kprobes/kretprobe-stackfix-v9 14/22]
 arch/x86/kernel/kprobes/core.c:1061:1: warning: data definition has no type
 or storage class

tree:   https://git.kernel.org/pub/scm/linux/kernel/git/mhiramat/linux.git kprobes/kretprobe-stackfix-v9
head:   7a69e2b70adeabbf3e3c1be8a18b43188c4d085d
commit: e4d6ef1b03f84257031acd58c208dd0ffa92548c [14/22] x86/kprobes: Add UNWIND_HINT_FUNC on kretprobe_trampoline()
config: i386-randconfig-a002-20210712 (attached as .config)
compiler: gcc-9 (Debian 9.3.0-22) 9.3.0
reproduce (this is a W=1 build):
        # https://git.kernel.org/pub/scm/linux/kernel/git/mhiramat/linux.git/commit/?id=e4d6ef1b03f84257031acd58c208dd0ffa92548c
        git remote add mhiramat https://git.kernel.org/pub/scm/linux/kernel/git/mhiramat/linux.git
        git fetch --no-tags mhiramat kprobes/kretprobe-stackfix-v9
        git checkout e4d6ef1b03f84257031acd58c208dd0ffa92548c
        # save the attached .config to linux build tree
        mkdir build_dir
        make W=1 O=build_dir ARCH=i386 SHELL=/bin/bash arch/x86/kernel/kprobes/

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

All warnings (new ones prefixed by >>):

>> arch/x86/kernel/kprobes/core.c:1061:1: warning: data definition has no type or storage class
    1061 | STACK_FRAME_NON_STANDARD_FP(__kretprobe_trampoline);
         | ^~~~~~~~~~~~~~~~~~~~~~~~~~~
   arch/x86/kernel/kprobes/core.c:1061:1: error: type defaults to 'int' in declaration of 'STACK_FRAME_NON_STANDARD_FP' [-Werror=implicit-int]
>> arch/x86/kernel/kprobes/core.c:1061:1: warning: parameter names (without types) in function declaration
   arch/x86/kernel/kprobes/core.c:1066:24: warning: no previous prototype for 'trampoline_handler' [-Wmissing-prototypes]
    1066 | __used __visible void *trampoline_handler(struct pt_regs *regs)
         |                        ^~~~~~~~~~~~~~~~~~
   cc1: some warnings being treated as errors


vim +1061 arch/x86/kernel/kprobes/core.c

  1015	
  1016	/*
  1017	 * When a retprobed function returns, this code saves registers and
  1018	 * calls trampoline_handler() runs, which calls the kretprobe's handler.
  1019	 */
  1020	asm(
  1021		".text\n"
  1022		".global __kretprobe_trampoline\n"
  1023		".type __kretprobe_trampoline, @function\n"
  1024		"__kretprobe_trampoline:\n"
  1025		/* We don't bother saving the ss register */
  1026	#ifdef CONFIG_X86_64
  1027		"	pushq %rsp\n"
  1028		UNWIND_HINT_FUNC
  1029		"	pushfq\n"
  1030		SAVE_REGS_STRING
  1031		"	movq %rsp, %rdi\n"
  1032		"	call trampoline_handler\n"
  1033		/* Replace saved sp with true return address. */
  1034		"	movq %rax, 19*8(%rsp)\n"
  1035		RESTORE_REGS_STRING
  1036		"	popfq\n"
  1037	#else
  1038		"	pushl %esp\n"
  1039		UNWIND_HINT_FUNC
  1040		"	pushfl\n"
  1041		SAVE_REGS_STRING
  1042		"	movl %esp, %eax\n"
  1043		"	call trampoline_handler\n"
  1044		/* Replace saved sp with true return address. */
  1045		"	movl %eax, 15*4(%esp)\n"
  1046		RESTORE_REGS_STRING
  1047		"	popfl\n"
  1048	#endif
  1049		"	ret\n"
  1050		".size __kretprobe_trampoline, .-__kretprobe_trampoline\n"
  1051	);
  1052	NOKPROBE_SYMBOL(__kretprobe_trampoline);
  1053	/*
  1054	 * __kretprobe_trampoline() skips updating frame pointer. The frame pointer
  1055	 * saved in trampoline_handler() points to the real caller function's
  1056	 * frame pointer. Thus the __kretprobe_trampoline() doesn't have a
  1057	 * standard stack frame with CONFIG_FRAME_POINTER=y.
  1058	 * Let's mark it non-standard function. Anyway, FP unwinder can correctly
  1059	 * unwind without the hint.
  1060	 */
> 1061	STACK_FRAME_NON_STANDARD_FP(__kretprobe_trampoline);
  1062	

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

Download attachment ".config.gz" of type "application/gzip" (40440 bytes)

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ