Commit cbf94f06824780183e4bba165c7c29d5c7bd9a51
Committed by
Ingo Molnar
1 parent
f21cfb258d
Exists in
master
and in
4 other branches
irq: match remove_irq() args with setup_irq()
Modify remove_irq() to match setup_irq(). Signed-off-by: Magnus Damm <damm@igel.co.jp> LKML-Reference: <20090312120551.2926.43942.sendpatchset@rx1.opensource.se> Signed-off-by: Ingo Molnar <mingo@elte.hu>
Showing 2 changed files with 18 additions and 10 deletions Side-by-side Diff
include/linux/irq.h
... | ... | @@ -236,7 +236,7 @@ |
236 | 236 | #include <asm/hw_irq.h> |
237 | 237 | |
238 | 238 | extern int setup_irq(unsigned int irq, struct irqaction *new); |
239 | -extern struct irqaction *remove_irq(unsigned int irq, void *dev_id); | |
239 | +extern void remove_irq(unsigned int irq, struct irqaction *act); | |
240 | 240 | |
241 | 241 | #ifdef CONFIG_GENERIC_HARDIRQS |
242 | 242 |
kernel/irq/manage.c
... | ... | @@ -550,15 +550,11 @@ |
550 | 550 | return __setup_irq(irq, desc, act); |
551 | 551 | } |
552 | 552 | |
553 | -/** | |
554 | - * remove_irq - free an interrupt | |
555 | - * @irq: Interrupt line to free | |
556 | - * @dev_id: Device identity to free | |
557 | - * | |
558 | - * Used to remove interrupts statically setup by the early boot process. | |
553 | + /* | |
554 | + * Internal function to unregister an irqaction - used to free | |
555 | + * regular and special interrupts that are part of the architecture. | |
559 | 556 | */ |
560 | - | |
561 | -struct irqaction *remove_irq(unsigned int irq, void *dev_id) | |
557 | +static struct irqaction *__free_irq(unsigned int irq, void *dev_id) | |
562 | 558 | { |
563 | 559 | struct irq_desc *desc = irq_to_desc(irq); |
564 | 560 | struct irqaction *action, **action_ptr; |
... | ... | @@ -634,6 +630,18 @@ |
634 | 630 | } |
635 | 631 | |
636 | 632 | /** |
633 | + * remove_irq - free an interrupt | |
634 | + * @irq: Interrupt line to free | |
635 | + * @act: irqaction for the interrupt | |
636 | + * | |
637 | + * Used to remove interrupts statically setup by the early boot process. | |
638 | + */ | |
639 | +void remove_irq(unsigned int irq, struct irqaction *act) | |
640 | +{ | |
641 | + __free_irq(irq, act->dev_id); | |
642 | +} | |
643 | + | |
644 | +/** | |
637 | 645 | * free_irq - free an interrupt allocated with request_irq |
638 | 646 | * @irq: Interrupt line to free |
639 | 647 | * @dev_id: Device identity to free |
... | ... | @@ -649,7 +657,7 @@ |
649 | 657 | */ |
650 | 658 | void free_irq(unsigned int irq, void *dev_id) |
651 | 659 | { |
652 | - kfree(remove_irq(irq, dev_id)); | |
660 | + kfree(__free_irq(irq, dev_id)); | |
653 | 661 | } |
654 | 662 | EXPORT_SYMBOL(free_irq); |
655 | 663 |