aboutsummaryrefslogtreecommitdiffstats
path: root/arch/s390/mm/init.c
diff options
context:
space:
mode:
authorChristian Borntraeger <borntraeger@de.ibm.com>2016-01-11 09:17:18 +0100
committerMartin Schwidefsky <schwidefsky@de.ibm.com>2016-01-19 12:14:01 +0100
commit204ee2c5643199a25181ec04ea645d00709c2a5a (patch)
tree805f6c767221ddf0813be23a9b05829429ec60bc /arch/s390/mm/init.c
parents390/mm: use TASK_MAX_SIZE where applicable (diff)
downloadlinux-dev-204ee2c5643199a25181ec04ea645d00709c2a5a.tar.xz
linux-dev-204ee2c5643199a25181ec04ea645d00709c2a5a.zip
s390/irqflags: optimize irq restore
The ssm instruction takes longer that stnsm/stosm as it is often used to modify DAT and PER. We know that irqsave/irqrestore only deals with external and I/O interrupts and we know that irqrestore can transition only from disabled->disabled or disabled->enabled, so we can use the faster stosm. Signed-off-by: Christian Borntraeger <borntraeger@de.ibm.com>
Diffstat (limited to 'arch/s390/mm/init.c')
-rw-r--r--arch/s390/mm/init.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/arch/s390/mm/init.c b/arch/s390/mm/init.c
index c722400c7697..73e290337092 100644
--- a/arch/s390/mm/init.c
+++ b/arch/s390/mm/init.c
@@ -98,7 +98,7 @@ void __init paging_init(void)
__ctl_load(S390_lowcore.kernel_asce, 1, 1);
__ctl_load(S390_lowcore.kernel_asce, 7, 7);
__ctl_load(S390_lowcore.kernel_asce, 13, 13);
- arch_local_irq_restore(4UL << (BITS_PER_LONG - 8));
+ __arch_local_irq_stosm(0x04);
sparse_memory_present_with_active_regions(MAX_NUMNODES);
sparse_init();