From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1161412AbcFANOo (ORCPT ); Wed, 1 Jun 2016 09:14:44 -0400 Received: from mail-am1on0116.outbound.protection.outlook.com ([157.56.112.116]:59568 "EHLO emea01-am1-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1161125AbcFANN2 (ORCPT ); Wed, 1 Jun 2016 09:13:28 -0400 Authentication-Results: vger.kernel.org; dkim=none (message not signed) header.d=none;vger.kernel.org; dmarc=none action=none header.from=virtuozzo.com; From: Dmitry Safonov To: , CC: , , , , <0x7f454c46@gmail.com>, , , , , Dmitry Safonov , Andy Lutomirski Subject: [PATCH 3/6] x86/arch_prctl/vdso: add ARCH_MAP_VDSO_* Date: Wed, 1 Jun 2016 16:11:34 +0300 Message-ID: <1464786697-20639-4-git-send-email-dsafonov@virtuozzo.com> X-Mailer: git-send-email 2.8.2 In-Reply-To: <1464786697-20639-1-git-send-email-dsafonov@virtuozzo.com> References: <1464786697-20639-1-git-send-email-dsafonov@virtuozzo.com> MIME-Version: 1.0 Content-Type: text/plain X-Originating-IP: [195.214.232.10] X-ClientProxiedBy: AM5PR0901CA0029.eurprd09.prod.outlook.com (10.164.186.167) To DB6PR0801MB1286.eurprd08.prod.outlook.com (10.168.11.16) X-MS-Office365-Filtering-Correlation-Id: 13f7dc0d-5ccc-4d56-89df-08d38a1e7b59 X-Microsoft-Exchange-Diagnostics: 1;DB6PR0801MB1286;2:XSSYaTn/rPvOfGW7OfJdhBnqnu/tKfbnmaPXqRMOiPNiCulsJeHh6+ptKYeHuCBrHBCaY+iZRq2DryHZJBs8ld5ZFFAwoFd5WxKZoKyTpk93WrZ/8aSCEwYgFzmSR04WegJLHDuJgyBu8/bserWtLX2dHVQb8Rn0cXEp3S0XSiXNQtsg3zDgWEIOGLV9oR53;3:uRW/8ssrbgiIbsVw39AU0VH9f+L2JbgdYx+Im/xFZoPibrunDgaN2LLMo2abGKA7ErIzRNh/734m8O09GsB72eLzHcWgvxOSqPwD6QIno4ZuZu334W0OR7c9NN7xCoeO X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:;SRVR:DB6PR0801MB1286; X-Microsoft-Exchange-Diagnostics: 1;DB6PR0801MB1286;25:Mew4bERKgx9xUh8GKmbovNuziESfG3hgxkGIWdL1qcGDCQAAUi7vFl4xG6XHIp7hqtxFqvjnEbMSea5s4YJ08yLhQAtqcC8qDxnCofkzpn8rPoii1P/IaTL9H+okK9zOEhNuN6zPWPW8qBoI21bMUqu2xXAe59NrNBU1YmwgRePcamnopHbqvYuDVOXxmJsWFgwHpsVe4IAUNLtNS5Nu4l1N2N99SCnPscs5AAN9QTfzoFMfT2WrnA/Dqq33383sa1MsDdhTbM8JpCqqksDtzfleOj8lTCl+jHXxhs+R5DQTyX8IWsizohDPE+Dm8lTcTN2sFN0wywmEXtOZljYcnM+XBt1mt7goTmfoOt/woqTwlGTySFBoN7uMoooGCxLyfsNylU1u8LFvx3jvLmFVHmnV8lmXFZGKBd8RnXhAvSQZWx7OX4OC9kBSOpISvkIplfPkJQjQjW9vHu8EP/sVlTjT54AdX1fiyTb3TSVtUT0p37wGkw4FbOpMBfapjh4B6cg0sGt+2b4XuTVi0OdlriLFML4Imz6zWc0vTpFaXBv+/keFsqjngWJmvHekgL7QGcR77aizQawO0JDnkckGNDMU5wk/S/LO6nq+xEdx8knVWdcWUIPkFOBPbXSyfGjMS6tsbJPOQEY5NlmQUMCTVJJdNJnjtd5CcUQYrQFbLeAG5NiAHAzOF37K+/DYERDa/B8d7v1ux6WkCMYBMrE5PA== X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:; X-Exchange-Antispam-Report-CFA-Test: BCL:0;PCL:0;RULEID:(6040130)(601004)(2401047)(8121501046)(5005006)(10201501046)(3002001)(6041072)(6043046);SRVR:DB6PR0801MB1286;BCL:0;PCL:0;RULEID:;SRVR:DB6PR0801MB1286; X-Microsoft-Exchange-Diagnostics: 1;DB6PR0801MB1286;4:cQ1vIzjhYQHxI7q/LDGeUpaKXgrvsJTY4tOY2sUNbKmlwZkEP79sPgaiBZ00TRoT/PXOpjWUhxFPT/1MeuizZ9665FQ36tgQyd40JgRH7P0kOlmJRPigUMoWeg2nH2K3fm7SVEXJ7SQnerVQ+bzF7kp2k6IQrwZ+s5+33gsbRsLWwC/ohVZOI7s0AVw9kszxjHRqU/ng7xGcngbvFpP0x2mVLN2GtQTmaM5PZU4ZKwk4AcgH9vKKyttU2hAaL6KaxHNXTOqRxx+Jke+J0Nkir+RXW0nVuysZrf5ww9TavgOuHoE7/F8Qngtlas7xD1T9w5QskSbWjD4Wrt8r2FhrGEFeQ/TElxZqke43HJUTWtWcnvoqqCoP6oZvaBUvtALOMA9DYu7wn0hXu+ehOT642hCUEVU4AKRGHv2zmYa3X70= X-Forefront-PRVS: 096029FF66 X-Forefront-Antispam-Report: SFV:NSPM;SFS:(10019020)(4630300001)(6009001)(189998001)(5008740100001)(19580405001)(229853001)(19580395003)(8676002)(77096005)(33646002)(53416004)(5001770100001)(42186005)(5003940100001)(81166006)(586003)(50466002)(48376002)(6116002)(86362001)(66066001)(36756003)(47776003)(2950100001)(50986999)(50226002)(92566002)(3846002)(4326007)(76176999)(5004730100002)(2906002);DIR:OUT;SFP:1102;SCL:1;SRVR:DB6PR0801MB1286;H:dsafonov.sw.ru;FPR:;SPF:None;MLV:sfv;LANG:en; X-Microsoft-Exchange-Diagnostics: 1;DB6PR0801MB1286;23:hBq9UroDRVwt7wns+E8xG2xTf2Veu0ZOSXhcG6sZ+/0jaRN/h7aXbcTSBTfGMav0QKVuXARrfACkfMBSb6WI6mRwD5EPKKnoOz/ZM1f0QUaPhoRsQHOn8xG+gp0MKqCS1zSU4qinqGx3/URNZVd8KeNxpIIE0UWh56yNI+H7lGwjzfjJ6C/9yVFh9GMO1I9OGeCQC1REc1HA+SJzpvYzOgL8oLP1VN3mZNfufqpoquERvisefsvtNg/hBaEh8XPPsuHBc6JccY8pyN+dyJqPh02uQCWfBm5+c+KimblgefSqNDn3RI3hInZEmrb9Um4qyRj/GFWBvMUk0DmW/oCQQrBBQH97heNnu+p0VwZgS1FWGPWsj0a/PFWEyhhTUorAPW+gK73JIX/6kRTvnEATGXk3aYKlskEDNX4iOFKM0yzHLc4kZVg7RAn2UaFGjyzXvVQPEymCh0nMyauyDfwhkQ1F+ta7Q8VD2xIVO4QPOkSqTxuAh+JjTJ3PKuvpCLfvOeP29htlvA8QRpq2pE4QYTtoGQi3qW07PeRXXxvvhyZGyJ2zHhHYU7/XxrwDjMtlfYRT9SE7TvvC+Efl7hPMPUdcvv7Jw7v5vHOXThWrIGXlaLrV5+b5QtarGYzjgF+EPi/RSruZyE+bFnCXs/zZsK11oNFOgEFkcGwaYq+jfLrlvGmJ9y9kggzc1SjFOcheRDT9LbKXu8nTI5/51Yk1bRHKi36rLWF3jv3K0QjaeixP8PjV1L8bE+KVdFRTegnUxW+rqe4TuKvk9I9c2+hzbmW3jg76mLVCOqCL1lSFNUe/lzOVZJNkedyVerG4frcz5uVApXItJMyr/Cb892GkVBD8O7fWeFdYe4eiO2DFeA6Q6qZPTRMm6bi42vzicUNC59Tpsb04RA/nzlzYtOWp2g== X-Microsoft-Exchange-Diagnostics: 1;DB6PR0801MB1286;5:tTL9VxBImrtSEu8KKc80rkB4FVXfO0UqP4iq+L/mxHqC7ObPTZgi+ZNTw17koAnXhEXzN6uMEY+PbgPmj45NSfO8c1g5gK+3uUVXmoX0dnVnrxb6kUCajYqlOfIMyBi1xNBFu8ODbTmf1SBklTcJ7g==;24:A+bwJ7FI0OA/lujyaf0KCP2ijFM/fvobX9SNpMiEJldQlCmhAaKARLXvSpLddIUQ9mKk0fdDUMBtAvJXUSacr/xAah/+jtLKaP++gvrAUwg=;7:nux904qsZwORjN347ypZWcEqAWm2ctYB5TUHhX0CROJt8GTQgHEyy7ezhSSbUTezCowWPZJWcHdtjJbZRWYlpHZYLglqYNUiVvR1YSudlzuaozK+Y+/+bM0xBWVeuV7GqxdkWYvwlrhrfqee/6nLSQr4b4y/LtTpR3vyi65BCVmZzQH3nXaInKtlRQinH+aQ;20:EhFV2g0mhiC1aJVywnpy15W/gl4aQkmu9yKypxTDW0gmeAHbjbH+RR7/EYl2wtrSDFx3KQTQp0gQoguLO0B4uyd+0odCabQIldI+ZGQ5mAnZmjWlCkkcUI2Kv0qsL9lUoueaiX9xdeKB5trfbUhsX8Omc7SRNl0cGZxSuoK5Ers= SpamDiagnosticOutput: 1:23 SpamDiagnosticMetadata: NSPM X-OriginatorOrg: virtuozzo.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 01 Jun 2016 13:13:09.8113 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB6PR0801MB1286 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Add API to change vdso blob type with arch_prctl. As this is useful yet only by needs of CRIU, expose this interface under CONFIG_CHECKPOINT_RESTORE. Cc: Andy Lutomirski Cc: Ingo Molnar Cc: Thomas Gleixner Cc: "H. Peter Anvin" Signed-off-by: Dmitry Safonov --- arch/x86/include/uapi/asm/prctl.h | 6 ++++++ arch/x86/kernel/process_64.c | 10 ++++++++++ 2 files changed, 16 insertions(+) diff --git a/arch/x86/include/uapi/asm/prctl.h b/arch/x86/include/uapi/asm/prctl.h index 3ac5032fae09..ae135de547f5 100644 --- a/arch/x86/include/uapi/asm/prctl.h +++ b/arch/x86/include/uapi/asm/prctl.h @@ -6,4 +6,10 @@ #define ARCH_GET_FS 0x1003 #define ARCH_GET_GS 0x1004 +#ifdef CONFIG_CHECKPOINT_RESTORE +# define ARCH_MAP_VDSO_X32 0x2001 +# define ARCH_MAP_VDSO_32 0x2002 +# define ARCH_MAP_VDSO_64 0x2003 +#endif + #endif /* _ASM_X86_PRCTL_H */ diff --git a/arch/x86/kernel/process_64.c b/arch/x86/kernel/process_64.c index 6e789ca1f841..64459c88b3d9 100644 --- a/arch/x86/kernel/process_64.c +++ b/arch/x86/kernel/process_64.c @@ -49,6 +49,7 @@ #include #include #include +#include asmlinkage extern void ret_from_fork(void); @@ -577,6 +578,15 @@ long do_arch_prctl(struct task_struct *task, int code, unsigned long addr) break; } +#ifdef CONFIG_CHECKPOINT_RESTORE + case ARCH_MAP_VDSO_X32: + return do_map_vdso(VDSO_X32, addr, false); + case ARCH_MAP_VDSO_32: + return do_map_vdso(VDSO_32, addr, false); + case ARCH_MAP_VDSO_64: + return do_map_vdso(VDSO_64, addr, false); +#endif + default: ret = -EINVAL; break; -- 2.8.2