Received: by 10.223.185.116 with SMTP id b49csp1117441wrg; Sat, 3 Mar 2018 16:05:26 -0800 (PST) X-Google-Smtp-Source: AG47ELuRXJhHa+M6dRVCqWHGviAYuSY6M+pdMqcI0xnOmomDHnCs+tJutmf5UK/jwLaMPZ2mTv1P X-Received: by 10.101.74.74 with SMTP id a10mr8690796pgu.32.1520121926887; Sat, 03 Mar 2018 16:05:26 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1520121926; cv=none; d=google.com; s=arc-20160816; b=wuFptK9lVK/DDpUg+fYL9FxL/MoMRrRZ63ypO+sKGhKHPG/qIbm+WYRhxvgUIuZuG3 6VdCidOammPYyFPKO/qxFfK/w4teA1WMoeRtAcGnD1YlVTSB6kInAT/8lWTYGStXgJEU jaixqdDILi/MvCfW+uyMNMo5fnjDkdgC75sid+tuCMGAHzFhLsKXDq8aUFLfbUi5YgYB NWsY6//w3Hx4Muu8Xk53dSN/dOr9CiQyopsUNRbRGDb78PYlE5E0uef2qWg9DXHawZu/ 0gpQn3RUEyxZgL9n+WI7td4/c1VaTMxHSf11NGbqblD/Q3BrFqeEXBSpEmSuG0VJb0Px 63Ig== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:mime-version:content-transfer-encoding :spamdiagnosticmetadata:spamdiagnosticoutput:content-language :accept-language:in-reply-to:references:message-id:date:thread-index :thread-topic:subject:cc:to:from:dkim-signature :arc-authentication-results; bh=8HKQHLYWb9VkvEwcKhSN8Wtp98UdjfXKnpX4TOJoFxc=; b=WG6J+M0vyc3hw/tEDtnqNdDWSouViKV8JoOjAyyGbxqevah2lJqIjbltyYhT1JuvZ2 wjod9pVwEhp8qVnjOaFE7KV09LyaQxzpR4S43JQJ2jqlZTpPtsFNEtlsQDFcHjTE03XC b2RDnNbiJGZRYp+54grLUh0N0Z67m1otn6x5et3MhN3vxOwXjL4+g2nT1jONk2WGQk2u GXYdVj5GPQzeuMAu5BbxSLJONQ6vIZzJU1OBdyvKK2ZWR0LduMDHZoiep4CphLPfP8h+ jrfZ3erXpOrSb02kdGlA+lVrUo8h0btTd33Mss+YcQ/uH5Z5ZnjEGltuBILLxR+GvgZG n3kw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@microsoft.com header.s=selector1 header.b=PBF0rVz7; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=microsoft.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id q9-v6si6893198plr.110.2018.03.03.16.05.12; Sat, 03 Mar 2018 16:05:26 -0800 (PST) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=pass header.i=@microsoft.com header.s=selector1 header.b=PBF0rVz7; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=microsoft.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S933673AbeCCWbX (ORCPT + 99 others); Sat, 3 Mar 2018 17:31:23 -0500 Received: from mail-sn1nam01on0122.outbound.protection.outlook.com ([104.47.32.122]:11440 "EHLO NAM01-SN1-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S933651AbeCCWbT (ORCPT ); Sat, 3 Mar 2018 17:31:19 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version; bh=8HKQHLYWb9VkvEwcKhSN8Wtp98UdjfXKnpX4TOJoFxc=; b=PBF0rVz7VVW3c2EPnnqh/XxhkizwT0UsGP01L22njLw4XxReb9uot83JxlkvISz7iS4mLfVhsgr3+1V7vAlAvtPMMcJElDS780dfkgvCZNwUbO0o3soYuIPkh0FYwrMJS55l4BxvNe8h8P84tdVoQtQHDAlHpKCQbn67air4qBs= Received: from MW2PR2101MB1034.namprd21.prod.outlook.com (52.132.149.10) by MW2PR2101MB0970.namprd21.prod.outlook.com (52.132.146.19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.567.3; Sat, 3 Mar 2018 22:31:12 +0000 Received: from MW2PR2101MB1034.namprd21.prod.outlook.com ([fe80::1d56:338f:e2b:cec0]) by MW2PR2101MB1034.namprd21.prod.outlook.com ([fe80::1d56:338f:e2b:cec0%3]) with mapi id 15.20.0567.006; Sat, 3 Mar 2018 22:31:12 +0000 From: Sasha Levin To: "linux-kernel@vger.kernel.org" , "stable@vger.kernel.org" CC: Dmitry Safonov , "0x7f454c46@gmail.com" <0x7f454c46@gmail.com>, "linux-mm@kvack.org" , Andy Lutomirski , Cyrill Gorcunov , Borislav Petkov , "Kirill A. Shutemov" , Thomas Gleixner , Sasha Levin Subject: [PATCH AUTOSEL for 4.9 022/219] x86/mm: Make mmap(MAP_32BIT) work correctly Thread-Topic: [PATCH AUTOSEL for 4.9 022/219] x86/mm: Make mmap(MAP_32BIT) work correctly Thread-Index: AQHTsz7n5yZ9zKa9/EG5wI7ncso62g== Date: Sat, 3 Mar 2018 22:28:08 +0000 Message-ID: <20180303222716.26640-22-alexander.levin@microsoft.com> References: <20180303222716.26640-1-alexander.levin@microsoft.com> In-Reply-To: <20180303222716.26640-1-alexander.levin@microsoft.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-originating-ip: [52.168.54.252] x-ms-publictraffictype: Email x-microsoft-exchange-diagnostics: 1;MW2PR2101MB0970;7:z5nKtFp2BKqLhFoB7/fI28rEPqGc7r97IMfKIcw+T7h7OCapgYrbErMDPG8uQ9zQGNhYs9StAKRxzPMmCHfWHetqdpLRuK+XpgmVOEai+M4sYq49JeWusQvYqaB5jibditAk7Zk14moh7bmpG4uSLl1P1Cc+3q/UBXjw+akOilwWu22JUEYmOpnp3sB+dtO6hYnlYDn0QHKTU8Sxp39S271KOYUYXDrXIB9avGCLf5Mdh1zkN77k9tN9XzL0Adrp x-ms-office365-filtering-ht: Tenant x-ms-office365-filtering-correlation-id: ab8d64b5-5023-47c4-4a73-08d5815677d0 x-microsoft-antispam: UriScan:;BCL:0;PCL:0;RULEID:(7020095)(4652020)(4534165)(4627221)(201703031133081)(201702281549075)(48565401081)(5600026)(4604075)(3008032)(2017052603307)(7193020);SRVR:MW2PR2101MB0970; x-ms-traffictypediagnostic: MW2PR2101MB0970: authentication-results: spf=none (sender IP is ) smtp.mailfrom=Alexander.Levin@microsoft.com; x-microsoft-antispam-prvs: x-exchange-antispam-report-test: UriScan:(28532068793085)(278428928389397)(89211679590171)(85827821059158)(788757137089)(42068640409301)(228905959029699); x-exchange-antispam-report-cfa-test: BCL:0;PCL:0;RULEID:(8211001083)(61425038)(6040501)(2401047)(5005006)(8121501046)(93006095)(93001095)(10201501046)(3002001)(3231220)(944501244)(52105095)(6055026)(61426038)(61427038)(6041288)(20161123562045)(20161123558120)(20161123560045)(20161123564045)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(6072148)(201708071742011);SRVR:MW2PR2101MB0970;BCL:0;PCL:0;RULEID:;SRVR:MW2PR2101MB0970; x-forefront-prvs: 0600F93FE1 x-forefront-antispam-report: SFV:NSPM;SFS:(10019020)(376002)(39380400002)(366004)(396003)(39860400002)(346002)(199004)(189003)(54534003)(7416002)(86362001)(39060400002)(110136005)(4326008)(6506007)(14454004)(99286004)(8936002)(1076002)(36756003)(2906002)(102836004)(76176011)(25786009)(6486002)(316002)(478600001)(3280700002)(107886003)(186003)(54906003)(26005)(81166006)(966005)(7736002)(8676002)(6512007)(6306002)(81156014)(305945005)(72206003)(59450400001)(6436002)(53936002)(6116002)(6666003)(86612001)(68736007)(3846002)(2950100002)(3660700001)(10290500003)(22452003)(10090500001)(2900100001)(106356001)(2501003)(66066001)(97736004)(5660300001)(5250100002)(105586002)(22906009)(217873001);DIR:OUT;SFP:1102;SCL:1;SRVR:MW2PR2101MB0970;H:MW2PR2101MB1034.namprd21.prod.outlook.com;FPR:;SPF:None;PTR:InfoNoRecords;A:1;MX:1;LANG:en; received-spf: None (protection.outlook.com: microsoft.com does not designate permitted sender hosts) x-microsoft-antispam-message-info: IgxuiQbmK2NWt+jZp5L6q1aFAd/m1nn9453F+zu86F1wumjwpgos+D3zUme/cJzB+MQEuo3K/9VFhvZq0/4XUWHlPX3c+aL2dbEwYS6VyKXj8PppPu217gmM34dJSBtw4BZqiWUN64SLVKYOBvdXvd52jd5sejuiKXVQ9SodnvU= spamdiagnosticoutput: 1:99 spamdiagnosticmetadata: NSPM Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 X-OriginatorOrg: microsoft.com X-MS-Exchange-CrossTenant-Network-Message-Id: ab8d64b5-5023-47c4-4a73-08d5815677d0 X-MS-Exchange-CrossTenant-originalarrivaltime: 03 Mar 2018 22:28:08.4006 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 72f988bf-86f1-41af-91ab-2d7cd011db47 X-MS-Exchange-Transport-CrossTenantHeadersStamped: MW2PR2101MB0970 Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Dmitry Safonov [ Upstream commit 3e6ef9c80946f781fc25e8490c9875b1d2b61158 ] mmap(MAP_32BIT) is broken due to the dependency on the TIF_ADDR32 thread flag. For 64bit applications MAP_32BIT will force legacy bottom-up allocations an= d the 1GB address space restriction even if the application issued a compat syscall, which should not be subject of these restrictions. For 32bit applications, which issue 64bit syscalls the newly introduced mmap base separation into 64-bit and compat bases changed the behaviour because now a 64-bit mapping is returned, but due to the TIF_ADDR32 dependency MAP_32BIT is ignored. Before the separation a 32-bit mapping was returned, so the MAP_32BIT handling was irrelevant. Replace the check for TIF_ADDR32 with a check for the compat syscall. That solves both the 64-bit issuing a compat syscall and the 32-bit issuing a 64-bit syscall problems. [ tglx: Massaged changelog ] Signed-off-by: Dmitry Safonov Cc: 0x7f454c46@gmail.com Cc: linux-mm@kvack.org Cc: Andy Lutomirski Cc: Cyrill Gorcunov Cc: Borislav Petkov Cc: "Kirill A. Shutemov" Link: http://lkml.kernel.org/r/20170306141721.9188-5-dsafonov@virtuozzo.com Signed-off-by: Thomas Gleixner Signed-off-by: Sasha Levin --- arch/x86/kernel/sys_x86_64.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/arch/x86/kernel/sys_x86_64.c b/arch/x86/kernel/sys_x86_64.c index 1119414ab419..c45923e70f82 100644 --- a/arch/x86/kernel/sys_x86_64.c +++ b/arch/x86/kernel/sys_x86_64.c @@ -100,7 +100,7 @@ out: static void find_start_end(unsigned long flags, unsigned long *begin, unsigned long *end) { - if (!test_thread_flag(TIF_ADDR32) && (flags & MAP_32BIT)) { + if (!in_compat_syscall() && (flags & MAP_32BIT)) { /* This is usually used needed to map code in small model, so it needs to be in the first 31bit. Limit it to that. This means we need to move the @@ -175,7 +175,7 @@ arch_get_unmapped_area_topdown(struct file *filp, const= unsigned long addr0, return addr; =20 /* for MAP_32BIT mappings we force the legacy mmap base */ - if (!test_thread_flag(TIF_ADDR32) && (flags & MAP_32BIT)) + if (!in_compat_syscall() && (flags & MAP_32BIT)) goto bottomup; =20 /* requesting a specific address */ --=20 2.14.1