s390/irq: simplify do_softirq_own_stack()
authorHeiko Carstens <hca@linux.ibm.com>
Mon, 5 Jul 2021 20:26:26 +0000 (22:26 +0200)
committerVasily Gorbik <gor@linux.ibm.com>
Thu, 8 Jul 2021 20:12:17 +0000 (22:12 +0200)
do_softirq_own_stack() is always called from task context and
therefore it is not necessary to check if the async stack is
currently used.
Remove the check and directly switch to async stack.

Reviewed-by: Sven Schnelle <svens@linux.ibm.com>
Signed-off-by: Heiko Carstens <hca@linux.ibm.com>
Signed-off-by: Vasily Gorbik <gor@linux.ibm.com>
arch/s390/kernel/irq.c

index c0df4060d28d8a68a9dc95f2b0584cdfb139cb2f..a03d9f54d36f7397aaafaf8b62d8de447d14c5e9 100644 (file)
@@ -270,17 +270,7 @@ unsigned int arch_dynirq_lower_bound(unsigned int from)
  */
 void do_softirq_own_stack(void)
 {
-       unsigned long old, new;
-
-       old = current_stack_pointer();
-       /* Check against async. stack address range. */
-       new = S390_lowcore.async_stack;
-       if (((new - old) >> (PAGE_SHIFT + THREAD_SIZE_ORDER)) != 0) {
-               CALL_ON_STACK(__do_softirq, new, 0);
-       } else {
-               /* We are already on the async stack. */
-               __do_softirq();
-       }
+       CALL_ON_STACK(__do_softirq, S390_lowcore.async_stack, 0);
 }
 
 /*