From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-ob0-f199.google.com (mail-ob0-f199.google.com [209.85.214.199]) by kanga.kvack.org (Postfix) with ESMTP id 26F516B0264 for ; Wed, 29 Jun 2016 06:59:06 -0400 (EDT) Received: by mail-ob0-f199.google.com with SMTP id at7so95967382obd.1 for ; Wed, 29 Jun 2016 03:59:06 -0700 (PDT) Received: from EUR01-HE1-obe.outbound.protection.outlook.com (mail-he1eur01on0116.outbound.protection.outlook.com. [104.47.0.116]) by mx.google.com with ESMTPS id r135si2539241oie.6.2016.06.29.03.59.05 for (version=TLS1_2 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Wed, 29 Jun 2016 03:59:05 -0700 (PDT) From: Dmitry Safonov Subject: [PATCHv2 5/6] x86/ptrace: down with test_thread_flag(TIF_IA32) Date: Wed, 29 Jun 2016 13:57:35 +0300 Message-ID: <20160629105736.15017-6-dsafonov@virtuozzo.com> In-Reply-To: <20160629105736.15017-1-dsafonov@virtuozzo.com> References: <20160629105736.15017-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, linux-mm@kvack.org, mingo@redhat.com, luto@amacapital.net, gorcunov@openvz.org, xemul@virtuozzo.com, oleg@redhat.com, Dmitry Safonov , Andy Lutomirski , x86@kernel.org As the task isn't executing at the moment of {GET,SET}REGS, return regset that corresponds to code selector, rather than value of TIF_IA32 flag. I.e. if we ptrace i386 elf binary that has just changed it's code selector to __USER_CS, than GET_REGS will return full x86_64 register set. Note, that this will work only if application has changed it's CS. If the application does 32-bit syscall with __USER_CS, ptrace will still return 64-bit register set. Which might be still confusing for tools that expect TS_COMPACT to be exposed [1, 2]. So this this change should make PTRACE_GETREGSET more reliable and this will be another step to drop TIF_{IA32,X32} flags. [1]: https://sourceforge.net/p/strace/mailman/message/30471411/ [2]: https://lkml.org/lkml/2012/1/18/320 Cc: Oleg Nesterov Cc: Andy Lutomirski Cc: Ingo Molnar Cc: Cyrill Gorcunov Cc: Pavel Emelyanov Cc: x86@kernel.org Signed-off-by: Dmitry Safonov --- arch/x86/kernel/ptrace.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/arch/x86/kernel/ptrace.c b/arch/x86/kernel/ptrace.c index 600edd225e81..a2612d06cf4b 100644 --- a/arch/x86/kernel/ptrace.c +++ b/arch/x86/kernel/ptrace.c @@ -1355,7 +1355,7 @@ void update_regset_xstate_info(unsigned int size, u64 xstate_mask) const struct user_regset_view *task_user_regset_view(struct task_struct *task) { #ifdef CONFIG_IA32_EMULATION - if (test_tsk_thread_flag(task, TIF_IA32)) + if (!user_64bit_mode(task_pt_regs(task))) #endif #if defined CONFIG_X86_32 || defined CONFIG_IA32_EMULATION return &user_x86_32_view; -- 2.9.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 From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752527AbcF2LPD (ORCPT ); Wed, 29 Jun 2016 07:15:03 -0400 Received: from mail-am1on0110.outbound.protection.outlook.com ([157.56.112.110]:31264 "EHLO emea01-am1-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1752493AbcF2LO7 (ORCPT ); Wed, 29 Jun 2016 07:14:59 -0400 Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=dsafonov@virtuozzo.com; From: Dmitry Safonov To: CC: <0x7f454c46@gmail.com>, , , , , , , Dmitry Safonov , Andy Lutomirski , Subject: [PATCHv2 5/6] x86/ptrace: down with test_thread_flag(TIF_IA32) Date: Wed, 29 Jun 2016 13:57:35 +0300 Message-ID: <20160629105736.15017-6-dsafonov@virtuozzo.com> X-Mailer: git-send-email 2.9.0 In-Reply-To: <20160629105736.15017-1-dsafonov@virtuozzo.com> References: <20160629105736.15017-1-dsafonov@virtuozzo.com> MIME-Version: 1.0 Content-Type: text/plain X-Originating-IP: [195.214.232.10] X-ClientProxiedBy: HE1PR0801CA0018.eurprd08.prod.outlook.com (10.167.184.28) To HE1PR0801MB1738.eurprd08.prod.outlook.com (10.168.149.150) X-MS-Office365-Filtering-Correlation-Id: 1fb7543c-9153-45a5-7865-08d3a00c6288 X-Microsoft-Exchange-Diagnostics: 1;HE1PR0801MB1738;2:EFACNZzJgQo8bGd22UKlCNq2ZQz+hhuPu+y9LwD4SOyUd+tniLHiPckvOvM0I9nkqQyqRtQepjKqa6bpSPOWBnJ3EZKkMi3c4Yr4jsHZ6OVRy7QM7P6FraPV5MoZj/yKCmMPabtxJbO9DO1tBzbw06mwo6IOkunHsT2jaQWFEu3FCAJXwiyz9qQMHvGafF53;3:lD9tXtG6IOxRN4ToSHnmuGratwjGaqGkl+O4VzNH0Z2hvxEZSpfWrir4nBYqWK4aOM5tUSjd9qMUl1YszAPowcPif/VQ3ic8YCgI+tty9pNzf+rd0glrFWW1vLn8YpMw X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:;SRVR:HE1PR0801MB1738; X-Microsoft-Exchange-Diagnostics: 1;HE1PR0801MB1738;25:zYeOYwBa9EsbMkNK9/8/YGLJWIV6XZODH1Pr5fScqac821s3lNpYnpK0ClR0ag/os6Kn62vi439FmHztKB/WOAqbgR26tmopFgpTC/R+XCeJUtC3tH28GO95YECZB7cXwZQCBjbDmp/ZWXFI8YPYwRMyN38ZgaO30VbbPcsfF09sZpXYXbTPOailANWLYUPC0oDVlUm7vTgEaQoa71PvQ9L6YMZanhD5r7JkMUYi/8QcSXcHPOXxCzitCdufslY6VPwSpCuOaDnoOjrd8WgsHAZ8bwjM899O3xsqZN2A18qrLfEaAxDcZCD0N3qjoYWpiuLJGxS3t+l9G5S3Icj9IuA9u6HvHwK34Rlx2VEn/ngg7OqKUBYCyOMIo+QKK29hNll1ohgdOII6Q6EWCgP5/MulWMOyDVYYsio5yj8OsCYCJwFfFUZVTbzXXDOT+4nRSYj9UtSXrKKp/8YmnnJiTpmNh4C3U3EF5suwlcYXaNhKui6+r4YvrC8lrike1bUx+tqxYoi0YV6WN+n5S2ZH1gT6Y9/ve4I0ppPJh6KwisRDdUUdUmgJfVTZhTLlDZadClQM6Da6Qy5GYvwGjyemfooCy5NIgckl+DAWyaTQqYhsDRgYXn9V3rCCtrggUK87j7oCDN3K9+SNu0vQkll0FfI19rdJpWKKKzO0/A7e/Kcu8ViQJz1pEw/nxSzLz3rZTUSEZgZayWQK5tO7+t0oRsNrPnyACmGi42FIgp1aGPe5ujdqr23ml30V+pOkSoraA+4cIaCm46Ps8vVxKBi+WHysufh0KvY59N6V3XgDAxc= X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(42262312472803); X-Exchange-Antispam-Report-CFA-Test: BCL:0;PCL:0;RULEID:(6040130)(601004)(2401047)(5005006)(8121501046)(10201501046)(3002001)(6041072)(6043046);SRVR:HE1PR0801MB1738;BCL:0;PCL:0;RULEID:;SRVR:HE1PR0801MB1738; X-Microsoft-Exchange-Diagnostics: 1;HE1PR0801MB1738;4:WtYserQFlAUVEnwnrGdAAxQEC8FdAAmscFWVQLcl0VPCknW4zGFog48LcfKnww4Mh+p1BtsbUtGgIiKzrBu62yt37Q329A/25imhtybyguUC1JOo2ZTnXlynBzjV6QBpe/7DfO5UJuaKve3Ev7SqMxB1cjPKNiIgOhq86U2K0Fvr0otqOqv75OLgXuzDSFV29eJIDKLmN2fX7CO6YxlN3O+XWytcAqaRoJodDDpgdGmA9CLqBmmCZmgEzXKEMgD6qj++OtloO2rzK7fPlzUmvb4L+52YwuKMF0JXnV6Dokeb2UPEihvpK/YuYVfTf8Pdz2wroWnByDCryMnBEwVcQy1Y7lnHlgwkvWd9R7QWc5EJG5T7TmALB+hfRaMMYzaUc0BTMUq0o8+vQjPjNSOWvG95Eh51SieZ2CrLZf8PpNSbDuF+rKU2UnHmO9aoMCvdDKMMiif6P+ewVA5bujbUKg== X-Forefront-PRVS: 09888BC01D X-Forefront-Antispam-Report: SFV:NSPM;SFS:(10019020)(4630300001)(6009001)(7916002)(199003)(189002)(2950100001)(5003940100001)(110136002)(19580395003)(19580405001)(77096005)(15975445007)(76176999)(189998001)(69596002)(50986999)(47776003)(66066001)(42186005)(101416001)(53416004)(50466002)(97736004)(33646002)(106356001)(68736007)(7846002)(86362001)(7736002)(105586002)(229853001)(2351001)(1076002)(4326007)(2906002)(3846002)(6116002)(50226002)(305945005)(36756003)(586003)(92566002)(48376002)(81166006)(8676002)(81156014);DIR:OUT;SFP:1102;SCL:1;SRVR:HE1PR0801MB1738;H:dsafonov.sw.ru;FPR:;SPF:None;PTR:InfoNoRecords;A:1;MX:1;LANG:en; X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1;HE1PR0801MB1738;23:PpgUvFn4B4ajYk2JfegpJTXxOosHf7VvOMCRR8E?= =?us-ascii?Q?K9ALN/ohAX7ogTYfXdaYaQwQgdw+qOoQJfC5+5nhnlKmvHs9kmz0kAmJ3asW?= =?us-ascii?Q?di5D1L0mCTfCXPDQUr/62JZenoGOAIWRteXJ42s4PpxfXvFJwC1Fu0AKnDsi?= =?us-ascii?Q?LeuZdRUQnVhmX5S9N7+H8rxlbuBGZq7Thnos4qDOXFeStYSRMn5WY22ldxeJ?= =?us-ascii?Q?bqdIZVSZ/tJAvanUd8LTtsIZx7JM66MVLbdiCmRsIuICq5rFwAuh3wFyrYtH?= =?us-ascii?Q?E2kLSppZQvkImzCrlq7wfEvnzAu7rO371DkEjxBmBgXzi7ZC3gcXfiDgalGE?= =?us-ascii?Q?UtqRB8BIv4a4rAC5un7AvTMv//p5nnb4oavAzD/S6iM9MqFHHA2ZDrgPkGR7?= =?us-ascii?Q?9uFSxbZOD1rHY82z1Dn4d0HYbllVa2rWFIwakEoSXcUAtgUzXLZIbkwafwKr?= =?us-ascii?Q?hPCpaWzqK+sRrhBRESdWAqLaK0Y+fxSueH2t8q2MGysQcopa7GRzxN2T304i?= =?us-ascii?Q?b5YRBjdHbYA9t88PKdME3P+VJwnHVK1n4ivi5AYFXa2h1k7qM/BJAgQKYH6r?= =?us-ascii?Q?4Dzar6x+nKsYLPGkVTi5ymPWsF+vz8a+SaputWvRdfuV4drqZ8+5dZvcX4DA?= =?us-ascii?Q?hVcN7CesKMsTR8hfFDS9BaxjwTjxvZwBpMSqHLDHSxco2DDkcXBc7Nx/qT9Y?= =?us-ascii?Q?z9IfhgMxndrXqODrYWOHJluNXrqZX90K/oiBta9dS4cepRiuQZM60XAVGbON?= =?us-ascii?Q?8vXlFm5w8YDCXWJ6isjwlD/77OJkm96dd8QQotXnuMw4PVmwoiVn5oXlwIBD?= =?us-ascii?Q?j1S6KHUNFFBAy/kFljh+LihDqkXTDb4Eeff5nRxO8i3B0HfT6Wf4+FddVz7i?= =?us-ascii?Q?LeyBxozQyWSQtTH1ACjENichFrEBnta+N3lrbXPpDACCvijYJOnurkEK85Ui?= =?us-ascii?Q?rpFf+9tRvVWLAZj46Iyp+WtgIV+WgBOAeYqOeakPF0fG2xNf67NLS9jYjQA1?= =?us-ascii?Q?d3JITzR4WovXSjnMI/RkjLZ60X7oofZTET+wuZ0E4IaldFC8sDkR4nx/Ks3R?= =?us-ascii?Q?+IwfVdEDFC+rW+BuROUnMT0tvn+Bz4sPgo9pAVmqEL526JQ1ZkpVRxUY5Xim?= =?us-ascii?Q?xJBRr6uKYv3AozFs9dEH0haCkCNbiGMnxFyup6DpGN3mKEpLV/9eavA=3D?= =?us-ascii?Q?=3D?= X-Microsoft-Exchange-Diagnostics: 1;HE1PR0801MB1738;6:Xj2/nz2E0rB2OZfQjb6gGj+5pZameFrFt/i7zfrj7QKT2SIxlChHnTAaWLRypkQJ+Gurxs8CadUTHSPbPR8Z/rlG+tEDdRZbljKZRAvSBMZhVTc7PhEOJ6U3Ec63uKYKlg7HbYcW0D5t/T9H18AG4Uxa17ccttMknAzZKqzN0l0VZohwtZKPV3+rsMQTt9K5b30prZn1lx6QHjCLNf60RU15bG4Is2kY3Ny9KyGAG3O887fjCDef6kVNt5OHCCvbbqlIAtAQq/DC1946X62D50AOHPMNYl3OsppLxlq1YwwalscZ4Lu0NsOIeCsHzvKek+/5ujKk0RTv99nthkil+Q==;5:rJQ1HO10hHJv3kKfX+rGTkNRD9W8IFU3QiJjshoHChiXkzdpvvlFUgVJS6wTqhkRCdNWc3i9WO2AFoWu/GWG/ZmybA3YB8OFp4GYZAvzXb2ifqQgPoLUaDMTeugKYyVg0FnE1JmHDt7xSgUquYrJOA==;24:5m8LJtrhMsmuSWdA12kv0a19f/97lTwYed61oTqGtuhBRtVf8dT2bf8eoiVca9JisElrUIEHCohcJDQ8RzREtc+yZnoZQ4J9l2FhHrChGyg=;7:IdgyiCadZLYYbFEim7oNzLlZ7djc37on9dWp1i+IZ9VMRPVf8i/mu5jZWiYAYjIrXFbNXegBpuOCGvMiamzZZNtSnM0bxhxyXyqQOx3c6BMuOg1JTrhZrK3yxpoz1c6Yq+RKr1GZeWmSrRJLxqKv14RoEn7SsZMGoTRDz+vjaVPnb+que40T8Vb2SLppqvw6uqpxaBLB0Ac9arh1ur30crolR8E3YiMOKD5iRP3jauWNCb8p9f8n76B31yGr7WPkw/QkWnQ5Pcwf19b9P/affg== SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1;HE1PR0801MB1738;20:ohzx7747wefI0znIIoohkkFfHttgkABz+t096Ulj55aS3ppzN5NH6MWHaTFzA+d47MCuKbVrYTxpeAgGZznAkl08yRXJnBW0CFGQReSvmbQ+UJhQnCmmcgj1Tf1l2Aoyf7a0vT0LzFkehLd0a98AdFEdyk/2xaA1+IomiuxD8TU= X-OriginatorOrg: virtuozzo.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 29 Jun 2016 10:59:03.2406 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-Transport-CrossTenantHeadersStamped: HE1PR0801MB1738 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org As the task isn't executing at the moment of {GET,SET}REGS, return regset that corresponds to code selector, rather than value of TIF_IA32 flag. I.e. if we ptrace i386 elf binary that has just changed it's code selector to __USER_CS, than GET_REGS will return full x86_64 register set. Note, that this will work only if application has changed it's CS. If the application does 32-bit syscall with __USER_CS, ptrace will still return 64-bit register set. Which might be still confusing for tools that expect TS_COMPACT to be exposed [1, 2]. So this this change should make PTRACE_GETREGSET more reliable and this will be another step to drop TIF_{IA32,X32} flags. [1]: https://sourceforge.net/p/strace/mailman/message/30471411/ [2]: https://lkml.org/lkml/2012/1/18/320 Cc: Oleg Nesterov Cc: Andy Lutomirski Cc: Ingo Molnar Cc: Cyrill Gorcunov Cc: Pavel Emelyanov Cc: x86@kernel.org Signed-off-by: Dmitry Safonov --- arch/x86/kernel/ptrace.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/arch/x86/kernel/ptrace.c b/arch/x86/kernel/ptrace.c index 600edd225e81..a2612d06cf4b 100644 --- a/arch/x86/kernel/ptrace.c +++ b/arch/x86/kernel/ptrace.c @@ -1355,7 +1355,7 @@ void update_regset_xstate_info(unsigned int size, u64 xstate_mask) const struct user_regset_view *task_user_regset_view(struct task_struct *task) { #ifdef CONFIG_IA32_EMULATION - if (test_tsk_thread_flag(task, TIF_IA32)) + if (!user_64bit_mode(task_pt_regs(task))) #endif #if defined CONFIG_X86_32 || defined CONFIG_IA32_EMULATION return &user_x86_32_view; -- 2.9.0