Commit 2eccaca7 authored by Linus Torvalds's avatar Linus Torvalds
Browse files

Merge tag 'gpio-fixes-for-v5.19-rc7' of git://git.kernel.org/pub/scm/linux/kernel/git/brgl/linux

Pull gpio fix from Bartosz Golaszewski:

 - fix a configfs attribute of the gpio-sim module

* tag 'gpio-fixes-for-v5.19-rc7' of git://git.kernel.org/pub/scm/linux/kernel/git/brgl/linux:
  gpio: sim: fix the chip_name configfs item
parents 8ad4b6fa 7329b071
Loading
Loading
Loading
Loading
+5 −11
Original line number Diff line number Diff line
@@ -991,28 +991,22 @@ static struct configfs_attribute *gpio_sim_device_config_attrs[] = {
};

struct gpio_sim_chip_name_ctx {
	struct gpio_sim_device *dev;
	struct fwnode_handle *swnode;
	char *page;
};

static int gpio_sim_emit_chip_name(struct device *dev, void *data)
{
	struct gpio_sim_chip_name_ctx *ctx = data;
	struct fwnode_handle *swnode;
	struct gpio_sim_bank *bank;

	/* This would be the sysfs device exported in /sys/class/gpio. */
	if (dev->class)
		return 0;

	swnode = dev_fwnode(dev);

	list_for_each_entry(bank, &ctx->dev->bank_list, siblings) {
		if (bank->swnode == swnode)
	if (device_match_fwnode(dev, ctx->swnode))
		return sprintf(ctx->page, "%s\n", dev_name(dev));
	}

	return -ENODATA;
	return 0;
}

static ssize_t gpio_sim_bank_config_chip_name_show(struct config_item *item,
@@ -1020,7 +1014,7 @@ static ssize_t gpio_sim_bank_config_chip_name_show(struct config_item *item,
{
	struct gpio_sim_bank *bank = to_gpio_sim_bank(item);
	struct gpio_sim_device *dev = gpio_sim_bank_get_device(bank);
	struct gpio_sim_chip_name_ctx ctx = { dev, page };
	struct gpio_sim_chip_name_ctx ctx = { bank->swnode, page };
	int ret;

	mutex_lock(&dev->lock);