Skip to content

Commit

Permalink
Merge tag 'gpio-updates-for-v5.7-part2' of git://git.kernel.org/pub/s…
Browse files Browse the repository at this point in the history
…cm/linux/kernel/git/brgl/linux into devel

gpio updates for v5.7 part 2

- replace z zero-length array with flexible-array member in gpio-uniphier
- make naming of variables consistent in uapi line event code
- fix the behavior of line watch/unwatch ioctl()
  • Loading branch information
Linus Walleij committed Mar 3, 2020
2 parents ca18a85 + 1931479 commit 5779925
Show file tree
Hide file tree
Showing 2 changed files with 10 additions and 10 deletions.
2 changes: 1 addition & 1 deletion drivers/gpio/gpio-uniphier.c
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@ struct uniphier_gpio_priv {
struct irq_domain *domain;
void __iomem *regs;
spinlock_t lock;
u32 saved_vals[0];
u32 saved_vals[];
};

static unsigned int uniphier_gpio_bank_to_reg(unsigned int bank)
Expand Down
18 changes: 9 additions & 9 deletions drivers/gpio/gpiolib.c
Original file line number Diff line number Diff line change
Expand Up @@ -830,11 +830,11 @@ static ssize_t lineevent_read(struct file *filep,
loff_t *f_ps)
{
struct lineevent_state *le = filep->private_data;
struct gpioevent_data event;
struct gpioevent_data ge;
ssize_t bytes_read = 0;
int ret;

if (count < sizeof(event))
if (count < sizeof(ge))
return -EINVAL;

do {
Expand All @@ -858,7 +858,7 @@ static ssize_t lineevent_read(struct file *filep,
}
}

ret = kfifo_out(&le->events, &event, 1);
ret = kfifo_out(&le->events, &ge, 1);
spin_unlock(&le->wait.lock);
if (ret != 1) {
/*
Expand All @@ -870,10 +870,10 @@ static ssize_t lineevent_read(struct file *filep,
break;
}

if (copy_to_user(buf + bytes_read, &event, sizeof(event)))
if (copy_to_user(buf + bytes_read, &ge, sizeof(ge)))
return -EFAULT;
bytes_read += sizeof(event);
} while (count >= bytes_read + sizeof(event));
bytes_read += sizeof(ge);
} while (count >= bytes_read + sizeof(ge));

return bytes_read;
}
Expand Down Expand Up @@ -1261,7 +1261,7 @@ static long gpio_ioctl(struct file *filp, unsigned int cmd, unsigned long arg)
return -EFAULT;

if (cmd == GPIO_GET_LINEINFO_WATCH_IOCTL)
set_bit(desc_to_gpio(desc), priv->watched_lines);
set_bit(gpio_chip_hwgpio(desc), priv->watched_lines);

return 0;
} else if (cmd == GPIO_GET_LINEHANDLE_IOCTL) {
Expand All @@ -1276,7 +1276,7 @@ static long gpio_ioctl(struct file *filp, unsigned int cmd, unsigned long arg)
if (IS_ERR(desc))
return PTR_ERR(desc);

clear_bit(desc_to_gpio(desc), &desc->flags);
clear_bit(gpio_chip_hwgpio(desc), priv->watched_lines);
return 0;
}
return -EINVAL;
Expand Down Expand Up @@ -1304,7 +1304,7 @@ static int lineinfo_changed_notify(struct notifier_block *nb,
struct gpio_desc *desc = data;
int ret;

if (!test_bit(desc_to_gpio(desc), priv->watched_lines))
if (!test_bit(gpio_chip_hwgpio(desc), priv->watched_lines))
return NOTIFY_DONE;

memset(&chg, 0, sizeof(chg));
Expand Down

0 comments on commit 5779925

Please sign in to comment.