- remove-extra-local_bh_disable-enable-from-arch-do_softirq.patch removed from -mm tree

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



The patch titled

     Remove extra local_bh_disable/enable from arch do_softirq

has been removed from the -mm tree.  Its filename is

     remove-extra-local_bh_disable-enable-from-arch-do_softirq.patch

This patch was dropped because it got nastily tangled up with lockdep

------------------------------------------------------
Subject: Remove extra local_bh_disable/enable from arch do_softirq
From: Paul Mackerras <paulus@xxxxxxxxx>


At the moment, powerpc and s390 have their own versions of do_softirq which
include local_bh_disable() and __local_bh_enable() calls.  They end up
calling __do_softirq (in kernel/softirq.c) which also does
local_bh_disable/enable.

Apparently the two levels of disable/enable trigger a warning from some
validation code that Ingo is working on, and he would like to see the outer
level removed.  But to do that, we have to move the account_system_vtime
calls that are currently in the arch do_softirq() implementations for
powerpc and s390 into the generic __do_softirq() (this is a no-op for other
archs because account_system_vtime is defined to be an empty inline
function on all other archs).  This patch does that.

Signed-off-by: Paul Mackerras <paulus@xxxxxxxxx>
Cc: Ingo Molnar <mingo@xxxxxxx>
Cc: Benjamin Herrenschmidt <benh@xxxxxxxxxxxxxxxxxxx>
Cc: Martin Schwidefsky <schwidefsky@xxxxxxxxxx>
Cc: Heiko Carstens <heiko.carstens@xxxxxxxxxx>
Signed-off-by: Andrew Morton <akpm@xxxxxxxx>
---

 arch/powerpc/kernel/irq.c |    7 +------
 arch/s390/kernel/irq.c    |    8 --------
 kernel/softirq.c          |    2 ++
 3 files changed, 3 insertions(+), 14 deletions(-)

diff -puN arch/powerpc/kernel/irq.c~remove-extra-local_bh_disable-enable-from-arch-do_softirq arch/powerpc/kernel/irq.c
--- a/arch/powerpc/kernel/irq.c~remove-extra-local_bh_disable-enable-from-arch-do_softirq
+++ a/arch/powerpc/kernel/irq.c
@@ -425,13 +425,8 @@ void do_softirq(void)
 
 	local_irq_save(flags);
 
-	if (local_softirq_pending()) {
-		account_system_vtime(current);
-		local_bh_disable();
+	if (local_softirq_pending())
 		do_softirq_onstack();
-		account_system_vtime(current);
-		__local_bh_enable();
-	}
 
 	local_irq_restore(flags);
 }
diff -puN arch/s390/kernel/irq.c~remove-extra-local_bh_disable-enable-from-arch-do_softirq arch/s390/kernel/irq.c
--- a/arch/s390/kernel/irq.c~remove-extra-local_bh_disable-enable-from-arch-do_softirq
+++ a/arch/s390/kernel/irq.c
@@ -69,10 +69,6 @@ asmlinkage void do_softirq(void)
 
 	local_irq_save(flags);
 
-	account_system_vtime(current);
-
-	local_bh_disable();
-
 	if (local_softirq_pending()) {
 		/* Get current stack pointer. */
 		asm volatile("la %0,0(15)" : "=a" (old));
@@ -95,10 +91,6 @@ asmlinkage void do_softirq(void)
 			__do_softirq();
 	}
 
-	account_system_vtime(current);
-
-	__local_bh_enable();
-
 	local_irq_restore(flags);
 }
 
diff -puN kernel/softirq.c~remove-extra-local_bh_disable-enable-from-arch-do_softirq kernel/softirq.c
--- a/kernel/softirq.c~remove-extra-local_bh_disable-enable-from-arch-do_softirq
+++ a/kernel/softirq.c
@@ -81,6 +81,7 @@ asmlinkage void __do_softirq(void)
 
 	pending = local_softirq_pending();
 
+	account_system_vtime(current);
 	local_bh_disable();
 	cpu = smp_processor_id();
 restart:
@@ -109,6 +110,7 @@ restart:
 	if (pending)
 		wakeup_softirqd();
 
+	account_system_vtime(current);
 	__local_bh_enable();
 }
 
_

Patches currently in -mm which might be from paulus@xxxxxxxxx are

origin.patch
more-for_each_cpu-removal.patch
define-__raw_get_cpu_var-and-use-it.patch
prepare-for-__copy_from_user_inatomic-to-not-zero-missed-bytes.patch
make-copy_from_user_inatomic-not-zero-the-tail-on-i386.patch
macintosh-mangle-caps-lock-events-on-adb-keyboards.patch
powerpc-adding-the-use-of-the-firmware-soft-reset-nmi-to-kdump.patch
powerpc-kcofnig-warning-fix.patch
work-around-ppc64-bootup-bug-by-making-mutex-debugging-save-restore-irqs.patch
add-poisonh-and-patch-primary-users.patch
apple-motion-sensor-driver.patch
fix-broken-dubious-driver-suspend-methods.patch
drivers-use-list_move.patch
remove-extra-local_bh_disable-enable-from-arch-do_softirq.patch

-
To unsubscribe from this list: send the line "unsubscribe mm-commits" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [Kernel Newbies FAQ]     [Kernel Archive]     [IETF Annouce]     [DCCP]     [Netdev]     [Networking]     [Security]     [Bugtraq]     [Photo]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux SCSI]

  Powered by Linux