s390 patches for 2.6.22
cover s390 patches for 2.6.22
Last s390 bug fix patches for 2.6.22.
Signature · 4 lines
blue skies, Martin. "Reality continues to ruin my life." - Calvin.
PATCH 1/6 Missing blank when appending cio_ignore kernel parameter
From: Michael Holzheu <[email protected]>
When appending the 'cio_ignore' kernel parameter to the command line, a blank has to be inserted in order to separate 'cio_ignore' from the preceding kernel parameters.
---
arch/s390/kernel/setup.c | 1 + 1 file changed, 1 insertion(+)
arch/s390/kernel/setup.c +1 -0
@@ -300,6 +300,7 @@ static void __init setup_zfcpdump(unsignelse sprintf (str,"cio_ignore=all,!0.0.%04x" , ipl_info.data.fcp.dev_id.devno); +strcat (COMMAND_LINE ," " );strcat (COMMAND_LINE , str); console_loglevel =2 ; }
Signature · 4 lines
blue skies, Martin. "Reality continues to ruin my life." - Calvin.
PATCH 2/6 Fix zfcpdump header
In reply to Martin SchwidefskyFrom: Michael Holzheu <[email protected]>
Added members for volume number and real memory size to header information.
---
drivers/s390/char/zcore.c | 3 +++ 1 file changed, 3 insertions(+)
drivers/s390/char/zcore.c +3 -0
@@ -267,7 +267,9 @@ struct zcore_header {u64 tod;cpuid_t cpu_id;u32 arch_id; +u32 volnr;u32 build_arch; +u64 rmem_size;char pad2[4016 ]; } __attribute__((packed,__aligned__(16)));
@@ -559,6 +561,7 @@ static void __init zcore_header_init(intelse hdr->arch_id =DUMP_ARCH_S390 ; hdr->mem_size = sys_info.mem_size; + hdr->rmem_size = sys_info.mem_size; hdr->mem_end = sys_info.mem_size; hdr->num_pages = sys_info.mem_size /PAGE_SIZE ; hdr->tod =get_clock ();
Signature · 4 lines
blue skies, Martin. "Reality continues to ruin my life." - Calvin.
PATCH 3/6 Fix yet another two section mismatches.
In reply to Martin SchwidefskyFrom: Heiko Carstens <[email protected]>
WARNING: arch/s390/kernel/built-in.o(.text+0xb92a):
Section mismatch: reference to .init.text:start_secondary (between 'restart_addr' and 'stack_overflow')
WARNING: arch/s390/appldata/built-in.o(.data+0xdc):
Section mismatch: reference to .init.text:
(between 'appldata_nb' and 'appldata_timer_lock')
---
arch/s390/appldata/appldata_base.c | 5 ++--- arch/s390/kernel/entry.S | 8 +++++++- arch/s390/kernel/entry64.S | 8 +++++++- 3 files changed, 16 insertions(+), 5 deletions(-)
arch/s390/appldata/appldata_base.c +2 -3
@@ -535,8 +535,7 @@ void appldata_unregister_ops(struct appl/******************************* init / exit *********************************/ -static void -appldata_online_cpu (int cpu) +static void __cpuinit appldata_online_cpu (int cpu) {init_virt_timer (&per_cpu (appldata_timer, cpu));per_cpu (appldata_timer, cpu).function = appldata_timer_function;
@@ -580,7 +579,7 @@ appldata_cpu_notify(struct notifier_blocreturn NOTIFY_OK ; } -static struct notifier_block appldata_nb = { +static struct notifier_block __cpuinitdata appldata_nb = { .notifier_call = appldata_cpu_notify, };
arch/s390/kernel/entry64.S +7 -1
@@ -745,10 +745,13 @@ mcck_return: #endif lpswe __LC_RETURN_MCCK_PSW # back to caller -#ifdef CONFIG_SMP /* * Restart interruption handler, kick starter for additional CPUs */ +#ifdef CONFIG_SMP +#ifndef CONFIG_HOTPLUG_CPU + .section .init.text,"ax" +#endif .globl restart_int_handler restart_int_handler: lg %r15,__LC_SAVE_AREA+120 # load ksp
@@ -759,6 +762,9 @@ restart_int_handler: lmg %r6,%r15,__SF_GPRS(%r15) # load registers from clone stosm __SF_EMPTY(%r15),0x04 # now we can turn dat on jg start_secondary +#ifndef CONFIG_HOTPLUG_CPU + .previous +#endif #else /* * If we do not run with SMP enabled, let the new CPU crash ...
arch/s390/kernel/entry.S +7 -1
@@ -769,10 +769,13 @@ mcck_return: RESTORE_ALL __LC_RETURN_MCCK_PSW,0 -#ifdef CONFIG_SMP /* * Restart interruption handler, kick starter for additional CPUs */ +#ifdef CONFIG_SMP +#ifndef CONFIG_HOTPLUG_CPU + .section .init.text,"ax" +#endif .globl restart_int_handler restart_int_handler: l %r15,__LC_SAVE_AREA+60 # load ksp
@@ -785,6 +788,9 @@ restart_int_handler: br %r14 # branch to start_secondary restart_addr: .long start_secondary +#ifndef CONFIG_HOTPLUG_CPU + .previous +#endif #else /* * If we do not run with SMP enabled, let the new CPU crash ...
Signature · 4 lines
blue skies, Martin. "Reality continues to ruin my life." - Calvin.
PATCH 4/6 Print list of modules on die().
In reply to Martin SchwidefskyFrom: Heiko Carstens <[email protected]>
Print list of modules on die() like a lot of other architectures do.
---
arch/s390/kernel/traps.c | 1 + 1 file changed, 1 insertion(+)
arch/s390/kernel/traps.c +1 -0
@@ -258,6 +258,7 @@ void die(const char * str, struct pt_regspin_lock_irq (&die_lock);bust_spinlocks (1 );printk ("%s: %04lx [#%d]\n" , str, err &0xffff , ++die_counter); +print_modules ();show_regs (regs);bust_spinlocks (0 );spin_unlock_irq (&die_lock);
Signature · 4 lines
blue skies, Martin. "Reality continues to ruin my life." - Calvin.
PATCH 5/6 Move psw_set_key.
In reply to Martin SchwidefskyFrom: Heiko Carstens <[email protected]>
Move psw_set_key() from ptrace.h to processor.h which is a more suitable place for it. In addition the moves makes the function invisible to user space.
---
arch/s390/kernel/traps.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-)
arch/s390/kernel/traps.c +5 -3
@@ -253,20 +253,22 @@ void die(const char * str, struct pt_reg {static int die_counter; +oops_enter ();debug_stop_all ();console_verbose ();spin_lock_irq (&die_lock);bust_spinlocks (1 );printk ("%s: %04lx [#%d]\n" , str, err &0xffff , ++die_counter);print_modules (); -show_regs (regs); +show_regs (regs);bust_spinlocks (0 ); -spin_unlock_irq (&die_lock); +spin_unlock_irq (&die_lock);if (in_interrupt ())panic ("Fatal exception in interrupt" );if (panic_on_oops)panic ("Fatal exception: panic_on_oops" ); -do_exit (SIGSEGV ); +oops_exit (); +do_exit (SIGSEGV ); } static void inline
Signature · 4 lines
blue skies, Martin. "Reality continues to ruin my life." - Calvin.
Re: [patch 5/6] Move psw_set_key.
Quoted 3 lines · Martin Schwidefsky
Move
psw_set_key()fromptrace.htoprocessor.hwhich is a more suitable place for it. In addition the moves makes the function invisible to user space.
Hmm, this does not really describe the changes.
Bastian
Signature · 2 lines
Violence in reality is quite different from theory. -- Spock, "The Cloud Minders", stardate 5818.4
Re: [patch 5/6] Move psw_set_key.
Quoted 6 lines · Bastian Blank
Quoted 3 lines · Martin Schwidefsky
Move
psw_set_key()fromptrace.htoprocessor.hwhich is a more suitable place for it. In addition the moves makes the function invisible to user space.Hmm, this does not really describe the changes.
Yes.. you need to interchange descriptions for patches 5 & 6. Then it might make sense ;)
Re: [patch 5/6] Move psw_set_key.
Quoted 8 lines · Heiko Carstens
Quoted 5 lines
Quoted 3 lines
Move
psw_set_key()fromptrace.htoprocessor.hwhich is a more suitable place for it. In addition the moves makes the function invisible to user space.Hmm, this does not really describe the changes.
Yes.. you need to interchange descriptions for patches 5 & 6. Then it might make sense ;)
Ahem, yes, oops.. sorry.
Fixed on git390.
Signature · 4 lines
blue skies, Martin. "Reality continues to ruin my life." - Calvin.
PATCH 6/6 Add oops_enter()/oops_exit() calls to die().
In reply to Martin SchwidefskyFrom: Heiko Carstens <[email protected]>
This is mainly to switch off all potentially debugging stuff that won't report anything useful after an oops happened. Besided that setting pause_on_oops will work too, but doesn't make too much sense on s390.
---
include/asm-s390/processor.h | 5 +++++ include/asm-s390/ptrace.h | 9 +-------- 2 files changed, 6 insertions(+), 8 deletions(-)
include/asm-s390/processor.h +5 -0
@@ -216,6 +216,11 @@ static inline void cpu_relax(void)barrier (); } +static inline void psw_set_key (unsigned int key) +{ + asmvolatile ("spka 0(%0)" : :"d" (key)); +} +/* * Set PSW to specified value. */
include/asm-s390/ptrace.h +1 -8
@@ -470,14 +470,7 @@ struct user_regs_struct#define regs_return_value (regs)((regs)->gprs[2])#define profile_pc (regs) instruction_pointer(regs)extern void show_regs (struct pt_regs * regs); -#endif - -static inline void -psw_set_key (unsigned int key) -{ - asmvolatile ("spka 0(%0)" : :"d" (key)); -} - +#endif /* __KERNEL__ */ #endif /* __ASSEMBLY__ */ #endif /* _S390_PTRACE_H */
Signature · 4 lines
blue skies, Martin. "Reality continues to ruin my life." - Calvin.
Re: [patch 5/6] Move psw_set_key.
Quoted 9 lines · Martin Schwidefsky
From: Heiko Carstens <[email protected]>
Move
psw_set_key()fromptrace.htoprocessor.hwhich is a more suitable place for it. In addition the moves makes the function invisible to user space.arch/s390/kernel/traps.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-)
Quoted 11 lines · Martin Schwidefsky
From: Heiko Carstens <[email protected]>
This is mainly to switch off all potentially debugging stuff that won't report anything useful after an oops happened. Besided that setting
pause_on_oopswill work too, but doesn't make too much sense on s390.include/asm-s390/processor.h | 5 +++++ include/asm-s390/ptrace.h | 9 +-------- 2 files changed, 6 insertions(+), 8 deletions(-)
These changelog does not match the patch, they're reversed.. :-)