* drivers/gpio/gpiolib-shared.c:335 gpio_shared_make_proxy_dev() warn: missing error code 'ret'
@ 2026-10-04 18:49 kernel test robot
0 siblings, 0 replies; only message in thread
From: kernel test robot @ 2026-10-04 18:49 UTC (permalink / raw)
To: oe-kbuild; +Cc: lkp, Dan Carpenter
Unfiltered warning: this smatch report is sent as-is and has not been
reviewed for false positives, so please treat it with due skepticism.
BCC: lkp@intel.com
CC: oe-kbuild-all@lists.linux.dev
TO: Bartosz Golaszewski <bartosz.golaszewski@oss.qualcomm.com>
CC: 0day robot <lkp@intel.com>
tree: https://github.com/intel-lab-lkp/linux/commits/Bartosz-Golaszewski/gpio-shared-fix-use-after-free-bug-when-adding-shared-proxies/20261001-163147
head: 33a59c84f6eeb1152ed70c31bdc81f52ed514eee
commit: 33a59c84f6eeb1152ed70c31bdc81f52ed514eee gpio: shared: convert to using software nodes for GPIO shared proxy lookup
date: 3 days ago
:::::: branch date: 3 days ago
:::::: commit date: 3 days ago
config: m68k-randconfig-r2202-20261004 (https://download.01.org/0day-ci/archive/20261004/202610042019.eTtddedV-lkp@intel.com/config)
compiler: m68k-linux-gcc (GCC) 8.5.0
smatch: v0.5.0-9187-g5189e3fb
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 <lkp@intel.com>
| Reported-by: Dan Carpenter <error27@gmail.com>
| Closes: https://lore.kernel.org/r/202610042019.eTtddedV-lkp@intel.com/
smatch warnings:
drivers/gpio/gpiolib-shared.c:335 gpio_shared_make_proxy_dev() warn: missing error code 'ret'
vim +/ret +335 drivers/gpio/gpiolib-shared.c
a060b8c511abb0 Bartosz Golaszewski 2025-11-12 314
774702a71d51c8 Bartosz Golaszewski 2026-10-01 315 static int gpio_shared_make_proxy_dev(struct gpio_device *gdev,
54a2df5afa2382 Bartosz Golaszewski 2025-11-28 316 struct gpio_shared_entry *entry,
a060b8c511abb0 Bartosz Golaszewski 2025-11-12 317 struct gpio_shared_ref *ref)
a060b8c511abb0 Bartosz Golaszewski 2025-11-12 318 {
33a59c84f6eeb1 Bartosz Golaszewski 2026-10-01 319 struct software_node *swnode = &ref->proxy_swnode;
774702a71d51c8 Bartosz Golaszewski 2026-10-01 320 struct auxiliary_device *adev = &ref->proxy_dev;
33a59c84f6eeb1 Bartosz Golaszewski 2026-10-01 321 struct device *dev = &adev->dev;
a060b8c511abb0 Bartosz Golaszewski 2025-11-12 322 int ret;
a060b8c511abb0 Bartosz Golaszewski 2025-11-12 323
ea513dd3c06607 Bartosz Golaszewski 2025-12-06 324 guard(mutex)(&ref->lock);
a060b8c511abb0 Bartosz Golaszewski 2025-11-12 325
a060b8c511abb0 Bartosz Golaszewski 2025-11-12 326 memset(adev, 0, sizeof(*adev));
33a59c84f6eeb1 Bartosz Golaszewski 2026-10-01 327 memset(swnode, 0, sizeof(*swnode));
33a59c84f6eeb1 Bartosz Golaszewski 2026-10-01 328
33a59c84f6eeb1 Bartosz Golaszewski 2026-10-01 329 ret = software_node_register(swnode);
33a59c84f6eeb1 Bartosz Golaszewski 2026-10-01 330 if (ret)
33a59c84f6eeb1 Bartosz Golaszewski 2026-10-01 331 return ret;
33a59c84f6eeb1 Bartosz Golaszewski 2026-10-01 332
33a59c84f6eeb1 Bartosz Golaszewski 2026-10-01 333 ref->proxy_fwnode = software_node_fwnode(swnode);
33a59c84f6eeb1 Bartosz Golaszewski 2026-10-01 334 if (!ref->proxy_fwnode)
33a59c84f6eeb1 Bartosz Golaszewski 2026-10-01 @335 goto err_swnode_unreg;
a060b8c511abb0 Bartosz Golaszewski 2025-11-12 336
a060b8c511abb0 Bartosz Golaszewski 2025-11-12 337 adev->id = ref->dev_id;
a060b8c511abb0 Bartosz Golaszewski 2025-11-12 338 adev->name = "proxy";
33a59c84f6eeb1 Bartosz Golaszewski 2026-10-01 339 dev->parent = gdev->dev.parent;
33a59c84f6eeb1 Bartosz Golaszewski 2026-10-01 340 dev->platform_data = entry;
33a59c84f6eeb1 Bartosz Golaszewski 2026-10-01 341 dev->release = gpio_shared_proxy_dev_release;
33a59c84f6eeb1 Bartosz Golaszewski 2026-10-01 342
33a59c84f6eeb1 Bartosz Golaszewski 2026-10-01 343 device_set_node(dev, software_node_fwnode(swnode));
a060b8c511abb0 Bartosz Golaszewski 2025-11-12 344
a060b8c511abb0 Bartosz Golaszewski 2025-11-12 345 ret = auxiliary_device_init(adev);
a060b8c511abb0 Bartosz Golaszewski 2025-11-12 346 if (ret)
33a59c84f6eeb1 Bartosz Golaszewski 2026-10-01 347 goto err_swnode_unreg;
a060b8c511abb0 Bartosz Golaszewski 2025-11-12 348
a060b8c511abb0 Bartosz Golaszewski 2025-11-12 349 ret = auxiliary_device_add(adev);
33a59c84f6eeb1 Bartosz Golaszewski 2026-10-01 350 if (ret)
33a59c84f6eeb1 Bartosz Golaszewski 2026-10-01 351 goto err_dev_uninit;
a060b8c511abb0 Bartosz Golaszewski 2025-11-12 352
a060b8c511abb0 Bartosz Golaszewski 2025-11-12 353 pr_debug("Created an auxiliary GPIO proxy %s for GPIO device %s\n",
a060b8c511abb0 Bartosz Golaszewski 2025-11-12 354 dev_name(&adev->dev), gpio_device_get_label(gdev));
a060b8c511abb0 Bartosz Golaszewski 2025-11-12 355
a060b8c511abb0 Bartosz Golaszewski 2025-11-12 356 return 0;
33a59c84f6eeb1 Bartosz Golaszewski 2026-10-01 357
33a59c84f6eeb1 Bartosz Golaszewski 2026-10-01 358 err_dev_uninit:
33a59c84f6eeb1 Bartosz Golaszewski 2026-10-01 359 auxiliary_device_uninit(adev);
33a59c84f6eeb1 Bartosz Golaszewski 2026-10-01 360 err_swnode_unreg:
33a59c84f6eeb1 Bartosz Golaszewski 2026-10-01 361 software_node_unregister(swnode);
33a59c84f6eeb1 Bartosz Golaszewski 2026-10-01 362
33a59c84f6eeb1 Bartosz Golaszewski 2026-10-01 363 return ret;
a060b8c511abb0 Bartosz Golaszewski 2025-11-12 364 }
a060b8c511abb0 Bartosz Golaszewski 2025-11-12 365
--
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:[~2026-10-04 18:50 UTC | newest]
Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-10-04 18:49 drivers/gpio/gpiolib-shared.c:335 gpio_shared_make_proxy_dev() warn: missing error code 'ret' 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.