From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1754133AbdJPPs7 (ORCPT ); Mon, 16 Oct 2017 11:48:59 -0400 Received: from mail-db5eur01on0116.outbound.protection.outlook.com ([104.47.2.116]:39335 "EHLO EUR01-DB5-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1753904AbdJPPso (ORCPT ); Mon, 16 Oct 2017 11:48:44 -0400 Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=aryabinin@virtuozzo.com; From: Andrey Ryabinin To: Herbert Xu Cc: "David S. Miller" , Thomas Gleixner , Ingo Molnar , "H. Peter Anvin" , x86@kernel.org, Linus Torvalds , Jeffrey Walton , Megha Dey , Tim Chen , Andy Lutomirski , Josh Poimboeuf , linux-crypto@vger.kernel.org, linux-kernel@vger.kernel.org, Andrey Ryabinin , stable@vger.kernel.org Subject: [PATCH 2/2] x86/crypto/sha1-mb: fix panic due to unaligned access Date: Mon, 16 Oct 2017 18:51:31 +0300 Message-Id: <20171016155131.10118-2-aryabinin@virtuozzo.com> X-Mailer: git-send-email 2.13.6 In-Reply-To: <20171016155131.10118-1-aryabinin@virtuozzo.com> References: <20171016155131.10118-1-aryabinin@virtuozzo.com> MIME-Version: 1.0 Content-Type: text/plain X-Originating-IP: [195.214.232.6] X-ClientProxiedBy: AM5PR0701CA0013.eurprd07.prod.outlook.com (2603:10a6:203:51::23) To VI1PR08MB2832.eurprd08.prod.outlook.com (2603:10a6:802:25::31) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 1d7e43ba-a9e5-48af-3c81-08d514ad5eed X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:(22001)(2017030254152)(2017052603199)(201703131423075)(201703031133081)(201702281549075);SRVR:VI1PR08MB2832; X-Microsoft-Exchange-Diagnostics: 1;VI1PR08MB2832;3:NFonaJgiMkMqqyOUoSBTDvU6TWMdwgp+Sfd/Z58tUgFKGjCfavsxUTa1bldCjTTdsTdfzFV3cVYe1RI984tPET2T5In5NOHRbyAuEx8GxoyPFWllyPDrEGFLMEalsyYaCoJx/0Odd0oCJCZQ1meFvjl+rsFcrPyCzTrrQN4/dwtVr8cLVYe6fxjJqjSNqRw1zWB4QzFhFpKvKLBd0OqKWo7lvSb1mfTIDLOhl9t9fzidPvXvyUA6debbdk0W2eMD;25:/Ktrd+AsngIgIhbM6q6V7/LyvAEDy4+gnV7jrlCoI2FhrPK/vuL4D1A6iHqadKMEbLTuxV53I3N33c4O7d5UeIdBFTpd28mhIScSSNT7eEGd+2jcEy7C9nbTFqF5zwSG60eAhCffAb+O7XmliCHXddFoIuEQQSaAQ5gLl/vD0WLy18kGxlYdLxvCRZmdcv4CQ2PPwZhOtTWpdpSptb9eiMWuxEMza9VH6NWcrkFvjLQb3b80llv/P0JS+Dizd5lrTZX4TXaFielkDna7VBQi5qpUMOrho1fdfAYMHiQZ5Sy3qQDGLWawcl6ydOCtLVRo9q9Kro86Dx+g/DeCHQdyNw==;31:4hmsfjhFBzTimvK57d5yYx1/bH0+cwncYici5tROw4hjLwsmpoAFkQ01ARVTU1d8u8bhn8bvj0ZGQMwtxRgPQg8YhYX6ez6PplCwGal2EzcnxtrVr2rR1dGnsLCd3s5uFOcMp2s66z9MThAB54m1ZANHniWvd7u+WfvzsALf8qq5hkdT/OKzPTAcZbdYnYruq1ycOWD+kvilm6kMEcG2CM1hJBP5+VTe6VKkoGMwuXI= X-MS-TrafficTypeDiagnostic: VI1PR08MB2832: X-Microsoft-Exchange-Diagnostics: 1;VI1PR08MB2832;20:TV3WtThWZo0NYZiSOu+JvzJr+rFx7hharb98iLsMYMJdeFAjRy8E6jNJI4IeztcoQUAFE1kGqXfDo7EnDeoHMuHtNUszXgB2pRZ21R8DWo3V0fYAojCinegx5Xeno+qFO+TMYjPn3Sc2Zd43vYku7MlrA7x/jbPgG7pUJGVNCyZD31RK13NL91xA9Y9VEN4gtT0TUxCOcHWMn0PAZ+JratB2XpwIBCR+bEI3objFzGjKejKhZW8LuR/EnhJpU/SjxaYdc5eIdLXJX2XCf0tIX8V/4GZY1PFLL5RnuMWe2bwtnfZgkyD9zgfz3VAe/AAY6H1Bw8PPUZ4shJd0ukYmjjPEMeAVk9OyjjlzTlrXJaoi5KljGypRYu4/0V46MfXkV3nn8qdhifBW5FSZKvvCipRG3khxMd5W0MW3dLFap68=;4:fRoUnoiNgAdvaXVWIzvNe32IIfsXHm5jGjG2f0oNrM5M02yZsjtdAoyT08ruyYVYs4CHopDZQB6D9+pPubRJ0+Tu/2zf3924PLaUXrz7NIKkTox6+4aQiTFWoW1m9Ww8dhMnCi3DMv4gIZKSSfwuprC0bjXgAL6Az6BXnqb9As7h5F8w4lOR2/3zna6Ql2eBwjnFZmi3P+SnrFuE/i8sm/Xwuob/v2hww/MyiQ37Zp1iw8axrfqSzTIT+GsUsaoGlp7712Nyg/Md95xgCTiEOHLEqRKM24FLozHCIQ06Yac= X-Exchange-Antispam-Report-Test: UriScan:(9452136761055); X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-CFA-Test: BCL:0;PCL:0;RULEID:(100000700101)(100105000095)(100000701101)(100105300095)(100000702101)(100105100095)(6040450)(2401047)(8121501046)(5005006)(10201501046)(3002001)(100000703101)(100105400095)(93006095)(93001095)(6041248)(20161123555025)(20161123558100)(20161123562025)(20161123564025)(201703131423075)(201702281528075)(201703061421075)(201703061406153)(20161123560025)(6072148)(201708071742011)(100000704101)(100105200095)(100000705101)(100105500095);SRVR:VI1PR08MB2832;BCL:0;PCL:0;RULEID:(100000800101)(100110000095)(100000801101)(100110300095)(100000802101)(100110100095)(100000803101)(100110400095)(100000804101)(100110200095)(100000805101)(100110500095);SRVR:VI1PR08MB2832; X-Forefront-PRVS: 0462918D61 X-Forefront-Antispam-Report: SFV:NSPM;SFS:(10019020)(979002)(6069001)(6009001)(346002)(39830400002)(376002)(199003)(189002)(305945005)(81166006)(81156014)(189998001)(7736002)(54906003)(6512007)(6506006)(36756003)(6116002)(3846002)(8936002)(97736004)(16526018)(69596002)(7416002)(5660300001)(50226002)(4326008)(39060400002)(53936002)(86362001)(68736007)(50986999)(76176999)(33646002)(50466002)(478600001)(53416004)(66066001)(76506005)(6666003)(2950100002)(6916009)(25786009)(8676002)(2906002)(105586002)(5003940100001)(47776003)(48376002)(1076002)(16586007)(6486002)(106356001)(101416001)(316002)(969003)(989001)(999001)(1009001)(1019001);DIR:OUT;SFP:1102;SCL:1;SRVR:VI1PR08MB2832;H:localhost.sw.ru;FPR:;SPF:None;PTR:InfoNoRecords;A:1;MX:1;LANG:en; X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1;VI1PR08MB2832;23:mcsso8rzfbU37v/3Cck+YcFfHbRnjokY+04VtXmWa?= =?us-ascii?Q?6GcfqNaR2u8Q2kgEly4SQ8Z++5X5LU+s2toeMhqRXPzxCta0E7k0/YDybVGx?= =?us-ascii?Q?l29/7/web58+ysiKGhcC6H3te0M1p7Yoiq71b221SbP8pEvFDkBLdNWQhy1y?= =?us-ascii?Q?o23OWP3Bhix8bKd1VQFODao9Ds76zEk7GBOFiqI/zXBgzviGYQq3BHMj2Ggp?= =?us-ascii?Q?xIyea7UOiKE+/5uWQpyBKvBGduWwExUFJ/xfyUCWFBG4XqRYJA8xWXpiP4G1?= =?us-ascii?Q?FCZv5XxqRYhQhayZOGo/C3j9SsnTezF47hUYnewUuyraGFSxbYMOJj6SNpEP?= =?us-ascii?Q?iTFU+tX+rN7LhlbrU44BgRddvSquaBanjxemdBdAOXigUF23Nqer7DF27CoX?= =?us-ascii?Q?vGKPITibFhscA5hG4VP1JZfQ0N6aubyRMG30iGX5aOQYomgx/ADQPEZoP3f0?= =?us-ascii?Q?jIjPjNUVSXBXdX7Cu9re6PKagkVCHpUh4ADeyuObydxIEZaJqp/oKQTHZlAn?= =?us-ascii?Q?jFkfdsxZqqio6gPJRESNReSvTtTGvofNVlB4NSmE4NcZCJi+VRoZoqEwK1RL?= =?us-ascii?Q?885n/O5zHg8rvjvqZKC3QLhRmgevIgE1RfwvBMBuVmp0llnMcM0Y5/4WgNZI?= =?us-ascii?Q?chEaiFxCB0n5z42c1cqug+gHbX0mtMY/OAZEaDrIiZquSMp32BQj1aJEA+jL?= =?us-ascii?Q?rA6Kjw1ugnqD3YhVcH2i9EyXaUYy50tYKPjww/KU9vb4Q/ovepMiHoEbtw85?= =?us-ascii?Q?5vpH3Hp5qKnGWKNgzgDIjIrEvmOOLbf0uaC9DyiVYiSrAgDAVkJmaX+49njk?= =?us-ascii?Q?1V4k6VmbTBB93JwSE64SvwYPJDlc4pNHD008rqMrR5bko5qZ1CSqgO3beNtq?= =?us-ascii?Q?sDWB4yW6P7e5QyoZE1zYYodxWzCbW3cIB8WKTWU4b1l5BQ+CTa14G7WV/xN/?= =?us-ascii?Q?nW1SBUIvnBs1RxH8eyXbf8hei2d5CsqxxfeB18ZwAnXomVrfYUzQwO+ZE4r8?= =?us-ascii?Q?L5n17qvRxhcuv3Mq1PDXOonIRbvUpIDGKQTluorRUCzAPYkY/KXbPdRbnQn+?= =?us-ascii?Q?WjFxbyD7/u6Fy9KpPjF8P6Do/Rc7Hs9odkRI65yTtNAWtx7Sy6gDRUh7M4kH?= =?us-ascii?Q?WaO+59BS77Ofpcy7rZXEqfyxFNXcanVRGPVRvTJw7Dj0QQBJFQMtzmyc1SAq?= =?us-ascii?Q?1oHcR7EWN4S3ZviQRRgsPo4b3sjdC2W5ATHnfczgBK1LufAsvJvRa0eAwA55?= =?us-ascii?Q?ITbO3I3DCAhtfMB/fuHLvm19lUsmNZMAXIsCTNAMj1vY5MNqPIPj39GCnuXu?= =?us-ascii?Q?jPX9hnnMCzwE/i5O120IXh9+svIfYQIJ1yHeb45FWMFOSLiJYaboIPvUjsWb?= =?us-ascii?Q?I95kQ=3D=3D?= X-Microsoft-Exchange-Diagnostics: 1;VI1PR08MB2832;6:w7SQ+gDE4M/kjx4d45t2VH63qUE2YDFVAtnG6RNjbXd+jLCjsnGFx2DxRCpfWqj8sQKsqawzcphIYebioKIOfaVaQvx59GDxQ+l/hEfrkQMk+OhIMHZk4wpwPyI6kSu4Unst4YytTFpm3+IejqBftPpepK7x6xKpp563bYevZh0S1CA5FMG8BB+BU9ZGiU2rYxr2JxktlVVjEFxYHnkUJVA9xMhCGqLzKL9mXzW/syME1wX5amaCYD3lX2/HI1y5+r+3ke7XyBUjIFrnQj76dbFehaYIVJ0y8HhDIfLtRjbBrekd557zbtVRmR3PtdzDpGtawdH/7thSO2iGeaCLEQ==;5:mA+jZa3d0kP1GDsmisN9KmuALC2AL7fJo1gTZ0Un3VQjuOHiXw66xf5ChwX1y8uNxa6FaNyV9QF3zo9fXB+SmDFuxVmIJGLrP/Plpz3szSn5EuCPNOmJv3WFsW61/BDnTQvJvLqpgyQ5g8YpFRzTGw==;24:mp6uVo0AniMrgtolJRU5WvwPSyUsGTdsCTStm6X9spXP4wwLasNzuLXEQHe7gkKC5EWdzIR2HC3tx908wc0gJZ0EhVmGz48QZKXN7A32yY0=;7:8gf7T5AqJJevhz8kTQmuKS7adAC/u+fa7db37i0uNmY34MD/tcrbVaksRmdSURyDIwYkheVEDmx++CdmznedXUYgRWT6c/u5MGEwwMdxtKanSXurtgNy4Wgl4TJ+3cXeAB0xz+NkYvHRyvOB55+knOwpnv7FHd6CnnecZ8LcFl626ROYCcyyLrK7J8kEZ0BgF0+HYyF2cC8dCzHkyorN3GJLYdfp43vx2MNqsA0kHYY= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1;VI1PR08MB2832;20:r8MQYE/Kq/9hlSmGaH11nsmykQnfjtlH7nuv7z9oVOOn0W186Vtvs7aDqPf1XHFRZk/RpXyzAs/VwBT6z8JJ0epLi07e11gycM2yuqmSiNYQ/0KPasXnwq1NaseoC5YcxxUZ/9RqSzc4bL83YRqWEZWwmUjbtEhPQX0JZiZHV9Q= X-OriginatorOrg: virtuozzo.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 16 Oct 2017 15:48:38.3859 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 0bc7f26d-0264-416e-a6fc-8352af79c58f X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR08MB2832 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org struct sha1_ctx_mgr allocated in sha1_mb_mod_init() via kzalloc() and later passed in sha1_mb_flusher_mgr_flush_avx2() function where instructions vmovdqa used to access the struct. vmovdqa requires 16-bytes aligned argument, but nothing guarantees that struct sha1_ctx_mgr will have that alignment. Unaligned vmovdqa will generate GP fault. Fix this by replacing vmovdqa with vmovdqu which doesn't have alignment requirements. Fixes: 2249cbb53ead ("crypto: sha-mb - SHA1 multibuffer submit and flush routines for AVX2") Signed-off-by: Andrey Ryabinin Cc: --- arch/x86/crypto/sha1-mb/sha1_mb_mgr_flush_avx2.S | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/arch/x86/crypto/sha1-mb/sha1_mb_mgr_flush_avx2.S b/arch/x86/crypto/sha1-mb/sha1_mb_mgr_flush_avx2.S index 93b945597ecf..7cfba738f104 100644 --- a/arch/x86/crypto/sha1-mb/sha1_mb_mgr_flush_avx2.S +++ b/arch/x86/crypto/sha1-mb/sha1_mb_mgr_flush_avx2.S @@ -157,8 +157,8 @@ LABEL skip_ %I .endr # Find min length - vmovdqa _lens+0*16(state), %xmm0 - vmovdqa _lens+1*16(state), %xmm1 + vmovdqu _lens+0*16(state), %xmm0 + vmovdqu _lens+1*16(state), %xmm1 vpminud %xmm1, %xmm0, %xmm2 # xmm2 has {D,C,B,A} vpalignr $8, %xmm2, %xmm3, %xmm3 # xmm3 has {x,x,D,C} @@ -178,8 +178,8 @@ LABEL skip_ %I vpsubd %xmm2, %xmm0, %xmm0 vpsubd %xmm2, %xmm1, %xmm1 - vmovdqa %xmm0, _lens+0*16(state) - vmovdqa %xmm1, _lens+1*16(state) + vmovdqu %xmm0, _lens+0*16(state) + vmovdqu %xmm1, _lens+1*16(state) # "state" and "args" are the same address, arg1 # len is arg2 @@ -235,8 +235,8 @@ ENTRY(sha1_mb_mgr_get_comp_job_avx2) jc .return_null # Find min length - vmovdqa _lens(state), %xmm0 - vmovdqa _lens+1*16(state), %xmm1 + vmovdqu _lens(state), %xmm0 + vmovdqu _lens+1*16(state), %xmm1 vpminud %xmm1, %xmm0, %xmm2 # xmm2 has {D,C,B,A} vpalignr $8, %xmm2, %xmm3, %xmm3 # xmm3 has {x,x,D,C} -- 2.13.6