From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752662AbbC2HIY (ORCPT ); Sun, 29 Mar 2015 03:08:24 -0400 Received: from mail-wg0-f54.google.com ([74.125.82.54]:35707 "EHLO mail-wg0-f54.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1750975AbbC2HIV (ORCPT ); Sun, 29 Mar 2015 03:08:21 -0400 Date: Sun, 29 Mar 2015 09:08:16 +0200 From: Ingo Molnar To: Denys Vlasenko Cc: Andy Lutomirski , "H. Peter Anvin" , Brad Spengler , Linus Torvalds , Borislav Petkov , "linux-kernel@vger.kernel.org" , Thomas Gleixner , Andrew Lutomirski , "linux-tip-commits@vger.kernel.org" Subject: Re: [tip:x86/asm] x86/asm/entry: Add user_mode_ignore_vm86() Message-ID: <20150329070816.GD18007@gmail.com> References: <202c56ca63823c338af8e2e54948dbe222da6343.1426728647.git.luto@kernel.org> <20150324194402.GA27598@gmail.com> <55155F9E.3030605@redhat.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <55155F9E.3030605@redhat.com> User-Agent: Mutt/1.5.23 (2014-03-12) Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org * Denys Vlasenko wrote: > On 03/24/2015 08:46 PM, Andy Lutomirski wrote: > > On Tue, Mar 24, 2015 at 12:44 PM, Ingo Molnar wrote: > >> > >> * Andy Lutomirski wrote: > >> > >>> On Mon, Mar 23, 2015 at 5:26 AM, tip-bot for Andy Lutomirski > >>> wrote: > >>>> Commit-ID: a67e7277d01ccfd39b0db5a198c2643cc19dd79c > >>>> Gitweb: http://git.kernel.org/tip/a67e7277d01ccfd39b0db5a198c2643cc19dd79c > >>>> Author: Andy Lutomirski > >>>> AuthorDate: Wed, 18 Mar 2015 18:33:29 -0700 > >>>> Committer: Ingo Molnar > >>>> CommitDate: Mon, 23 Mar 2015 11:13:36 +0100 > >>>> > >>>> x86/asm/entry: Add user_mode_ignore_vm86() > >>>> > >>>> user_mode() is dangerous and user_mode_vm() has a confusing name. > >>>> > >>>> Add user_mode_ignore_vm86() (equivalent to current user_mode()). > >>>> We'll change the small number of legitimate users of user_mode() > >>>> to user_mode_ignore_vm86(). > >>>> > >>>> Inspired by grsec, although this works rather differently. > >>> > >>> Ingo, does this mean that you changed your mind or do you still want > >>> a patch to delete user_mode_ignore_vm86 and just use user_mode > >>> everywhere instead? > >> > >> Would be still nice to have it as an add on patch, if you agree with > >> my arguments. > > > > Given that there are only a very small number of callers left and > > they're all Obviously Correct (tm), I'm not too worried about it. > > Maybe if we kill off __copy_to_user, I'll be inspired to kill off > > user_mode_ignore_vm86 as well :) > > > I was looking at the code involving this function and it looks > like a much better name for user_mode_ignore_vm86() would be > user_mode_cs(). > > Every time we use it, we check vm8086 mode just before it: > > perf_event.c > > if (regs->flags & X86_VM_MASK) > return 0x10 * regs->cs; > > if (user_mode_ignore_vm86(regs) && regs->cs != __USER_CS) > return get_segment_base(regs->cs); > > > traps.c (three similar instances): > > if (v8086_mode(regs)) { > ... > goto exit; > } > if (user_mode_ignore_vm86(regs))... > > > "_ignore_vm86" part doesn't quite work as an explanation. > user_mode_cs() would immediately tell me "do we have a user's cs?" So what the function name wanted to express is something like this: if (user_mode_vm86_mode_already_checked_so_this_is_marginally_faster_but_dont_use_it_otherwise_because_that_would_be_a_roothole()) { ... } but that name was considered somewhat long. Thanks, Ingo