Displaying 20 results from an estimated 41 matches for "_asm_ax".
2018 Nov 02
2
[PULL] vhost: cleanups and fixes
...er_addr_max())); \
})
and
#define user_addr_max() (current->thread.addr_limit.seg)
it seems that it depends on current not on the active mm.
get_user and friends are similar:
ENTRY(__get_user_1)
mov PER_CPU_VAR(current_task), %_ASM_DX
cmp TASK_addr_limit(%_ASM_DX),%_ASM_AX
jae bad_get_user
sbb %_ASM_DX, %_ASM_DX /* array_index_mask_nospec() */
and %_ASM_DX, %_ASM_AX
ASM_STAC
1: movzbl (%_ASM_AX),%edx
xor %eax,%eax
ASM_CLAC
ret
ENDPROC(__get_user_1)
EXPORT_SYMBOL(__get_user_1)
--
MST
2018 Nov 02
2
[PULL] vhost: cleanups and fixes
...er_addr_max())); \
})
and
#define user_addr_max() (current->thread.addr_limit.seg)
it seems that it depends on current not on the active mm.
get_user and friends are similar:
ENTRY(__get_user_1)
mov PER_CPU_VAR(current_task), %_ASM_DX
cmp TASK_addr_limit(%_ASM_DX),%_ASM_AX
jae bad_get_user
sbb %_ASM_DX, %_ASM_DX /* array_index_mask_nospec() */
and %_ASM_DX, %_ASM_AX
ASM_STAC
1: movzbl (%_ASM_AX),%edx
xor %eax,%eax
ASM_CLAC
ret
ENDPROC(__get_user_1)
EXPORT_SYMBOL(__get_user_1)
--
MST
2018 Nov 02
3
[PULL] vhost: cleanups and fixes
On Fri, Nov 02, 2018 at 09:14:51AM -0700, Linus Torvalds wrote:
> On Fri, Nov 2, 2018 at 6:04 AM Michael S. Tsirkin <mst at redhat.com> wrote:
> >
> > I've tried making access_ok mask the parameter it gets.
>
> PLEASE don't do this.
Okay.
> Just use "copy_to/from_user()".
Just for completeness I'd like to point out for vhost the copies are
2018 Nov 02
3
[PULL] vhost: cleanups and fixes
On Fri, Nov 02, 2018 at 09:14:51AM -0700, Linus Torvalds wrote:
> On Fri, Nov 2, 2018 at 6:04 AM Michael S. Tsirkin <mst at redhat.com> wrote:
> >
> > I've tried making access_ok mask the parameter it gets.
>
> PLEASE don't do this.
Okay.
> Just use "copy_to/from_user()".
Just for completeness I'd like to point out for vhost the copies are
2017 Nov 17
2
[PATCH 03/13] x86/paravirt: Convert native patch assembly code strings to macros
...quot;mov %edi, %eax"
Yeah, that "identity" looks strange. How about NATIVE_NOOP and
NATIVE_NOOP_32 ?
> +# define NATIVE_USERGS_SYSRET64 "swapgs; sysretq"
> +#else
> +# define _REG_ARG1 "%eax"
> +#endif
> +
> +#define _REG_RET "%" _ASM_AX
> +
> +#define NATIVE_ZERO "xor " _REG_ARG1 ", " _REG_ARG1
NATIVE_ZERO_OUT
I guess. NATIVE_ZERO reads like the native representation of 0 :-)
...
--
Regards/Gruss,
Boris.
Good mailing practices for 400: avoid top-posting and trim the reply.
2017 Nov 17
2
[PATCH 03/13] x86/paravirt: Convert native patch assembly code strings to macros
...quot;mov %edi, %eax"
Yeah, that "identity" looks strange. How about NATIVE_NOOP and
NATIVE_NOOP_32 ?
> +# define NATIVE_USERGS_SYSRET64 "swapgs; sysretq"
> +#else
> +# define _REG_ARG1 "%eax"
> +#endif
> +
> +#define _REG_RET "%" _ASM_AX
> +
> +#define NATIVE_ZERO "xor " _REG_ARG1 ", " _REG_ARG1
NATIVE_ZERO_OUT
I guess. NATIVE_ZERO reads like the native representation of 0 :-)
...
--
Regards/Gruss,
Boris.
Good mailing practices for 400: avoid top-posting and trim the reply.
2018 Jun 05
2
[PATCH v2 2/2] x86: paravirt: make native_save_fl extern inline
...rote:
> +
> +/*
> + * void native_restore_fl(unsigned long flags)
> + * %rdi: flags
> + */
> +ENTRY(native_restore_fl)
> + push %_ASM_DI
> + popf
> + ret
> +ENDPROC(native_restore_fl)
> +EXPORT_SYMBOL(native_restore_fl)
>
To work on i386, this would have to be %_ASM_AX in that case.
Something like this added to <asm/asm.h> might be useful; then you can
simply:
push %_ASM_ARG1
-------------- next part --------------
A non-text attachment was scrubbed...
Name: 0001-x86-asm-add-_ASM_ARG-constants-for-argument-registes.patch
Type: text/x-patch
Size: 2092 byt...
2018 Jun 05
2
[PATCH v2 2/2] x86: paravirt: make native_save_fl extern inline
...rote:
> +
> +/*
> + * void native_restore_fl(unsigned long flags)
> + * %rdi: flags
> + */
> +ENTRY(native_restore_fl)
> + push %_ASM_DI
> + popf
> + ret
> +ENDPROC(native_restore_fl)
> +EXPORT_SYMBOL(native_restore_fl)
>
To work on i386, this would have to be %_ASM_AX in that case.
Something like this added to <asm/asm.h> might be useful; then you can
simply:
push %_ASM_ARG1
-------------- next part --------------
A non-text attachment was scrubbed...
Name: 0001-x86-asm-add-_ASM_ARG-constants-for-argument-registes.patch
Type: text/x-patch
Size: 2092 byt...
2017 Oct 04
0
[PATCH 04/13] x86/paravirt: Convert DEF_NATIVE macro to GCC extended asm syntax
...ax"
+# define _REG_ARG1 "%%rdi"
+# define NATIVE_IDENTITY_32 "mov %%edi, %%eax"
# define NATIVE_USERGS_SYSRET64 "swapgs; sysretq"
#else
-# define _REG_ARG1 "%eax"
+# define _REG_ARG1 "%%eax"
#endif
-#define _REG_RET "%" _ASM_AX
+#define _REG_RET "%%" _ASM_AX
#define NATIVE_ZERO "xor " _REG_ARG1 ", " _REG_ARG1
#define NATIVE_IDENTITY "mov " _REG_ARG1 ", " _REG_RET
@@ -22,9 +22,9 @@
#define NATIVE_RESTORE_FL "push " _REG_ARG1 "; popf"
#define...
2018 May 23
0
[PATCH v3 18/27] xen: Adapt assembly for PIE support
...SM_DI
- mov $__bss_stop, %_ASM_CX
+ _ASM_MOVABS $__bss_start, %_ASM_DI
+ _ASM_MOVABS $__bss_stop, %_ASM_CX
sub %_ASM_DI, %_ASM_CX
shr $__ASM_SEL(2, 3), %_ASM_CX
rep __ASM_SIZE(stos)
- mov %_ASM_SI, xen_start_info
- mov $init_thread_union+THREAD_SIZE, %_ASM_SP
+ _ASM_MOVABS $xen_start_info, %_ASM_AX
+ _ASM_MOV %_ASM_SI, (%_ASM_AX)
+ _ASM_MOVABS $init_thread_union+THREAD_SIZE, %_ASM_SP
#ifdef CONFIG_X86_64
/* Set up %gs.
@@ -46,7 +47,7 @@ ENTRY(startup_xen)
* init data section till per cpu areas are set up.
*/
movl $MSR_GS_BASE,%ecx
- movq $INIT_PER_CPU_VAR(irq_stack_union),%rax
+...
2017 Nov 17
2
[PATCH 03/13] x86/paravirt: Convert native patch assembly code strings to macros
...y function:
https://en.wikipedia.org/wiki/Identity_function
> >> +# define NATIVE_USERGS_SYSRET64 "swapgs; sysretq"
> >> +#else
> >> +# define _REG_ARG1 "%eax"
> >> +#endif
> >> +
> >> +#define _REG_RET "%" _ASM_AX
> >> +
> >> +#define NATIVE_ZERO "xor " _REG_ARG1 ", " _REG_ARG1
> >
> > NATIVE_ZERO_OUT
> >
> > I guess. NATIVE_ZERO reads like the native representation of 0 :-)
>
> NATIVE_ZERO_ARG1?
On a slight tangent, does anybody know...
2017 Nov 17
2
[PATCH 03/13] x86/paravirt: Convert native patch assembly code strings to macros
...y function:
https://en.wikipedia.org/wiki/Identity_function
> >> +# define NATIVE_USERGS_SYSRET64 "swapgs; sysretq"
> >> +#else
> >> +# define _REG_ARG1 "%eax"
> >> +#endif
> >> +
> >> +#define _REG_RET "%" _ASM_AX
> >> +
> >> +#define NATIVE_ZERO "xor " _REG_ARG1 ", " _REG_ARG1
> >
> > NATIVE_ZERO_OUT
> >
> > I guess. NATIVE_ZERO reads like the native representation of 0 :-)
>
> NATIVE_ZERO_ARG1?
On a slight tangent, does anybody know...
2017 Nov 17
0
[PATCH 03/13] x86/paravirt: Convert native patch assembly code strings to macros
...identical value which was passed to
them. So identity isn't a bad name after all.
>
>> +# define NATIVE_USERGS_SYSRET64 "swapgs; sysretq"
>> +#else
>> +# define _REG_ARG1 "%eax"
>> +#endif
>> +
>> +#define _REG_RET "%" _ASM_AX
>> +
>> +#define NATIVE_ZERO "xor " _REG_ARG1 ", " _REG_ARG1
>
> NATIVE_ZERO_OUT
>
> I guess. NATIVE_ZERO reads like the native representation of 0 :-)
NATIVE_ZERO_ARG1?
Juergen
2017 Nov 18
0
[PATCH 03/13] x86/paravirt: Convert native patch assembly code strings to macros
...en.wikipedia.org/wiki/Identity_function
>
>>>> +# define NATIVE_USERGS_SYSRET64 "swapgs; sysretq"
>>>> +#else
>>>> +# define _REG_ARG1 "%eax"
>>>> +#endif
>>>> +
>>>> +#define _REG_RET "%" _ASM_AX
>>>> +
>>>> +#define NATIVE_ZERO "xor " _REG_ARG1 ", " _REG_ARG1
>>>
>>> NATIVE_ZERO_OUT
>>>
>>> I guess. NATIVE_ZERO reads like the native representation of 0 :-)
>>
>> NATIVE_ZERO_ARG1?
>
> On a s...
2018 Jul 20
0
[PATCH 4.4 05/31] x86/asm: Add _ASM_ARG* constants for argument registers to <asm/asm.h>
...asm.h | 59 +++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 59 insertions(+)
--- a/arch/x86/include/asm/asm.h
+++ b/arch/x86/include/asm/asm.h
@@ -44,6 +44,65 @@
#define _ASM_SI __ASM_REG(si)
#define _ASM_DI __ASM_REG(di)
+#ifndef __x86_64__
+/* 32 bit */
+
+#define _ASM_ARG1 _ASM_AX
+#define _ASM_ARG2 _ASM_DX
+#define _ASM_ARG3 _ASM_CX
+
+#define _ASM_ARG1L eax
+#define _ASM_ARG2L edx
+#define _ASM_ARG3L ecx
+
+#define _ASM_ARG1W ax
+#define _ASM_ARG2W dx
+#define _ASM_ARG3W cx
+
+#define _ASM_ARG1B al
+#define _ASM_ARG2B dl
+#define _ASM_ARG3B cl
+
+#else
+/* 64 bit */
+
+#de...
2018 Jul 20
0
[PATCH 4.9 06/66] x86/asm: Add _ASM_ARG* constants for argument registers to <asm/asm.h>
...asm.h | 59 +++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 59 insertions(+)
--- a/arch/x86/include/asm/asm.h
+++ b/arch/x86/include/asm/asm.h
@@ -45,6 +45,65 @@
#define _ASM_SI __ASM_REG(si)
#define _ASM_DI __ASM_REG(di)
+#ifndef __x86_64__
+/* 32 bit */
+
+#define _ASM_ARG1 _ASM_AX
+#define _ASM_ARG2 _ASM_DX
+#define _ASM_ARG3 _ASM_CX
+
+#define _ASM_ARG1L eax
+#define _ASM_ARG2L edx
+#define _ASM_ARG3L ecx
+
+#define _ASM_ARG1W ax
+#define _ASM_ARG2W dx
+#define _ASM_ARG3W cx
+
+#define _ASM_ARG1B al
+#define _ASM_ARG2B dl
+#define _ASM_ARG3B cl
+
+#else
+/* 64 bit */
+
+#de...
2018 Jul 20
0
[PATCH 4.14 02/92] x86/asm: Add _ASM_ARG* constants for argument registers to <asm/asm.h>
...asm.h | 59 +++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 59 insertions(+)
--- a/arch/x86/include/asm/asm.h
+++ b/arch/x86/include/asm/asm.h
@@ -46,6 +46,65 @@
#define _ASM_SI __ASM_REG(si)
#define _ASM_DI __ASM_REG(di)
+#ifndef __x86_64__
+/* 32 bit */
+
+#define _ASM_ARG1 _ASM_AX
+#define _ASM_ARG2 _ASM_DX
+#define _ASM_ARG3 _ASM_CX
+
+#define _ASM_ARG1L eax
+#define _ASM_ARG2L edx
+#define _ASM_ARG3L ecx
+
+#define _ASM_ARG1W ax
+#define _ASM_ARG2W dx
+#define _ASM_ARG3W cx
+
+#define _ASM_ARG1B al
+#define _ASM_ARG2B dl
+#define _ASM_ARG3B cl
+
+#else
+/* 64 bit */
+
+#de...
2018 Jul 20
0
[PATCH 4.17 002/101] x86/asm: Add _ASM_ARG* constants for argument registers to <asm/asm.h>
...asm.h | 59 +++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 59 insertions(+)
--- a/arch/x86/include/asm/asm.h
+++ b/arch/x86/include/asm/asm.h
@@ -46,6 +46,65 @@
#define _ASM_SI __ASM_REG(si)
#define _ASM_DI __ASM_REG(di)
+#ifndef __x86_64__
+/* 32 bit */
+
+#define _ASM_ARG1 _ASM_AX
+#define _ASM_ARG2 _ASM_DX
+#define _ASM_ARG3 _ASM_CX
+
+#define _ASM_ARG1L eax
+#define _ASM_ARG2L edx
+#define _ASM_ARG3L ecx
+
+#define _ASM_ARG1W ax
+#define _ASM_ARG2W dx
+#define _ASM_ARG3W cx
+
+#define _ASM_ARG1B al
+#define _ASM_ARG2B dl
+#define _ASM_ARG3B cl
+
+#else
+/* 64 bit */
+
+#de...
2017 Oct 25
0
[PATCH 03/13] x86/paravirt: Convert native patch assembly code strings to macros
...NFIG_X86_64
> +# define _REG_ARG1 "%rdi"
> +# define NATIVE_IDENTITY_32 "mov %edi, %eax"
> +# define NATIVE_USERGS_SYSRET64 "swapgs; sysretq"
> +#else
> +# define _REG_ARG1 "%eax"
> +#endif
> +
> +#define _REG_RET "%" _ASM_AX
> +
> +#define NATIVE_ZERO "xor " _REG_ARG1 ", " _REG_ARG1
> +#define NATIVE_IDENTITY "mov " _REG_ARG1 ", " _REG_RET
> +#define NATIVE_SAVE_FL "pushf; pop " _REG_RET
> +#define NATIVE_RESTORE_FL "push " _REG_ARG1 &quo...
2017 Oct 04
1
[PATCH 03/13] x86/paravirt: Convert native patch assembly code strings to macros
...#include <asm/nops.h>
+#ifdef CONFIG_X86_64
+# define _REG_ARG1 "%rdi"
+# define NATIVE_IDENTITY_32 "mov %edi, %eax"
+# define NATIVE_USERGS_SYSRET64 "swapgs; sysretq"
+#else
+# define _REG_ARG1 "%eax"
+#endif
+
+#define _REG_RET "%" _ASM_AX
+
+#define NATIVE_ZERO "xor " _REG_ARG1 ", " _REG_ARG1
+#define NATIVE_IDENTITY "mov " _REG_ARG1 ", " _REG_RET
+#define NATIVE_SAVE_FL "pushf; pop " _REG_RET
+#define NATIVE_RESTORE_FL "push " _REG_ARG1 "; popf"
+#define N...