On Fri, Mar 29, 2019 at 2:39 PM Borislav Petkov <[email protected]> wrote: > > On Thu, Mar 28, 2019 at 10:23:21PM +0100, Jann Horn wrote: > > Fix __user annotations in various places across the x86 tree: > > > > - cast to wrong pointer type in __user_atomic_cmpxchg_inatomic() > > - generic_load_microcode() deals with a pointer that can be either a > > kernel pointer or a user pointer; change the code to pass it around as > > a __user pointer, and add explicit casts to convert between __user and > > __kernel > > - save_xstate_epilog() has missing __user in explicit casts > > - setup_sigcontext() and x32_setup_rt_frame() rely on the cast performed > > by put_user_ex() on its first argument, but sparse requires __force for > > casting __user pointers to unsigned long > > - xen_hvm_config() has missing __user > > > > This patch removes all sparse warnings about the asn:1 address space > > (__user) in arch/x86/ for my kernel config. > > > > Signed-off-by: Jann Horn <[email protected]> > > --- > > This patch requires the previous one, "[PATCH 1/2] kernel.h: use > > parentheses around argument in u64_to_user_ptr()", otherwise > > xen_hvm_config() breaks. Can we take both together through the x86 tree, > > or does the first one have to go through akpm's tree? > > I don't see why not, unless akpm has objections. > > However, > > > arch/x86/include/asm/uaccess.h | 3 +-- > > arch/x86/include/asm/uaccess_64.h | 2 +- > > This chunk is being discussed here already: > > https://lkml.kernel.org/r/[email protected] > > and I'd like to take Ben's v2 when Ben adds Linus' explanation.
Alright, dropped the changes in: arch/x86/lib/usercopy_64.c arch/x86/include/asm/uaccess_64.h > Then, it would be probably easier if you could split that patch into: > > > arch/x86/kernel/cpu/microcode/intel.c | 20 ++++++++++++-------- > > microcode > > > arch/x86/kernel/fpu/signal.c | 6 +++--- > > arch/x86/kernel/signal.c | 4 ++-- > > fpu patch > > > arch/x86/kvm/x86.c | 8 ++++---- Split these out as suggested. Additionally, I've split out one commit for x86/uaccess (the change to arch/x86/include/asm/uaccess.h wasn't in Ben's patch). > kvm patch Actually, looking at the log of that file, and at MAINTAINERS, it looks like that should go through the KVM tree? There's also something I want to fix in virt/kvm/kvm_main.c, so I have to send some stuff to Paolo anyway.

