From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1758267AbcFANOE (ORCPT ); Wed, 1 Jun 2016 09:14:04 -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 S1161237AbcFANNe (ORCPT ); Wed, 1 Jun 2016 09:13:34 -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 5/6] x86/ptrace: down with test_thread_flag(TIF_IA32) Date: Wed, 1 Jun 2016 16:11:36 +0300 Message-ID: <1464786697-20639-6-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: 05e4f420-3d57-4ead-adb8-08d38a1e7dc0 X-Microsoft-Exchange-Diagnostics: 1;DB6PR0801MB1286;2:YPUcPMYTJK+lEQG/7UXn8rZIKExJcL+pspE3ZAuLRi9tDd9x6EXVYGtO0D0ZTqaVFhfoJLbW4vNFdmfLeDKXcxbUpV/TmnaO6WnJy2LCQP/Y9y0IFwIIrLDteXSg0/bPFHpkhF21b9mW3++/BLIB9Z4gQkNssfmn1V7c4iwXOxrz5KfafUrfGuNlOVMb5o9a;3:7oipbfUB7MLj2yA73Aq6xznUWacr/YG3w//Z5atg/c0fIYfh3u2jdKoFVP1LIQvnxXam9jbA0Rn5Im/ur3NK/I9PJqilZmpGJbaLNNBFiedmmt/MGyY4mU2VnmKoVhMu X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:;SRVR:DB6PR0801MB1286; X-Microsoft-Exchange-Diagnostics: 1;DB6PR0801MB1286;25:yCBMDRrnHtxE3JbQs83O+FhnbZqdLhU/kd9ucZq/itDimXOaOlBW2w8/hkXyYE5QjW51nvMYDJtqsvDWQSgSiK/X0rp/37QZtkA/ivHR/YxD7O+JCrVqfO+sB8PZ29mtoyZ0Lx+WV4HkgYNb4MBPr8dIFyNaiCyWUenPoUr6nvtrwyFqwC2JBHw6QyAoA/7GhCINjWTHq0zjDOtyi6AUjOMo24UBfOm9lCDjcKX1bxXpSIUatfUTr4mk7cM47FusJ6ENxe6WYi4dixZoG9i6azvUR22cFmOzucRLfiag55X+Drka9YSo3WWAycOgobBXvFNULCsaa4EGA/WiN48nzt6lCJ1oFE60YvxfZ5nty3zjhH66tcCWOae3Dg21Tr8xmuLH+WFGH4IySwgFtbYvwslIUPKqmmsU2p8xMQOB1aFuhu6HBuGvExiuXSiPSTGB+yWlzX+6/lKaKJbCsdIzbA1AN5mf6yMNZ8pGFqoILmhSNWNkcR2eCctKxyGGElnkC0VBjuYuwKbPm8j93qH7HoDccMQdFIO7oiWGN9VL2uy6hLzn60DGWm9KCc7HMSij12DZAKEOq5k1uyNCiKWCnNaSDWSWXW1W2JXv1o1Cklx1d671Dg1NwciSGbA1rHhT+z72AutDJ79dPod0/KI6e3EisW3/jQrRLi1qMW2Q71awgRJGQubjsrVWhjahaXhX35ahpNukduZ7oX4Yf83/NWsp6fDUIZRZ0uBcXwJYNaX9uexJGIjzLEHH/7hqAWLpK3izbxKnnVNebfZxjSzonmpp/2Q8vzoRyGp9w3tiLm/SoYndkNCuDSlcZMpt/Ivr 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)(8121501046)(5005006)(10201501046)(3002001)(6041072)(6043046);SRVR:DB6PR0801MB1286;BCL:0;PCL:0;RULEID:;SRVR:DB6PR0801MB1286; X-Microsoft-Exchange-Diagnostics: 1;DB6PR0801MB1286;4:Q4/r8XtLExPCam7TrqLhMwqQhd7M/KvYbajQOpOGPBsxjcVQoL9162KqL7ZkAZ6P9cwf115cjoNdByXUt1i9fS/131IxFXsyPDpnwHB5EUI9Oz9EzJQQfezpjRSM0bKJOZQ34Pryuhx70gR5UVUcxrkkwt2wEZV4mxd8XacZfT/uvJRY3p09opzCrYQkrrbnKNCAS1oABdqVxCOzKIfVivvCj1PVHhl0B5KeuNZxKbZrKuHzbMDKAhrtR9RmL3ugH3bfW7FqbEk7/P03cJ77QHGjZenJAW85fGkNvXtfGw5j3OFewcFiE5jFDNZI3GXE31QujJa3t4u5eGZnzIWVAXmigbTSQL2yRhcaZYQlPYIyqjdIpnB0ZIRQ0sKB1AHwykFj7ZKDgCdwihBNF0Rsn0OMkCFVjXriOs939tnJ2Ebtr5xSR/YZBG3jf8mjb0IBZ4i8KNGsU0h+ccH5vmOc9g== X-Forefront-PRVS: 096029FF66 X-Forefront-Antispam-Report: SFV:NSPM;SFS:(10019020)(4630300001)(6009001)(189998001)(5008740100001)(19580405001)(229853001)(19580395003)(8676002)(15975445007)(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:kt75u1+arWrC9vMCuysdERUVCKG52rS8f3YTcjRerpfOYdy7DY5RZcINxwTdDY+O/rGzwZ/XQg9XVNE+tvTjm469B5Eb4pOnfDvUgMkIGTSP0WFZgxlZ/Q2NiTWKR/GriXb89SfC/nSzAeP0xhYWeG6NaTM7zGEQd4ZInBejpRx04buuGCxDRQjnQBCmhyVLiBJA6/krPV5/L8KiSXSlX2iSGflYkvdMLvJpF0u5KNE/mHpKLw685/ZiVSHDjOotJL0siCmuFAVk9gJz/NB140BWzsUTcHPNKgcZp5OO9JVu7i1O2VgkGziptgWaQ/nbbN89DdYbWuzoNWOv91e/7rum9yehlbchdGkngcsRAwCdw68u4ps5Z6YePK2wWxraU80mVF7vZb8EIgELxXbNalix/C3TYcPuUGsn4tlMD+RFdoo9B6gtqjLLIXZoIw8+bqYfOVWUmT9eTQEDVTjlhTlC+CJw94GrtS0jL9d7LvnAFgToVKfwFxHIvUZHVBHnf02Jmn7W3xvjEve7m44ZGBW+ViV/2VghETBBgsWxYDYGok4qFLcMH9PcXYyPKHBjw/Knf+04Otu2CTEABEXhzcAxD3TFNAe57LE3psQ4w9+8pBPIgKScxOFwGrI+IIlW6LJd7hG+n9VfvcSkbQhLOpNR0hL3uhAM8PfD7DeQ6zlAZk5x/BuL1rVK9WouSHkC34GGZ7cg0g3ZMVbaMJXkFm29lg6VBDMvbJJWq5EmJy3xtoQh4QWLIjx91bM3WwPqzcjUS4KTmrAsj1avz4RfCYfg1iGYZ/0BmMBx12ox58JTnJYLP+hDgdnUwGRbFo3/7Rp7pRn9DbzfSCuVX4a5XshDtRZuUBSMbrlyqcMlcbXmaS3f3C23uvgIGsn/T6R2LkZZVJPPwQ0SBx2u2EcSVj1FAEyPQcBm/SrtXTFvtFc= X-Microsoft-Exchange-Diagnostics: 1;DB6PR0801MB1286;5:ZDbbbHBaUz7NIQ7OdlnbCCRvHe887I8Gvkh5zENBziFeX4icE/e6BPcvZXrSX++9wlmF1G7xVW9Vgbh9HfXp5N/ZQerxiPURk1bGZsoi/BAVbrCrasSLiG/jocdCmme8VcUH1yFk6OO1sZMu83Bdxg==;24:wuMEl6q2V6gLtVxVZVLSn1fCUI1JqTKx6Rpv5rCebH4KT7Y4FJntwgfiP4wnHNwOSRl9TdnPaqL7J6/uBS/IFgXtdGplW6DVW5W8S+hr5hA=;7:p2EMsZDRKaoRVFG/01b/doVTVYvMI9/7yym15fv0Nlms98bkWgM1lshEkeIUuP1zwLpzB5KVUPI6Ei4aybyvDQU2LgYXPM0JKQXBJrKPlYY2C9G13yZBNejEgbXz7N+Feouh1zOoZkj88uiWF3/3BgmWjdsJyqYnx1zXDs1wCIIhqlS+ObH4bSOYaKDTIBUn;20:Ab6NojGMLueAj5I61UepX+QE+H9MyvCgu00rwbQzAzw7ORrwWmac1AN5nwSujnCciZuB0SVLcFDr/05tKIegP67d3pR/WnQ4iLK2LnBQ6aUZYeBv51Bas/ghyRR8Fw6eeMJ7rD9FyFE2hm4IRLiZLZu/UCw/zzaFyIYjpWjDZCA= SpamDiagnosticOutput: 1:23 SpamDiagnosticMetadata: NSPM X-OriginatorOrg: virtuozzo.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 01 Jun 2016 13:13:13.8427 (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 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: Andy Lutomirski Cc: Ingo Molnar Cc: Thomas Gleixner Cc: "H. Peter Anvin" Cc: Oleg Nesterov 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.8.2