CC: [email protected] BCC: [email protected] CC: [email protected] TO: Alexander Lobakin <[email protected]>
tree: https://github.com/alobakin/linux bitops head: 9bd39b17ce49d350eed93a031e0da6389067013e commit: 54dcb250626d4ec53e9d5e41ee078b0c48849b38 [5/7] bitops: wrap non-atomic bitops with a transparent macro :::::: branch date: 9 hours ago :::::: commit date: 11 hours ago config: x86_64-randconfig-m001 (https://download.01.org/0day-ci/archive/20220618/[email protected]/config) compiler: gcc-11 (Debian 11.3.0-3) 11.3.0 If you fix the issue, kindly add following tag where applicable Reported-by: kernel test robot <[email protected]> Reported-by: Dan Carpenter <[email protected]> New smatch warnings: include/asm-generic/bitops/instrumented-non-atomic.h:141 _test_bit() warn: ignoring unreachable code. include/asm-generic/bitops/instrumented-non-atomic.h:141 _test_bit() warn: ignoring unreachable code. include/asm-generic/bitops/instrumented-non-atomic.h:141 _test_bit() warn: ignoring unreachable code. include/asm-generic/bitops/instrumented-non-atomic.h:141 _test_bit() warn: ignoring unreachable code. include/asm-generic/bitops/instrumented-non-atomic.h:141 _test_bit() warn: ignoring unreachable code. include/asm-generic/bitops/instrumented-non-atomic.h:141 _test_bit() warn: ignoring unreachable code. include/asm-generic/bitops/instrumented-non-atomic.h:141 _test_bit() warn: ignoring unreachable code. include/asm-generic/bitops/instrumented-non-atomic.h:99 ___test_and_set_bit() warn: ignoring unreachable code. include/asm-generic/bitops/instrumented-non-atomic.h:141 _test_bit() warn: ignoring unreachable code. include/asm-generic/bitops/instrumented-non-atomic.h:141 _test_bit() warn: ignoring unreachable code. include/asm-generic/bitops/instrumented-non-atomic.h:114 ___test_and_clear_bit() warn: ignoring unreachable code. include/asm-generic/bitops/instrumented-non-atomic.h:99 ___test_and_set_bit() warn: ignoring unreachable code. include/asm-generic/bitops/instrumented-non-atomic.h:141 _test_bit() warn: ignoring unreachable code. include/asm-generic/bitops/instrumented-non-atomic.h:141 _test_bit() warn: ignoring unreachable code. include/asm-generic/bitops/instrumented-non-atomic.h:141 _test_bit() warn: ignoring unreachable code. include/asm-generic/bitops/instrumented-non-atomic.h:99 ___test_and_set_bit() warn: ignoring unreachable code. include/asm-generic/bitops/instrumented-non-atomic.h:141 _test_bit() warn: ignoring unreachable code. include/asm-generic/bitops/instrumented-non-atomic.h:141 _test_bit() warn: ignoring unreachable code. include/asm-generic/bitops/instrumented-non-atomic.h:114 ___test_and_clear_bit() warn: ignoring unreachable code. include/asm-generic/bitops/instrumented-non-atomic.h:141 _test_bit() warn: ignoring unreachable code. include/asm-generic/bitops/instrumented-non-atomic.h:141 _test_bit() warn: ignoring unreachable code. include/asm-generic/bitops/instrumented-non-atomic.h:141 _test_bit() warn: ignoring unreachable code. include/asm-generic/bitops/instrumented-non-atomic.h:141 _test_bit() warn: ignoring unreachable code. include/asm-generic/bitops/instrumented-non-atomic.h:141 _test_bit() warn: ignoring unreachable code. include/asm-generic/bitops/instrumented-non-atomic.h:141 _test_bit() warn: ignoring unreachable code. include/asm-generic/bitops/instrumented-non-atomic.h:141 _test_bit() warn: ignoring unreachable code. include/asm-generic/bitops/instrumented-non-atomic.h:141 _test_bit() warn: ignoring unreachable code. include/asm-generic/bitops/instrumented-non-atomic.h:141 _test_bit() warn: ignoring unreachable code. Old smatch warnings: fs/exec.c:127 __do_sys_uselib() warn: passing zero to 'PTR_ERR' fs/exec.c:127 __do_sys_uselib() warn: passing zero to 'PTR_ERR' fs/namei.c:1571 lookup_dcache() warn: passing zero to 'ERR_PTR' fs/namei.c:1668 lookup_fast() warn: passing zero to 'ERR_PTR' fs/namei.c:2196 hash_name() error: uninitialized symbol 'bdata'. fs/namei.c:3467 open_last_lookups() error: uninitialized symbol 'inode'. fs/namei.c:3467 open_last_lookups() error: uninitialized symbol 'seq'. fs/dcache.c:2922 __d_move() warn: statement has no effect 31 fs/splice.c:725 iter_file_splice_write() error: uninitialized symbol 'ret'. arch/x86/include/asm/elf.h:164 elf_common_init() warn: inconsistent indenting security/keys/keyring.c:1230 keyring_detect_cycle() warn: passing zero to 'PTR_ERR' lib/radix-tree.c:1046 radix_tree_tag_clear() error: uninitialized symbol 'offset'. lib/radix-tree.c:1124 set_iter_tags() warn: unsigned 'tag_long' is never less than zero. lib/vsprintf.c:1431 ip6_compressed_string() warn: possible spectre second half. '*p' lib/vsprintf.c:1434 ip6_compressed_string() warn: possible spectre second half. '*p' lib/rhashtable.c:550 rhashtable_insert_one() warn: passing zero to 'ERR_CAST' lib/rhashtable.c:616 rhashtable_try_insert() warn: passing zero to 'ERR_CAST' fs/nfs/dir.c:334 nfs_readdir_page_array_append() warn: potential spectre issue 'array->array' [r] fs/nfs/nfs4proc.c:1386 nfs4_opendata_alloc() error: we previously assumed 'c' could be null (see line 1354) fs/jffs2/nodemgmt.c:629 jffs2_mark_node_obsolete() warn: inconsistent indenting fs/jffs2/nodemgmt.c:640 jffs2_mark_node_obsolete() warn: inconsistent indenting fs/ubifs/lpt_commit.c:1649 dbg_check_ltab_lnum() warn: ignoring unreachable code. fs/ubifs/debug.c:2072 check_leaf() warn: is 'node' large enough for 'struct ubifs_data_node'? 24 fs/ubifs/debug.c:2094 check_leaf() warn: is 'node' large enough for 'struct ubifs_dent_node'? 24 fs/fuse/dir.c:502 get_security_context() warn: is 'ptr' large enough for 'struct fuse_secctx'? 0 fs/overlayfs/inode.c:1117 ovl_get_inode() error: we previously assumed 'lowerpath' could be null (see line 1114) fs/overlayfs/copy_up.c:421 ovl_set_origin() warn: variable dereferenced before check 'fh' (see line 420) fs/overlayfs/export.c:825 ovl_fh_to_dentry() warn: passing zero to 'PTR_ERR' fs/cifs/connect.c:2830 generic_ip_connect() error: we previously assumed 'socket' could be null (see line 2818) vim +141 include/asm-generic/bitops/instrumented-non-atomic.h 068df05363b79f Marco Elver 2020-08-13 87 81d2c6f81996e0 Daniel Axtens 2019-08-20 88 /** 54dcb250626d4e Alexander Lobakin 2022-06-16 89 * ___test_and_set_bit - Set a bit and return its old value 81d2c6f81996e0 Daniel Axtens 2019-08-20 90 * @nr: Bit to set 81d2c6f81996e0 Daniel Axtens 2019-08-20 91 * @addr: Address to count from 81d2c6f81996e0 Daniel Axtens 2019-08-20 92 * 81d2c6f81996e0 Daniel Axtens 2019-08-20 93 * This operation is non-atomic. If two instances of this operation race, one 81d2c6f81996e0 Daniel Axtens 2019-08-20 94 * can appear to succeed but actually fail. 81d2c6f81996e0 Daniel Axtens 2019-08-20 95 */ 521611f961a7dd Alexander Lobakin 2022-05-09 96 static __always_inline bool 54dcb250626d4e Alexander Lobakin 2022-06-16 97 ___test_and_set_bit(unsigned long nr, volatile unsigned long *addr) 81d2c6f81996e0 Daniel Axtens 2019-08-20 98 { 068df05363b79f Marco Elver 2020-08-13 @99 __instrument_read_write_bitop(nr, addr); 81d2c6f81996e0 Daniel Axtens 2019-08-20 100 return arch___test_and_set_bit(nr, addr); 81d2c6f81996e0 Daniel Axtens 2019-08-20 101 } 81d2c6f81996e0 Daniel Axtens 2019-08-20 102 81d2c6f81996e0 Daniel Axtens 2019-08-20 103 /** 54dcb250626d4e Alexander Lobakin 2022-06-16 104 * ___test_and_clear_bit - Clear a bit and return its old value 81d2c6f81996e0 Daniel Axtens 2019-08-20 105 * @nr: Bit to clear 81d2c6f81996e0 Daniel Axtens 2019-08-20 106 * @addr: Address to count from 81d2c6f81996e0 Daniel Axtens 2019-08-20 107 * 81d2c6f81996e0 Daniel Axtens 2019-08-20 108 * This operation is non-atomic. If two instances of this operation race, one 81d2c6f81996e0 Daniel Axtens 2019-08-20 109 * can appear to succeed but actually fail. 81d2c6f81996e0 Daniel Axtens 2019-08-20 110 */ 521611f961a7dd Alexander Lobakin 2022-05-09 111 static __always_inline bool 54dcb250626d4e Alexander Lobakin 2022-06-16 112 ___test_and_clear_bit(unsigned long nr, volatile unsigned long *addr) 81d2c6f81996e0 Daniel Axtens 2019-08-20 113 { 068df05363b79f Marco Elver 2020-08-13 @114 __instrument_read_write_bitop(nr, addr); 81d2c6f81996e0 Daniel Axtens 2019-08-20 115 return arch___test_and_clear_bit(nr, addr); 81d2c6f81996e0 Daniel Axtens 2019-08-20 116 } 81d2c6f81996e0 Daniel Axtens 2019-08-20 117 81d2c6f81996e0 Daniel Axtens 2019-08-20 118 /** 54dcb250626d4e Alexander Lobakin 2022-06-16 119 * ___test_and_change_bit - Change a bit and return its old value 81d2c6f81996e0 Daniel Axtens 2019-08-20 120 * @nr: Bit to change 81d2c6f81996e0 Daniel Axtens 2019-08-20 121 * @addr: Address to count from 81d2c6f81996e0 Daniel Axtens 2019-08-20 122 * 81d2c6f81996e0 Daniel Axtens 2019-08-20 123 * This operation is non-atomic. If two instances of this operation race, one 81d2c6f81996e0 Daniel Axtens 2019-08-20 124 * can appear to succeed but actually fail. 81d2c6f81996e0 Daniel Axtens 2019-08-20 125 */ 521611f961a7dd Alexander Lobakin 2022-05-09 126 static __always_inline bool 54dcb250626d4e Alexander Lobakin 2022-06-16 127 ___test_and_change_bit(unsigned long nr, volatile unsigned long *addr) 81d2c6f81996e0 Daniel Axtens 2019-08-20 128 { 068df05363b79f Marco Elver 2020-08-13 129 __instrument_read_write_bitop(nr, addr); 81d2c6f81996e0 Daniel Axtens 2019-08-20 130 return arch___test_and_change_bit(nr, addr); 81d2c6f81996e0 Daniel Axtens 2019-08-20 131 } 81d2c6f81996e0 Daniel Axtens 2019-08-20 132 81d2c6f81996e0 Daniel Axtens 2019-08-20 133 /** 54dcb250626d4e Alexander Lobakin 2022-06-16 134 * _test_bit - Determine whether a bit is set 81d2c6f81996e0 Daniel Axtens 2019-08-20 135 * @nr: bit number to test 81d2c6f81996e0 Daniel Axtens 2019-08-20 136 * @addr: Address to start counting from 81d2c6f81996e0 Daniel Axtens 2019-08-20 137 */ 521611f961a7dd Alexander Lobakin 2022-05-09 138 static __always_inline bool 54dcb250626d4e Alexander Lobakin 2022-06-16 139 _test_bit(unsigned long nr, const volatile unsigned long *addr) 81d2c6f81996e0 Daniel Axtens 2019-08-20 140 { 27f937cc810aef Marco Elver 2020-01-21 @141 instrument_atomic_read(addr + BIT_WORD(nr), sizeof(long)); 81d2c6f81996e0 Daniel Axtens 2019-08-20 142 return arch_test_bit(nr, addr); 81d2c6f81996e0 Daniel Axtens 2019-08-20 143 } 81d2c6f81996e0 Daniel Axtens 2019-08-20 144 :::::: The code at line 141 was first introduced by commit :::::: 27f937cc810aef63b0752f5bfbf383390dd076a1 asm-generic, kcsan: Add KCSAN instrumentation for bitops :::::: TO: Marco Elver <[email protected]> :::::: CC: Ingo Molnar <[email protected]> -- 0-DAY CI Kernel Test Service https://01.org/lkp _______________________________________________ kbuild mailing list -- [email protected] To unsubscribe send an email to [email protected]
