Re: [PATCH v2] mm: workingset: fix NULL ptr dereference

From: kbuild test robot
Date: Tue Apr 10 2018 - 07:54:54 EST


Hi Minchan,

I love your patch! Yet something to improve:

[auto build test ERROR on linus/master]
[also build test ERROR on v4.16 next-20180410]
[if your patch is applied to the wrong git tree, please drop us a note to help improve the system]

url: https://github.com/0day-ci/linux/commits/Minchan-Kim/mm-workingset-fix-NULL-ptr-dereference/20180410-163500
config: x86_64-randconfig-x014-201814 (attached as .config)
compiler: gcc-7 (Debian 7.3.0-1) 7.3.0
reproduce:
# save the attached .config to linux build tree
make ARCH=x86_64

All error/warnings (new ones prefixed by >>):

lib/radix-tree.c: In function 'radix_tree_preload':
>> lib/radix-tree.c:522:16: error: 'GFP_ZERO' undeclared (first use in this function); did you mean '__GFP_ZERO'?
gfp_mask &= ~GFP_ZERO
^~~~~~~~
__GFP_ZERO
lib/radix-tree.c:522:16: note: each undeclared identifier is reported only once for each function it appears in
>> lib/radix-tree.c:524:2: error: expected ';' before 'return'
return __radix_tree_preload(gfp_mask, RADIX_TREE_PRELOAD_SIZE);
^~~~~~
>> lib/radix-tree.c:525:1: warning: control reaches end of non-void function [-Wreturn-type]
}
^

vim +522 lib/radix-tree.c

500
501 /*
502 * Load up this CPU's radix_tree_node buffer with sufficient objects to
503 * ensure that the addition of a single element in the tree cannot fail. On
504 * success, return zero, with preemption disabled. On error, return -ENOMEM
505 * with preemption not disabled.
506 *
507 * To make use of this facility, the radix tree must be initialised without
508 * __GFP_DIRECT_RECLAIM being passed to INIT_RADIX_TREE().
509 */
510 int radix_tree_preload(gfp_t gfp_mask)
511 {
512 /* Warn on non-sensical use... */
513 WARN_ON_ONCE(!gfpflags_allow_blocking(gfp_mask));
514 /*
515 * New allocate node must have node->private_list as INIT_LIST_HEAD
516 * state by workingset shadow memory implementation.
517 * If user pass __GFP_ZERO by mistake, slab allocator will clear
518 * node->private_list, which makes a BUG. Rather than going Oops,
519 * just fix and warn about it.
520 */
521 if (WARN_ON(gfp_mask & __GFP_ZERO))
> 522 gfp_mask &= ~GFP_ZERO
523
> 524 return __radix_tree_preload(gfp_mask, RADIX_TREE_PRELOAD_SIZE);
> 525 }
526 EXPORT_SYMBOL(radix_tree_preload);
527

---
0-DAY kernel test infrastructure Open Source Technology Center
https://lists.01.org/pipermail/kbuild-all Intel Corporation

Attachment: .config.gz
Description: application/gzip