Thread (8 messages) 8 messages, 6 authors, 2015-01-21

[PATCH 1/1] gpio: omap: Fix bad device access with setup_irq()

From: santosh.shilimkar at oracle.com <hidden>
Date: 2015-01-19 19:06:13
Also in: linux-gpio, linux-omap

On 1/16/15 5:00 PM, Tony Lindgren wrote:
* santosh shilimkar [off-list ref] [150116 16:23]:
quoted
On 1/16/2015 2:50 PM, Tony Lindgren wrote:
quoted
Similar to omap_gpio_irq_type() let's make sure that the GPIO
is usable as an interrupt if the platform init code did not
call gpio_request(). Otherwise we can get invalid device access
after setup_irq():
I let Linus W comment on it but IIRC we chewed this issue last
time and the conclusion was the gpio_request() must have to be called
directly or indirectly in case of irq line.
This is a corner case where the error is triggered by a wrong,
non-GPIO IRQ so gpio_request() will never be called before setup_irq()
unlike for any legacy platform code.

The legacy and DT cases we're already handling in the gpio-omap.c
driver a while back with:

2f56e0a57ff1 ("gpio/omap: use gpiolib API to mark a GPIO used as an IRQ")
fac7fa162a19 ("gpio/omap: auto-setup a GPIO when used as an IRQ")
fa365e4d7290 ("gpio/omap: maintain GPIO and IRQ usage separately")

And most of that the bank specific hacks we can get rid of by making
the driver multple instances as that allows replacing BANK_USED
with just runtime PM.
Right. Thanks for expanding it.

Regards,
Santosh
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help