gpiolib: cdev: Flag invalid GPIOs as used
authorMarc Zyngier <maz@kernel.org>
Fri, 4 Dec 2020 16:47:36 +0000 (16:47 +0000)
committerLinus Walleij <linus.walleij@linaro.org>
Wed, 9 Dec 2020 09:23:04 +0000 (10:23 +0100)
commita0db197f534fb24d64cc8c716b5f128f2de1c898
tree58e7c356f9718b56098f84176b2e804be24b3ba0
parent37ddba0245b4547621862c0b24bf36deb199bf5c
gpiolib: cdev: Flag invalid GPIOs as used

When reporting the state of a GPIO to userspace, we never check
for the actual validity of the line, meaning we report invalid
lines as being usable. A subsequent request will fail though,
which is an inconsistent behaviour from a userspace perspective.

Instead, let's check for the validity of the line and report it
as used if it is invalid. This allows a tool such as gpioinfo
to report something sensible:

gpiochip3 - 4 lines:
line   0:      unnamed       unused   input  active-high
line   1:      unnamed       kernel   input  active-high [used]
line   2:      unnamed       kernel   input  active-high [used]
line   3:      unnamed       unused   input  active-high

In this example, lines 1 and 2 are invalid, and cannot be used by
userspace.

Signed-off-by: Marc Zyngier <maz@kernel.org>
Reviewed-by: Andy Shevchenko <andy.shevchenko@gmail.com>
Link: https://lore.kernel.org/r/20201204164739.781812-2-maz@kernel.org
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
drivers/gpio/gpiolib-cdev.c