From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S941975AbcJYT22 (ORCPT ); Tue, 25 Oct 2016 15:28:28 -0400 Received: from mail-db5eur01on0101.outbound.protection.outlook.com ([104.47.2.101]:34570 "EHLO EUR01-DB5-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S941919AbcJYT2V (ORCPT ); Tue, 25 Oct 2016 15:28:21 -0400 Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=dsafonov@virtuozzo.com; From: Dmitry Safonov To: CC: <0x7f454c46@gmail.com>, Dmitry Safonov , "Benjamin Herrenschmidt" , Paul Mackerras , Michael Ellerman , Andy Lutomirski , Oleg Nesterov , , Subject: [PATCH 6/7] powerpc/vdso: switch from legacy_special_mapping_vmops Date: Tue, 25 Oct 2016 18:51:05 +0300 Message-ID: <20161025155106.29946-7-dsafonov@virtuozzo.com> X-Mailer: git-send-email 2.10.0 In-Reply-To: <20161025155106.29946-1-dsafonov@virtuozzo.com> References: <20161025155106.29946-1-dsafonov@virtuozzo.com> MIME-Version: 1.0 Content-Type: text/plain X-Originating-IP: [195.214.232.10] X-ClientProxiedBy: DB5PR0301CA0040.eurprd03.prod.outlook.com (10.167.222.178) To DB6PR0801MB1734.eurprd08.prod.outlook.com (10.169.226.149) X-MS-Office365-Filtering-Correlation-Id: 89fcd5a3-f8de-4e63-dba0-08d3fcef0972 X-Microsoft-Exchange-Diagnostics: 1;DB6PR0801MB1734;2:TDj/VyQQCiAtThcnTZlhqwcmGgDYtZDHt9vRNtl//mJzJ47INZ7q7bZAovjqrNImY4ZBHGH8UtZjru8NZ/inEno5uOCVUcFLiuhjr1kKBgGWCYJjfPahb4tPw1wXCbjz043GzAOHwyFNnW3JjH0RNsQr1oVufXCkcqsaA0cgN1Yful8+jQJmWDs2fm8m1oNVsHBzcabxjyf3p24gQxmEOQ==;3:0aTrUUr2tGtNBYClHNHwxjW6XBvBx3YXySxPXeTvPE5cXviSFiJWKgytQ2rscIu4sjlwT1LdnS8Ye9Qe+lXHytCDyiMAlRgPYDf/jffAmwGLiW11381E2cCw/q+A9aGDzRx/TvX3FS1EDu/uufESgg== X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:;SRVR:DB6PR0801MB1734; X-Microsoft-Exchange-Diagnostics: 1;DB6PR0801MB1734;25:cBmfqf2vha5zOWLXQf0TzL3u4VJKFkr/YbHAdSliBPEhYYYXRi62/Rz9GXzcGoCOvvCAEnpWtZYuv/pha8IuW2j0a2SdHgfznu4mIMs+BkC04INqXcaabHhvrboIz9gFrk8VNUxIPQlfcxOWVrcA3787HCD/oHqVdNlYBcjkoQoAxrOBEi9fTioNQW5oHF4phhHJ08fs6h60cLOVqSS6rPro5SU8oHhfsjX8isrGVOVqMMKGwZhcfaytvAp4wI3IBJss8NZRwZlmdi8My1mKaBQgNZ0Ll/FCA9TJW/mM+hEv1Cif1YmPIIMuu452BAEIGgn4dsTCuJF0pflBcenIUeo9N3erZI032tO3LElsfeLvQuUavEE7EcrYqXHBfQd9wBoQ+ndxMAG7wgZzhmSxBChMXDAHdgdSY4wnpLBROlui9rk8NjqnsKT2ZNeEOU3GtOsk786koHm3Qv9HzSFW6Kly8L3W+n3E95wEB3cFkoE7bdaVYwvTzCtoWKF3+ff81McGevbvS14o7hZ8f1syyBASIVbpd/wuG1F0+Y/35XNdxayi0RPEEQylsTaW8B11wsNjPpHVnWBkRpQKkMFsm2gK0F2psz4faASub2iGVGKoP78jPqnSRb4YkwO4Vyrkmv+4/J3WkvHsWqalMhWZdqU0ucxEzHAo0BSrw1KWnEWeRc7v0SKwQ/YZ095oVCfFqhf5axlFH04DCAyG/JXeT83xEMucE/d9oDY+xjiqMF8= X-Microsoft-Exchange-Diagnostics: 1;DB6PR0801MB1734;31:y5dnbCDxtWqVqvG4Trz866FD452HrZ8LIhP6AaPuAiGGa+/YNhhrdsUNILiYqZ+4wFnHLwURV2kVSqHfgt0Pn8Ir17s1jl6uqqXRFAgouehEMk7JRDjvJWURz32UBEvK7TQUEDpUZlHbmvwpSZmcVvWpZj7bSdMsS6g6a8aPgJJcQgf5KZtTAWdfehvDJS+CwfNqBKalC3TYBtMv7/3D+j3kkaaH1pZQkI09dmJmSub4c2upVwxfxTOrzQ2Xxu3emaXptBV08dur3D0czvtpcw==;4:oc+XogMQfXLTN7fbFaVCz4r53THKiAPTW/icN9ydtR5km8m1z+ojVVLqLS0TUfSXKT184PiLSnUCZnLO/A7nGPLo2ckE0tpp+KYst/F0kw22aS7rJNNzREcYs0VRl86BBC+NhY98RtlzUOclY0ADsJAL/nLrpkNWhq3Cwd6p2n9a4CpBjMgPIc9ZQWVplXJZI7KbPP9WKCPXIOwEYbCvQ0OOpIc2ix/Pk1Rpwje1Ssx7NCjgLv7+0K8YXVQTecizqXxw1fHW1E2IWbckqs461/vXD3A1L0NfJxVNbhwubqqg/Nfz+2OiAzeyuBEIf6yPZDttibr2pNd9wbxS2V6Pa6XfPRbHLXPBR0msqXooSKIT298DqMaLnKkT80yWzCL9fogLoY5RATXRlQ2exvCx3946DKwCDqns1AQ5znAsg8T7+WNGzoF/1cr8W9NjjIx+TEdAombpoD/FgDsLMDL6AijBXtu64HP1N7++lYiwy8o= X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(65623756079841); X-Exchange-Antispam-Report-CFA-Test: BCL:0;PCL:0;RULEID:(6040176)(601004)(2401047)(8121501046)(5005006)(10201501046)(3002001)(6043046)(6042046);SRVR:DB6PR0801MB1734;BCL:0;PCL:0;RULEID:;SRVR:DB6PR0801MB1734; X-Forefront-PRVS: 01068D0A20 X-Forefront-Antispam-Report: SFV:NSPM;SFS:(10019020)(4630300001)(6009001)(7916002)(189002)(199003)(229853001)(2351001)(110136003)(2950100002)(105586002)(5660300001)(6916009)(19580395003)(5003940100001)(77096005)(305945005)(189998001)(586003)(97736004)(6666003)(69596002)(50226002)(50466002)(19580405001)(33646002)(48376002)(3846002)(4326007)(6116002)(36756003)(76176999)(50986999)(101416001)(86362001)(92566002)(2906002)(53416004)(42186005)(8676002)(81166006)(81156014)(7846002)(68736007)(106356001)(47776003)(66066001)(7736002)(1076002);DIR:OUT;SFP:1102;SCL:1;SRVR:DB6PR0801MB1734;H:dsafonov.sw.ru;FPR:;SPF:None;PTR:InfoNoRecords;MX:1;A:1;LANG:en; X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1;DB6PR0801MB1734;23:PtrsHX2Krw3UeNN8/4x64aU8SZ0TMtl+40VooLJ?= =?us-ascii?Q?GhzX41HF3DPPwFM/Mpl0et80r/1Jw2mGfccxlFhqNY5TfR/53zwWPeHJ5xSj?= =?us-ascii?Q?nRntoBAxjFFXsLnO6/PsFzj6pekp0Rs1Hhm8dBqyfveItIbkcDcIhYrOM09z?= =?us-ascii?Q?SmW1ZhUuUP+0pGrDjbgVksDF0qVvvzLqp85C6D0qKAqmtMS1TunFMcKY5KOO?= =?us-ascii?Q?JORh4Ei4m97VRQASedsOGKEmloeOvSIszj6GP/wXZvLe8CQXLuezw6mb/4hY?= =?us-ascii?Q?fv8uRfqCZmenRH2zcLGVRNkn7j+2FnDtXvO078dYtxe606HkgN7RPWwlMGNe?= =?us-ascii?Q?GZasJvT/UBBKEFU6qlTYhl5Brtuk5oorCBxAGx1Yt8qQ7EC7xe1o4uvUuwS2?= =?us-ascii?Q?iWi+XnODl+Mh4ZoItD4L7cYq+WACCPAmwQ2k9vxfCJYs7ApAmz5kUPg5zMGm?= =?us-ascii?Q?n/afwuPOsSfC19uPWPKFgEU9chCj1hHbv2SSv0gJIQ3YiAKBGcMGdJSwPr9m?= =?us-ascii?Q?O+hBYdwmd8wIgkJCvz3C6FwwKpYrLsippTXfDR86qguf648qeQlNKHau2rWT?= =?us-ascii?Q?ecPaXeLRlUxcOtW4zqWxoJKTu2tvP/8msrZeo9+FF6Qz2nziAsHB+OfHdHxh?= =?us-ascii?Q?B/arOwrLclMkWcAIj102uAAbvMQkx92xar6Q+HZp9am+XQHPAJYTkfuv+WEi?= =?us-ascii?Q?n4oSpsD9cLhaly5Cq148f0NztBty5iyIjGx4Qxmm1jhgO6sEbRiKnwTuQ5kq?= =?us-ascii?Q?gkziQ8SBpRHgm4Nehf9Haq/sPhsL1JhTDATnw+Jl8ZEvvKjgkuqEWyQBooDv?= =?us-ascii?Q?0jJAx8VSmFDMAMC+2I/XnEBNWxGP6sdnpIr0SfY+1nyNr3iOdS510d6nt8H9?= =?us-ascii?Q?+KDmcEX5rQ0f3UE7ss9QZSJ72DDysaWgjugv2YZYBcKX+QZs4gHDJ05lae4L?= =?us-ascii?Q?qkNjICYjo+CjOB5KV0VlR913Lphx9dvJB5WL93jcGQKyPsc+TOIXWu7JhbFR?= =?us-ascii?Q?sAE9aJT/nDPQU3W/zqPgXyFeRfvDzQvhFv9jOqu0BbGB52H0zOw/mJtGCxUZ?= =?us-ascii?Q?FkfHeW6/g5XQjbCNG8h72Ht40fvzWtoV3ibHp6YMmyj1jocnwrNSHdtXRw2X?= =?us-ascii?Q?wstApXK3fTtRzQoGd0ViBGqEYF3cEYGNOkHuWpQ98IJG6zc0SlKNps2oQjve?= =?us-ascii?Q?e1BykHL1tWxAb07w=3D?= X-Microsoft-Exchange-Diagnostics: 1;DB6PR0801MB1734;6:nosghIw1hnjVrVb+gKSp0a1c97loMVBt2xGrPZf1UgdiHVh1PIK3uuS7MWv0UAjKU9Je6ish4yTVsIY2z0wIaHP27N0VysgZa+NMBErR8jPmZQu56uvU196RIokDg7fP/DC9t3Gd457Mu8w2qdA0Z1o4nf76Qy2fG2LsNi64uAK/W6Zq4Nm4Dvvpq47obZ0EYem79ed50rKsVl3O5x4h4y4FptVzlrn9ch/ciJSUGoaetkJAGc9koybTwMFtfC4VHjZPli8HWJJQJ8xa+Of1OLlrOWVA2V1NaS/ygoRSzNSlMtvxuRWpP3A9a6lBK9TnAp8FKBsli9mcGl+kWFTvgg==;5:EB05YFhphXy17jV48+xPsEVPGPpens3+Q34MtaJIUDuKRH0+4H7Lp29E1zpYmgHFT3z3CVEeqAQt+XKiGFvj3OLzRyVsxTRk5Vzo9+iFI0e2WE0JaZRJBDHHwvEI87NWklGz5mKnchKFVYlRkxddrUeV+nLWPvn5gucLqQ9hq84=;24:E78wsy1pRrX67IkKr2GTdN0zSd5LOsAJfiX0T9ovyrFtnfCppoKNTJOqAuIE1vWSLQOQgJYdl1bQW6+abzDgGUx11jbXg9lodZkp88G4jiQ= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1;DB6PR0801MB1734;7:CoEXhwABD3krr7MwIUlBESGJQuckCTk3Xh5XKiF6HpOFGoEiia9Uc16KquL+fU9Ng+LJv3VffUzMerfqQ55Loa59yqxnt2JW6o/O1KoRFqJrKtp5bTlbPk+xKo5yBY69OZ4+6zXEZ2ypDXRRCUIuhoew7W/OEctqolV7BQI2Yy5pQQPdYRkD3trt4AEFyJ8DFyScVGc4mjWdnWHGiIqhw2ccN9v5a+hYEwhA0k+CKU64dfnIJzGc5HtUKdlknA5pYq2KKCX5G3F0DU4hKKTcgbT86M3Vh4+vjKa53QLgfc63jUM/yhFvk2b9Jn/UtCW5vTRE/NoBpKXk3Uk8hSdQFD59oMMoC+7FLHND/aoGGGI=;20:/4mpLj5j2Uz8+oFy/keChi+iFsDWS8VQzSMyjD48u+XNSBv2jxkTUPpL5y2iWy3Cx0Ks4LGzKuD/gjEx0W2QlvmXatJTfHzXcoKUWBdkF+8mQpKhuvnMTrY/AqIHEwFvXfzpsHHXgkFTtxa/KJnMrhTdIgOxEa57LrMtb8KsaTI= X-OriginatorOrg: virtuozzo.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 25 Oct 2016 15:53:16.7581 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB6PR0801MB1734 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org This will allow to introduce mremap hook (the next patch). Cc: Benjamin Herrenschmidt Cc: Paul Mackerras Cc: Michael Ellerman Cc: Andy Lutomirski Cc: Oleg Nesterov Cc: linuxppc-dev@lists.ozlabs.org Cc: linux-mm@kvack.org Signed-off-by: Dmitry Safonov --- arch/powerpc/kernel/vdso.c | 19 +++++++++++-------- arch/powerpc/kernel/vdso_common.c | 8 ++++++-- 2 files changed, 17 insertions(+), 10 deletions(-) diff --git a/arch/powerpc/kernel/vdso.c b/arch/powerpc/kernel/vdso.c index e68601ffc9ad..9ee3fd65c6e9 100644 --- a/arch/powerpc/kernel/vdso.c +++ b/arch/powerpc/kernel/vdso.c @@ -51,7 +51,7 @@ #define VDSO_ALIGNMENT (1 << 16) static unsigned int vdso32_pages; -static struct page **vdso32_pagelist; +static struct vm_special_mapping vdso32_mapping; unsigned long vdso32_sigtramp; unsigned long vdso32_rt_sigtramp; @@ -64,7 +64,7 @@ static void *vdso32_kbase; extern char vdso64_start, vdso64_end; static void *vdso64_kbase = &vdso64_start; static unsigned int vdso64_pages; -static struct page **vdso64_pagelist; +static struct vm_special_mapping vdso64_mapping; unsigned long vdso64_rt_sigtramp; #endif /* CONFIG_PPC64 */ @@ -143,10 +143,11 @@ struct lib64_elfinfo unsigned long text; }; -static int map_vdso(struct page **vdso_pagelist, unsigned long vdso_pages, +static int map_vdso(struct vm_special_mapping *vsm, unsigned long vdso_pages, unsigned long vdso_base) { struct mm_struct *mm = current->mm; + struct vm_area_struct *vma; int ret = 0; mm->context.vdso_base = 0; @@ -198,12 +199,14 @@ static int map_vdso(struct page **vdso_pagelist, unsigned long vdso_pages, * It's fine to use that for setting breakpoints in the vDSO code * pages though. */ - ret = install_special_mapping(mm, vdso_base, vdso_pages << PAGE_SHIFT, + vma = _install_special_mapping(mm, vdso_base, vdso_pages << PAGE_SHIFT, VM_READ|VM_EXEC| VM_MAYREAD|VM_MAYWRITE|VM_MAYEXEC, - vdso_pagelist); - if (ret) + vsm); + if (IS_ERR(vma)) { + ret = PTR_ERR(vma); current->mm->context.vdso_base = 0; + } out_up_mmap_sem: up_write(&mm->mmap_sem); @@ -220,7 +223,7 @@ int arch_setup_additional_pages(struct linux_binprm *bprm, int uses_interp) return 0; if (is_32bit_task()) - return map_vdso(vdso32_pagelist, vdso32_pages, VDSO32_MBASE); + return map_vdso(&vdso32_mapping, vdso32_pages, VDSO32_MBASE); #ifdef CONFIG_PPC64 else /* @@ -228,7 +231,7 @@ int arch_setup_additional_pages(struct linux_binprm *bprm, int uses_interp) * allows get_unmapped_area to find an area near other mmaps * and most likely share a SLB entry. */ - return map_vdso(vdso64_pagelist, vdso64_pages, 0); + return map_vdso(&vdso64_mapping, vdso64_pages, 0); #endif WARN_ONCE(1, "task is not 32-bit on non PPC64 kernel"); return -1; diff --git a/arch/powerpc/kernel/vdso_common.c b/arch/powerpc/kernel/vdso_common.c index c97c30606b3f..047f6b8b230f 100644 --- a/arch/powerpc/kernel/vdso_common.c +++ b/arch/powerpc/kernel/vdso_common.c @@ -14,7 +14,7 @@ #define VDSO_LBASE CONCAT3(VDSO, BITS, _LBASE) #define vdso_kbase CONCAT3(vdso, BITS, _kbase) #define vdso_pages CONCAT3(vdso, BITS, _pages) -#define vdso_pagelist CONCAT3(vdso, BITS, _pagelist) +#define vdso_mapping CONCAT3(vdso, BITS, _mapping) #undef pr_fmt #define pr_fmt(fmt) "vDSO" __stringify(BITS) ": " fmt @@ -207,6 +207,7 @@ static __init int vdso_setup(struct lib_elfinfo *v) static __init void init_vdso_pagelist(void) { int i; + struct page **vdso_pagelist; /* Make sure pages are in the correct state */ vdso_pagelist = kzalloc(sizeof(struct page *) * (vdso_pages + 2), @@ -221,6 +222,9 @@ static __init void init_vdso_pagelist(void) } vdso_pagelist[i++] = virt_to_page(vdso_data); vdso_pagelist[i] = NULL; + + vdso_mapping.pages = vdso_pagelist; + vdso_mapping.name = "[vdso]"; } #undef find_section @@ -236,7 +240,7 @@ static __init void init_vdso_pagelist(void) #undef VDSO_LBASE #undef vdso_kbase #undef vdso_pages -#undef vdso_pagelist +#undef vdso_mapping #undef lib_elfinfo #undef BITS #undef _CONCAT3 -- 2.10.0 From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-pf0-f199.google.com (mail-pf0-f199.google.com [209.85.192.199]) by kanga.kvack.org (Postfix) with ESMTP id A23316B027A for ; Tue, 25 Oct 2016 11:53:20 -0400 (EDT) Received: by mail-pf0-f199.google.com with SMTP id x70so97275667pfk.0 for ; Tue, 25 Oct 2016 08:53:20 -0700 (PDT) Received: from EUR02-VE1-obe.outbound.protection.outlook.com (mail-eopbgr20118.outbound.protection.outlook.com. [40.107.2.118]) by mx.google.com with ESMTPS id q29si21297186pgn.274.2016.10.25.08.53.19 for (version=TLS1_2 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Tue, 25 Oct 2016 08:53:19 -0700 (PDT) From: Dmitry Safonov Subject: [PATCH 6/7] powerpc/vdso: switch from legacy_special_mapping_vmops Date: Tue, 25 Oct 2016 18:51:05 +0300 Message-ID: <20161025155106.29946-7-dsafonov@virtuozzo.com> In-Reply-To: <20161025155106.29946-1-dsafonov@virtuozzo.com> References: <20161025155106.29946-1-dsafonov@virtuozzo.com> MIME-Version: 1.0 Content-Type: text/plain Sender: owner-linux-mm@kvack.org List-ID: To: linux-kernel@vger.kernel.org Cc: 0x7f454c46@gmail.com, Dmitry Safonov , Benjamin Herrenschmidt , Paul Mackerras , Michael Ellerman , Andy Lutomirski , Oleg Nesterov , linuxppc-dev@lists.ozlabs.org, linux-mm@kvack.org This will allow to introduce mremap hook (the next patch). Cc: Benjamin Herrenschmidt Cc: Paul Mackerras Cc: Michael Ellerman Cc: Andy Lutomirski Cc: Oleg Nesterov Cc: linuxppc-dev@lists.ozlabs.org Cc: linux-mm@kvack.org Signed-off-by: Dmitry Safonov --- arch/powerpc/kernel/vdso.c | 19 +++++++++++-------- arch/powerpc/kernel/vdso_common.c | 8 ++++++-- 2 files changed, 17 insertions(+), 10 deletions(-) diff --git a/arch/powerpc/kernel/vdso.c b/arch/powerpc/kernel/vdso.c index e68601ffc9ad..9ee3fd65c6e9 100644 --- a/arch/powerpc/kernel/vdso.c +++ b/arch/powerpc/kernel/vdso.c @@ -51,7 +51,7 @@ #define VDSO_ALIGNMENT (1 << 16) static unsigned int vdso32_pages; -static struct page **vdso32_pagelist; +static struct vm_special_mapping vdso32_mapping; unsigned long vdso32_sigtramp; unsigned long vdso32_rt_sigtramp; @@ -64,7 +64,7 @@ static void *vdso32_kbase; extern char vdso64_start, vdso64_end; static void *vdso64_kbase = &vdso64_start; static unsigned int vdso64_pages; -static struct page **vdso64_pagelist; +static struct vm_special_mapping vdso64_mapping; unsigned long vdso64_rt_sigtramp; #endif /* CONFIG_PPC64 */ @@ -143,10 +143,11 @@ struct lib64_elfinfo unsigned long text; }; -static int map_vdso(struct page **vdso_pagelist, unsigned long vdso_pages, +static int map_vdso(struct vm_special_mapping *vsm, unsigned long vdso_pages, unsigned long vdso_base) { struct mm_struct *mm = current->mm; + struct vm_area_struct *vma; int ret = 0; mm->context.vdso_base = 0; @@ -198,12 +199,14 @@ static int map_vdso(struct page **vdso_pagelist, unsigned long vdso_pages, * It's fine to use that for setting breakpoints in the vDSO code * pages though. */ - ret = install_special_mapping(mm, vdso_base, vdso_pages << PAGE_SHIFT, + vma = _install_special_mapping(mm, vdso_base, vdso_pages << PAGE_SHIFT, VM_READ|VM_EXEC| VM_MAYREAD|VM_MAYWRITE|VM_MAYEXEC, - vdso_pagelist); - if (ret) + vsm); + if (IS_ERR(vma)) { + ret = PTR_ERR(vma); current->mm->context.vdso_base = 0; + } out_up_mmap_sem: up_write(&mm->mmap_sem); @@ -220,7 +223,7 @@ int arch_setup_additional_pages(struct linux_binprm *bprm, int uses_interp) return 0; if (is_32bit_task()) - return map_vdso(vdso32_pagelist, vdso32_pages, VDSO32_MBASE); + return map_vdso(&vdso32_mapping, vdso32_pages, VDSO32_MBASE); #ifdef CONFIG_PPC64 else /* @@ -228,7 +231,7 @@ int arch_setup_additional_pages(struct linux_binprm *bprm, int uses_interp) * allows get_unmapped_area to find an area near other mmaps * and most likely share a SLB entry. */ - return map_vdso(vdso64_pagelist, vdso64_pages, 0); + return map_vdso(&vdso64_mapping, vdso64_pages, 0); #endif WARN_ONCE(1, "task is not 32-bit on non PPC64 kernel"); return -1; diff --git a/arch/powerpc/kernel/vdso_common.c b/arch/powerpc/kernel/vdso_common.c index c97c30606b3f..047f6b8b230f 100644 --- a/arch/powerpc/kernel/vdso_common.c +++ b/arch/powerpc/kernel/vdso_common.c @@ -14,7 +14,7 @@ #define VDSO_LBASE CONCAT3(VDSO, BITS, _LBASE) #define vdso_kbase CONCAT3(vdso, BITS, _kbase) #define vdso_pages CONCAT3(vdso, BITS, _pages) -#define vdso_pagelist CONCAT3(vdso, BITS, _pagelist) +#define vdso_mapping CONCAT3(vdso, BITS, _mapping) #undef pr_fmt #define pr_fmt(fmt) "vDSO" __stringify(BITS) ": " fmt @@ -207,6 +207,7 @@ static __init int vdso_setup(struct lib_elfinfo *v) static __init void init_vdso_pagelist(void) { int i; + struct page **vdso_pagelist; /* Make sure pages are in the correct state */ vdso_pagelist = kzalloc(sizeof(struct page *) * (vdso_pages + 2), @@ -221,6 +222,9 @@ static __init void init_vdso_pagelist(void) } vdso_pagelist[i++] = virt_to_page(vdso_data); vdso_pagelist[i] = NULL; + + vdso_mapping.pages = vdso_pagelist; + vdso_mapping.name = "[vdso]"; } #undef find_section @@ -236,7 +240,7 @@ static __init void init_vdso_pagelist(void) #undef VDSO_LBASE #undef vdso_kbase #undef vdso_pages -#undef vdso_pagelist +#undef vdso_mapping #undef lib_elfinfo #undef BITS #undef _CONCAT3 -- 2.10.0 -- To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to majordomo@kvack.org. For more info on Linux MM, see: http://www.linux-mm.org/ . Don't email: email@kvack.org