From patchwork Sun Jun 4 12:00:07 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Yury Norov X-Patchwork-Id: 101367 Delivered-To: patch@linaro.org Received: by 10.140.91.77 with SMTP id y71csp495503qgd; Sun, 4 Jun 2017 05:04:40 -0700 (PDT) X-Received: by 10.98.94.134 with SMTP id s128mr10506189pfb.43.1496577880871; Sun, 04 Jun 2017 05:04:40 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1496577880; cv=none; d=google.com; s=arc-20160816; b=aegUoLhbAWiV+g9XN9XUx5exYK9mB36a/TokkBbyBn/eaIdnpcYrGSLkbWrLTiYXi4 Cfh89vyIOReCOlzn2RLpNq9pxZuMuygaeoZU2c+rudbMzickYJtOgunj65gX6u/qEbTD B8hGVnCy6ZfZiW9T39/eb9phPucMDBgvwIu2ZYkDZNW4n2kS0DurU4TlQWR4RNLSMcm6 ezJvtP/Dcy8AiqminVKTYSA6TrqFn2Rzl7QTqlcp3qevZgYpHCp4s2tZBIgPb0H5E7l0 pgWIQuwXjFfQFlGjIjQ3ZkScn/dg07aeP1EI1mMibQUecDwDi1WvkmnUmfN4Z6e2rppy L27A== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:spamdiagnosticmetadata :spamdiagnosticoutput:mime-version:references:in-reply-to:message-id :date:subject:cc:to:from:dkim-signature:arc-authentication-results; bh=aILKQS0Yy4EPMF4XbX5PBnWpLzCC0Lf23oSQDggRzYE=; b=EyAaFPZz+pDJmffl4051hJL/r+BdNEm1yDEFTn7xOALmOzxf7Pb+xNXtExxE0dnXcN t3tR54IO/XqADU54MrA+oENsMEhkP4FPJwziS+mR5jdgBDlvYkz22OlFYUONWYjKe+3r i21M5mUl9TrBt1pgfKxEJ8+Ta1fxj1jj0jioTCgZYWn6RD7SVlXfQ5r6Og0aoaZwFiLN EJzmrXzyK5r5tZGeGFvNx2wmidPwdxH8qFLI48Sk4YhC/HQUbadwmgFerwm34fopfnX8 bDmGDdLrtWiUminrswvYTMDeYDoE9CuYnPXN0ueUOiR/nWc3kGmfOgtGfDMGiE4AaPpO cGrg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@CAVIUMNETWORKS.onmicrosoft.com; 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 Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id r15si3336497plj.282.2017.06.04.05.04.40; Sun, 04 Jun 2017 05:04:40 -0700 (PDT) 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=@CAVIUMNETWORKS.onmicrosoft.com; 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 Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751172AbdFDMEX (ORCPT + 25 others); Sun, 4 Jun 2017 08:04:23 -0400 Received: from mail-cys01nam02on0041.outbound.protection.outlook.com ([104.47.37.41]:52159 "EHLO NAM02-CY1-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1751416AbdFDMDz (ORCPT ); Sun, 4 Jun 2017 08:03:55 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=CAVIUMNETWORKS.onmicrosoft.com; s=selector1-cavium-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version; bh=aILKQS0Yy4EPMF4XbX5PBnWpLzCC0Lf23oSQDggRzYE=; b=d+WU7E8iBlU6eejyv8zbW35BNwLVo2p9qlf5uKR7StlFHdALg4N3aPRzdR0NZ3vyEuZpaCGtAZwcF93dAMXlDxiS0YTUGgzW804k026za/uZRX6DAVIpZf+t+cCW+TuCi12wxoUt482LLdQoykiiEonglVxmr7o3iiWh6+784ec= Authentication-Results: arm.com; dkim=none (message not signed) header.d=none; arm.com; dmarc=none action=none header.from=caviumnetworks.com; Received: from localhost (176.59.55.28) by BY1PR0701MB1271.namprd07.prod.outlook.com (10.160.108.17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256) id 15.1.1143.10; Sun, 4 Jun 2017 12:03:47 +0000 From: Yury Norov To: Catalin Marinas , linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, linux-doc@vger.kernel.org, Arnd Bergmann Cc: Yury Norov , Andrew Pinski , Andrew Pinski , Adam Borowski , Chris Metcalf , Steve Ellcey , Maxim Kuvyrkov , Ramana Radhakrishnan , Florian Weimer , Bamvor Zhangjian , Andreas Schwab , Chris Metcalf , Heiko Carstens , schwidefsky@de.ibm.com, broonie@kernel.org, Joseph Myers , christoph.muellner@theobroma-systems.com, szabolcs.nagy@arm.com, klimov.linux@gmail.com, Nathan_Lynch@mentor.com, agraf@suse.de, Prasun.Kapoor@caviumnetworks.com, geert@linux-m68k.org, philipp.tomsich@theobroma-systems.com, manuel.montezelo@gmail.com, linyongting@huawei.com, davem@davemloft.net, zhouchengming1@huawei.com, Bamvor Jian Zhang Subject: [PATCH 18/20] arm64: ptrace: handle ptrace_request differently for aarch32 and ilp32 Date: Sun, 4 Jun 2017 15:00:07 +0300 Message-Id: <20170604120009.342-19-ynorov@caviumnetworks.com> X-Mailer: git-send-email 2.11.0 In-Reply-To: <20170604120009.342-1-ynorov@caviumnetworks.com> References: <20170604120009.342-1-ynorov@caviumnetworks.com> MIME-Version: 1.0 X-Originating-IP: [176.59.55.28] X-ClientProxiedBy: VI1P190CA0017.EURP190.PROD.OUTLOOK.COM (10.165.188.158) To BY1PR0701MB1271.namprd07.prod.outlook.com (10.160.108.17) X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: BY1PR0701MB1271: X-MS-Office365-Filtering-Correlation-Id: 6ffb4ab9-5ec1-4ac8-44d5-08d4ab41c1a4 X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(22001)(201703131423075)(201703031133081); SRVR:BY1PR0701MB1271; X-Microsoft-Exchange-Diagnostics: 1; BY1PR0701MB1271; 3:g7qqeSXdY8DR3k3SBOSpJYywe9befiP6OjKW14zfp5R57GY3Sd8DFVHAICaq09wS6z4dj0ueCP7wKcd64X0fYaTjqAA3bEFMncxzBNo7gHZAeGa7pw7KA6m2lD0I9uXK/K5yKZgTJXJLN8RrcI8t33X+L3QqWjWzvPF7RHBV2HHWThtcxgrU0WCZMbVDM5+XMKEYjKZRlFUVQitoCJNtMuwMaMkypI7H8xqcPS6SR0S3Wm88fJAFxI+eBP5UNDWY61fKmNce7AYrWNRxCTtul+qZ+grQq4hPk9aXJLk9F5gGJHuxLShakPf9dyTNOrCoDzo6repIEm0aBdlvue9Xtw==; 25:+vbHXpIzkQ6JXdjts5MlvFWeY0QSLbwI1oK7XL0j3/Jq4VyE7zXD7mI3D3bNauHzRugPk2f31f7i/u8THTfQ+BqGzm99svNXiHtZ3tzmB7UukjlkZ+bDxW/FjM/m2GTnpIU7UhMPJDUUH+yo/axCBYAZVaTFxCZfK1szzN5GTrlvZG3k/zcOPgER4KDcNxJFbisJmA0crLMYTgDCFFFGXEW0OyUdm9ffYNqwb7A7YdoRbqq8y2PN4Wq/TtjuHdMy34XmPk+YQLEAL2Dfe/xfrNuVKYZdT2+67M1lIdm5IT6MEDHTUudnukIifQnnc+5nyEW81P1IAPq5d7z7s5NuSCFiwv4q+EraPz8ggpSbHvqEfnxDtA8m5ScK9KRUZTF4YoEYjykTexdiiqrii5mw83HNh4Rvn+zPVwzmVvHmlEKaxe6PDaO4CMbX3cuDXAGpcnJAM3YJ/LgDDaBSdNy8KK41smbJmtHLig1ziFlU7+E= X-Microsoft-Exchange-Diagnostics: 1; BY1PR0701MB1271; 31:qcwSURZ6f8s9UUcep1m+wV/CSr4JiVDounEfeslajOvZZ76Uh+huLzXX7B0aJCpwx4/3pTVLe4vFQGMFm2OuQQJ3+zlspweqooulZRz7ZxVGvYtnaWUvjAdTfaJPr2JE848xUqNCGjpWvGvlWxO8Erosme90jA5LmZcoWjun7kYplyBi6AxVDxAMIQkgBVcDe0tHRQdbdKVmGO79Y/HC+T3TEV1zljd2VP4r3v6q63Q=; 20:JXlI7WbpmS2U+1KkzqBQtIM/IeGNuP/aGaUQzf/52+bXUJf65FR2okrvEl5n6PpSg79Znq3fkvD4BBMe3M03QzA9NZ4AuXjR98w5LzWB5KuKRq7RrR5QxFoeM1tCNjiwrwYK6pk9H0WS3qDEN2R9d+8WZsSW+a5X43Pqi3Ib/TbRA+qviGuVUtMAILlcB1WMNdKadXfrJOv+s5zSkmXi7pwrS8OxD9mnUdqCTpZi0Nav/YzJyb9hiFanbzR57mPAfiXXrbEYUYV5XLf9RpzSlXv2lxDEu8rsuVB4UI69uSB8+AN5ZVWeUCNf0mMv2t5Y91G3KOvsLJHd0XqQvAiCIRQr8YW7pm4tGqOlPVSWqGE2A+ou+C3b8mraWUVnvHaux8dS3XfzbFnGgdPeJLH0Z2MAMbXKH7x5OQt0QjxJUZe/Fb1/0QBXMwY4iClnG3EvfGl98CzSNdGKRwehDdlqHsAC5HLy6xed2R937SEtIofwWl1LFcxiTDdqY6dYmuXHzNEJqhJM5Nb72q5tL/wohSX3HyKMsg2Ht4dvyAkpBrcmNqA3IgO3pHWCwiW8zL13yV5/BD4Z8sd2icTMAMmHAfEezS1o1L2caUN1k4L2GU8= X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(50582790962513); X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(100000700101)(100105000095)(100000701101)(100105300095)(100000702101)(100105100095)(6040450)(601004)(2401047)(8121501046)(5005006)(10201501046)(100000703101)(100105400095)(93006095)(3002001)(6041248)(201703131423075)(201702281528075)(201703061421075)(201703061406153)(20161123564025)(20161123560025)(20161123555025)(20161123562025)(20161123558100)(6072148)(100000704101)(100105200095)(100000705101)(100105500095); SRVR:BY1PR0701MB1271; BCL:0; PCL:0; RULEID:(100000800101)(100110000095)(100000801101)(100110300095)(100000802101)(100110100095)(100000803101)(100110400095)(100000804101)(100110200095)(100000805101)(100110500095); SRVR:BY1PR0701MB1271; X-Microsoft-Exchange-Diagnostics: 1; BY1PR0701MB1271; 4:nPPvnLgv0cXyzoWdVRatpM7b9OQP4LTxZ4kD4F0PIA2esNxLl3IuUPVxQuYhaloP0YQpsJ5ENCp4ZYgLg56kxXmUTi2oSffO1Os1fZxa4YtHD7xOvzgwzPrb93rZdiuchZtq+sPI0SeosXHzNyajBPhOybRLFZ1gYU6PZVU10T/8G8fMrdpw7QiifpStesCHIYRWI01whOfM8GsAoOE4opw4i3+bs51tfSoHmy6Gpi50MQdX8Zray8GiBNIbPSiQpz5c1Gblve0G5jI7fSjbmTNmoggvRGxjW1bjTMchP6W5T+f3JMMtxf7BAiLLHqoPBkWhu2sHqjjlS0CSADMaNmU4kHYuKdwdXlt/7OTrb4LeHvhN5/p/FaB+UvcCAITB3vNB8mKZv+5CKIRxKCAj0j1cGTYNWxTXh4csJ39d2DkqpGc5DXAtSei8Z4iBW0BIFkhdbQ/bYKosPPNmrUxcdaqmnCAqJNPynH5qszDo9vA45g2joaXVf6snT3hycV/SABeg0UAL2zvO3a6sEA9385ExTWoht/ADYacybgAiGAMWSGqFggvweRRu+1oj/Z0jv7B7IFAEzR7v4Hq085jZJl46TusP7XT3uZ8qzp+5TQ7ryRyo4aiu17TRiLM6cT1RJJhn1ndQyvgswA5pBZuoBJ+NXK8boHifBsAhrOfyM4vg+ejzzaz7PGPALT4sW6D9cmFxstQopOp/snDfy5yN37oHutc5agcwbncyS1yAYgxQVzpm4aG0s+qx7iK8qlmMmCSYZygxyQw+EgmxPnIq1HFGW5febSYt8HuesafrG+En887wI85s5+E23tSSB8fUjIsrN5XltOmUq6W+atQyaZ04bOgVQqcuLLvALtefA4TjvsODKzBm1qw5/ekGAalyxJ1AGl6BhsovXnqRCoSMkmnqtJ7sYyxCQtF/kx1vuw+YEcquovk6nwE2s3Dyu6zcrcQdLKQnhZuZKxLEq0GAGBpa4mVHfvCPHB5XLgm0HldqR0TyC2ZP2jl74o7yhd4ArfvC6yXmehgMgVJVlAUq5mPl+2ZHxrZ3Ocx2bcihsBUgFqyoYNfN1nOFDP5BU7YrWWBNqLu4KtqEzVEf0b7LZphKecrfnSybtyorNph4yB45Ob1qwYbcaiI+BgZ6GvRhBDVhqpXrgME1MRdp0SzPyA== X-Forefront-PRVS: 03283976A6 X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10009020)(4630300001)(6009001)(6069001)(39410400002)(39400400002)(39850400002)(81166006)(8676002)(76176999)(50226002)(42882006)(2950100002)(48376002)(50466002)(6666003)(50986999)(33646002)(47776003)(5660300001)(189998001)(305945005)(7406005)(53936002)(7416002)(36756003)(76506005)(66066001)(42186005)(54906002)(5003940100001)(25786009)(2906002)(1076002)(6116002)(3846002)(6496005)(72206003)(6486002)(38730400002)(478600001)(4326008); DIR:OUT; SFP:1101; SCL:1; SRVR:BY1PR0701MB1271; H:localhost; FPR:; SPF:None; MLV:sfv; LANG:en; X-Microsoft-Exchange-Diagnostics: 1; BY1PR0701MB1271; 23:8cOQ9PnjPbt/yVY+N7XQm/5eKLyqyFXMg1gPeueyCMMSr/gEG27h9va2B3womS9O/RiFdNMSWwwF/sxx7rCq0P6PE8Ca2ZnDnHGGbMk/EHOjkPMgdN5QXUqG+2ST0PZfN85wJ3RVNc1jDSFr7MRav5lU5/Td4TGmJlOiJbxdn4XPm10+azTpsuqQt2siGVyHsM1/gXJWS2ahkVOQfPyZSE5xzclFVZ5psaaJxpeqsvET8ezyw11rMchKCj4o4JovbTKk0ePF+nTsCYBhNSd5xT+HEYjfjueef7jYvdNBmtL+SjLiGJrmLFhofmzjN2LM1BptGSBvS6xHXAEqqeP+QpxjRtLDswueD9nye5olFoQYL/rwQLD06arL2bdn+EaVqnlY7Y0fOt5ksYflIvgKfEMg1Tq/bpNKD9crKT4Rfc27UfBik6ZM8rW/M/xFORV7VmF7OAhxi3Hbi+50v9vcuuo4Z+O8b6k08ZP3o3ojwWPAzZiXRFsYyITOOwEfaD6rr/M+LDWrfizLFVJX9Gsba57B6kb/wpUWvysyRmdahsIQ0m9HZfBp3EDSej5PFdK5t7iJOij8BwN9abrKmjkco3BOeMZlrHmbPfpIoyOHN8XSEWMZL64oLeNW6oikhF+2jgmGzY/xtUxn4+0+5gTJwB7ntzMTZZmDl42BBjGmDPSgFz0Q8z+XtsHKcf9L00+LatZnnit0Jk6ffgu4J0sadnbB+fE8KaHJ0XJlzhODvhc/YwP6emIjMiaAsIhFeCMM8EXimWY57r9R+cc7JlVAw/dWArxr7ORMgF26QLmEA8iQSw97uVmA8bm5w6TA9fgNtIGRoo6niAnYjm/BukGpz+RyP9F+lIX8SSHvvhCRKjdDiPMm+hN2jvVZPlTirMoTst9l0bAqx+a1MK4c8dRgGAHK121M2Ies5TeLuH6HgOTXiHhH+lXWc9QgQc1MzaD5IZwl0eBJ36MheZQca+iX5vLE2lS5gwElFv2uRXswhAkVBSwxmmMybFmZZJ7kXscRvWyFJX1Fqnr4eHp1L2AXgg== X-Microsoft-Exchange-Diagnostics: 1; BY1PR0701MB1271; 6:yvoiTqybR+TtOqk3DyenO7UrFa6nedCa3uERe8p23+517v9DXRbpRgBdB+KkYqVl548AnYBC9+hjQKSHIGTaVUncUrEyUQbqO8lYi79i+3kpVf/T8m9fgLy855H9W+WcvwWdmZP29zf3HqJgc5LQfgJLKiLqNnuNdSuIArnkTx3NGFq0q08g4jcdKRwAXPv50JwRh/IjXyC0r2TFKjk/YvqI+52MzvVRHmocimiRiue0+d5Ol6is+7/loSzFEEnat4F8DpAjby8IzskLudVT0QmlMx85Vysw5XAuGTu8AHG+4+6Da+Qh2TQ84mGDKE6Ejut3livCxgE83m2Yolh7+ohFOf0y1sSpT1eB44zaEMwvH+LQPqw3L7wJu10xGhv7T37rBNrnXXNAUFLpcw1Lf8nly8euyIKnb6+biVAc9FwsGYpJJ2qwY3gOqZdgVcy2L5+liKTBXCp67usXIQ+Kxvkbaq8XE1rvrK9Zg37vuxVXgLtpSE+rk3jZ6IG7E9/cJMXNZfxkulH5e1xou+y9rQ== X-Microsoft-Exchange-Diagnostics: 1; BY1PR0701MB1271; 5:jkfL9+AA3EZ9pmWhQ5UAcJIAOLHumVaJULH3pBRu30PY7LXy8iIuN+e9VGCGvs70LYVwjrBan3XcwCZ5MGXKDk1OGyk1XDzgIip+fzZrkcSVgDHsLzwXo7vuNh7u9BrROIpxCl/T0uA9RrD/Mh+UR005zTs9n2I9y4x+MvntWP9RpAy39hVsVy8I75oRu8PqUY38WXs1r+5lJn0desKnizrbPzdvl+/L6AXw3RCwsicPVQ+Hr050vJ6MD98aKiFrV5LC9zCERwBGWSOgQrOw12oFDO6LAgNZxVr9s596FikgnvZBnBHjzUOIOhsNn2f5jrwi6eANGlN2lgZ1LkwKoHHfmaQz4BUuUu2rpcYHP/gut9ZNU3oC+ZcI2m1Y2ro+IlACtagWEQV0CrDVLkdAZk0HKyJg7KQgyQ/kSUyKJ11v8W/AhXEE4d/2lV98+FRi7rxu61noTA/5nJ5L8RfsXPpfUgnvTi1CZGkW0p1uqg5W8oRZYS7LnpwKv3keHpnR; 24:W3kNswOGWrn3oZMHeak91ags1LYrV5z01D38lfekA+pPvSgcfQVfu6rqGqhcQpwAXienaLVDHRxNndGAIb+rBPW7YH0LLg4ZieF/0A390l0= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; BY1PR0701MB1271; 7:v+SF2yTHckiOkqomV8d4rOfbw7NMREMQsr6kgt899CvzfA5mvbcO93Ng4BQcMMB63/bfeNonbUw8HaA2JPtnApqOLBG+1MGeHvNBUygCmj5WugrOGb8cnaipJjmfZU+zc2T0OhK+xecPhWFU1SNv5pQEOcqVE7fiTRbXx1wkCzqcsoXLzWZcYoK/XajDlhRekeZaiyX6c2MT7IYPzJR+k9QoJiCFqlHTngIWicZa6H+KCdiZ8Kh6jEn/8fwGU9u8ZZvUOAYmbvnSqeENoaZIl4VKQDy/O38PKPnOONugBKve61/UlElMORTUZ4mKdYsDSlJQMvYeTtjyOwsZQHENEA== X-OriginatorOrg: caviumnetworks.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 04 Jun 2017 12:03:47.0449 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-Transport-CrossTenantHeadersStamped: BY1PR0701MB1271 Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org ILP32 has context-related structures different from both aarch32 and aarch64/lp64. In this patch compat_arch_ptrace() renamed to compat_a32_ptrace(), and compat_arch_ptrace() only makes choice between compat_a32_ptrace() and new compat_ilp32_ptrace() handler. compat_ilp32_ptrace() calls generic compat_ptrace_request() for all requests except PTRACE_GETSIGMASK and PTRACE_SETSIGMASK, which need special handling. Signed-off-by: Yury Norov Signed-off-by: Bamvor Jian Zhang Signed-off-by: Chengming Zhou --- arch/arm64/kernel/ptrace.c | 65 ++++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 63 insertions(+), 2 deletions(-) -- 2.11.0 diff --git a/arch/arm64/kernel/ptrace.c b/arch/arm64/kernel/ptrace.c index e2b7c040bf84..28f96765e8cc 100644 --- a/arch/arm64/kernel/ptrace.c +++ b/arch/arm64/kernel/ptrace.c @@ -765,9 +765,11 @@ static const struct user_regset_view user_aarch64_view = { .regsets = aarch64_regsets, .n = ARRAY_SIZE(aarch64_regsets) }; -#ifdef CONFIG_AARCH32_EL0 +#ifdef CONFIG_COMPAT #include +#endif +#ifdef CONFIG_AARCH32_EL0 enum compat_regset { REGSET_COMPAT_GPR, REGSET_COMPAT_VFP, @@ -1223,7 +1225,7 @@ static int compat_ptrace_sethbpregs(struct task_struct *tsk, compat_long_t num, } #endif /* CONFIG_HAVE_HW_BREAKPOINT */ -long compat_arch_ptrace(struct task_struct *child, compat_long_t request, +static long compat_a32_ptrace(struct task_struct *child, compat_long_t request, compat_ulong_t caddr, compat_ulong_t cdata) { unsigned long addr = caddr; @@ -1300,8 +1302,67 @@ long compat_arch_ptrace(struct task_struct *child, compat_long_t request, return ret; } + +#else +#define compat_a32_ptrace(child, request, caddr, cdata) (0) #endif /* CONFIG_AARCH32_EL0 */ +#ifdef CONFIG_ARM64_ILP32 +#include + +static long compat_ilp32_ptrace(struct task_struct *child, compat_long_t request, + compat_ulong_t caddr, compat_ulong_t cdata) +{ + sigset_t new_set; + + switch (request) { + case PTRACE_GETSIGMASK: + if (caddr != sizeof(compat_sigset_t)) + return -EINVAL; + + return put_sigset_t((compat_sigset_t __user *) (u64) cdata, + &child->blocked); + + case PTRACE_SETSIGMASK: + if (caddr != sizeof(compat_sigset_t)) + return -EINVAL; + + if (get_sigset_t(&new_set, (compat_sigset_t __user *) (u64) cdata)) + return -EFAULT; + + sigdelsetmask(&new_set, sigmask(SIGKILL)|sigmask(SIGSTOP)); + + /* + * Every thread does recalc_sigpending() after resume, so + * retarget_shared_pending() and recalc_sigpending() are not + * called here. + */ + spin_lock_irq(&child->sighand->siglock); + child->blocked = new_set; + spin_unlock_irq(&child->sighand->siglock); + + return 0; + + default: + return compat_ptrace_request(child, request, caddr, cdata); + } +} + +#else +#define compat_ilp32_ptrace(child, request, caddr, cdata) (0) +#endif + +#ifdef CONFIG_COMPAT +long compat_arch_ptrace(struct task_struct *child, compat_long_t request, + compat_ulong_t caddr, compat_ulong_t cdata) +{ + if (is_a32_compat_task()) + return compat_a32_ptrace(child, request, caddr, cdata); + + return compat_ilp32_ptrace(child, request, caddr, cdata); +} +#endif + const struct user_regset_view *task_user_regset_view(struct task_struct *task) { #ifdef CONFIG_AARCH32_EL0