* [linux-next:master 5699/6849] drivers/bus/fsl-mc/fsl-mc-allocator.c:108:12: warning: variable 'mc_bus_dev' is uninitialized when used here
@ 2023-06-02 11:52 kernel test robot
0 siblings, 0 replies; only message in thread
From: kernel test robot @ 2023-06-02 11:52 UTC (permalink / raw)
To: Uwe Kleine-König
Cc: llvm, oe-kbuild-all, Linux Memory Management List, Li Yang,
Ioana Ciornei, Laurentiu Tudor
tree: https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git master
head: bc708bbd8260ee4eb3428b0109f5f3be661fae46
commit: b3134039c5b3cf879841e3ec84c8cbf7675554ec [5699/6849] bus: fsl-mc: fsl-mc-allocator: Improve error reporting
config: arm64-randconfig-r012-20230602 (https://download.01.org/0day-ci/archive/20230602/202306021936.OktTcMAT-lkp@intel.com/config)
compiler: clang version 17.0.0 (https://github.com/llvm/llvm-project 4faf3aaf28226a4e950c103a14f6fc1d1fdabb1b)
reproduce (this is a W=1 build):
mkdir -p ~/bin
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/next/linux-next.git/commit/?id=b3134039c5b3cf879841e3ec84c8cbf7675554ec
git remote add linux-next https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git
git fetch --no-tags linux-next master
git checkout b3134039c5b3cf879841e3ec84c8cbf7675554ec
# save the config file
mkdir build_dir && cp config build_dir/.config
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang ~/bin/make.cross W=1 O=build_dir ARCH=arm64 olddefconfig
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang ~/bin/make.cross W=1 O=build_dir ARCH=arm64 SHELL=/bin/bash drivers/bus/fsl-mc/
If you fix the issue, kindly add following tag where applicable
| Reported-by: kernel test robot <lkp@intel.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202306021936.OktTcMAT-lkp@intel.com/
All warnings (new ones prefixed by >>):
>> drivers/bus/fsl-mc/fsl-mc-allocator.c:108:12: warning: variable 'mc_bus_dev' is uninitialized when used here [-Wuninitialized]
dev_err(&mc_bus_dev->dev, "resource mismatch\n");
^~~~~~~~~~
include/linux/dev_printk.h:144:44: note: expanded from macro 'dev_err'
dev_printk_index_wrap(_dev_err, KERN_ERR, dev, dev_fmt(fmt), ##__VA_ARGS__)
^~~
include/linux/dev_printk.h:110:11: note: expanded from macro 'dev_printk_index_wrap'
_p_func(dev, fmt, ##__VA_ARGS__); \
^~~
drivers/bus/fsl-mc/fsl-mc-allocator.c:100:34: note: initialize the variable 'mc_bus_dev' to silence this warning
struct fsl_mc_device *mc_bus_dev;
^
= NULL
drivers/bus/fsl-mc/fsl-mc-allocator.c:565:6: warning: variable 'free_count' set but not used [-Wunused-but-set-variable]
int free_count = 0;
^
2 warnings generated.
vim +/mc_bus_dev +108 drivers/bus/fsl-mc/fsl-mc-allocator.c
87
88 /**
89 * fsl_mc_resource_pool_remove_device - remove an allocatable device from a
90 * resource pool
91 *
92 * @mc_dev: pointer to allocatable fsl-mc device
93 *
94 * It permanently removes an allocatable fsl-mc device from the resource
95 * pool. It's an error if the device is in use.
96 */
97 static int __must_check fsl_mc_resource_pool_remove_device(struct fsl_mc_device
98 *mc_dev)
99 {
100 struct fsl_mc_device *mc_bus_dev;
101 struct fsl_mc_bus *mc_bus;
102 struct fsl_mc_resource_pool *res_pool;
103 struct fsl_mc_resource *resource;
104 int error = -EINVAL;
105
106 resource = mc_dev->resource;
107 if (!resource || resource->data != mc_dev) {
> 108 dev_err(&mc_bus_dev->dev, "resource mismatch\n");
109 goto out;
110 }
111
112 mc_bus_dev = to_fsl_mc_device(mc_dev->dev.parent);
113 mc_bus = to_fsl_mc_bus(mc_bus_dev);
114 res_pool = resource->parent_pool;
115 if (res_pool != &mc_bus->resource_pools[resource->type]) {
116 dev_err(&mc_bus_dev->dev, "pool mismatch\n");
117 goto out;
118 }
119
120 mutex_lock(&res_pool->mutex);
121
122 if (res_pool->max_count <= 0) {
123 dev_err(&mc_bus_dev->dev, "max_count underflow\n");
124 goto out_unlock;
125 }
126 if (res_pool->free_count <= 0 ||
127 res_pool->free_count > res_pool->max_count) {
128 dev_err(&mc_bus_dev->dev, "free_count mismatch\n");
129 goto out_unlock;
130 }
131
132 /*
133 * If the device is currently allocated, its resource is not
134 * in the free list and thus, the device cannot be removed.
135 */
136 if (list_empty(&resource->node)) {
137 error = -EBUSY;
138 dev_err(&mc_bus_dev->dev,
139 "Device %s cannot be removed from resource pool\n",
140 dev_name(&mc_dev->dev));
141 goto out_unlock;
142 }
143
144 list_del_init(&resource->node);
145 res_pool->free_count--;
146 res_pool->max_count--;
147
148 devm_kfree(&mc_bus_dev->dev, resource);
149 mc_dev->resource = NULL;
150 error = 0;
151 out_unlock:
152 mutex_unlock(&res_pool->mutex);
153 out:
154 return error;
155 }
156
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
^ permalink raw reply [flat|nested] only message in thread
only message in thread, other threads:[~2023-06-02 11:52 UTC | newest]
Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2023-06-02 11:52 [linux-next:master 5699/6849] drivers/bus/fsl-mc/fsl-mc-allocator.c:108:12: warning: variable 'mc_bus_dev' is uninitialized when used here kernel test robot
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.