From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751031AbdARWQy (ORCPT ); Wed, 18 Jan 2017 17:16:54 -0500 Received: from mx1.redhat.com ([209.132.183.28]:38056 "EHLO mx1.redhat.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752857AbdARWQu (ORCPT ); Wed, 18 Jan 2017 17:16:50 -0500 Subject: Re: [RFC][PATCH] x86: Verify access_ok() context To: Thomas Gleixner References: <20161122095715.GN3092@twins.programming.kicks-ass.net> <20161122193720.GA3045@worktop.programming.kicks-ass.net> <20161205102747.GT3092@twins.programming.kicks-ass.net> Cc: Peter Zijlstra , Linus Torvalds , Andy Lutomirski , Ingo Molnar , "H. Peter Anvin" , "linux-kernel@vger.kernel.org" , "Frank Ch. Eigler" From: David Smith Message-ID: <8758e5b4-050d-a5dd-2e58-e4f9dccc734b@redhat.com> Date: Wed, 18 Jan 2017 16:16:43 -0600 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:45.0) Gecko/20100101 Thunderbird/45.6.0 MIME-Version: 1.0 In-Reply-To: Content-Type: text/plain; charset=windows-1252 Content-Transfer-Encoding: 7bit X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.26]); Wed, 18 Jan 2017 22:16:46 +0000 (UTC) Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On 01/16/2017 03:14 PM, Thomas Gleixner wrote: > On Mon, 16 Jan 2017, David Smith wrote: > >> If you call access_ok() with page faulting disabled, you'll still see >> this new warning. > > And how so? It's just checking for task context. page fault disable/enable > has absolutely nothing to do with that. True, task context and page fault disable/enable have nothing to do with each other. However, the access_ok() comment states: * Context: User context only. This function may sleep if pagefaults are * enabled. That seems to indicate that the function won't sleep if pagefaults are disabled, and thus there is no need for a CONFIG_DEBUG_ATOMIC_SLEEP warning if pagefaults are disabled. >> If you put that new access_ok() call in a module that gets >> loaded/unloaded, you see one warning for every module load, which gets a >> bit annoying. > > Can you please elaborate where this access_ok() is placed in the module > code? It doesn't really matter where you place the access_ok() call in the module code. If you call access_ok() in a module, then that module has its own WARN_ON_ONCE() static variable. If access_ok() was a function exported from the kernel, then there would be only one copy of the WARN_ON_ONCE() static variable. -- David Smith dsmith@redhat.com Red Hat http://www.redhat.com 256.217.0141 (direct) 256.837.0057 (fax)