Commit e70ae40d authored by Bartosz Golaszewski's avatar Bartosz Golaszewski
Browse files

gpio: sim: lock device when calling device_is_bound()

The kerneldoc for device_is_bound() says it must be called with the
device lock taken. Add missing synchronization to this driver.

Fixes: 7fb32879 ("gpio: sim: stop using dev-sync-probe")
Link: https://patch.msgid.link/20260518-gpio-dev-lock-v1-1-cc4736f3ff0b@oss.qualcomm.com


Signed-off-by: default avatarBartosz Golaszewski <bartosz.golaszewski@oss.qualcomm.com>
parent 61fef83f
Loading
Loading
Loading
Loading
+7 −4
Original line number Diff line number Diff line
@@ -901,7 +901,7 @@ static int gpio_sim_device_activate(struct gpio_sim_device *dev)
	struct platform_device *pdev;
	struct fwnode_handle *swnode;
	struct gpio_sim_bank *bank;
	int ret;
	int ret = 0;

	lockdep_assert_held(&dev->lock);

@@ -945,10 +945,13 @@ static int gpio_sim_device_activate(struct gpio_sim_device *dev)
	}

	wait_for_device_probe();

	scoped_guard(device, &pdev->dev) {
		if (!device_is_bound(&pdev->dev)) {
			ret = -ENXIO;
			goto err_unregister_pdev;
		}
	}

	dev->pdev = pdev;
	return 0;