On Thu, Aug 27, 2020 at 8:00 AM Christoph Hellwig <hch@xxxxxx> 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