mirror of
https://github.com/Fishwaldo/Star64_linux.git
synced 2025-06-28 09:31:14 +00:00
[PATCH] uml: make hw_controller_type->release exist only for archs needing it
With Chris Wedgwood <cw@f00f.org> As suggested by Chris, we can make the "just added" method ->release conditional to UML only (better: to archs requesting it, i.e. only UML currently), so that other archs don't get this unneeded crud, and if UML won't need it any more we can kill this. Signed-off-by: Paolo 'Blaisorblade' Giarrusso <blaisorblade@yahoo.it> CC: Ingo Molnar <mingo@redhat.com> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
This commit is contained in:
parent
faec1e99ba
commit
b77d6adc92
3 changed files with 12 additions and 0 deletions
|
@ -35,6 +35,11 @@ config GENERIC_CALIBRATE_DELAY
|
||||||
bool
|
bool
|
||||||
default y
|
default y
|
||||||
|
|
||||||
|
# Used in kernel/irq/manage.c and include/linux/irq.h
|
||||||
|
config IRQ_RELEASE_METHOD
|
||||||
|
bool
|
||||||
|
default y
|
||||||
|
|
||||||
menu "UML-specific options"
|
menu "UML-specific options"
|
||||||
|
|
||||||
config MODE_TT
|
config MODE_TT
|
||||||
|
|
|
@ -47,7 +47,10 @@ struct hw_interrupt_type {
|
||||||
void (*ack)(unsigned int irq);
|
void (*ack)(unsigned int irq);
|
||||||
void (*end)(unsigned int irq);
|
void (*end)(unsigned int irq);
|
||||||
void (*set_affinity)(unsigned int irq, cpumask_t dest);
|
void (*set_affinity)(unsigned int irq, cpumask_t dest);
|
||||||
|
/* Currently used only by UML, might disappear one day.*/
|
||||||
|
#ifdef CONFIG_IRQ_RELEASE_METHOD
|
||||||
void (*release)(unsigned int irq, void *dev_id);
|
void (*release)(unsigned int irq, void *dev_id);
|
||||||
|
#endif
|
||||||
};
|
};
|
||||||
|
|
||||||
typedef struct hw_interrupt_type hw_irq_controller;
|
typedef struct hw_interrupt_type hw_irq_controller;
|
||||||
|
|
|
@ -6,6 +6,7 @@
|
||||||
* This file contains driver APIs to the irq subsystem.
|
* This file contains driver APIs to the irq subsystem.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
#include <linux/config.h>
|
||||||
#include <linux/irq.h>
|
#include <linux/irq.h>
|
||||||
#include <linux/module.h>
|
#include <linux/module.h>
|
||||||
#include <linux/random.h>
|
#include <linux/random.h>
|
||||||
|
@ -256,8 +257,11 @@ void free_irq(unsigned int irq, void *dev_id)
|
||||||
/* Found it - now remove it from the list of entries */
|
/* Found it - now remove it from the list of entries */
|
||||||
*pp = action->next;
|
*pp = action->next;
|
||||||
|
|
||||||
|
/* Currently used only by UML, might disappear one day.*/
|
||||||
|
#ifdef CONFIG_IRQ_RELEASE_METHOD
|
||||||
if (desc->handler->release)
|
if (desc->handler->release)
|
||||||
desc->handler->release(irq, dev_id);
|
desc->handler->release(irq, dev_id);
|
||||||
|
#endif
|
||||||
|
|
||||||
if (!desc->action) {
|
if (!desc->action) {
|
||||||
desc->status |= IRQ_DISABLED;
|
desc->status |= IRQ_DISABLED;
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue