mirror of
https://github.com/adulau/aha.git
synced 2024-12-29 04:06:22 +00:00
Merge branch 'x86/asm' into x86/mm
This commit is contained in:
commit
95f66b3770
6 changed files with 32 additions and 21 deletions
|
@ -128,7 +128,7 @@
|
|||
#ifndef __ASSEMBLY__
|
||||
static inline int invalid_vm86_irq(int irq)
|
||||
{
|
||||
return irq < 3 || irq > 15;
|
||||
return irq < FIRST_VM86_IRQ || irq > LAST_VM86_IRQ;
|
||||
}
|
||||
#endif
|
||||
|
||||
|
|
|
@ -192,14 +192,26 @@ static inline int __copy_from_user_nocache(void *dst, const void __user *src,
|
|||
unsigned size)
|
||||
{
|
||||
might_sleep();
|
||||
return __copy_user_nocache(dst, src, size, 1);
|
||||
/*
|
||||
* In practice this limit means that large file write()s
|
||||
* which get chunked to 4K copies get handled via
|
||||
* non-temporal stores here. Smaller writes get handled
|
||||
* via regular __copy_from_user():
|
||||
*/
|
||||
if (likely(size >= PAGE_SIZE))
|
||||
return __copy_user_nocache(dst, src, size, 1);
|
||||
else
|
||||
return __copy_from_user(dst, src, size);
|
||||
}
|
||||
|
||||
static inline int __copy_from_user_inatomic_nocache(void *dst,
|
||||
const void __user *src,
|
||||
unsigned size)
|
||||
{
|
||||
return __copy_user_nocache(dst, src, size, 0);
|
||||
if (likely(size >= PAGE_SIZE))
|
||||
return __copy_user_nocache(dst, src, size, 0);
|
||||
else
|
||||
return __copy_from_user_inatomic(dst, src, size);
|
||||
}
|
||||
|
||||
unsigned long
|
||||
|
|
|
@ -113,6 +113,7 @@ ENTRY(efi_call_phys)
|
|||
movl (%edx), %ecx
|
||||
pushl %ecx
|
||||
ret
|
||||
ENDPROC(efi_call_phys)
|
||||
.previous
|
||||
|
||||
.data
|
||||
|
|
|
@ -41,6 +41,7 @@ ENTRY(efi_call0)
|
|||
addq $32, %rsp
|
||||
RESTORE_XMM
|
||||
ret
|
||||
ENDPROC(efi_call0)
|
||||
|
||||
ENTRY(efi_call1)
|
||||
SAVE_XMM
|
||||
|
@ -50,6 +51,7 @@ ENTRY(efi_call1)
|
|||
addq $32, %rsp
|
||||
RESTORE_XMM
|
||||
ret
|
||||
ENDPROC(efi_call1)
|
||||
|
||||
ENTRY(efi_call2)
|
||||
SAVE_XMM
|
||||
|
@ -59,6 +61,7 @@ ENTRY(efi_call2)
|
|||
addq $32, %rsp
|
||||
RESTORE_XMM
|
||||
ret
|
||||
ENDPROC(efi_call2)
|
||||
|
||||
ENTRY(efi_call3)
|
||||
SAVE_XMM
|
||||
|
@ -69,6 +72,7 @@ ENTRY(efi_call3)
|
|||
addq $32, %rsp
|
||||
RESTORE_XMM
|
||||
ret
|
||||
ENDPROC(efi_call3)
|
||||
|
||||
ENTRY(efi_call4)
|
||||
SAVE_XMM
|
||||
|
@ -80,6 +84,7 @@ ENTRY(efi_call4)
|
|||
addq $32, %rsp
|
||||
RESTORE_XMM
|
||||
ret
|
||||
ENDPROC(efi_call4)
|
||||
|
||||
ENTRY(efi_call5)
|
||||
SAVE_XMM
|
||||
|
@ -92,6 +97,7 @@ ENTRY(efi_call5)
|
|||
addq $48, %rsp
|
||||
RESTORE_XMM
|
||||
ret
|
||||
ENDPROC(efi_call5)
|
||||
|
||||
ENTRY(efi_call6)
|
||||
SAVE_XMM
|
||||
|
@ -107,3 +113,4 @@ ENTRY(efi_call6)
|
|||
addq $48, %rsp
|
||||
RESTORE_XMM
|
||||
ret
|
||||
ENDPROC(efi_call6)
|
||||
|
|
|
@ -77,20 +77,17 @@ ENTRY(ftrace_caller)
|
|||
movq 8(%rbp), %rsi
|
||||
subq $MCOUNT_INSN_SIZE, %rdi
|
||||
|
||||
.globl ftrace_call
|
||||
ftrace_call:
|
||||
GLOBAL(ftrace_call)
|
||||
call ftrace_stub
|
||||
|
||||
MCOUNT_RESTORE_FRAME
|
||||
|
||||
#ifdef CONFIG_FUNCTION_GRAPH_TRACER
|
||||
.globl ftrace_graph_call
|
||||
ftrace_graph_call:
|
||||
GLOBAL(ftrace_graph_call)
|
||||
jmp ftrace_stub
|
||||
#endif
|
||||
|
||||
.globl ftrace_stub
|
||||
ftrace_stub:
|
||||
GLOBAL(ftrace_stub)
|
||||
retq
|
||||
END(ftrace_caller)
|
||||
|
||||
|
@ -110,8 +107,7 @@ ENTRY(mcount)
|
|||
jnz ftrace_graph_caller
|
||||
#endif
|
||||
|
||||
.globl ftrace_stub
|
||||
ftrace_stub:
|
||||
GLOBAL(ftrace_stub)
|
||||
retq
|
||||
|
||||
trace:
|
||||
|
@ -148,9 +144,7 @@ ENTRY(ftrace_graph_caller)
|
|||
retq
|
||||
END(ftrace_graph_caller)
|
||||
|
||||
|
||||
.globl return_to_handler
|
||||
return_to_handler:
|
||||
GLOBAL(return_to_handler)
|
||||
subq $80, %rsp
|
||||
|
||||
movq %rax, (%rsp)
|
||||
|
@ -188,6 +182,7 @@ return_to_handler:
|
|||
ENTRY(native_usergs_sysret64)
|
||||
swapgs
|
||||
sysretq
|
||||
ENDPROC(native_usergs_sysret64)
|
||||
#endif /* CONFIG_PARAVIRT */
|
||||
|
||||
|
||||
|
@ -633,16 +628,14 @@ tracesys:
|
|||
* Syscall return path ending with IRET.
|
||||
* Has correct top of stack, but partial stack frame.
|
||||
*/
|
||||
.globl int_ret_from_sys_call
|
||||
.globl int_with_check
|
||||
int_ret_from_sys_call:
|
||||
GLOBAL(int_ret_from_sys_call)
|
||||
DISABLE_INTERRUPTS(CLBR_NONE)
|
||||
TRACE_IRQS_OFF
|
||||
testl $3,CS-ARGOFFSET(%rsp)
|
||||
je retint_restore_args
|
||||
movl $_TIF_ALLWORK_MASK,%edi
|
||||
/* edi: mask to check */
|
||||
int_with_check:
|
||||
GLOBAL(int_with_check)
|
||||
LOCKDEP_SYS_EXIT_IRQ
|
||||
GET_THREAD_INFO(%rcx)
|
||||
movl TI_flags(%rcx),%edx
|
||||
|
|
|
@ -329,8 +329,6 @@ early_idt_ripmsg:
|
|||
#endif /* CONFIG_EARLY_PRINTK */
|
||||
.previous
|
||||
|
||||
.balign PAGE_SIZE
|
||||
|
||||
#define NEXT_PAGE(name) \
|
||||
.balign PAGE_SIZE; \
|
||||
ENTRY(name)
|
||||
|
@ -419,7 +417,7 @@ ENTRY(phys_base)
|
|||
.section .bss, "aw", @nobits
|
||||
.align L1_CACHE_BYTES
|
||||
ENTRY(idt_table)
|
||||
.skip 256 * 16
|
||||
.skip IDT_ENTRIES * 16
|
||||
|
||||
.section .bss.page_aligned, "aw", @nobits
|
||||
.align PAGE_SIZE
|
||||
|
|
Loading…
Reference in a new issue