[PATCH] uml: make hw_controller_type->release exist only for archs needing it
authorPaolo 'Blaisorblade' Giarrusso <blaisorblade@yahoo.it>
Wed, 22 Jun 2005 00:16:24 +0000 (17:16 -0700)
committerLinus Torvalds <torvalds@ppc970.osdl.org>
Wed, 22 Jun 2005 02:07:32 +0000 (19:07 -0700)
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>
arch/um/Kconfig
include/linux/irq.h
kernel/irq/manage.c

index c5292181a6642f601986102255691d1924b6a37b..b8e952c88fd1280f704737c95ef3e387ca055f64 100644 (file)
@@ -35,6 +35,11 @@ config GENERIC_CALIBRATE_DELAY
        bool
        default y
 
+# Used in kernel/irq/manage.c and include/linux/irq.h
+config IRQ_RELEASE_METHOD
+       bool
+       default y
+
 menu "UML-specific options"
 
 config MODE_TT
index b68ad80e2464d020c50554ac362bfdcd1dbf50bc..7fc1022be9ee13254dbfd7a2f6bf67e9c20cb1f6 100644 (file)
@@ -47,7 +47,10 @@ struct hw_interrupt_type {
        void (*ack)(unsigned int irq);
        void (*end)(unsigned int irq);
        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);
+#endif
 };
 
 typedef struct hw_interrupt_type  hw_irq_controller;
index 5fde8177eedf8c331eae4bc245bee449f63d6d7c..ac670098570579e980e6b7bba35a235f7be885a9 100644 (file)
@@ -6,6 +6,7 @@
  * This file contains driver APIs to the irq subsystem.
  */
 
+#include <linux/config.h>
 #include <linux/irq.h>
 #include <linux/module.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 */
                        *pp = action->next;
 
+                       /* Currently used only by UML, might disappear one day.*/
+#ifdef CONFIG_IRQ_RELEASE_METHOD
                        if (desc->handler->release)
                                desc->handler->release(irq, dev_id);
+#endif
 
                        if (!desc->action) {
                                desc->status |= IRQ_DISABLED;