diff mbox

Input: lpc32xx-keys - fix invalid error handling of a requested irq

Message ID 20161205014753.2092-1-vz@mleia.com (mailing list archive)
State Accepted
Headers show

Commit Message

Vladimir Zapolskiy Dec. 5, 2016, 1:47 a.m. UTC
Semantics of NR_IRQS is different on machines with SPARSE_IRQ option
disabled or enabled, in the latter case IRQs are allocated starting
at least from the value specified by NR_IRQS and going upwards, so
the check of (irq >= NR_IRQ) to decide about an error code returned by
platform_get_irq() is completely invalid, don't attempt to overrule
irq subsystem in the driver.

The change fixes lpc32xx_keys driver initialization on boot:

  lpc32xx_keys 40050000.key: failed to get platform irq
  lpc32xx_keys: probe of 40050000.key failed with error -22

Signed-off-by: Vladimir Zapolskiy <vz@mleia.com>
---
 drivers/input/keyboard/lpc32xx-keys.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

Comments

Sylvain Lemieux Dec. 7, 2016, 6:13 p.m. UTC | #1
On Mon, 2016-12-05 at 03:47 +0200, Vladimir Zapolskiy wrote:
> Semantics of NR_IRQS is different on machines with SPARSE_IRQ option
> disabled or enabled, in the latter case IRQs are allocated starting
> at least from the value specified by NR_IRQS and going upwards, so
> the check of (irq >= NR_IRQ) to decide about an error code returned by
> platform_get_irq() is completely invalid, don't attempt to overrule
> irq subsystem in the driver.
> 
> The change fixes lpc32xx_keys driver initialization on boot:
> 
>   lpc32xx_keys 40050000.key: failed to get platform irq
>   lpc32xx_keys: probe of 40050000.key failed with error -22
> 
> Signed-off-by: Vladimir Zapolskiy <vz@mleia.com>
> ---
>  drivers/input/keyboard/lpc32xx-keys.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
Cosmetic - please update the subject line when doing the commit:
replace " -" by ":" after lpc32xx-keys

Acked-by: Sylvain Lemieux <slemieux.tyco@gmail.com>


--
To unsubscribe from this list: send the line "unsubscribe linux-input" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Dmitry Torokhov Dec. 7, 2016, 6:46 p.m. UTC | #2
On December 7, 2016 10:13:07 AM PST, Sylvain Lemieux <slemieux.tyco@gmail.com> wrote:
>On Mon, 2016-12-05 at 03:47 +0200, Vladimir Zapolskiy wrote:
>> Semantics of NR_IRQS is different on machines with SPARSE_IRQ option
>> disabled or enabled, in the latter case IRQs are allocated starting
>> at least from the value specified by NR_IRQS and going upwards, so
>> the check of (irq >= NR_IRQ) to decide about an error code returned
>by
>> platform_get_irq() is completely invalid, don't attempt to overrule
>> irq subsystem in the driver.
>> 
>> The change fixes lpc32xx_keys driver initialization on boot:
>> 
>>   lpc32xx_keys 40050000.key: failed to get platform irq
>>   lpc32xx_keys: probe of 40050000.key failed with error -22
>> 
>> Signed-off-by: Vladimir Zapolskiy <vz@mleia.com>
>> ---
>>  drivers/input/keyboard/lpc32xx-keys.c | 2 +-
>>  1 file changed, 1 insertion(+), 1 deletion(-)
>> 
>Cosmetic - please update the subject line when doing the commit:
>replace " -" by ":" after lpc32xx-keys

Why? The format on all input patches is "Input: <driver> - <subject>" and had been this for 10+ years.


Thanks.
Sylvain Lemieux Dec. 7, 2016, 6:51 p.m. UTC | #3
On Wed, 2016-12-07 at 10:46 -0800, Dmitry Torokhov wrote:
> On December 7, 2016 10:13:07 AM PST, Sylvain Lemieux <slemieux.tyco@gmail.com> wrote:
> >On Mon, 2016-12-05 at 03:47 +0200, Vladimir Zapolskiy wrote:
> >> Semantics of NR_IRQS is different on machines with SPARSE_IRQ option
> >> disabled or enabled, in the latter case IRQs are allocated starting
> >> at least from the value specified by NR_IRQS and going upwards, so
> >> the check of (irq >= NR_IRQ) to decide about an error code returned
> >by
> >> platform_get_irq() is completely invalid, don't attempt to overrule
> >> irq subsystem in the driver.
> >> 
> >> The change fixes lpc32xx_keys driver initialization on boot:
> >> 
> >>   lpc32xx_keys 40050000.key: failed to get platform irq
> >>   lpc32xx_keys: probe of 40050000.key failed with error -22
> >> 
> >> Signed-off-by: Vladimir Zapolskiy <vz@mleia.com>
> >> ---
> >>  drivers/input/keyboard/lpc32xx-keys.c | 2 +-
> >>  1 file changed, 1 insertion(+), 1 deletion(-)
> >> 
> >Cosmetic - please update the subject line when doing the commit:
> >replace " -" by ":" after lpc32xx-keys
> 
> Why? The format on all input patches is "Input: <driver> - <subject>" and had been this for 10+ years.
> 
My mistake; did not look at the tree "subject line" commit log 

You can dropped my comment.

Regards,
Sylvain
> 
> Thanks.
> 


--
To unsubscribe from this list: send the line "unsubscribe linux-input" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Dmitry Torokhov Dec. 8, 2016, 1:22 a.m. UTC | #4
On Wed, Dec 07, 2016 at 01:13:07PM -0500, Sylvain Lemieux wrote:
> On Mon, 2016-12-05 at 03:47 +0200, Vladimir Zapolskiy wrote:
> > Semantics of NR_IRQS is different on machines with SPARSE_IRQ option
> > disabled or enabled, in the latter case IRQs are allocated starting
> > at least from the value specified by NR_IRQS and going upwards, so
> > the check of (irq >= NR_IRQ) to decide about an error code returned by
> > platform_get_irq() is completely invalid, don't attempt to overrule
> > irq subsystem in the driver.
> > 
> > The change fixes lpc32xx_keys driver initialization on boot:
> > 
> >   lpc32xx_keys 40050000.key: failed to get platform irq
> >   lpc32xx_keys: probe of 40050000.key failed with error -22
> > 
> > Signed-off-by: Vladimir Zapolskiy <vz@mleia.com>
> > ---
> >  drivers/input/keyboard/lpc32xx-keys.c | 2 +-
> >  1 file changed, 1 insertion(+), 1 deletion(-)
> > 
> Cosmetic - please update the subject line when doing the commit:
> replace " -" by ":" after lpc32xx-keys
> 
> Acked-by: Sylvain Lemieux <slemieux.tyco@gmail.com>

Applied, thank you.
diff mbox

Patch

diff --git a/drivers/input/keyboard/lpc32xx-keys.c b/drivers/input/keyboard/lpc32xx-keys.c
index 265d641..632523d 100644
--- a/drivers/input/keyboard/lpc32xx-keys.c
+++ b/drivers/input/keyboard/lpc32xx-keys.c
@@ -182,7 +182,7 @@  static int lpc32xx_kscan_probe(struct platform_device *pdev)
 	}
 
 	irq = platform_get_irq(pdev, 0);
-	if (irq < 0 || irq >= NR_IRQS) {
+	if (irq < 0) {
 		dev_err(&pdev->dev, "failed to get platform irq\n");
 		return -EINVAL;
 	}