diff options
author | Andrew Lunn <andrew@lunn.ch> | 2017-12-02 12:11:04 -0500 |
---|---|---|
committer | Thomas Gleixner <tglx@linutronix.de> | 2017-12-28 06:26:35 -0500 |
commit | 39c3fd58952d7599d367c84c1330b785d91d6088 (patch) | |
tree | 156853f464f0148928514478abf3aeca86e30397 /drivers/gpio/gpio-bcm-kona.c | |
parent | beacbc68ac3e23821a681adb30b45dc55b17488d (diff) |
kernel/irq: Extend lockdep class for request mutex
The IRQ code already has support for lockdep class for the lock mutex
in an interrupt descriptor. Extend this to add a second class for the
request mutex in the descriptor. Not having a class is resulting in
false positive splats in some code paths.
Signed-off-by: Andrew Lunn <andrew@lunn.ch>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Acked-by: linus.walleij@linaro.org
Cc: grygorii.strashko@ti.com
Cc: f.fainelli@gmail.com
Link: https://lkml.kernel.org/r/1512234664-21555-1-git-send-email-andrew@lunn.ch
Diffstat (limited to 'drivers/gpio/gpio-bcm-kona.c')
-rw-r--r-- | drivers/gpio/gpio-bcm-kona.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/drivers/gpio/gpio-bcm-kona.c b/drivers/gpio/gpio-bcm-kona.c index dfcf56ee3c61..76861a00bb92 100644 --- a/drivers/gpio/gpio-bcm-kona.c +++ b/drivers/gpio/gpio-bcm-kona.c | |||
@@ -522,6 +522,7 @@ static struct of_device_id const bcm_kona_gpio_of_match[] = { | |||
522 | * category than their parents, so it won't report false recursion. | 522 | * category than their parents, so it won't report false recursion. |
523 | */ | 523 | */ |
524 | static struct lock_class_key gpio_lock_class; | 524 | static struct lock_class_key gpio_lock_class; |
525 | static struct lock_class_key gpio_request_class; | ||
525 | 526 | ||
526 | static int bcm_kona_gpio_irq_map(struct irq_domain *d, unsigned int irq, | 527 | static int bcm_kona_gpio_irq_map(struct irq_domain *d, unsigned int irq, |
527 | irq_hw_number_t hwirq) | 528 | irq_hw_number_t hwirq) |
@@ -531,7 +532,7 @@ static int bcm_kona_gpio_irq_map(struct irq_domain *d, unsigned int irq, | |||
531 | ret = irq_set_chip_data(irq, d->host_data); | 532 | ret = irq_set_chip_data(irq, d->host_data); |
532 | if (ret < 0) | 533 | if (ret < 0) |
533 | return ret; | 534 | return ret; |
534 | irq_set_lockdep_class(irq, &gpio_lock_class); | 535 | irq_set_lockdep_class(irq, &gpio_lock_class, &gpio_request_class); |
535 | irq_set_chip_and_handler(irq, &bcm_gpio_irq_chip, handle_simple_irq); | 536 | irq_set_chip_and_handler(irq, &bcm_gpio_irq_chip, handle_simple_irq); |
536 | irq_set_noprobe(irq); | 537 | irq_set_noprobe(irq); |
537 | 538 | ||