patch-2.4.9 linux/arch/s390x/kernel/entry.S
Next file: linux/arch/s390x/kernel/ioctl32.c
Previous file: linux/arch/s390/vmlinux-shared.lds
Back to the patch index
Back to the overall index
- Lines: 56
- Date:
Sun Aug 12 10:38:48 2001
- Orig file:
v2.4.8/linux/arch/s390x/kernel/entry.S
- Orig date:
Sun Aug 12 13:27:58 2001
diff -u --recursive --new-file v2.4.8/linux/arch/s390x/kernel/entry.S linux/arch/s390x/kernel/entry.S
@@ -193,18 +193,8 @@
tm SP_PSW+1(%r15),0x01 # returning to user ?
jno sysc_leave # no-> skip bottom half, resched & signal
#
-# check, if bottom-half has to be done
-#
- lgf %r1,processor(%r9) # get cpu number from task struture
- larl %r2,irq_stat
- sll %r1,L1_CACHE_SHIFT
- la %r1,0(%r1,%r2)
- icm %r0,15,0(%r1) # test irq_stat[#cpu].__softirq_pending
- jnz sysc_handle_bottom_half
-#
# check, if reschedule is needed
#
-sysc_return_bh:
lg %r0,need_resched(%r9) # get need_resched from task_struct
ltgr %r0,%r0
jnz sysc_reschedule
@@ -239,15 +229,6 @@
larl %r14,sysc_return
jg syscall_trace # return point is sysc_return
-
-#
-# call do_softirq and return from syscall, if interrupt-level
-# is zero
-#
-sysc_handle_bottom_half:
- larl %r14,sysc_return_bh
- jg do_softirq # return point is sysc_return_bh
-
#
# call schedule with sysc_return as return-address
#
@@ -698,9 +679,6 @@
brasl %r14,do_IRQ # call standard irq handler
io_return:
- tm SP_PSW+1(%r15),0x01 # returning to user ?
- jno io_leave # no-> skip resched & signal
- stosm 48(%r15),0x03 # reenable interrupts
#
# check, if bottom-half has to be done
#
@@ -711,6 +689,10 @@
icm %r0,15,0(%r1) # test irq_stat[#cpu].__softirq_pending
jnz io_handle_bottom_half
io_return_bh:
+
+ tm SP_PSW+1(%r15),0x01 # returning to user ?
+ jno io_leave # no-> skip resched & signal
+ stosm 48(%r15),0x03 # reenable interrupts
#
# check, if reschedule is needed
#
FUNET's LINUX-ADM group, linux-adm@nic.funet.fi
TCL-scripts by Sam Shen (who was at: slshen@lbl.gov)