diff options
Diffstat (limited to 'kernel/irq/generic-chip.c')
-rw-r--r-- | kernel/irq/generic-chip.c | 11 |
1 files changed, 7 insertions, 4 deletions
diff --git a/kernel/irq/generic-chip.c b/kernel/irq/generic-chip.c index c26c5bb6b491..508c03dfef25 100644 --- a/kernel/irq/generic-chip.c +++ b/kernel/irq/generic-chip.c | |||
@@ -364,10 +364,11 @@ irq_get_domain_generic_chip(struct irq_domain *d, unsigned int hw_irq) | |||
364 | EXPORT_SYMBOL_GPL(irq_get_domain_generic_chip); | 364 | EXPORT_SYMBOL_GPL(irq_get_domain_generic_chip); |
365 | 365 | ||
366 | /* | 366 | /* |
367 | * Separate lockdep class for interrupt chip which can nest irq_desc | 367 | * Separate lockdep classes for interrupt chip which can nest irq_desc |
368 | * lock. | 368 | * lock and request mutex. |
369 | */ | 369 | */ |
370 | static struct lock_class_key irq_nested_lock_class; | 370 | static struct lock_class_key irq_nested_lock_class; |
371 | static struct lock_class_key irq_nested_request_class; | ||
371 | 372 | ||
372 | /* | 373 | /* |
373 | * irq_map_generic_chip - Map a generic chip for an irq domain | 374 | * irq_map_generic_chip - Map a generic chip for an irq domain |
@@ -409,7 +410,8 @@ int irq_map_generic_chip(struct irq_domain *d, unsigned int virq, | |||
409 | set_bit(idx, &gc->installed); | 410 | set_bit(idx, &gc->installed); |
410 | 411 | ||
411 | if (dgc->gc_flags & IRQ_GC_INIT_NESTED_LOCK) | 412 | if (dgc->gc_flags & IRQ_GC_INIT_NESTED_LOCK) |
412 | irq_set_lockdep_class(virq, &irq_nested_lock_class); | 413 | irq_set_lockdep_class(virq, &irq_nested_lock_class, |
414 | &irq_nested_request_class); | ||
413 | 415 | ||
414 | if (chip->irq_calc_mask) | 416 | if (chip->irq_calc_mask) |
415 | chip->irq_calc_mask(data); | 417 | chip->irq_calc_mask(data); |
@@ -479,7 +481,8 @@ void irq_setup_generic_chip(struct irq_chip_generic *gc, u32 msk, | |||
479 | continue; | 481 | continue; |
480 | 482 | ||
481 | if (flags & IRQ_GC_INIT_NESTED_LOCK) | 483 | if (flags & IRQ_GC_INIT_NESTED_LOCK) |
482 | irq_set_lockdep_class(i, &irq_nested_lock_class); | 484 | irq_set_lockdep_class(i, &irq_nested_lock_class, |
485 | &irq_nested_request_class); | ||
483 | 486 | ||
484 | if (!(flags & IRQ_GC_NO_MASK)) { | 487 | if (!(flags & IRQ_GC_NO_MASK)) { |
485 | struct irq_data *d = irq_get_irq_data(i); | 488 | struct irq_data *d = irq_get_irq_data(i); |