Commit 80839cce authored by Heiko Carstens's avatar Heiko Carstens Committed by Linus Torvalds

[PATCH] s390: core patches

s390 core changes:
 - Disable pfault pseudo page faults before stopping a cpu.
 - Add exception table for diag10 instruction.
 - Move initialization of active_mm of idle task to smp_create_idle.
 - Regenerate default configuration.
Signed-off-by: default avatarHeiko Carstens <heiko.carstens@de.ibm.com>
Signed-off-by: default avatarAndrew Morton <akpm@osdl.org>
Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
parent d2d0cd9f
# #
# Automatically generated make config: don't edit # Automatically generated make config: don't edit
# Linux kernel version: 2.6.10-rc2 # Linux kernel version: 2.6.10
# Tue Nov 30 14:00:30 2004 # Mon Dec 27 11:03:23 2004
# #
CONFIG_MMU=y CONFIG_MMU=y
CONFIG_RWSEM_XCHGADD_ALGORITHM=y CONFIG_RWSEM_XCHGADD_ALGORITHM=y
...@@ -158,6 +158,7 @@ CONFIG_BLK_DEV_LOOP=m ...@@ -158,6 +158,7 @@ CONFIG_BLK_DEV_LOOP=m
# CONFIG_BLK_DEV_CRYPTOLOOP is not set # CONFIG_BLK_DEV_CRYPTOLOOP is not set
CONFIG_BLK_DEV_NBD=m CONFIG_BLK_DEV_NBD=m
CONFIG_BLK_DEV_RAM=y CONFIG_BLK_DEV_RAM=y
CONFIG_BLK_DEV_RAM_COUNT=16
CONFIG_BLK_DEV_RAM_SIZE=4096 CONFIG_BLK_DEV_RAM_SIZE=4096
CONFIG_BLK_DEV_INITRD=y CONFIG_BLK_DEV_INITRD=y
CONFIG_INITRAMFS_SOURCE="" CONFIG_INITRAMFS_SOURCE=""
...@@ -566,6 +567,10 @@ CONFIG_CRYPTO=y ...@@ -566,6 +567,10 @@ CONFIG_CRYPTO=y
# CONFIG_CRYPTO_CRC32C is not set # CONFIG_CRYPTO_CRC32C is not set
# CONFIG_CRYPTO_TEST is not set # CONFIG_CRYPTO_TEST is not set
#
# Hardware crypto devices
#
# #
# Library routines # Library routines
# #
......
...@@ -98,9 +98,6 @@ void __devinit cpu_init (void) ...@@ -98,9 +98,6 @@ void __devinit cpu_init (void)
clear_thread_flag(TIF_USEDFPU); clear_thread_flag(TIF_USEDFPU);
current->used_math = 0; current->used_math = 0;
/* Setup active_mm for idle_task */
atomic_inc(&init_mm.mm_count);
current->active_mm = &init_mm;
if (current->mm) if (current->mm)
BUG(); BUG();
enter_lazy_tlb(&init_mm, current); enter_lazy_tlb(&init_mm, current);
......
...@@ -535,7 +535,7 @@ __init smp_check_cpus(unsigned int max_cpus) ...@@ -535,7 +535,7 @@ __init smp_check_cpus(unsigned int max_cpus)
extern void init_cpu_timer(void); extern void init_cpu_timer(void);
extern void init_cpu_vtimer(void); extern void init_cpu_vtimer(void);
extern int pfault_init(void); extern int pfault_init(void);
extern int pfault_token(void); extern void pfault_fini(void);
int __devinit start_secondary(void *cpuvoid) int __devinit start_secondary(void *cpuvoid)
{ {
...@@ -571,6 +571,8 @@ static void __init smp_create_idle(unsigned int cpu) ...@@ -571,6 +571,8 @@ static void __init smp_create_idle(unsigned int cpu)
p = fork_idle(cpu); p = fork_idle(cpu);
if (IS_ERR(p)) if (IS_ERR(p))
panic("failed fork for CPU %u: %li", cpu, PTR_ERR(p)); panic("failed fork for CPU %u: %li", cpu, PTR_ERR(p));
atomic_inc(&init_mm.mm_count);
p->active_mm = &init_mm;
current_set[cpu] = p; current_set[cpu] = p;
} }
...@@ -695,6 +697,11 @@ __cpu_disable(void) ...@@ -695,6 +697,11 @@ __cpu_disable(void)
return -EBUSY; return -EBUSY;
} }
#ifdef CONFIG_PFAULT
/* Disable pfault pseudo page faults on this cpu. */
pfault_fini();
#endif
/* disable all external interrupts */ /* disable all external interrupts */
cr_parms.start_ctl = 0; cr_parms.start_ctl = 0;
......
...@@ -45,11 +45,24 @@ void diag10(unsigned long addr) ...@@ -45,11 +45,24 @@ void diag10(unsigned long addr)
if (addr >= 0x7ff00000) if (addr >= 0x7ff00000)
return; return;
#ifdef __s390x__ #ifdef __s390x__
asm volatile ("sam31\n\t" asm volatile (
"diag %0,%0,0x10\n\t" " sam31\n"
"sam64" : : "a" (addr) ); " diag %0,%0,0x10\n"
"0: sam64\n"
".section __ex_table,\"a\"\n"
" .align 8\n"
" .quad 0b, 0b\n"
".previous\n"
: : "a" (addr));
#else #else
asm volatile ("diag %0,%0,0x10" : : "a" (addr) ); asm volatile (
" diag %0,%0,0x10\n"
"0:\n"
".section __ex_table,\"a\"\n"
" .align 4\n"
" .long 0b, 0b\n"
".previous\n"
: : "a" (addr));
#endif #endif
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment