From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753797AbdBUUrK (ORCPT ); Tue, 21 Feb 2017 15:47:10 -0500 Received: from mga03.intel.com ([134.134.136.65]:8634 "EHLO mga03.intel.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751161AbdBUUrC (ORCPT ); Tue, 21 Feb 2017 15:47:02 -0500 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.35,191,1484035200"; d="scan'208";a="67439965" Subject: Re: [PATCHv3 33/33] mm, x86: introduce PR_SET_MAX_VADDR and PR_GET_MAX_VADDR To: "Kirill A. Shutemov" , Linus Torvalds References: <20170217141328.164563-1-kirill.shutemov@linux.intel.com> <20170217141328.164563-34-kirill.shutemov@linux.intel.com> <20170218092133.GA17471@node.shutemov.name> <20170220131515.GA9502@node.shutemov.name> Cc: "Kirill A. Shutemov" , Andrew Morton , the arch/x86 maintainers , Thomas Gleixner , Ingo Molnar , Arnd Bergmann , "H. Peter Anvin" , Andi Kleen , linux-mm , Linux Kernel Mailing List , Catalin Marinas , Linux API From: Dave Hansen Message-ID: <0d05ac45-a139-6f8e-f98b-71876fbb509d@intel.com> Date: Tue, 21 Feb 2017 12:46:55 -0800 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:45.0) Gecko/20100101 Thunderbird/45.5.1 MIME-Version: 1.0 In-Reply-To: <20170220131515.GA9502@node.shutemov.name> Content-Type: text/plain; charset=windows-1252 Content-Transfer-Encoding: 7bit Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Let me make sure I'm grokking what you're trying to do here. On 02/20/2017 05:15 AM, Kirill A. Shutemov wrote: > +/* MPX cannot handle addresses above 47-bits yet. */ > +unsigned long mpx_unmapped_area_check(unsigned long addr, unsigned long len, > + unsigned long flags) > +{ > + if (!kernel_managing_mpx_tables(current->mm)) > + return addr; > + if (addr + len <= DEFAULT_MAP_WINDOW) > + return addr; At this point, we know MPX management is on and the hint is for memory above DEFAULT_MAP_WINDOW? > + if (flags & MAP_FIXED) > + return -ENOMEM; ... and if it's a MAP_FIXED request, fail it. > + if (len > DEFAULT_MAP_WINDOW) > + return -ENOMEM; What is this case for? If addr+len wraps? > + /* Look for unmap area within DEFAULT_MAP_WINDOW */ > + return 0; > +} Otherwise, blow away the hint, which we know is high and needs to be discarded?