
From: Paolo 'Blaisorblade' Giarrusso <blaisorblade@yahoo.it>,
      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>
---

 arch/um/Kconfig     |    5 +++++
 include/linux/irq.h |    3 +++
 kernel/irq/manage.c |    4 ++++
 3 files changed, 12 insertions(+)

diff -puN arch/um/Kconfig~uml-make-hw_controller_type-release-exist-only-for-archs-needing-it arch/um/Kconfig
--- 25/arch/um/Kconfig~uml-make-hw_controller_type-release-exist-only-for-archs-needing-it	2005-06-08 15:28:28.000000000 -0700
+++ 25-akpm/arch/um/Kconfig	2005-06-08 15:28:28.000000000 -0700
@@ -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
diff -puN include/linux/irq.h~uml-make-hw_controller_type-release-exist-only-for-archs-needing-it include/linux/irq.h
--- 25/include/linux/irq.h~uml-make-hw_controller_type-release-exist-only-for-archs-needing-it	2005-06-08 15:28:28.000000000 -0700
+++ 25-akpm/include/linux/irq.h	2005-06-08 15:28:28.000000000 -0700
@@ -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;
diff -puN kernel/irq/manage.c~uml-make-hw_controller_type-release-exist-only-for-archs-needing-it kernel/irq/manage.c
--- 25/kernel/irq/manage.c~uml-make-hw_controller_type-release-exist-only-for-archs-needing-it	2005-06-08 15:28:28.000000000 -0700
+++ 25-akpm/kernel/irq/manage.c	2005-06-08 15:28:28.000000000 -0700
@@ -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>
@@ -260,8 +261,11 @@ void free_irq(unsigned int irq, void *de
 			/* 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;
_
