config IRQSTACKS
        def_bool y
        depends on GENERIC_IRQ_MULTI_HANDLER && THREAD_INFO_IN_TASK
+       select HAVE_IRQ_EXIT_ON_IRQ_STACK
+       select HAVE_SOFTIRQ_ON_OWN_STACK
 
 config ARM_CPU_TOPOLOGY
        bool "Support cpu topology definition"
 
 #include <asm/hardware/cache-l2x0.h>
 #include <asm/hardware/cache-uniphier.h>
 #include <asm/outercache.h>
+#include <asm/softirq_stack.h>
 #include <asm/exception.h>
 #include <asm/mach/arch.h>
 #include <asm/mach/irq.h>
 #include <asm/mach/time.h>
 
+#include "reboot.h"
+
 unsigned long irq_err_count;
 
 #ifdef CONFIG_IRQSTACKS
        }
 }
 
+static void ____do_softirq(void *arg)
+{
+       __do_softirq();
+}
+
+void do_softirq_own_stack(void)
+{
+       call_with_stack(____do_softirq, NULL,
+                       __this_cpu_read(irq_stack_ptr));
+}
+
 #endif
 
 int arch_show_interrupts(struct seq_file *p, int prec)