#error Unknown Au1x00 SOC
 #endif
 
-       if (request_irq(irq_nr, dbdma_interrupt, SA_INTERRUPT,
+       if (request_irq(irq_nr, dbdma_interrupt, IRQF_DISABLED,
                        "Au1xxx dbdma", (void *)dbdma_gptr))
                printk("Can't get 1550 dbdma irq");
 }
 
         * can avoid it.  --cgray
        */
        action.dev_id = handler;
-       action.flags = SA_INTERRUPT;
+       action.flags = IRQF_DISABLED;
        cpus_clear(action.mask);
        action.name = "Au1xxx TOY";
        action.handler = handler;
 
         */
 
        /* request the USB device transfer complete interrupt */
-       if (request_irq(AU1000_USB_DEV_REQ_INT, req_sus_intr, SA_INTERRUPT,
+       if (request_irq(AU1000_USB_DEV_REQ_INT, req_sus_intr, IRQF_DISABLED,
                        "USBdev req", &usbdev)) {
                err("Can't get device request intr");
                ret = -ENXIO;
                goto out;
        }
        /* request the USB device suspend interrupt */
-       if (request_irq(AU1000_USB_DEV_SUS_INT, req_sus_intr, SA_INTERRUPT,
+       if (request_irq(AU1000_USB_DEV_SUS_INT, req_sus_intr, IRQF_DISABLED,
                        "USBdev sus", &usbdev)) {
                err("Can't get device suspend intr");
                ret = -ENXIO;
        if ((ep0->indma = request_au1000_dma(ep_dma_id[0].id,
                                             ep_dma_id[0].str,
                                             dma_done_ep0_intr,
-                                            SA_INTERRUPT,
+                                            IRQF_DISABLED,
                                             &usbdev)) < 0) {
                err("Can't get %s DMA", ep_dma_id[0].str);
                ret = -ENXIO;
                                request_au1000_dma(ep_dma_id[ep->address].id,
                                                   ep_dma_id[ep->address].str,
                                                   dma_done_ep_intr,
-                                                  SA_INTERRUPT,
+                                                  IRQF_DISABLED,
                                                   &usbdev);
                        if (ep->indma < 0) {
                                err("Can't get %s DMA",
 
 
 static int iodev_open(struct inode *i, struct file *f)
 {
-       return request_irq(iodev_irq, iodev_irqhdl, SA_INTERRUPT,
+       return request_irq(iodev_irq, iodev_irqhdl, IRQF_DISABLED,
                           iodev_name, &miscdev);
 }
 
 
 };
 
 static struct irqaction busirq = {
-       .flags = SA_INTERRUPT,
+       .flags = IRQF_DISABLED,
        .name = "bus error",
 };
 
        case MACH_DS23100:      /* DS2100/DS3100 Pmin/Pmax */
                board_be_handler = dec_kn01_be_handler;
                busirq.handler = dec_kn01_be_interrupt;
-               busirq.flags |= SA_SHIRQ;
+               busirq.flags |= IRQF_SHARED;
                dec_kn01_be_init();
                break;
        case MACH_DS5000_1XX:   /* DS5000/1xx 3min */
 
         * the values to the correct interrupt line.
         */
        timer.handler = gt64120_irq;
-       timer.flags = SA_SHIRQ | SA_INTERRUPT;
+       timer.flags = IRQF_SHARED | IRQF_DISABLED;
        timer.name = "timer";
        timer.dev_id = NULL;
        timer.next = NULL;
 
 
 static struct irqaction rtlx_irq = {
        .handler        = rtlx_interrupt,
-       .flags          = SA_INTERRUPT,
+       .flags          = IRQF_DISABLED,
        .name           = "RTLX",
 };
 
 
 
 static struct irqaction irq_resched = {
        .handler        = ipi_resched_interrupt,
-       .flags          = SA_INTERRUPT,
+       .flags          = IRQF_DISABLED,
        .name           = "IPI_resched"
 };
 
 static struct irqaction irq_call = {
        .handler        = ipi_call_interrupt,
-       .flags          = SA_INTERRUPT,
+       .flags          = IRQF_DISABLED,
        .name           = "IPI_call"
 };
 
 
        set_vi_handler(MIPS_CPU_IPI_IRQ, ipi_irq_dispatch);
 
        irq_ipi.handler = ipi_interrupt;
-       irq_ipi.flags = SA_INTERRUPT;
+       irq_ipi.flags = IRQF_DISABLED;
        irq_ipi.name = "SMTC_IPI";
 
        setup_irq_smtc(cpu_ipi_irq, &irq_ipi, (0x100 << MIPS_CPU_IPI_IRQ));
 
 
 static struct irqaction timer_irqaction = {
        .handler = timer_interrupt,
-       .flags = SA_INTERRUPT,
+       .flags = IRQF_DISABLED,
        .name = "timer",
 };
 
 
 }
 
 static struct irqaction cascade_mv64340 = {
-       no_action, SA_INTERRUPT, CPU_MASK_NONE, "MV64340-Cascade", NULL, NULL
+       no_action, IRQF_DISABLED, CPU_MASK_NONE, "MV64340-Cascade", NULL, NULL
 };
 
 void __init arch_init_irq(void)
 
 #include <asm/system.h>
 
 static struct irqaction cascade_mv64340 = {
-       no_action, SA_INTERRUPT, CPU_MASK_NONE, "MV64340-Cascade", NULL, NULL
+       no_action, IRQF_DISABLED, CPU_MASK_NONE, "MV64340-Cascade", NULL, NULL
 };
 
 void __init arch_init_irq(void)
 
 extern void cpci_irq_init(void);
 
 static struct irqaction cascade_fpga = {
-       no_action, SA_INTERRUPT, CPU_MASK_NONE, "cascade via FPGA", NULL, NULL
+       no_action, IRQF_DISABLED, CPU_MASK_NONE, "cascade via FPGA", NULL, NULL
 };
 
 static struct irqaction cascade_mv64340 = {
-       no_action, SA_INTERRUPT, CPU_MASK_NONE, "cascade via MV64340", NULL, NULL
+       no_action, IRQF_DISABLED, CPU_MASK_NONE, "cascade via MV64340", NULL, NULL
 };
 
 extern void ll_uart_irq(struct pt_regs *regs);
 
         * the values to the correct interrupt line.
         */
        timer.handler = >64240_p0int_irq;
-       timer.flags = SA_SHIRQ | SA_INTERRUPT;
+       timer.flags = IRQF_SHARED | IRQF_DISABLED;
        timer.name = "timer";
        timer.dev_id = NULL;
        timer.next = NULL;
 
 
 static struct irqaction gic_action = {
        .handler =      no_action,
-       .flags =        SA_INTERRUPT,
+       .flags =        IRQF_DISABLED,
        .name =         "GIC",
 };
 
 static struct irqaction timer_action = {
        .handler =      no_action,
-       .flags =        SA_INTERRUPT,
+       .flags =        IRQF_DISABLED,
        .name =         "Timer",
 };
 
 
 
 static struct irqaction local0_cascade = {
        .handler        = no_action,
-       .flags          = SA_INTERRUPT,
+       .flags          = IRQF_DISABLED,
        .name           = "local0 cascade",
 };
 
 static struct irqaction local1_cascade = {
        .handler        = no_action,
-       .flags          = SA_INTERRUPT,
+       .flags          = IRQF_DISABLED,
        .name           = "local1 cascade",
 };
 
 static struct irqaction buserr = {
        .handler        = no_action,
-       .flags          = SA_INTERRUPT,
+       .flags          = IRQF_DISABLED,
        .name           = "Bus Error",
 };
 
 static struct irqaction map0_cascade = {
        .handler        = no_action,
-       .flags          = SA_INTERRUPT,
+       .flags          = IRQF_DISABLED,
        .name           = "mapable0 cascade",
 };
 
 #ifdef USE_LIO3_IRQ
 static struct irqaction map1_cascade = {
        .handler        = no_action,
-       .flags          = SA_INTERRUPT,
+       .flags          = IRQF_DISABLED,
        .name           = "mapable1 cascade",
 };
 #define SGI_INTERRUPTS SGINT_END
 
 }
 
 /*
- * This code is unnecessarily complex, because we do SA_INTERRUPT
+ * This code is unnecessarily complex, because we do IRQF_DISABLED
  * intr enabling. Basically, once we grab the set of intrs we need
  * to service, we must mask _all_ these interrupts; firstly, to make
  * sure the same intr does not intr again, causing recursion that
 
 
 static struct irqaction rt_irqaction = {
        .handler        = ip27_rt_timer_interrupt,
-       .flags          = SA_INTERRUPT,
+       .flags          = IRQF_DISABLED,
        .mask           = CPU_MASK_NONE,
        .name           = "timer"
 };
 
 extern irqreturn_t crime_cpuerr_intr (int irq, void *dev_id,
                                      struct pt_regs *regs);
 
-struct irqaction memerr_irq = { crime_memerr_intr, SA_INTERRUPT,
+struct irqaction memerr_irq = { crime_memerr_intr, IRQF_DISABLED,
                        CPU_MASK_NONE, "CRIME memory error", NULL, NULL };
-struct irqaction cpuerr_irq = { crime_cpuerr_intr, SA_INTERRUPT,
+struct irqaction cpuerr_irq = { crime_cpuerr_intr, IRQF_DISABLED,
                        CPU_MASK_NONE, "CRIME CPU error", NULL, NULL };
 
 /*
                                 MACEISA_KEYB_POLL_INT |        \
                                 MACEISA_MOUSE_INT |            \
                                 MACEISA_MOUSE_POLL_INT |       \
-                                MACEISA_TIMER0_INT |           \
-                                MACEISA_TIMER1_INT |           \
-                                MACEISA_TIMER2_INT)
+                                MACEIIRQF_TIMER0_INT |         \
+                                MACEIIRQF_TIMER1_INT |         \
+                                MACEIIRQF_TIMER2_INT)
 #define MACEISA_SUPERIO_INT    (MACEISA_PARALLEL_INT |         \
                                 MACEISA_PAR_CTXA_INT |         \
                                 MACEISA_PAR_CTXB_INT |         \
        case MACEISA_AUDIO_SW_IRQ ... MACEISA_AUDIO3_MERR_IRQ:
                crime_int = MACE_AUDIO_INT;
                break;
-       case MACEISA_RTC_IRQ ... MACEISA_TIMER2_IRQ:
+       case MACEISA_RTC_IRQ ... MACEIIRQF_TIMER2_IRQ:
                crime_int = MACE_MISC_INT;
                break;
        case MACEISA_PARALLEL_IRQ ... MACEISA_SERIAL2_RDMAOR_IRQ:
 
 }
 
 //#define TOSHIBA_RBTX4927_PIC_ACTION(s) { no_action, 0, CPU_MASK_NONE, s, NULL, NULL }
-#define TOSHIBA_RBTX4927_PIC_ACTION(s) { no_action, SA_SHIRQ, CPU_MASK_NONE, s, NULL, NULL }
+#define TOSHIBA_RBTX4927_PIC_ACTION(s) { no_action, IRQF_SHARED, CPU_MASK_NONE, s, NULL, NULL }
 static struct irqaction toshiba_rbtx4927_irq_ioc_action =
 TOSHIBA_RBTX4927_PIC_ACTION(TOSHIBA_RBTX4927_IOC_NAME);
 #ifdef CONFIG_TOSHIBA_FPCIB0
 
 static inline int fd_request_irq(void)
 {
        return request_irq(FLOPPY_IRQ, floppy_interrupt,
-                          SA_INTERRUPT, "floppy", NULL);
+                          IRQF_DISABLED, "floppy", NULL);
 }
 
 static inline void fd_free_irq(void)
 
 static inline int fd_request_irq(void)
 {
        return request_irq(FLOPPY_IRQ, floppy_interrupt,
-                          SA_INTERRUPT, "floppy", NULL);
+                          IRQF_DISABLED, "floppy", NULL);
 }
 
 static inline void fd_free_irq(void)
 
  * SA_FLAGS values:
  *
  * SA_ONSTACK indicates that a registered stack_t will be used.
- * SA_INTERRUPT is a no-op, but left due to historical reasons. Use the
  * SA_RESTART flag to get restarting signals (which were the default long ago)
  * SA_NOCLDSTOP flag to turn off SIGCHLD when children stop.
  * SA_RESETHAND clears the handler when the signal is delivered.
 
 #define SA_NOMASK      SA_NODEFER
 #define SA_ONESHOT     SA_RESETHAND
-#define SA_INTERRUPT   0x20000000      /* dummy -- ignored */
 
 #define SA_RESTORER    0x04000000      /* Only for o32 */
 
 
 #ifdef __KERNEL__
 
-/*
- * These values of sa_flags are used only by the kernel as part of the
- * irq handling routines.
- *
- * SA_INTERRUPT is also used by the irq handling routines.
- * SA_SHIRQ flag is for shared interrupt support on PCI and EISA.
- */
-#define SA_SAMPLE_RANDOM       SA_RESTART
-
 #ifdef CONFIG_TRAD_SIGNALS
 #define sig_uses_siginfo(ka)   ((ka)->sa.sa_flags & SA_SIGINFO)
 #else