···270270 kfree(action);271271272272 if (!sparc_irq[cpu_irq].action)273273- disable_irq(irq);273273+ __disable_irq(irq);274274275275out_unlock:276276 spin_unlock_irqrestore(&irq_action_lock, flags);···466466467467 sparc_irq[cpu_irq].action = action;468468469469- enable_irq(irq);469469+ __enable_irq(irq);470470471471 ret = 0;472472out_unlock:···546546547547 *actionp = action;548548549549- enable_irq(irq);549549+ __enable_irq(irq);550550551551 ret = 0;552552out_unlock:···556556}557557558558EXPORT_SYMBOL(request_irq);559559+560560+void disable_irq_nosync(unsigned int irq)561561+{562562+ return __disable_irq(irq);563563+}564564+EXPORT_SYMBOL(disable_irq_nosync);565565+566566+void disable_irq(unsigned int irq)567567+{568568+ return __disable_irq(irq);569569+}570570+EXPORT_SYMBOL(disable_irq);571571+572572+void enable_irq(unsigned int irq)573573+{574574+ return __enable_irq(irq);575575+}576576+577577+EXPORT_SYMBOL(enable_irq);559578560579/* We really don't need these at all on the Sparc. We only have561580 * stubs here because they are exported to modules.
+20
arch/sparc/kernel/irq.h
···11#include <asm/btfixup.h>2233+/* Dave Redman (djhr@tadpole.co.uk)44+ * changed these to function pointers.. it saves cycles and will allow55+ * the irq dependencies to be split into different files at a later date66+ * sun4c_irq.c, sun4m_irq.c etc so we could reduce the kernel size.77+ * Jakub Jelinek (jj@sunsite.mff.cuni.cz)88+ * Changed these to btfixup entities... It saves cycles :)99+ */1010+1111+BTFIXUPDEF_CALL(void, disable_irq, unsigned int)1212+BTFIXUPDEF_CALL(void, enable_irq, unsigned int)313BTFIXUPDEF_CALL(void, disable_pil_irq, unsigned int)414BTFIXUPDEF_CALL(void, enable_pil_irq, unsigned int)515BTFIXUPDEF_CALL(void, clear_clock_irq, void)616BTFIXUPDEF_CALL(void, clear_profile_irq, int)717BTFIXUPDEF_CALL(void, load_profile_irq, int, unsigned int)1818+1919+static inline void __disable_irq(unsigned int irq)2020+{2121+ BTFIXUP_CALL(disable_irq)(irq);2222+}2323+2424+static inline void __enable_irq(unsigned int irq)2525+{2626+ BTFIXUP_CALL(enable_irq)(irq);2727+}828929static inline void disable_pil_irq(unsigned int irq)1030{
···64646565 /* first we copy the obp handler instructions6666 */6767- disable_irq(irq_nr);6767+ __disable_irq(irq_nr);6868 if (!handler)6969 return;7070···8181 NULL)) {8282 install_linux_ticker();8383 load_profile_irq(cpu, timeout);8484- enable_irq(irq_nr);8484+ __enable_irq(irq_nr);8585 }8686}
+3-29
include/asm-sparc/irq.h
···77#ifndef _SPARC_IRQ_H88#define _SPARC_IRQ_H991010-#include <linux/linkage.h>1111-#include <linux/threads.h> /* For NR_CPUS */1210#include <linux/interrupt.h>1313-1414-#include <asm/system.h> /* For SUN4M_NCPUS */1515-#include <asm/btfixup.h>16111712#define NR_IRQS 1618131914#define irq_canonicalize(irq) (irq)20152121-/* Dave Redman (djhr@tadpole.co.uk)2222- * changed these to function pointers.. it saves cycles and will allow2323- * the irq dependencies to be split into different files at a later date2424- * sun4c_irq.c, sun4m_irq.c etc so we could reduce the kernel size.2525- * Jakub Jelinek (jj@sunsite.mff.cuni.cz)2626- * Changed these to btfixup entities... It saves cycles :)2727- */2828-BTFIXUPDEF_CALL(void, disable_irq, unsigned int)2929-BTFIXUPDEF_CALL(void, enable_irq, unsigned int)3030-3131-static inline void disable_irq_nosync(unsigned int irq)3232-{3333- BTFIXUP_CALL(disable_irq)(irq);3434-}3535-3636-static inline void disable_irq(unsigned int irq)3737-{3838- BTFIXUP_CALL(disable_irq)(irq);3939-}4040-4141-static inline void enable_irq(unsigned int irq)4242-{4343- BTFIXUP_CALL(enable_irq)(irq);4444-}1616+extern void disable_irq_nosync(unsigned int irq);1717+extern void disable_irq(unsigned int irq);1818+extern void enable_irq(unsigned int irq);45194620extern int request_fast_irq(unsigned int irq, irq_handler_t handler, unsigned long flags, __const__ char *devname);4721