[android-common:android13-5.15-2026-06 6/6] mm/vmscan.c:905:15: warning: no previous prototype for 'shrink_slab'
kernel test robot <[email protected]>
| Newsgroups | dev.linux.lists.oe-kbuild-all |
|---|---|
| Message-ID | <[email protected]> |
Hi Peifeng, FYI, the error/warning still remains. tree: https://android.googlesource.com/kernel/common android13-5.15-2026-06 head: 7e8c257a4ec10d7fb33263300a521590d71c1fb1 commit: 606b947630cb44c739336184df9ffd7d2cda34f3 [6/6] ANDROID: vendor_hooks: export shrink_slab config: i386-randconfig-062-20260715 (https://download.01.org/0day-ci/archive/20260716/[email protected]/config) compiler: gcc-14 (Debian 14.2.0-19) 14.2.0 sparse: v0.6.5-rc1 reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20260716/[email protected]/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 <[email protected]> | Closes: https://lore.kernel.org/oe-kbuild-all/[email protected]/ All warnings (new ones prefixed by >>): >> mm/vmscan.c:905:15: warning: no previous prototype for 'shrink_slab' [-Wmissing-prototypes] 905 | unsigned long shrink_slab(gfp_t gfp_mask, int nid, | ^~~~~~~~~~~ mm/vmscan.c: In function 'demote_page_list': mm/vmscan.c:1357:13: warning: variable 'err' set but not used [-Wunused-but-set-variable] 1357 | int err; | ^~~ Kconfig warnings: (for reference only) WARNING: unmet direct dependencies detected for ARCH_HAS_NONLEAF_PMD_YOUNG Depends on [n]: PGTABLE_LEVELS [=2]>2 Selected by [y]: - X86 [=y] vim +/shrink_slab +905 mm/vmscan.c 884 885 /** 886 * shrink_slab - shrink slab caches 887 * @gfp_mask: allocation context 888 * @nid: node whose slab caches to target 889 * @memcg: memory cgroup whose slab caches to target 890 * @priority: the reclaim priority 891 * 892 * Call the shrink functions to age shrinkable caches. 893 * 894 * @nid is passed along to shrinkers with SHRINKER_NUMA_AWARE set, 895 * unaware shrinkers will receive a node id of 0 instead. 896 * 897 * @memcg specifies the memory cgroup to target. Unaware shrinkers 898 * are called only if it is the root cgroup. 899 * 900 * @priority is sc->priority, we take the number of objects and >> by priority 901 * in order to get the scan target. 902 * 903 * Returns the number of reclaimed slab objects. 904 */ > 905 unsigned long shrink_slab(gfp_t gfp_mask, int nid, 906 struct mem_cgroup *memcg, 907 int priority) 908 { 909 unsigned long ret, freed = 0; 910 struct shrinker *shrinker; 911 912 /* 913 * The root memcg might be allocated even though memcg is disabled 914 * via "cgroup_disable=memory" boot parameter. This could make 915 * mem_cgroup_is_root() return false, then just run memcg slab 916 * shrink, but skip global shrink. This may result in premature 917 * oom. 918 */ 919 if (!mem_cgroup_disabled() && !mem_cgroup_is_root(memcg)) 920 return shrink_slab_memcg(gfp_mask, nid, memcg, priority); 921 922 if (!down_read_trylock(&shrinker_rwsem)) 923 goto out; 924 925 list_for_each_entry(shrinker, &shrinker_list, list) { 926 struct shrink_control sc = { 927 .gfp_mask = gfp_mask, 928 .nid = nid, 929 .memcg = memcg, 930 }; 931 932 ret = do_shrink_slab(&sc, shrinker, priority); 933 if (ret == SHRINK_EMPTY) 934 ret = 0; 935 freed += ret; 936 /* 937 * Bail out if someone want to register a new shrinker to 938 * prevent the registration from being stalled for long periods 939 * by parallel ongoing shrinking. 940 */ 941 if (rwsem_is_contended(&shrinker_rwsem)) { 942 freed = freed ? : 1; 943 break; 944 } 945 } 946 947 up_read(&shrinker_rwsem); 948 out: 949 cond_resched(); 950 return freed; 951 } 952 EXPORT_SYMBOL_GPL(shrink_slab); 953 -- 0-DAY CI Kernel Test Service https://github.com/intel/lkp-tests/wiki