[morse:mpam/snapshot/v5.18 97/146] drivers/platform/mpam/mpam_devices.c:71:14: warning: variable 'cache' is used uninitialized whenever 'if' condition is false

From: kernel test robot
Date: Sun Jun 19 2022 - 14:43:18 EST


tree: https://git.kernel.org/pub/scm/linux/kernel/git/morse/linux.git mpam/snapshot/v5.18
head: bac90d25cbdee0fc233b9b1c47d5b6f44101a384
commit: 49e55977a0ed88794b6abe4c959e3e28ccd54913 [97/146] arm_mpam: Add probe/remove for mpam msc driver and kbuild boiler plate
config: arm64-allmodconfig (https://download.01.org/0day-ci/archive/20220620/202206200258.OlfMsjF6-lkp@xxxxxxxxx/config)
compiler: clang version 15.0.0 (https://github.com/llvm/llvm-project af6d2a0b6825e71965f3e2701a63c239fa0ad70f)
reproduce (this is a W=1 build):
wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
chmod +x ~/bin/make.cross
# install arm64 cross compiling tool for clang build
# apt-get install binutils-aarch64-linux-gnu
# https://git.kernel.org/pub/scm/linux/kernel/git/morse/linux.git/commit/?id=49e55977a0ed88794b6abe4c959e3e28ccd54913
git remote add morse https://git.kernel.org/pub/scm/linux/kernel/git/morse/linux.git
git fetch --no-tags morse mpam/snapshot/v5.18
git checkout 49e55977a0ed88794b6abe4c959e3e28ccd54913
# save the config file
mkdir build_dir && cp config build_dir/.config
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross W=1 O=build_dir ARCH=arm64 SHELL=/bin/bash drivers/perf/ drivers/platform/mpam/

If you fix the issue, kindly add following tag where applicable
Reported-by: kernel test robot <lkp@xxxxxxxxx>

All warnings (new ones prefixed by >>):

>> drivers/platform/mpam/mpam_devices.c:71:14: warning: variable 'cache' is used uninitialized whenever 'if' condition is false [-Wsometimes-uninitialized]
} else if (of_device_is_compatible(np->parent, "cache")) {
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/platform/mpam/mpam_devices.c:93:14: note: uninitialized use occurs here
of_node_put(cache);
^~~~~
drivers/platform/mpam/mpam_devices.c:71:10: note: remove the 'if' if its condition is always true
} else if (of_device_is_compatible(np->parent, "cache")) {
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/platform/mpam/mpam_devices.c:62:27: note: initialize the variable 'cache' to silence this warning
struct device_node *cache;
^
= NULL
1 warning generated.


vim +71 drivers/platform/mpam/mpam_devices.c

55
56 static int mpam_dt_parse_resource(struct mpam_msc *msc, struct device_node *np,
57 u32 ris_idx)
58 {
59 int err = 0;
60 u32 level = 0;
61 unsigned long cache_id;
62 struct device_node *cache;
63
64 do {
65 if (of_device_is_compatible(np, "arm,mpam-cache")) {
66 cache = of_parse_phandle(np, "arm,mpam-device", 0);
67 if (!cache) {
68 pr_err("Failed to read phandle\n");
69 break;
70 }
> 71 } else if (of_device_is_compatible(np->parent, "cache")) {
72 cache = np->parent;
73 } else {
74 pr_err("Not a cache\n");
75 break;
76 }
77
78 err = of_property_read_u32(cache, "cache-level", &level);
79 if (err) {
80 pr_err("Failed to read cache-level\n");
81 break;
82 }
83
84 cache_id = cache_of_get_id(cache);
85 if (cache_id == ~0UL) {
86 err = -ENOENT;
87 break;
88 }
89
90 err = mpam_ris_create(msc, ris_idx, MPAM_CLASS_CACHE, level,
91 cache_id);
92 } while (0);
93 of_node_put(cache);
94
95 return err;
96 }
97

--
0-DAY CI Kernel Test Service
https://01.org/lkp