diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2013-11-08 08:24:38 +0900 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2013-11-08 08:24:38 +0900 |
commit | 280c84d1c1726be7ada045735858acdc8cfdd65a (patch) | |
tree | b9afa3fb97b08272b6952d5c8d1fe31f6a8092fa /arch/s390/include/asm/processor.h | |
parent | 8efdf2b759409f85953b84d52a14ea4d39c80474 (diff) | |
parent | de9587a2f54d2d0063f0dbc775328129b9daaaa2 (diff) |
Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/s390/linux
Pull s390 updates from Martin Schwidefsky:
"The bulk of the patches for the 3.13 merge window.
Heiko spent quite a bit of work to improve the code generation for the
kernel. That includes the exploitation of the interlocked-access
facility for the atomics and bitops implementation and the improvement
for the -march and -mtune compiler settings.
Another important change is the removal of the user_mode=home option,
user processes now always run in primary space. The storage keys are
not initialized at system startup any more, with that the storage key
removal work is complete. For the PCI support the hibernation hooks
have been implemented.
And as usual cleanup and fixes"
* 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/s390/linux: (62 commits)
s390/scm_blk: fix endless loop for requests != REQ_TYPE_FS
s390/mm,tlb: correct tlb flush on page table upgrade
s390/mm: page_table_realloc returns failure
s390: allow to set gcc -mtune flag
s390/percpu: remove this_cpu_xor() implementation
s390/vtime: correct idle time calculation
s390/time: fix get_tod_clock_ext inline assembly
tty/hvc_iucv: remove redundant NULL check
s390/dasd: Write to profile data area only if it is available
s390: convert use of typedef ctl_table to struct ctl_table
s390/pci: cleanup function information block
s390/pci: remove CONFIG_PCI_DEBUG dependancy
s390/pci: message cleanup
Update default configuration
s390: add a couple of useful defconfigs
s390/percpu: make use of interlocked-access facility 1 instructions
s390/percpu: use generic percpu ops for CONFIG_32BIT
s390/compat: make psw32_user_bits a constant value again
s390: fix handling of runtime instrumentation psw bit
s390: fix save and restore of the floating-point-control register
...
Diffstat (limited to 'arch/s390/include/asm/processor.h')
-rw-r--r-- | arch/s390/include/asm/processor.h | 18 |
1 files changed, 7 insertions, 11 deletions
diff --git a/arch/s390/include/asm/processor.h b/arch/s390/include/asm/processor.h index ca7821f0726..0a876bc543d 100644 --- a/arch/s390/include/asm/processor.h +++ b/arch/s390/include/asm/processor.h @@ -134,19 +134,17 @@ struct stack_frame { * Do necessary setup to start up a new thread. */ #define start_thread(regs, new_psw, new_stackp) do { \ - regs->psw.mask = psw_user_bits | PSW_MASK_EA | PSW_MASK_BA; \ + regs->psw.mask = PSW_USER_BITS | PSW_MASK_EA | PSW_MASK_BA; \ regs->psw.addr = new_psw | PSW_ADDR_AMODE; \ regs->gprs[15] = new_stackp; \ execve_tail(); \ } while (0) #define start_thread31(regs, new_psw, new_stackp) do { \ - regs->psw.mask = psw_user_bits | PSW_MASK_BA; \ + regs->psw.mask = PSW_USER_BITS | PSW_MASK_BA; \ regs->psw.addr = new_psw | PSW_ADDR_AMODE; \ regs->gprs[15] = new_stackp; \ - __tlb_flush_mm(current->mm); \ crst_table_downgrade(current->mm, 1UL << 31); \ - update_mm(current->mm, current); \ execve_tail(); \ } while (0) @@ -169,17 +167,15 @@ extern void release_thread(struct task_struct *); */ extern unsigned long thread_saved_pc(struct task_struct *t); -extern void show_code(struct pt_regs *regs); -extern void print_fn_code(unsigned char *code, unsigned long len); -extern int insn_to_mnemonic(unsigned char *instruction, char *buf, - unsigned int len); - unsigned long get_wchan(struct task_struct *p); #define task_pt_regs(tsk) ((struct pt_regs *) \ (task_stack_page(tsk) + THREAD_SIZE) - 1) #define KSTK_EIP(tsk) (task_pt_regs(tsk)->psw.addr) #define KSTK_ESP(tsk) (task_pt_regs(tsk)->gprs[15]) +/* Has task runtime instrumentation enabled ? */ +#define is_ri_task(tsk) (!!(tsk)->thread.ri_cb) + static inline unsigned short stap(void) { unsigned short cpu_address; @@ -348,9 +344,9 @@ __set_psw_mask(unsigned long mask) } #define local_mcck_enable() \ - __set_psw_mask(psw_kernel_bits | PSW_MASK_DAT | PSW_MASK_MCHECK) + __set_psw_mask(PSW_KERNEL_BITS | PSW_MASK_DAT | PSW_MASK_MCHECK) #define local_mcck_disable() \ - __set_psw_mask(psw_kernel_bits | PSW_MASK_DAT) + __set_psw_mask(PSW_KERNEL_BITS | PSW_MASK_DAT) /* * Basic Machine Check/Program Check Handler. |