[linux-next:master 10218/10296] vdso_test_getrandom.c:281:40: warning: | has lower precedence than ==; == will be evaluated first

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



tree:   https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git master
head:   9aaeb87ce1e966169a57f53a02ba05b30880ffb8
commit: 212857cd099510461127f40ae7dc21092d0c0dd1 [10218/10296] selftests: vDSO: ensure vgetrandom works in a time namespace
:::::: branch date: 2 days ago
:::::: commit date: 2 days ago
compiler: clang version 18.1.5 (https://github.com/llvm/llvm-project 617a15a9eac96088ae5e9134248d8236e34b91b1)
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20240908/202409080600.YI5mIBVR-lkp@xxxxxxxxx/reproduce)

If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <lkp@xxxxxxxxx>
| Closes: https://lore.kernel.org/r/202409080600.YI5mIBVR-lkp@xxxxxxxxx/

All warnings (new ones prefixed by >>):

>> vdso_test_getrandom.c:281:40: warning: | has lower precedence than ==; == will be evaluated first [-Wparentheses]
     281 |                 else if (WSTOPSIG(status) == SIGTRAP | 0x80) {
         |                          ~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
   vdso_test_getrandom.c:281:40: note: place parentheses around the '==' expression to silence this warning
     281 |                 else if (WSTOPSIG(status) == SIGTRAP | 0x80) {
         |                          ~~~~~~~~~~~~~~~~~~~~~~~~~~~ ^
   vdso_test_getrandom.c:281:40: note: place parentheses around the | expression to evaluate it first
     281 |                 else if (WSTOPSIG(status) == SIGTRAP | 0x80) {
         |                                              ~~~~~~~~^~~~~~
   1 warning generated.


vim +281 tools/testing/selftests/vDSO/vdso_test_getrandom.c

4920a2590e91bc Jason A. Donenfeld 2024-07-07  241  
4920a2590e91bc Jason A. Donenfeld 2024-07-07  242  static void kselftest(void)
4920a2590e91bc Jason A. Donenfeld 2024-07-07  243  {
4920a2590e91bc Jason A. Donenfeld 2024-07-07  244  	uint8_t weird_size[1263];
212857cd099510 Jason A. Donenfeld 2024-09-05  245  	pid_t child;
4920a2590e91bc Jason A. Donenfeld 2024-07-07  246  
4920a2590e91bc Jason A. Donenfeld 2024-07-07  247  	ksft_print_header();
212857cd099510 Jason A. Donenfeld 2024-09-05  248  	ksft_set_plan(2);
4920a2590e91bc Jason A. Donenfeld 2024-07-07  249  
4920a2590e91bc Jason A. Donenfeld 2024-07-07  250  	for (size_t i = 0; i < 1000; ++i) {
4920a2590e91bc Jason A. Donenfeld 2024-07-07  251  		ssize_t ret = vgetrandom(weird_size, sizeof(weird_size), 0);
4920a2590e91bc Jason A. Donenfeld 2024-07-07  252  		if (ret != sizeof(weird_size))
4920a2590e91bc Jason A. Donenfeld 2024-07-07  253  			exit(KSFT_FAIL);
4920a2590e91bc Jason A. Donenfeld 2024-07-07  254  	}
4920a2590e91bc Jason A. Donenfeld 2024-07-07  255  
4920a2590e91bc Jason A. Donenfeld 2024-07-07  256  	ksft_test_result_pass("getrandom: PASS\n");
212857cd099510 Jason A. Donenfeld 2024-09-05  257  
212857cd099510 Jason A. Donenfeld 2024-09-05  258  	assert(unshare(CLONE_NEWUSER | CLONE_NEWTIME) == 0);
212857cd099510 Jason A. Donenfeld 2024-09-05  259  	child = fork();
212857cd099510 Jason A. Donenfeld 2024-09-05  260  	assert(child >= 0);
212857cd099510 Jason A. Donenfeld 2024-09-05  261  	if (!child) {
212857cd099510 Jason A. Donenfeld 2024-09-05  262  		vgetrandom_init();
212857cd099510 Jason A. Donenfeld 2024-09-05  263  		child = getpid();
212857cd099510 Jason A. Donenfeld 2024-09-05  264  		assert(ptrace(PTRACE_TRACEME, 0, NULL, NULL) == 0);
212857cd099510 Jason A. Donenfeld 2024-09-05  265  		assert(kill(child, SIGSTOP) == 0);
212857cd099510 Jason A. Donenfeld 2024-09-05  266  		assert(vgetrandom(weird_size, sizeof(weird_size), 0) == sizeof(weird_size));
212857cd099510 Jason A. Donenfeld 2024-09-05  267  		_exit(0);
212857cd099510 Jason A. Donenfeld 2024-09-05  268  	}
212857cd099510 Jason A. Donenfeld 2024-09-05  269  	for (;;) {
212857cd099510 Jason A. Donenfeld 2024-09-05  270  		struct ptrace_syscall_info info = { 0 };
212857cd099510 Jason A. Donenfeld 2024-09-05  271  		int status, ret;
212857cd099510 Jason A. Donenfeld 2024-09-05  272  		assert(waitpid(child, &status, 0) >= 0);
212857cd099510 Jason A. Donenfeld 2024-09-05  273  		if (WIFEXITED(status)) {
212857cd099510 Jason A. Donenfeld 2024-09-05  274  			if (WEXITSTATUS(status) != 0)
212857cd099510 Jason A. Donenfeld 2024-09-05  275  				exit(KSFT_FAIL);
212857cd099510 Jason A. Donenfeld 2024-09-05  276  			break;
212857cd099510 Jason A. Donenfeld 2024-09-05  277  		}
212857cd099510 Jason A. Donenfeld 2024-09-05  278  		assert(WIFSTOPPED(status));
212857cd099510 Jason A. Donenfeld 2024-09-05  279  		if (WSTOPSIG(status) == SIGSTOP)
212857cd099510 Jason A. Donenfeld 2024-09-05  280  			assert(ptrace(PTRACE_SETOPTIONS, child, 0, PTRACE_O_TRACESYSGOOD) == 0);
212857cd099510 Jason A. Donenfeld 2024-09-05 @281  		else if (WSTOPSIG(status) == SIGTRAP | 0x80) {
212857cd099510 Jason A. Donenfeld 2024-09-05  282  			assert(ptrace(PTRACE_GET_SYSCALL_INFO, child, sizeof(info), &info) > 0);
212857cd099510 Jason A. Donenfeld 2024-09-05  283  			if (info.entry.nr == __NR_getrandom &&
212857cd099510 Jason A. Donenfeld 2024-09-05  284  			    (info.entry.args[0] == (uintptr_t)weird_size && info.entry.args[1] == sizeof(weird_size)))
212857cd099510 Jason A. Donenfeld 2024-09-05  285  				exit(KSFT_FAIL);
212857cd099510 Jason A. Donenfeld 2024-09-05  286  		}
212857cd099510 Jason A. Donenfeld 2024-09-05  287  		assert(ptrace(PTRACE_SYSCALL, child, 0, 0) == 0);
212857cd099510 Jason A. Donenfeld 2024-09-05  288  	}
212857cd099510 Jason A. Donenfeld 2024-09-05  289  
212857cd099510 Jason A. Donenfeld 2024-09-05  290  	ksft_test_result_pass("getrandom timens: PASS\n");
212857cd099510 Jason A. Donenfeld 2024-09-05  291  
4920a2590e91bc Jason A. Donenfeld 2024-07-07  292  	exit(KSFT_PASS);
4920a2590e91bc Jason A. Donenfeld 2024-07-07  293  }
4920a2590e91bc Jason A. Donenfeld 2024-07-07  294  

-- 
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki





[Index of Archives]     [Linux ARM Kernel]     [Linux ARM]     [Linux Omap]     [Fedora ARM]     [IETF Annouce]     [Bugtraq]     [Linux OMAP]     [Linux MIPS]     [eCos]     [Asterisk Internet PBX]     [Linux API]

  Powered by Linux