From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S934924AbaLLTMM (ORCPT ); Fri, 12 Dec 2014 14:12:12 -0500 Received: from mga03.intel.com ([134.134.136.65]:51801 "EHLO mga03.intel.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1754302AbaLLTML (ORCPT ); Fri, 12 Dec 2014 14:12:11 -0500 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.04,691,1406617200"; d="scan'208";a="497949406" Subject: [RFC][PATCH 0/8] x86, mpx: Support 32-bit binaries on 64-bit kernels To: linux-kernel@vger.kernel.org Cc: tglx@linutronix.de, x86@kernel.org, Dave Hansen From: Dave Hansen Date: Fri, 12 Dec 2014 11:12:13 -0800 Message-Id: <20141212191213.579887D2@viggo.jf.intel.com> Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org This is 3.20 material. I'm hoping to get some comments early in case folks have some issues with the way it's being done. -- The MPX hardware structures differ in layout in 32 and 64-bit mode. A 32-bit binary running on a 64-bit kernel needs the 32-bit structures, so we need code which switches between the two modes. The first patch is just a documentation update. The next 5 patches are really just prepwork. The meat is in the last 3. x86: make is_64bit_mm() widely available x86: make __VIRTUAL_MASK safe to use on 32 bit x86, mpx: we do not allocate the bounds directory x86, mpx: remove redundant MPX_BNDCFG_ADDR_MASK x86, mpx: Add temporary variable to reduce masking x86, mpx: new directory entry to addr helper x86, mpx: do 32-bit-only cmpxchg for 32-bit apps x86, mpx: support 32bit binaries on 64bit kernel Documentation/x86/intel_mpx.txt | 12 +++- arch/x86/include/asm/mmu_context.h | 13 +++++ arch/x86/include/asm/mpx.h | 2 arch/x86/include/asm/page_types.h | 8 +++ arch/x86/kernel/uprobes.c | 10 --- arch/x86/mm/mpx.c | 93 ++++++++++++++++++++++++++++++------- 6 files changed, 107 insertions(+), 31 deletions(-)