All of lore.kernel.org
 help / color / mirror / Atom feed
* 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.