:::::: 
:::::: Manual check reason: "low confidence static check warning: 
lib/maple_tree.c:6969:26: sparse: sparse: dubious: !x & y"
:::::: 

CC: [email protected]
BCC: [email protected]
CC: [email protected]
TO: "Liam R. Howlett" <[email protected]>
CC: Andrew Morton <[email protected]>
CC: Linux Memory Management List <[email protected]>
CC: "Matthew Wilcox (Oracle)" <[email protected]>
CC: Lukas Bulwahn <[email protected]>

tree:   https://git.kernel.org/pub/scm/linux/kernel/git/akpm/mm.git mm-unstable
head:   9eeb6536c5ab3fcc2f18bd2feb5220c48ede725e
commit: 3e7c1c1242fb316f6c1034e82827aaaefda4cc2f [30/296] Maple Tree: add new 
data structure
:::::: branch date: 10 hours ago
:::::: commit date: 10 hours ago
config: mips-randconfig-s053-20220717 
(https://download.01.org/0day-ci/archive/20220717/[email protected]/config)
compiler: mips64el-linux-gcc (GCC) 12.1.0
reproduce:
        wget 
https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O 
~/bin/make.cross
        chmod +x ~/bin/make.cross
        # apt-get install sparse
        # sparse version: v0.6.4-39-gce1a6720-dirty
        # 
https://git.kernel.org/pub/scm/linux/kernel/git/akpm/mm.git/commit/?id=3e7c1c1242fb316f6c1034e82827aaaefda4cc2f
        git remote add akpm-mm 
https://git.kernel.org/pub/scm/linux/kernel/git/akpm/mm.git
        git fetch --no-tags akpm-mm mm-unstable
        git checkout 3e7c1c1242fb316f6c1034e82827aaaefda4cc2f
        # save the config file
        mkdir build_dir && cp config build_dir/.config
        COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-12.1.0 make.cross C=1 
CF='-fdiagnostic-prefix -D__CHECK_ENDIAN__' O=build_dir ARCH=mips 
SHELL=/bin/bash

If you fix the issue, kindly add following tag where applicable
Reported-by: kernel test robot <[email protected]>


sparse warnings: (new ones prefixed by >>)
>> lib/maple_tree.c:6969:26: sparse: sparse: dubious: !x & y

vim +6969 lib/maple_tree.c

3e7c1c1242fb316 Liam R. Howlett 2022-07-17  6948  
3e7c1c1242fb316 Liam R. Howlett 2022-07-17  6949  /*
3e7c1c1242fb316 Liam R. Howlett 2022-07-17  6950   * Validate all pivots are 
within mas->min and mas->max.
3e7c1c1242fb316 Liam R. Howlett 2022-07-17  6951   */
3e7c1c1242fb316 Liam R. Howlett 2022-07-17  6952  static void 
mas_validate_limits(struct ma_state *mas)
3e7c1c1242fb316 Liam R. Howlett 2022-07-17  6953  {
3e7c1c1242fb316 Liam R. Howlett 2022-07-17  6954        int i;
3e7c1c1242fb316 Liam R. Howlett 2022-07-17  6955        unsigned long prev_piv 
= 0;
3e7c1c1242fb316 Liam R. Howlett 2022-07-17  6956        enum maple_type type = 
mte_node_type(mas->node);
3e7c1c1242fb316 Liam R. Howlett 2022-07-17  6957        void __rcu **slots = 
ma_slots(mte_to_node(mas->node), type);
3e7c1c1242fb316 Liam R. Howlett 2022-07-17  6958        unsigned long *pivots = 
ma_pivots(mas_mn(mas), type);
3e7c1c1242fb316 Liam R. Howlett 2022-07-17  6959  
3e7c1c1242fb316 Liam R. Howlett 2022-07-17  6960        /* all limits are fine 
here. */
3e7c1c1242fb316 Liam R. Howlett 2022-07-17  6961        if 
(mte_is_root(mas->node))
3e7c1c1242fb316 Liam R. Howlett 2022-07-17  6962                return;
3e7c1c1242fb316 Liam R. Howlett 2022-07-17  6963  
3e7c1c1242fb316 Liam R. Howlett 2022-07-17  6964        for (i = 0; i < 
mt_slots[type]; i++) {
3e7c1c1242fb316 Liam R. Howlett 2022-07-17  6965                unsigned long 
piv;
3e7c1c1242fb316 Liam R. Howlett 2022-07-17  6966  
3e7c1c1242fb316 Liam R. Howlett 2022-07-17  6967                piv = 
mas_safe_pivot(mas, pivots, i, type);
3e7c1c1242fb316 Liam R. Howlett 2022-07-17  6968  
3e7c1c1242fb316 Liam R. Howlett 2022-07-17 @6969                if (!piv & (i 
!= 0))
3e7c1c1242fb316 Liam R. Howlett 2022-07-17  6970                        break;
3e7c1c1242fb316 Liam R. Howlett 2022-07-17  6971  
3e7c1c1242fb316 Liam R. Howlett 2022-07-17  6972                if 
(!mte_is_leaf(mas->node)) {
3e7c1c1242fb316 Liam R. Howlett 2022-07-17  6973                        void 
*entry = mas_slot(mas, slots, i);
3e7c1c1242fb316 Liam R. Howlett 2022-07-17  6974  
3e7c1c1242fb316 Liam R. Howlett 2022-07-17  6975                        if 
(!entry)
3e7c1c1242fb316 Liam R. Howlett 2022-07-17  6976                                
pr_err("%p[%u] cannot be null\n",
3e7c1c1242fb316 Liam R. Howlett 2022-07-17  6977                                
       mas_mn(mas), i);
3e7c1c1242fb316 Liam R. Howlett 2022-07-17  6978  
3e7c1c1242fb316 Liam R. Howlett 2022-07-17  6979                        
MT_BUG_ON(mas->tree, !entry);
3e7c1c1242fb316 Liam R. Howlett 2022-07-17  6980                }
3e7c1c1242fb316 Liam R. Howlett 2022-07-17  6981  
3e7c1c1242fb316 Liam R. Howlett 2022-07-17  6982                if (prev_piv > 
piv) {
3e7c1c1242fb316 Liam R. Howlett 2022-07-17  6983                        
pr_err("%p[%u] piv %lu < prev_piv %lu\n",
3e7c1c1242fb316 Liam R. Howlett 2022-07-17  6984                                
mas_mn(mas), i, piv, prev_piv);
3e7c1c1242fb316 Liam R. Howlett 2022-07-17  6985                        
MT_BUG_ON(mas->tree, piv < prev_piv);
3e7c1c1242fb316 Liam R. Howlett 2022-07-17  6986                }
3e7c1c1242fb316 Liam R. Howlett 2022-07-17  6987  
3e7c1c1242fb316 Liam R. Howlett 2022-07-17  6988                if (piv < 
mas->min) {
3e7c1c1242fb316 Liam R. Howlett 2022-07-17  6989                        
pr_err("%p[%u] %lu < %lu\n", mas_mn(mas), i,
3e7c1c1242fb316 Liam R. Howlett 2022-07-17  6990                                
piv, mas->min);
3e7c1c1242fb316 Liam R. Howlett 2022-07-17  6991                        
MT_BUG_ON(mas->tree, piv < mas->min);
3e7c1c1242fb316 Liam R. Howlett 2022-07-17  6992                }
3e7c1c1242fb316 Liam R. Howlett 2022-07-17  6993                if (piv > 
mas->max) {
3e7c1c1242fb316 Liam R. Howlett 2022-07-17  6994                        
pr_err("%p[%u] %lu > %lu\n", mas_mn(mas), i,
3e7c1c1242fb316 Liam R. Howlett 2022-07-17  6995                                
piv, mas->max);
3e7c1c1242fb316 Liam R. Howlett 2022-07-17  6996                        
MT_BUG_ON(mas->tree, piv > mas->max);
3e7c1c1242fb316 Liam R. Howlett 2022-07-17  6997                }
3e7c1c1242fb316 Liam R. Howlett 2022-07-17  6998                prev_piv = piv;
3e7c1c1242fb316 Liam R. Howlett 2022-07-17  6999                if (piv == 
mas->max)
3e7c1c1242fb316 Liam R. Howlett 2022-07-17  7000                        break;
3e7c1c1242fb316 Liam R. Howlett 2022-07-17  7001        }
3e7c1c1242fb316 Liam R. Howlett 2022-07-17  7002        for (i += 1; i < 
mt_slots[type]; i++) {
3e7c1c1242fb316 Liam R. Howlett 2022-07-17  7003                void *entry = 
mas_slot(mas, slots, i);
3e7c1c1242fb316 Liam R. Howlett 2022-07-17  7004  
3e7c1c1242fb316 Liam R. Howlett 2022-07-17  7005                if (entry && (i 
!= mt_slots[type] - 1)) {
3e7c1c1242fb316 Liam R. Howlett 2022-07-17  7006                        
pr_err("%p[%u] should not have entry %p\n", mas_mn(mas),
3e7c1c1242fb316 Liam R. Howlett 2022-07-17  7007                               
i, entry);
3e7c1c1242fb316 Liam R. Howlett 2022-07-17  7008                        
MT_BUG_ON(mas->tree, entry != NULL);
3e7c1c1242fb316 Liam R. Howlett 2022-07-17  7009                }
3e7c1c1242fb316 Liam R. Howlett 2022-07-17  7010  
3e7c1c1242fb316 Liam R. Howlett 2022-07-17  7011                if (i < 
mt_pivots[type]) {
3e7c1c1242fb316 Liam R. Howlett 2022-07-17  7012                        
unsigned long piv = pivots[i];
3e7c1c1242fb316 Liam R. Howlett 2022-07-17  7013  
3e7c1c1242fb316 Liam R. Howlett 2022-07-17  7014                        if 
(!piv)
3e7c1c1242fb316 Liam R. Howlett 2022-07-17  7015                                
continue;
3e7c1c1242fb316 Liam R. Howlett 2022-07-17  7016  
3e7c1c1242fb316 Liam R. Howlett 2022-07-17  7017                        
pr_err("%p[%u] should not have piv %lu\n",
3e7c1c1242fb316 Liam R. Howlett 2022-07-17  7018                               
mas_mn(mas), i, piv);
3e7c1c1242fb316 Liam R. Howlett 2022-07-17  7019                        
MT_BUG_ON(mas->tree, i < mt_pivots[type] - 1);
3e7c1c1242fb316 Liam R. Howlett 2022-07-17  7020                }
3e7c1c1242fb316 Liam R. Howlett 2022-07-17  7021        }
3e7c1c1242fb316 Liam R. Howlett 2022-07-17  7022  }
3e7c1c1242fb316 Liam R. Howlett 2022-07-17  7023  

-- 
0-DAY CI Kernel Test Service
https://01.org/lkp
_______________________________________________
kbuild mailing list -- [email protected]
To unsubscribe send an email to [email protected]

Reply via email to