X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=arch%2Fs390%2Fkernel%2Firq.c;h=59bfceabaebebee11549355dcb33569740e92110;hb=6a77f38946aaee1cd85eeec6cf4229b204c15071;hp=79a422247e07076c4ab355e49c5ed4b259d24eee;hpb=87fc8d1bb10cd459024a742c6a10961fefcef18f;p=linux-2.6.git diff --git a/arch/s390/kernel/irq.c b/arch/s390/kernel/irq.c index 79a422247..59bfceaba 100644 --- a/arch/s390/kernel/irq.c +++ b/arch/s390/kernel/irq.c @@ -71,6 +71,10 @@ 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)); @@ -86,13 +90,17 @@ asmlinkage void do_softirq(void) " la 15,0(%1)\n" : : "a" (new), "a" (old), "a" (__do_softirq) - : "0", "1", "2", "3", "4", "5", + : "0", "1", "2", "3", "4", "5", "14", "cc", "memory" ); } else /* We are already on the async stack. */ __do_softirq(); } + account_system_vtime(current); + + __local_bh_enable(); + local_irq_restore(flags); }