Thread (46 messages) 46 messages, 9 authors, 2020-10-27

Re: [PATCH 08/10] x86: remove address space overrides using set_fs()

From: Linus Torvalds <torvalds@linux-foundation.org>
Date: 2020-08-27 18:15:34
Also in: linux-arch, linux-fsdevel, lkml

On Thu, Aug 27, 2020 at 8:00 AM Christoph Hellwig [off-list ref] wrote:
 SYM_FUNC_START(__get_user_2)
        add $1,%_ASM_AX
        jc bad_get_user
This no longer makes sense, and
-       mov PER_CPU_VAR(current_task), %_ASM_DX
-       cmp TASK_addr_limit(%_ASM_DX),%_ASM_AX
+       LOAD_TASK_SIZE_MAX
+       cmp %_ASM_DX,%_ASM_AX
This should be

        LOAD_TASK_SIZE_MAX_MINUS_N(1)
        cmp %_ASM_DX,%_ASM_AX

instead (and then because we no longer modify _ASM_AX, we'd also
remove the offset on the access).
 SYM_FUNC_START(__put_user_2)
-       ENTER
-       mov TASK_addr_limit(%_ASM_BX),%_ASM_BX
+       LOAD_TASK_SIZE_MAX
        sub $1,%_ASM_BX
It's even more obvious here. We load a constant and then immediately
do a "sub $1" on that value.

It's not a huge deal, you don't have to respin the series for this, I
just wanted to point it out so that people are aware of it and if I
forget somebody else will hopefully remember that "we should fix that
too".

                   Linus
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help