From patchwork Thu Sep 20 13:56:29 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andrey Ryabinin X-Patchwork-Id: 10607811 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 876FE6CB for ; Thu, 20 Sep 2018 13:57:10 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 7545C2D81D for ; Thu, 20 Sep 2018 13:57:10 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 68AD22D825; Thu, 20 Sep 2018 13:57:10 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-2.9 required=2.0 tests=BAD_ENC_HEADER,BAYES_00, DKIM_SIGNED,DKIM_VALID,MAILING_LIST_MULTI,RCVD_IN_DNSWL_NONE autolearn=ham version=3.3.1 Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.wl.linuxfoundation.org (Postfix) with ESMTPS id 297DF2D81D for ; Thu, 20 Sep 2018 13:57:09 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20170209; h=Sender: Content-Transfer-Encoding:Content-Type:Cc:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:MIME-Version:References:In-Reply-To: Message-Id:Date:Subject:To:From:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=rDQyT54x8L3iWpIP5j7Zot5gwOy5Ovn854K7Sea5p74=; b=hoPTZBR6wLTo7U ykwbVKFz62+tVSWyYJkCmmqQHKlIrjlY390xFY/ThJ66zvRiUso6uPtzn4urnvdp4ySKWSx5oAjfO 0/8PkF42ZdTrNzLWznfzVp5Q8HOE02HizPRcbb5YJ3rhKyS040JMeAvyIY2M5ZBKmyeLznqu5Xn8o qNCWjX2TzqBAkRyobYsrlSSTZmV0nv5c7ZY4TiJxn+oEfjvnLDzKZ78GWpFq98bJK/19l/GfzBVII vBqipJc6ZhRlUukrCezURu94t97hk8Y0/wh16JCpV2epotcKGJEm2OIA/+EDmdGaqk6Jo17G1ZpZB 2mmYp4J7NEhd4yVyGodg==; Received: from localhost ([127.0.0.1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.90_1 #2 (Red Hat Linux)) id 1g2zRu-0003cY-Km; Thu, 20 Sep 2018 13:56:54 +0000 Received: from mail-ve1eur01on0092.outbound.protection.outlook.com ([104.47.1.92] helo=EUR01-VE1-obe.outbound.protection.outlook.com) by bombadil.infradead.org with esmtps (Exim 4.90_1 #2 (Red Hat Linux)) id 1g2zRb-0003aD-7o for linux-arm-kernel@lists.infradead.org; Thu, 20 Sep 2018 13:56:37 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=virtuozzo.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=M8Dz56mb9OPpPukvwWgrTKcuyK6SxW+YjWNTCGyfLvs=; b=FNc347Mms1S9mO8V6jY7cMyWJRSkqIrnfxksXlLq9hFI0BOx2vw8S2KWDZpd2e+JyFxxYTCDt4pum5IZ+VPuUYyXu54rywpp9QYid4dsAqfyXclJQmXrSYXxAhaBEqLouckqFhNzJipPbE58ydwBy3QkAjut49m2babpqN9e8Gg= Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=aryabinin@virtuozzo.com; Received: from i7.sw.ru (185.231.240.5) by VI1PR08MB3264.eurprd08.prod.outlook.com (2603:10a6:803:3d::19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.1143.17; Thu, 20 Sep 2018 13:56:19 +0000 From: Andrey Ryabinin To: Will Deacon , Catalin Marinas Subject: [PATCH v2 1/3] linkage.h: Align weak symbols. Date: Thu, 20 Sep 2018 16:56:29 +0300 Message-Id: <20180920135631.23833-1-aryabinin@virtuozzo.com> X-Mailer: git-send-email 2.16.4 In-Reply-To: <20180914152800.GB6236@arm.com> References: <20180914152800.GB6236@arm.com> MIME-Version: 1.0 X-Originating-IP: [185.231.240.5] X-ClientProxiedBy: HE1PR0301CA0004.eurprd03.prod.outlook.com (2603:10a6:3:76::14) To VI1PR08MB3264.eurprd08.prod.outlook.com (2603:10a6:803:3d::19) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: a89c1e23-7118-465c-2623-08d61f00d7f8 X-Microsoft-Antispam: BCL:0; PCL:0; RULEID:(7020095)(4652040)(8989299)(4534165)(4627221)(201703031133081)(201702281549075)(8990200)(5600074)(711020)(2017052603328)(7153060)(7193020); SRVR:VI1PR08MB3264; X-Microsoft-Exchange-Diagnostics: 1; VI1PR08MB3264; 3:MYqHVf5ZIkGOqRvHzGkEdMss/r5xg6vmINaFmsQEg6uuV+a+UIJxIl5Hz5DxgRaR7GKPa98NhnuPxSEafSXh95Mj3dQ1N9JhoiC/3kh7WDojvJz+3UcuRWPUDxaDhF8nxQfvwuXqSHFBeFz4jUInaE/f1wg9nCbtuoDjI0DzgRO4LkXiSwRQ0wHXhyZsApCu7BGAB8yQ/Xbc+l+vgBocM7RRQIHpXhNA34DUCcnRiNZ+PlS/795ckibAZfTQO9xJ; 25:CoH4Mx3beAmZZdIa4fnlXxMhIxlomF4b8lRG2DtUjIdTyyAXfxz8wSz8ylT167Q065PS0PwffciwYyzbsK5J0ACDjTB5nvZzog2+ocaPrIPssnlDtaucaGCpJcM6OWSjVehd0gW/NI4vlU9RGoosPRmmorGW0+rncNAlxwgWpwfzpgVWmgUh8FzaaTvOcV3natTATANKkvCCl3iU8kxfK3DvfpGqhX1wHG74BB1Dd5QdDcXGDJwlTRm7gMJkO905KbflyoAtpiijT+DK9BI1f3aay92WcCbjSHxZNiNnTmWqvs0UmYyq8Snaj9swMrWFLG+X7I83Azver1V2C/a1wg==; 31:jYbW1wZDv3yDQRbQ2vhtLmsxi8hBQs3lUlTkMmjIqGlsLxH5MCmUHroFxFJhYG2alxd7TQDVRZJTlhmIX8BDzXqEpI5YhK2yAWuabQcoKARnsjpOts/uzSDH31sWeOflu7EGPhlapkbW6lSp7E2Hp34lBa7z5WJBKcRdgM67ERE97Ysv6Dh111SVL/s7MT+ZU3+6Fx47LzYLxK+cO+tAAuSTsW3PpFDDvw7YFHCVJ74= X-MS-TrafficTypeDiagnostic: VI1PR08MB3264: X-Microsoft-Exchange-Diagnostics: 1; VI1PR08MB3264; 20:6JYJCYOuBwgq3bk37JMHu2XfjxZSoNu7vb2eBgzM9iJLFHql3RK3R01G5DaQ8GvepAwVLvFExRRQfWHcmpMZNhLm8l73ER/jsqqc3fWxFVwNcYSANmkhb4pHrbhyISsZStnTU75/xwSwTKkszcbwRo6iX5f9MbbjU/Esh0O+HG6FdFb2NzE0uApF5T+oBjrnOxuT8B54V2RHSeiObuF445VFZkmvzM2foBJQP+4C/oCF+AMta4hdVuIaN70GDynmv6aOUXicb45ck5ACh8TwHSB3/Pb3IoNMURDXqZl3uFgeD3N63xmio3LhYeNbXqtk/B2CBItaGDPqLAJVb+ZQ7wuK4eNuCS6XL8BsC/bCVzLlS7P2pgdrjp/4JxSlswNk8QiA8b7haoTLTYCe+H+JYS2+CaIsszkwnJxY8JodDKob+3tJrwNR1TpM3ZNEnH+iDsuowp3Tx1naEPh6JZPzsKRyVnSa88VZptE6tVSWEForiEbHDGThM6BUnuqJTc2n; 4:fcpC6miEIIrS3S6/IS6gEI8Sj7YV/gPchqu1H0UGUWos7lm4w1ek7gtlLOVAO/vUIw2cY2NQ0UIowEFHFcwDvGBEOrGrWLVcfKLxuNIrQoTcrjPetHgVgVxffbzwVTyRwJOZpleKVpJbgfyxxFCEdDzdDtj2vTN24lfGRP/6DR0jnRbqqviLtPjOh5i8YIDXgNeROqI0dwNKjMvbjtMZTXjdVOGvRuKZ3cGDyWZIXVOFhL2FdDUcTMzv4Wl3W67CQmof08e9Uo+8Pae9txhxHg== X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:; X-MS-Exchange-SenderADCheck: 1 X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(6040522)(2401047)(8121501046)(5005006)(93006095)(93001095)(3231355)(944501410)(52105095)(3002001)(10201501046)(149027)(150027)(6041310)(20161123558120)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(20161123562045)(20161123564045)(20161123560045)(201708071742011)(7699051); SRVR:VI1PR08MB3264; BCL:0; PCL:0; RULEID:; SRVR:VI1PR08MB3264; X-Forefront-PRVS: 0801F2E62B X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10019020)(39850400004)(396003)(136003)(376002)(366004)(346002)(189003)(199004)(68736007)(52116002)(7416002)(7736002)(956004)(6512007)(11346002)(50226002)(446003)(386003)(6506007)(1076002)(6116002)(8936002)(476003)(50466002)(16526019)(486006)(97736004)(478600001)(186003)(8676002)(53936002)(48376002)(86362001)(2616005)(26005)(4326008)(107886003)(81156014)(106356001)(2906002)(105586002)(305945005)(5660300001)(6486002)(316002)(6666003)(51416003)(53416004)(16586007)(110136005)(81166006)(76176011)(36756003)(66066001)(3846002)(25786009)(54906003)(47776003); DIR:OUT; SFP:1102; SCL:1; SRVR:VI1PR08MB3264; H:i7.sw.ru; FPR:; SPF:None; LANG:en; PTR:InfoNoRecords; MX:1; A:1; Received-SPF: None (protection.outlook.com: virtuozzo.com does not designate permitted sender hosts) X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; VI1PR08MB3264; 23:nNe9uaCoaD63XFozjvQGn3yziddwH6O4jvZvz1vOe?= /20kaVl3rltxJaKo7k/dlHR3PPTHpDRf2M0HqnueDnjf3RkZDSBGdvEHaACfZub75noNpI7rdE8P6JunVwdKJaiRB9GqXe+bztMEblcWUSCEhcEjM3ZrSByCnJDyOpCaT0EfMUGNdmmIF0z1GZpkR8LofTnmBkkAbRv7yGIcg0TgY7hu0JW7vp14svq4qFivQvtwVWbD8dOc9/cGU6f5PEmLUF2LV/QjZksktdzuYBYxBzBNDgNFzAQQopyap7P9TmlyZHwFl7YVZPAVzOv2jQVpE3Eg6EOjV28/nwSCe40BarMansp85EFpBd0rOM+Op0c/n43j+FZmSkiWlUjDF6PUujd8cdRMQ5S4lYOkXuwzTt5hEMm80AMnaWgsn5hUlkC+5JmAfO+NzGI+rqqubVf2u2M9R/+ymPmPoid8nIYvXQMXHcxzLlhCLM0P4xLUwowHPYReVAuVo4JXnCexmrP+XPoy84bIAcJPY84sU628W7LgQcQkpIwvkKcfunxD9S3pfIp95JP/LskCauMQejyZkZKdClXJZHwLMp+aF4IXMS9Bir3eCNh9hwTNjxGTDt0Gmbw84AUcAwkp7ifFS+DL7K1w39m4t535UUWXSJg1yNsJKPLYR6JgOlp7wrQhe3plOtw6+fgnFo5nTG23mM2/7yGP/bd65JLtuw+PMQptR43NbLYrC9BXfae4K4OC2uh9B6pp1FVu15TCSKeXcRYFlwiaV4TIHNU/iF5SJqWrdL/cWHKB3A7roHJ8N+z8UrEupt8znw8w3pDNk3104nflc8wsvxKhADgiEueDgJKhN1PzRvKjw80w5fCsb+LUPGYw8eRWH+WtCAGA+kAA/vETcPRlsbMZNwe9Nalo8Yul0BLoLmUvvuLoItDah/ENorPWAcnuq7zIR7q1PA/cHth+gD1qqkRJ2CQJqa2T1ZwwPAUDJYEqY7R4Y8lTJZiOMHV9Hx5tTba6g6qvvmkdLDUNMVFJStkAg2OlAsWygHI05sbdOsTYQSDug441Q9wFJXw3a218pLZrtqKeRv+pM/qDH2LmawFBmh1o81NvGgL1Q3Boww620ijpIUA+ahdEw+3eb8oDnZOECB+e78dmQSXhfGFnjCqs88/jpne8L4jIHqcN2wTaR4Br4MhZtqddouD8fwHQT0C6ePxG5LNp0IeFuAkjlFWlh1t+6WRjryvmGJD6Bd/SubXHYZgwWLJCyj7vsvFYG33N1AmNdgdXzfz X-Microsoft-Antispam-Message-Info: k/NxHz5ZTsCNhiSDxPAYY+stqq5PSRrZkWlC9n/IENDfuAUWCiP55XFZjYI7CdDTwDliZioxq59WA8IROUQhjfH95ItDkjfd9j0LP0bY4vrKJM41HZr1fZSsVlVyUK+h5G8w5Hr8nVCkgrFX+Th5nBT8RPXGtfhCj2xLNsoPudDFEfy42J/DRQNY8JTibABKbLq/tQfhVhAUXTvb9uSQaQiNMsH+d92d+SAV8D8Wl0eHmNKUqJAT3C4KwjFvzmHAemUKKT7fFdkwCyY1B6GKV+i2mHCvlbywfFY/nTBKvCJaXC7efxD58gvNzo/F+A5DEso8DMMbrBqbaSQcAjOZQU0tBXE8IPiyrOP4mLkdGUk= X-Microsoft-Exchange-Diagnostics: 1; VI1PR08MB3264; 6:0JoPMw3SnGH7xxwi9t0QFg2uBnJf0HkbOqSp7vRZPMaOVbSMEO3OumYtM/UNBGprZRWrFyZL8vIjdzv1Ju2wVzcACfQM5HGVWSaoUjJO9OP52KzjmnonnB3EPCfTzIEUogKGsVRrc2M32Mp9RpyOH8RVb8b2MwTIETdrMJXjbf6xOdO9A81qBw8U8zrJQy1OkSnB+Ul9y/S5FpFlCOF5bEU3UZ6euUBkBzXg2N3L21ZiGUX20xrEN4l7oItYSNDYSB0rZCOVnVrBopIG43NJECVI9XGbUNmGbUYlNDxNNxGIZavHJQ6lbdN3TSDe6gXziEb9Yh7qldkMBeN8yQeLsqAE0d8cqTx7R7rdj0dQFBAux//6/6VVPkzGTrctQHrW+oI63BCY5eKKwh5+0STrj+7Mvx608MlHirJ5bhIPYbf1dXiyl+zkrucOkLKLqWMlWcWkdMefwiyyaJy4KmVl6A==; 5:39l76fq6MIQMprsWrX7vW9fts0UdTMhMULKfyLRFTigggrI+FVXVsCr3FmxCp6/TGYew3e37dVFJQ1IAWxQVyVqRZ+m9cZlXDxghQZn06eG0ZffiHBG3B3jNUmw/k2biihH1Ti0JAiw7mJgLVDMOnijbmKJ0XJ7Ci5px1GYazGM=; 7:0/VOgXbinN81CMEXZRI/sfY1PzrgTm69fydcks+Ttt6/75SnNcJ9vzvyL6Z/VcPUdON5dXw09zn0cpQLbb8Tli1m2GpDea+Xj5ot3CsK8c1di/CHPXBmXa4u5L/gFvagDZ5gPGS0T71WJhVPxPe09hWVBNrgNkDtRhv+eWUjMYLqoOWROgw+wX/6nfein3LDWj3pG8u88dE1/X3brk2A1IT8XrVCWItMz2wAH0Qq0RqKjMJUTyCjk76dL+8hrMX/ SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; VI1PR08MB3264; 20:0rOKq66dnhDQeQxPksiaa1ZlhMDNReTSgvVgEOM7qIO5UdIJQ0kYcLTrVngnvBOFC4MoYGAAeZB4GNb/5fK5FsovR/uiABuiSJZghb24uN/FvLTaZOgvO80o7XJ643Tk3c256j/yjJFlbqGBw4uvbHbfaSyS3L6eNRo9q1okKZw= X-OriginatorOrg: virtuozzo.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 20 Sep 2018 13:56:19.1461 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: a89c1e23-7118-465c-2623-08d61f00d7f8 X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 0bc7f26d-0264-416e-a6fc-8352af79c58f X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR08MB3264 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20180920_065635_443791_D40CCF33 X-CRM114-Status: UNSURE ( 9.23 ) X-CRM114-Notice: Please train this message. X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Mark Rutland , Ard Biesheuvel , linux-kernel@vger.kernel.org, kasan-dev@googlegroups.com, Alexander Potapenko , linux-arm-kernel@lists.infradead.org, Andrey Ryabinin , Andrew Morton , Kyeongdon Kim , Dmitry Vyukov Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+patchwork-linux-arm=patchwork.kernel.org@lists.infradead.org X-Virus-Scanned: ClamAV using ClamSMTP Since WEAK() supposed to be used instead of ENTRY() to define weak symbols, but unlike ENTRY() it doesn't have ALIGN directive. It seems there is no actual reason to not have, so let's add ALIGN to WEAK() too. Signed-off-by: Andrey Ryabinin Acked-by: Will Deacon --- include/linux/linkage.h | 1 + 1 file changed, 1 insertion(+) diff --git a/include/linux/linkage.h b/include/linux/linkage.h index d7618c41f74c..7c47b1a471d4 100644 --- a/include/linux/linkage.h +++ b/include/linux/linkage.h @@ -90,6 +90,7 @@ #ifndef WEAK #define WEAK(name) \ .weak name ASM_NL \ + ALIGN ASM_NL \ name: #endif From patchwork Thu Sep 20 13:56:30 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andrey Ryabinin X-Patchwork-Id: 10607813 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 962786CB for ; Thu, 20 Sep 2018 13:57:48 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 82E5E2D7D7 for ; Thu, 20 Sep 2018 13:57:48 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 76ED32D822; Thu, 20 Sep 2018 13:57:48 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-2.9 required=2.0 tests=BAD_ENC_HEADER,BAYES_00, DKIM_SIGNED,DKIM_VALID,MAILING_LIST_MULTI,RCVD_IN_DNSWL_NONE autolearn=ham version=3.3.1 Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.wl.linuxfoundation.org (Postfix) with ESMTPS id B51552D7D7 for ; Thu, 20 Sep 2018 13:57:47 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20170209; h=Sender: Content-Transfer-Encoding:Content-Type:Cc:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:MIME-Version:References:In-Reply-To: Message-Id:Date:Subject:To:From:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=bt1bdQOZVG97GIp2hLUhfnD470M7wXQlBGMjfq5DumQ=; b=Z3TwK8GssKnPbk RawMkB2MX9ktrWGSgtyEN4nkjeVgCunuWWyHTl6nAG3TCzLnqlrZ9HJ1qXJwc/npjm8HTOwU4zDtK rYuLKcSrKO3OJdc0ZahfaXymdhYe026BYwM+vIas9p9PvigIWNWDYuzQ78z+xmn9Oqo9X264WuYv/ b+untyu88icLY/nJIGxx011l+QU2aJSoWg6V1p69lHuH7XfGvsoZFc7YSZ19Dw13YbTUonl0PqvD9 4qDSCIGVY/Mb20QybK23889e43hCJXyUCETKMigLNjjfMq9TK2zatqO9mZpiVWqdCKfG+NzBZSdnK Cpnd7849O6bWdp7iN16Q==; Received: from localhost ([127.0.0.1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.90_1 #2 (Red Hat Linux)) id 1g2zSW-0003tr-SK; Thu, 20 Sep 2018 13:57:32 +0000 Received: from mail-ve1eur01on0092.outbound.protection.outlook.com ([104.47.1.92] helo=EUR01-VE1-obe.outbound.protection.outlook.com) by bombadil.infradead.org with esmtps (Exim 4.90_1 #2 (Red Hat Linux)) id 1g2zRd-0003aD-KN for linux-arm-kernel@lists.infradead.org; Thu, 20 Sep 2018 13:56:39 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=virtuozzo.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=Z8QKY9aEfj2hH4vRIPncn2AaAspPR4lLTMtnt6Gz7io=; b=KWeqR4LUpBw33AZMrZCZMA5eDX+fZqLf2qdY8wUcAJFNtQ2TRHlH9DoFzejsgoQ+C8q7KulnRR9bRZvHG+rxVbittHG1a6BbZ0nx/SfqJFZj0t3in0bWHEbZPOirA+k79wjuro7jf6cvIa5XmSxw/qgzrKaZR3VS3B5GVxR8X3w= Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=aryabinin@virtuozzo.com; Received: from i7.sw.ru (185.231.240.5) by VI1PR08MB3264.eurprd08.prod.outlook.com (2603:10a6:803:3d::19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.1143.17; Thu, 20 Sep 2018 13:56:20 +0000 From: Andrey Ryabinin To: Will Deacon , Catalin Marinas Subject: [PATCH v2 2/3] arm64: lib: use C string functions with KASAN enabled. Date: Thu, 20 Sep 2018 16:56:30 +0300 Message-Id: <20180920135631.23833-2-aryabinin@virtuozzo.com> X-Mailer: git-send-email 2.16.4 In-Reply-To: <20180920135631.23833-1-aryabinin@virtuozzo.com> References: <20180914152800.GB6236@arm.com> <20180920135631.23833-1-aryabinin@virtuozzo.com> MIME-Version: 1.0 X-Originating-IP: [185.231.240.5] X-ClientProxiedBy: HE1PR0301CA0004.eurprd03.prod.outlook.com (2603:10a6:3:76::14) To VI1PR08MB3264.eurprd08.prod.outlook.com (2603:10a6:803:3d::19) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: ffedca51-e55b-4dc8-def7-08d61f00d8f0 X-Microsoft-Antispam: BCL:0; PCL:0; RULEID:(7020095)(4652040)(8989299)(4534165)(4627221)(201703031133081)(201702281549075)(8990200)(5600074)(711020)(2017052603328)(7153060)(7193020); SRVR:VI1PR08MB3264; X-Microsoft-Exchange-Diagnostics: 1; VI1PR08MB3264; 3:Pc0nevdkUjZrATr2QlR2n0K2emyVA/qdkcX2tUY3wJycUu0pOY9KeYDGLuXtbFyoyrVC/LjVZAMUMoytFr0NQQRsnfExNupp59gw8FTmmq4M1vuH9foKu3z2DZEBD9nFOUQMIq2pG/4OnArk7xZhna5l94/WNaHoWTY7SEzfsyqTRXTF4psXeDZMSahpX1bvrR27Uj27aq9VVwdiJwjs5WdJmblPWNBS32U6Kz2k0DzB0/oE1kOmH4tmSNa9isyV; 25:ZsMZmjyFKEh+nSgsEtMeoXXBqBEICgneUCDuA86Fe+MA+ZIcphHvakUa80d9VhG8OppSsINhq4XhvaJoyRtfJ0PEiPWu8JSxxWgCAU40/bu8tpDcmsgSFtoNkr+gA1VwdmFKdSp/5jTsQfNd3DwzZ7SkypXy8UmFPPZiNsJQuUcj3mg4SlLTWtqAj5lXFC+SD2FkrqZKjxnoB2aHs7UP4jU2VvhvzbrVr37dckdoEGG44UZQlXxpnV1Pz5I13trqlBdd7yr26ih6o79nxfm6I028e+LPT6inibeDznHP0UvEuOfMdJRZ5ZZF+Oujm6P6d4V2eS+pCxAAD/Z+fXjglQ==; 31:d+P+lPePjIr69c4VfCaPC+H5qxWFlmRAKNxOC3ydCkV9y4TcJoM5yT86lxXKTZNm4ILMRlfCvp1GzL0YTBm8sx9G1vtYatx/D0fwun3eEEbMSkOt+pg2DTlQYA9jVtIArT9fbAXrIL5tCddR0xcPBU5JFYS1HwL54VS9og4ehacYPaxs5gYNazFX5vR7/hdH7a8s2i9cctfeSs0Hr0wo4p9xUuPDTwZgBQQCQ5Bd2Dc= X-MS-TrafficTypeDiagnostic: VI1PR08MB3264: X-Microsoft-Exchange-Diagnostics: 1; VI1PR08MB3264; 20:x5uabdWbSAOxSLJKxdoHzUMlqz/6ElFIMGRGgsSSel5H3HZtyDpoK465K/UK+cjOLVjy312DsDUAfQ8ui5fLFzHSfjGCUcnsefViOLfWyWnNIFKY2xWZ4qHKETjK2jVRWXusLb/DOsRhVpyAHtGWtH5pVs19auw8+Fq95tUZZ+MlrDafATLUD/BDqeUHNvfYZIeSdQ2/rUnr6QkTPbLvrW3tVxwj639Yx0eG4rW/P1gge/AWDjqL3E2Hqfr+mOFEFmrnk1s3dARNkVkMJZOg9OHIK+iEOhbXV2KvQFssv7j2tM8VH9jbhynA1fY3R7DjqknHEnWJ0osW/KKla/5RPtiVrGMPVwmsHk6sobXe7v/HZKlDCS+USA+O6R0MqM+r0T9NqK59o4pDt6Eq114yofyNQwQB13MqQbMDiRJzMs0v7KkgLHdASBuyRRhYgLTeEoTwE2IwkSN23lwm/vZGR0frwHR0HQXIAoFv6CBS+h3tLtz86tU3Z7219xk0+/au; 4:5zWuOzGEFQYfe3XHv16qMpgBkFR2AgczvHZKFRmVdu2URdT8cL4fOBRFr7Eu+8YnFzylRobbhcN0en1bqqqgwlcJVE0tr5i7n7OKSXvTULP4ihFx5pCEMAq3kFZvEJTg9mHkvGxwj2WpXwcpx3e9y0A5DVj3VO/Zi/QUhJ4ul6rbYS6sduXhYSFMXn3llo8UnSDfxofA546QMgbqcgnk9yNXvoS4k5g1uCIVX52Fu5GaJH29zyjP6VnnSXpFIhGFbE8tM/elgBiMOOHlo3m1JA== X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:; X-MS-Exchange-SenderADCheck: 1 X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(6040522)(2401047)(8121501046)(5005006)(93006095)(93001095)(3231355)(944501410)(52105095)(3002001)(10201501046)(149027)(150027)(6041310)(20161123558120)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(20161123562045)(20161123564045)(20161123560045)(201708071742011)(7699051); SRVR:VI1PR08MB3264; BCL:0; PCL:0; RULEID:; SRVR:VI1PR08MB3264; X-Forefront-PRVS: 0801F2E62B X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10019020)(39850400004)(396003)(136003)(376002)(366004)(346002)(189003)(199004)(68736007)(52116002)(7416002)(7736002)(956004)(6512007)(11346002)(50226002)(446003)(386003)(6506007)(1076002)(6116002)(8936002)(476003)(50466002)(16526019)(486006)(97736004)(478600001)(186003)(8676002)(53936002)(48376002)(86362001)(2616005)(575784001)(26005)(4326008)(107886003)(81156014)(106356001)(2906002)(105586002)(305945005)(5660300001)(6486002)(316002)(6666003)(51416003)(53416004)(16586007)(110136005)(81166006)(76176011)(36756003)(66066001)(14444005)(3846002)(25786009)(54906003)(47776003); DIR:OUT; SFP:1102; SCL:1; SRVR:VI1PR08MB3264; H:i7.sw.ru; FPR:; SPF:None; LANG:en; PTR:InfoNoRecords; MX:1; A:1; Received-SPF: None (protection.outlook.com: virtuozzo.com does not designate permitted sender hosts) X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; VI1PR08MB3264; 23:de2BTEUABYFrCevAl8k5X6IhnvUJif8s989teDQxV?= Bk9KoNdYo4wHZfRxfu5rApBKmVJcoRqzG2svQYlMqhtXr0MTZrWvVxCyBPkDxXbSgNPgNAG2nB2G+8x/9SR7wraAxlZ991CSpwP2csgsSuXm2L4DqMLrRe0IAab6kfzK6YaMH5/E4tijsp0XNKgGLD59uZjab2YjdgSu2PhwRnN5w0hofduprvCha+K0JD0lpRASKwLmqqwWoqRj60gyQN1W4y0LeASW+Y/wa966AfBZ70dnPy0WcAMaBsgjbozs1WNtuuRI5BMPY+WaEn2RTmfFgP/Ulk+u1Z/8QhpdMzaui4VBwZDQczd2tPKlYe9nxiTrXvFoaTTR/5CD+7IsJKesvUSwB1IumiUpqc36SjVpLN5aKE5avMBzJfqrEq3g7Xava4gaUgKIHq9vnbaszXb0zXtTVFzSy/M9Ij1gIAxgOjKycpkGJh//4RFVWwhZUBSjPnkGcuSX9IdDKFYWg+5joeAF++08isNa4JQZ1x3hczpLRrK9faCsyIkjIcxqrHwJMJZQx41vu0/DbPWZFAmVw1tkf6BT/6V1PgkHigXkNOr11e8MyBkWh0Is7i4qffRdgB+awwvfHqtrAsYk8fRJ0p4XGW3k4+xfqoQ89h9F0/7riBJggkut9zWSTvefHZ2hGVlp69o3kR41bwFvpe1DkiIZeKQvxzFjjhexRvu4FOnwZi5hNBhqYV9ORbR39Tx7gul9hz0Y7siQ+p9Q6jZCYLbpk1YXZHF9YpmMuigBoAYcPzDmeDFKswcdvSDawuN3d3PcvfPzHlYKXMWSH68fXiK7ZFjq5+y1/SlO/TlD/eXp/nJJ08l9JdpP0oGQ1CDbC88c0ajX0QZN/3jSAtd7pWjplslJZn0OR9iWvFZDx9hv+JYQLfjis7FAQHHsZIwWevbYZIJHAame45ruXcLXAXD9Lqh9O6Z7VdvkyPhTpFWahNMqRFNZf6km8GwN2nwMAqNb/F+/RgVxqbhcSX1l+dh3P3mhkND8ML2FnbVTGS5+RNg2Ak21EsrvU9KLIGGeomWQgUHZU+ItmBa6Q9Igt1mRCvUXYNvpnH/90fNMTcu2Izs5hen04O5QsO5RADUO2te8+BYMqCAvm7WTKbbC23RwU/HNWLhtQ+t7dZogPVt5s4FReBXZMD9vnM28BkxBCbNj/j/aSxL8BMDWAuyD7OcfAWRTsA64j+CJgyVVPi7s/WFM8TGjeq8rbwBvSGk+sVUFpjFZOPhXwyCkNHEqMXCaTs/7hCC+rCoFp6MTxRK+rR5V7tq8oLiI+6bP9U= X-Microsoft-Antispam-Message-Info: SkrUxvDUBxSo31NeED73XpGFiUF6majWqS06n8T6cKS73pAyWeiaLY5AcJy6JiNjIMhphTRbCZ4GvqwICyi6XG4QZb9xtK1p/VpH/06YYdoYC4uA6atwRgtkZ2KaVnLz4DKlWYfzdqDUQMjW/6miLPFTP1B3eHuy2LmsxUCtaOEp+SBjIM3M6WRp+dX4PQ2QDkMi94N+0rbBd/W0ESBtClPS/vP8sthkSurPnjSgUgH6q56EzRKepr+kB7ZlkM84uktl3aaFTW5+vS2V8UzdV46xJ9MVcJ5slJrQHkmnqTipTqL9VBcwDPsKY3GlTXAj1wkgN6jc6qtouav3ZAsb506z4ZDbJNOHr1Y+aly/cY8= X-Microsoft-Exchange-Diagnostics: 1; VI1PR08MB3264; 6:bE7F9M1HHkCX9dCiPvrztzpCCTUWDY58a1MCGs4UqtF2AWTqT4GhymbaSNKDdewoSdePTGdbXeqN1W/NtugN5xMHvQwa4HLsINr3loqtI8jhaY1wKGxeJdv5BgVzK9TpOuxwdCIKS9cTBZHzWpy0LubqJ+ON+6nUzI+dyEibsSefRf3+WE5uW+ArBdp4lsDnc7lrLaK3oTXO0f88cm3RM6J2oQJoqovBNDXH0RsAOxLIYEip8Yg2B42RLekg4XbWmqez4gytPGhGW/8jVYiYLanG6Ebz/Y/o0UKuilPVi4YHeTIDospWDDpcQdubAo3e0XHNDyRUweqkvXbAwp4MRkOZBgvMBXj16JbIjgw85A4wk0D42ZDes/ya2e4E8vA8bcFVYIKGU+8UGxP/Vy9alkiN3bp21UkYiaeIOBhhf1I5sryWcfeoiAm73LV3ok9koHdJ0KRkUm+q9bNnDVRFDA==; 5:tzeqMtX5wdanNgW4y9ZiojIXvoaQijg1gtisZ46Y62yxS2K9QoCBCnSROJ5dS7fbG0NrWf0IPXtOMoU+Ae8GcL1t7s68VIzQOefHs+gyze77yertsDRGcJj+pyuvbTS5CXtUyvmt12l+mnw08JCtyzxS7KAogcHDJ9nlcwdAIpY=; 7:UN6ryBrJHXCEpwEI5zlS8dgDf8a2eVdr0qgj4CLqY3por9wr6aDQZqa9hXIV9mrpyY+JUPkA3ZwK8BSjAw9SfDyHM00Mz9jSHRBmA3pF1rzEKYDP6UltEEu4Elj7jtfhKYOP0R9SCBmr6BYXfnXDi6ch8HBnVxt4kRRq9CgWgq4TYvtjt12/atSrq/tsDeGEbRRht5bwy2sQTMZ/KgsTCGOlPTmkvId6OvgSdETu9GlVRKr0Ppa4ltLZ4xXBgv/W SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; VI1PR08MB3264; 20:eJcw3+OV/dIVWP19Gz4eRG2inoZjoCuWBCxza7jkRj5ZIqE4UCGfZAuAFERXL9jFXMkm+GUdY9dSDySwTncuCxkT8S7CulyB8gM0AKygXOG+etS+O6uBrQLSYcDttr7wK35eTjSKszkhtmJBW+Gu9FrFvMESVBAN+pwhiny49ro= X-OriginatorOrg: virtuozzo.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 20 Sep 2018 13:56:20.7741 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: ffedca51-e55b-4dc8-def7-08d61f00d8f0 X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 0bc7f26d-0264-416e-a6fc-8352af79c58f X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR08MB3264 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20180920_065637_715096_D838AC18 X-CRM114-Status: GOOD ( 10.06 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Mark Rutland , Ard Biesheuvel , linux-kernel@vger.kernel.org, kasan-dev@googlegroups.com, Alexander Potapenko , linux-arm-kernel@lists.infradead.org, Andrey Ryabinin , Andrew Morton , Kyeongdon Kim , Dmitry Vyukov Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+patchwork-linux-arm=patchwork.kernel.org@lists.infradead.org X-Virus-Scanned: ClamAV using ClamSMTP ARM64 has asm implementation of memchr(), memcmp(), str[r]chr(), str[n]cmp(), str[n]len(). KASAN don't see memory accesses in asm code, thus it can potentially miss many bugs. Ifdef out __HAVE_ARCH_* defines of these functions when KASAN is enabled, so the generic implementations from lib/string.c will be used. We can't just remove the asm functions because efistub uses them. And we can't have two non-weak functions either, so declare the asm functions as weak. Reported-by: Kyeongdon Kim Signed-off-by: Andrey Ryabinin Acked-by: Will Deacon Signed-off-by: Andrey Ryabinin Signed-off-by: Andrew Morton --- Changes since v1: - Use WEAK() instead of .weak arch/arm64/include/asm/string.h | 14 ++++++++------ arch/arm64/kernel/arm64ksyms.c | 7 +++++-- arch/arm64/lib/memchr.S | 2 +- arch/arm64/lib/memcmp.S | 2 +- arch/arm64/lib/strchr.S | 2 +- arch/arm64/lib/strcmp.S | 2 +- arch/arm64/lib/strlen.S | 2 +- arch/arm64/lib/strncmp.S | 2 +- arch/arm64/lib/strnlen.S | 2 +- arch/arm64/lib/strrchr.S | 2 +- 10 files changed, 21 insertions(+), 16 deletions(-) diff --git a/arch/arm64/include/asm/string.h b/arch/arm64/include/asm/string.h index dd95d33a5bd5..03a6c256b7ec 100644 --- a/arch/arm64/include/asm/string.h +++ b/arch/arm64/include/asm/string.h @@ -16,6 +16,7 @@ #ifndef __ASM_STRING_H #define __ASM_STRING_H +#ifndef CONFIG_KASAN #define __HAVE_ARCH_STRRCHR extern char *strrchr(const char *, int c); @@ -34,6 +35,13 @@ extern __kernel_size_t strlen(const char *); #define __HAVE_ARCH_STRNLEN extern __kernel_size_t strnlen(const char *, __kernel_size_t); +#define __HAVE_ARCH_MEMCMP +extern int memcmp(const void *, const void *, size_t); + +#define __HAVE_ARCH_MEMCHR +extern void *memchr(const void *, int, __kernel_size_t); +#endif + #define __HAVE_ARCH_MEMCPY extern void *memcpy(void *, const void *, __kernel_size_t); extern void *__memcpy(void *, const void *, __kernel_size_t); @@ -42,16 +50,10 @@ extern void *__memcpy(void *, const void *, __kernel_size_t); extern void *memmove(void *, const void *, __kernel_size_t); extern void *__memmove(void *, const void *, __kernel_size_t); -#define __HAVE_ARCH_MEMCHR -extern void *memchr(const void *, int, __kernel_size_t); - #define __HAVE_ARCH_MEMSET extern void *memset(void *, int, __kernel_size_t); extern void *__memset(void *, int, __kernel_size_t); -#define __HAVE_ARCH_MEMCMP -extern int memcmp(const void *, const void *, size_t); - #ifdef CONFIG_ARCH_HAS_UACCESS_FLUSHCACHE #define __HAVE_ARCH_MEMCPY_FLUSHCACHE void memcpy_flushcache(void *dst, const void *src, size_t cnt); diff --git a/arch/arm64/kernel/arm64ksyms.c b/arch/arm64/kernel/arm64ksyms.c index d894a20b70b2..72f63a59b008 100644 --- a/arch/arm64/kernel/arm64ksyms.c +++ b/arch/arm64/kernel/arm64ksyms.c @@ -44,20 +44,23 @@ EXPORT_SYMBOL(__arch_copy_in_user); EXPORT_SYMBOL(memstart_addr); /* string / mem functions */ +#ifndef CONFIG_KASAN EXPORT_SYMBOL(strchr); EXPORT_SYMBOL(strrchr); EXPORT_SYMBOL(strcmp); EXPORT_SYMBOL(strncmp); EXPORT_SYMBOL(strlen); EXPORT_SYMBOL(strnlen); +EXPORT_SYMBOL(memcmp); +EXPORT_SYMBOL(memchr); +#endif + EXPORT_SYMBOL(memset); EXPORT_SYMBOL(memcpy); EXPORT_SYMBOL(memmove); EXPORT_SYMBOL(__memset); EXPORT_SYMBOL(__memcpy); EXPORT_SYMBOL(__memmove); -EXPORT_SYMBOL(memchr); -EXPORT_SYMBOL(memcmp); /* atomic bitops */ EXPORT_SYMBOL(set_bit); diff --git a/arch/arm64/lib/memchr.S b/arch/arm64/lib/memchr.S index 4444c1d25f4b..0f164a4baf52 100644 --- a/arch/arm64/lib/memchr.S +++ b/arch/arm64/lib/memchr.S @@ -30,7 +30,7 @@ * Returns: * x0 - address of first occurrence of 'c' or 0 */ -ENTRY(memchr) +WEAK(memchr) and w1, w1, #0xff 1: subs x2, x2, #1 b.mi 2f diff --git a/arch/arm64/lib/memcmp.S b/arch/arm64/lib/memcmp.S index 2a4e239bd17a..fb295f52e9f8 100644 --- a/arch/arm64/lib/memcmp.S +++ b/arch/arm64/lib/memcmp.S @@ -58,7 +58,7 @@ pos .req x11 limit_wd .req x12 mask .req x13 -ENTRY(memcmp) +WEAK(memcmp) cbz limit, .Lret0 eor tmp1, src1, src2 tst tmp1, #7 diff --git a/arch/arm64/lib/strchr.S b/arch/arm64/lib/strchr.S index dae0cf5591f9..7c83091d1bcd 100644 --- a/arch/arm64/lib/strchr.S +++ b/arch/arm64/lib/strchr.S @@ -29,7 +29,7 @@ * Returns: * x0 - address of first occurrence of 'c' or 0 */ -ENTRY(strchr) +WEAK(strchr) and w1, w1, #0xff 1: ldrb w2, [x0], #1 cmp w2, w1 diff --git a/arch/arm64/lib/strcmp.S b/arch/arm64/lib/strcmp.S index 471fe61760ef..7d5d15398bfb 100644 --- a/arch/arm64/lib/strcmp.S +++ b/arch/arm64/lib/strcmp.S @@ -60,7 +60,7 @@ tmp3 .req x9 zeroones .req x10 pos .req x11 -ENTRY(strcmp) +WEAK(strcmp) eor tmp1, src1, src2 mov zeroones, #REP8_01 tst tmp1, #7 diff --git a/arch/arm64/lib/strlen.S b/arch/arm64/lib/strlen.S index 55ccc8e24c08..8e0b14205dcb 100644 --- a/arch/arm64/lib/strlen.S +++ b/arch/arm64/lib/strlen.S @@ -56,7 +56,7 @@ pos .req x12 #define REP8_7f 0x7f7f7f7f7f7f7f7f #define REP8_80 0x8080808080808080 -ENTRY(strlen) +WEAK(strlen) mov zeroones, #REP8_01 bic src, srcin, #15 ands tmp1, srcin, #15 diff --git a/arch/arm64/lib/strncmp.S b/arch/arm64/lib/strncmp.S index e267044761c6..66bd145935d9 100644 --- a/arch/arm64/lib/strncmp.S +++ b/arch/arm64/lib/strncmp.S @@ -64,7 +64,7 @@ limit_wd .req x13 mask .req x14 endloop .req x15 -ENTRY(strncmp) +WEAK(strncmp) cbz limit, .Lret0 eor tmp1, src1, src2 mov zeroones, #REP8_01 diff --git a/arch/arm64/lib/strnlen.S b/arch/arm64/lib/strnlen.S index eae38da6e0bb..355be04441fe 100644 --- a/arch/arm64/lib/strnlen.S +++ b/arch/arm64/lib/strnlen.S @@ -59,7 +59,7 @@ limit_wd .req x14 #define REP8_7f 0x7f7f7f7f7f7f7f7f #define REP8_80 0x8080808080808080 -ENTRY(strnlen) +WEAK(strnlen) cbz limit, .Lhit_limit mov zeroones, #REP8_01 bic src, srcin, #15 diff --git a/arch/arm64/lib/strrchr.S b/arch/arm64/lib/strrchr.S index f8e2784d5752..ea84924d5990 100644 --- a/arch/arm64/lib/strrchr.S +++ b/arch/arm64/lib/strrchr.S @@ -29,7 +29,7 @@ * Returns: * x0 - address of last occurrence of 'c' or 0 */ -ENTRY(strrchr) +WEAK(strrchr) mov x3, #0 and w1, w1, #0xff 1: ldrb w2, [x0], #1 From patchwork Thu Sep 20 13:56:31 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andrey Ryabinin X-Patchwork-Id: 10607815 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 65DFA6CB for ; Thu, 20 Sep 2018 13:58:15 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 53D212C3D3 for ; Thu, 20 Sep 2018 13:58:15 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 463A82C3D8; Thu, 20 Sep 2018 13:58:15 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-2.9 required=2.0 tests=BAD_ENC_HEADER,BAYES_00, DKIM_SIGNED,DKIM_VALID,MAILING_LIST_MULTI,RCVD_IN_DNSWL_NONE autolearn=ham version=3.3.1 Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.wl.linuxfoundation.org (Postfix) with ESMTPS id B2F8D2C3D3 for ; Thu, 20 Sep 2018 13:58:14 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20170209; h=Sender: Content-Transfer-Encoding:Content-Type:Cc:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:MIME-Version:References:In-Reply-To: Message-Id:Date:Subject:To:From:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=DsJJlH2C4yBZEJYJxjc/BITtYH2DwK/JYWlEnPT0RFM=; b=oWqRdt99mSX7Pm 9IKuahEgoApDVdGA4nvX2goYximBkhSacYSsTAxSGfLR+VVJvrX2i8FVH3N97kDb0HHPMNY/1rS4h 2IKHDZQLO1llwYDPG3qz0ZNxP733WAEf7zj0hAJhMilzJbq8RDaFykJYSYFkxBbs8q3y1RdEsrZCq qQJuQrPAapn4eBhAXP/kXzsxHQ20vyJ8IB3KK7q8iUHq3pvS7SM2xRs1VyLL5Ueykop6NkCvI6yii AoFJq0cTyVjIjaAtZIXhX1Hx1StbJLRJ4+OGiaANie0YQ2svANrGiYTOMbyZ3vz/lrFldgY/H9i3r I7xkGxfr9eOPVA/B/Ilg==; Received: from localhost ([127.0.0.1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.90_1 #2 (Red Hat Linux)) id 1g2zT8-0004CF-51; Thu, 20 Sep 2018 13:58:10 +0000 Received: from mail-ve1eur01on0092.outbound.protection.outlook.com ([104.47.1.92] helo=EUR01-VE1-obe.outbound.protection.outlook.com) by bombadil.infradead.org with esmtps (Exim 4.90_1 #2 (Red Hat Linux)) id 1g2zRf-0003aD-KV for linux-arm-kernel@lists.infradead.org; Thu, 20 Sep 2018 13:56:43 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=virtuozzo.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=XlYm+3iE/PMapwymuU7ypiGUKr2ts7a8XIdUgdN5gzs=; b=YJ1BaxZIKZmQuRUoD8O50+wi1ccFRIUg49Yz5HPE6xoySgz19OPyK8CF9zezdCV4enY5ilt3qa/KlyCuyLbFcJ6+lq8zzCN7WGf8FmMlhHINHMggpxSlHMmAGLtEjW9v4G1KFMuBF3pq5l7yi2EEmUCOTA0qSGAvbNu/b9/OyoQ= Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=aryabinin@virtuozzo.com; Received: from i7.sw.ru (185.231.240.5) by VI1PR08MB3264.eurprd08.prod.outlook.com (2603:10a6:803:3d::19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.1143.17; Thu, 20 Sep 2018 13:56:22 +0000 From: Andrey Ryabinin To: Will Deacon , Catalin Marinas Subject: [PATCH v2 3/3] lib/test_kasan: Add tests for several string/memory API functions Date: Thu, 20 Sep 2018 16:56:31 +0300 Message-Id: <20180920135631.23833-3-aryabinin@virtuozzo.com> X-Mailer: git-send-email 2.16.4 In-Reply-To: <20180920135631.23833-1-aryabinin@virtuozzo.com> References: <20180914152800.GB6236@arm.com> <20180920135631.23833-1-aryabinin@virtuozzo.com> MIME-Version: 1.0 X-Originating-IP: [185.231.240.5] X-ClientProxiedBy: HE1PR0301CA0004.eurprd03.prod.outlook.com (2603:10a6:3:76::14) To VI1PR08MB3264.eurprd08.prod.outlook.com (2603:10a6:803:3d::19) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: fda58248-52c8-4843-dffa-08d61f00d9e2 X-Microsoft-Antispam: BCL:0; PCL:0; RULEID:(7020095)(4652040)(8989299)(4534165)(4627221)(201703031133081)(201702281549075)(8990200)(5600074)(711020)(2017052603328)(7153060)(7193020); SRVR:VI1PR08MB3264; X-Microsoft-Exchange-Diagnostics: 1; VI1PR08MB3264; 3:F4gHzjgawxaNH2SFRlcVgA+WHmdddJ+YVAAWeHecQEDoOhLB5EMVrtFRp8eCpOnIIbZgrA3c0RmfNCJhm1oJtBShvNi08yKgi60BPNee3iY5TXyYh3rVkL7F5LCK99v16nKW8eJ4qUBqVRkd3X217IIrez6vX1jKSZVePK4kHkbLM9VwDSg5feE4Z5YaJbdDWrniPDdL1CeLjIYHjICurcIfIm0yHV2wX8cktobhzIiBy1iJ2zghePbDkMUvS6z1; 25:RhgJ7SZtBIvqKKCBMXszSOQswjh4twYyJZMm7OaUuxDSGcidOi/b+MJXPUwKsiwn6LhoGl/rO/1+3snSAyVZQz2HkujLUevUhgOESEZs35ZqDpPUUkpGKPTKFF9K63BNhN4fnkwZpFYiwMeJaYcPMoMzrou3MEGqcrIk0XpXwDi+uD1jfKZwVQWAzlQw0344WHikoXezo25MWgpFYY6Ir7YQl08RCf+VYq8mliG9aoh/mHt4mzgO67OSFF8i9hAsGq85sn1QFpVlbP9B3G409b7H3C6MEOou1WdCkyqugEE/Gx7T3wM0vh61REfE13dlt3QmVwvNSWcvXVpFsVHbjA==; 31:KQL5KSq31tQV7jbIA3+Qqty1SntPBnbM/RyOXsBg/GT8HIvKmRCwa9Ze5y6Wdj4xf9UCYr2I/fuLpr3z2bgkSrDaN3NFYFUqmqOG2MSaVoIDIix6fGlKKVcxsscFJXjv4r+HUyDqLpTwFtxunIRoRQP7GkSeN+CmkB0hLMdz4U6aerIHTjb0WnFeuNHZtVdXSngRkUgm1wsOUiu41Cg3v5HWL6AJgl3H04mQUvvUywM= X-MS-TrafficTypeDiagnostic: VI1PR08MB3264: X-Microsoft-Exchange-Diagnostics: 1; VI1PR08MB3264; 20:UOgj79MHU6/KQdPMPtrKKlwHRqgD7qIlQjIK/0468XQm16QOoi67zQsyCZS59qiBmlxx+I/Ocmu6sUyZDRRLqTucQ7/mYWVcM/LoD1TO8QIN4dTP2yHC53fBlGCjnDH27M+k5gkkeBQ5azadciQhtoVKVyU5+d87HFZi/5R1ErGl3hLDtYLqHnnz9usXVP6A9DboVR3XsMCL4JP/Gidq0orlONUAIWvnpRht3xOAcmhAH3hMf5ReS9wsvlxlhHXBBZeEOStM8NVBmVYDVQX8wHAAc5+VcSaDIAojN3F2bKKWrnJGo8Z+Ox39qvGd0faB+3gfVeQ6MkIRXhIyZhbmJ9IioYo7SbA8vzGv+y44oR1aRgEKqGlrzDs+DXo9nYP/FMcy5sWJRoKYRZEIzQ0ohkitslm+bN4OPCnZi8pHd5cmo/97fHn6t2w3zv7qAUoLOKOZ8rIQyWkCEgchW6ke1TTDzcZ6kvAda04HRm7sX0k5deK2+h0WMbF6TvHZ4733; 4:lEr3P9Ms5iA5e2vUVoU6GXi7/3ddmptwUNlACjB0qmvg9Dug8nBkfagceds09UxMDCxf6OblTlj4oiMH43lg28E1kDYAj2sWZw495S/pCQtnM5BeMES8AoAIj2ITlySLuFRs1AL9uLAnOcKoecChW3d5l0MbgGmUb/56xWl7yqmRGHd24WWBWxAiHteY3jJImXb4zHIP+gljTrURkwf6hQgGMYhWN0hnUUIs0kp7TaMdUukUsTzh8oMIXZ3JLEYMOlUAC+64+Rhol9QHJS9Shg== X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:; X-MS-Exchange-SenderADCheck: 1 X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(6040522)(2401047)(8121501046)(5005006)(93006095)(93001095)(3231355)(944501410)(52105095)(3002001)(10201501046)(149027)(150027)(6041310)(20161123558120)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(20161123562045)(20161123564045)(20161123560045)(201708071742011)(7699051); SRVR:VI1PR08MB3264; BCL:0; PCL:0; RULEID:; SRVR:VI1PR08MB3264; X-Forefront-PRVS: 0801F2E62B X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10019020)(979002)(39850400004)(396003)(136003)(376002)(366004)(346002)(189003)(199004)(68736007)(52116002)(7416002)(7736002)(956004)(6512007)(11346002)(50226002)(446003)(386003)(6506007)(1076002)(6116002)(8936002)(476003)(50466002)(16526019)(486006)(97736004)(478600001)(186003)(8676002)(53936002)(48376002)(86362001)(2616005)(26005)(4326008)(107886003)(81156014)(106356001)(2906002)(105586002)(305945005)(5660300001)(6486002)(316002)(6666003)(51416003)(53416004)(16586007)(110136005)(81166006)(76176011)(36756003)(66066001)(14444005)(3846002)(25786009)(54906003)(47776003)(969003)(989001)(999001)(1009001)(1019001); DIR:OUT; SFP:1102; SCL:1; SRVR:VI1PR08MB3264; H:i7.sw.ru; FPR:; SPF:None; LANG:en; PTR:InfoNoRecords; MX:1; A:1; Received-SPF: None (protection.outlook.com: virtuozzo.com does not designate permitted sender hosts) X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; VI1PR08MB3264; 23:fwLF2pJ15qu2p0J2JveRrOBWgZI2qW+iFTRbBr48l?= JI8zaLdXbE45fMHWq9TlmylZtQD7e3IdeQW1ev5LawN2x2Imi63XXOYsQA8IYaEzxVUmmIgKeKFCnr8pQuvU3C15FRpwIawqkG/b6aY0zFnfj3RwiugOrNDSe4WnV7zcj10woI0d+/6ngrvBqzPZnBpqdsVzOTlzAFmQzX1LArTV2YWG4FX12VkSfqvSMjbrYzJ51fuXdwvr9yNaM/zBYJaEtzXy2O7XGInEm0IQsSZHDIp0VH5wdQMA0JjOUIGnbWlUB2m6PxhzPhW6uSxQtJmGwOhnkLjgzxFw5vA/yfy5WyOIf5tTuiqUeSbLxj+KBxWrlfHx5ClTIu2zD8Nhz9kUK665WTGcuPx7PCAstSodZAmVVTG3vE8A0D8kvtGJxKgG3vB54CU7W4niB5SExHfKOKgEhKlVXa0Nmb/KEw9WY4IqJUo//C0MweMbf4xLnbXx5vW7Or1ta5wfjzq2F+BQf4jc25+kTcnN4hG/QltL3UCliXKXK08csZPYR1/s0tBKAsNa3042XSltgTOvWEwUIJqA9V0OvpqWsCguVrQQzPky1K7KPv/tgXEPFvqkQ6qXbWrUs6CHqVJMoYlapb6tfp/LBjyy8tX5K2vxR5IPraK9YYxGRuT11NwTxN8cMgWvyxb37b/62jLVeu8jlKq6pHUTKs4Wyq/utrH/nEvSiNJYh+ZKDp5Pn5XKCSOHPv5oXN/gqBEWExdfWlgjP4/XqpB1lwVCQWgIPMxxV7FgQUh88BXq5U09NBylayUrnghbxcSerzXvSsI0XMhsOcS+YIUvCT2GtZ+jMDgCP+TrgEIyGIN9zpMClOu1N6/pYq6sexJiP5/VOFycqpTSbDxX86oaHwno8pYcDwotrQqderOl78EmIBKTOHDnK3clJP7fs0xGDzul/BgKMNJMIXukw/kZU4wSGmSO8UKYwUTn/5q1IvcydyBI70tqj9cJIDaKCiqx4ms0bynndENLnmZEphIWlcUppEHQK694u3nUf61QsObV9smbzN9rcodbKSzVbz2G3zh8Cxjq9fN+A67MSNU8Zd7dAG0m2iJx3WwbCENVabUindssH6WykhkWwRnq4lHHplQ52PlLk2j4ZD7ELjs3T3jN6l2imRqDo1RVUMCsbOkatz5Qs/51kTBpIZUtX3efQOXAFsQpLqFKvDC58hjKZN/9OJjamN4bN5+EbQ0f4g/dBuKmMNbG78TFd8cwNl7eSFqmn9cINjGBzjEiV/B7xJfXj1Lw0ynA9nGsED0gyuEweqx/bYljlCuGU4hGF0AcyCM7CcxNvglDUqrWdSsv1ViWKFAwh1zSKqtEcjK/4rWSioofl+e5UPqTFA= X-Microsoft-Antispam-Message-Info: M49G9z4Dxc3Hx9b6sGzwkLeynA6tTn8PWFHlEoOIiSj4p2R94ZwdjNiY9NjFs0uScmJJbs4vEE5aeXDzfi+80d3aUQU1joNMlPIuLOws3Svd0LttNYvRMBvIO8ViIJ4Rypv1LiPpNPDG15dP9+frR+t1Vz/fEt5q2WC8kxcLDqN/uAePrfxZ7mTIi0t7F74qycy/eVOWN24PHcH7gL+J8QNoYga7nUJpiO5fKUtZn9dV4TlEAUi9mavXsO3V85+OmQMY4bHelhQknNrTDICbT2NxwQgQZSvUpiy2nw0GW0vLQCHMrSys8XeBGOK5ay+YMo9N5LGIV+7km47+70sOpCLeSnYtX8NRrDa16wtdN5E= X-Microsoft-Exchange-Diagnostics: 1; VI1PR08MB3264; 6:sxGBgtXsQR2PZn/7bFIYTeulIVGhWrkU2x4RQrSjJmN9g3UprV0RZB1RFN1P21AdeyQRugxijA/ar/u02j0DufPE/mux7wJ+EoL4p32fHLLv18U4jkj7PHtt3XXEhbCGA1prOfeMfolyaR5JHPxysWrFkxZyoNmtdiZxdUcuw9gGfMeA9wjs4mJ4TaIGIA4/jpEYg65SetXAejzGO8+iuOkT/uhwc9t5b1RkkN8/imvBYGO+LWbPYv9z13YGW92rCh9WPGVSqX3wiLO8qyAy7/vcDIVPL325v6y9dMNad8akhiOXJ+xtLHyjUOQOvulbHI/h3b8irU3wKRLLEL0foCpNXJRISvgevIXeTvXAH+3+rVrj3YrI6hiyBjn8x7bvTrw8i+kj4FTPOnDBdZuLoEoChCW2QfsA256CmcEBWpntW9kv9G/jSJg/PznYrusStThlLV3MjHTs3Hfg9k6b2Q==; 5:B0C/mh4iVfTMShZ3iXp6D+RUrtHlKyZDqU+NO3EJBq1upeFZWmiyLK8RFUqj4e7mINNQ9yFOBMgyZtl2V6e10XG9qemEcdlVil8FMooDhIFwmbD2wkpgp+YhUTgJqFrzd3WV2+hZ3+WWvJFh44rmqzOGv7+/G1ZtxdfM7ff16RQ=; 7:/aVZfv40hilcoI8OjqtZ7S6Pyd0OejVmbaQF0W0NC6SOdXYHdAhjyJbqpPYZuDYZMtQTfiAUL7ZFzuKYynQ8Hb8vTIuxm8GmXWsBvMUxtI2T0lbOErZePGaf1mfM0mX2Hc7qIYauqFeB34eCY+wiQsn14Jh7TGIFuzPhWAkMMTiI37qBUjeI3BpbN26WAEoG7x1J7/2Fwl9Q07GWHzRfgTHGj23ZY3cApf91ZMV1RXhnBUkO9pAat1ty8566qGW7 SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; VI1PR08MB3264; 20:SeR0VJrF/KfUSNYERUmvwC4089kUh9EwUxLYUw/hGS+7Vbptu/ejFXa1/vW7iggUqAipXg3xyT/xBsdDNXZ9Hvqe7RV+MeG8qh41AA4fDsQTuPN+sqcGzoES5Y6Tuz57Q7Jptysffifmr1PszxTOMkIxQzFV4cHG83s4UaX8J8g= X-OriginatorOrg: virtuozzo.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 20 Sep 2018 13:56:22.2871 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: fda58248-52c8-4843-dffa-08d61f00d9e2 X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 0bc7f26d-0264-416e-a6fc-8352af79c58f X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR08MB3264 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20180920_065639_724246_7633CAD6 X-CRM114-Status: GOOD ( 11.36 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Mark Rutland , Ard Biesheuvel , linux-kernel@vger.kernel.org, kasan-dev@googlegroups.com, Alexander Potapenko , linux-arm-kernel@lists.infradead.org, Andrey Ryabinin , Andrew Morton , Kyeongdon Kim , Dmitry Vyukov Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+patchwork-linux-arm=patchwork.kernel.org@lists.infradead.org X-Virus-Scanned: ClamAV using ClamSMTP Arch code may have asm implementation of string/memory API functions instead of using generic one from lib/string.c. KASAN don't see memory accesses in asm code, thus can miss many bugs. E.g. on ARM64 KASAN don't see bugs in memchr(), memcmp(), str[r]chr(), str[n]cmp(), str[n]len(). Add tests for these functions to be sure that we notice the problem on other architectures. Signed-off-by: Andrey Ryabinin --- No changes since v1. lib/test_kasan.c | 70 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 70 insertions(+) diff --git a/lib/test_kasan.c b/lib/test_kasan.c index ec657105edbf..51b78405bf24 100644 --- a/lib/test_kasan.c +++ b/lib/test_kasan.c @@ -579,6 +579,73 @@ static noinline void __init kmem_cache_invalid_free(void) kmem_cache_destroy(cache); } +static noinline void __init kasan_memchr(void) +{ + char *ptr; + size_t size = 24; + + pr_info("out-of-bounds in memchr\n"); + ptr = kmalloc(size, GFP_KERNEL | __GFP_ZERO); + if (!ptr) + return; + + memchr(ptr, '1', size + 1); + kfree(ptr); +} + +static noinline void __init kasan_memcmp(void) +{ + char *ptr; + size_t size = 24; + int arr[9]; + + pr_info("out-of-bounds in memcmp\n"); + ptr = kmalloc(size, GFP_KERNEL | __GFP_ZERO); + if (!ptr) + return; + + memset(arr, 0, sizeof(arr)); + memcmp(ptr, arr, size+1); + kfree(ptr); +} + +static noinline void __init kasan_strings(void) +{ + char *ptr; + size_t size = 24; + + pr_info("use-after-free in strchr\n"); + ptr = kmalloc(size, GFP_KERNEL | __GFP_ZERO); + if (!ptr) + return; + + kfree(ptr); + + /* + * Try to cause only 1 invalid access (less spam in dmesg). + * For that we need ptr to point to zeroed byte. + * Skip metadata that could be stored in freed object so ptr + * will likely point to zeroed byte. + */ + ptr += 16; + strchr(ptr, '1'); + + pr_info("use-after-free in strrchr\n"); + strrchr(ptr, '1'); + + pr_info("use-after-free in strcmp\n"); + strcmp(ptr, "2"); + + pr_info("use-after-free in strncmp\n"); + strncmp(ptr, "2", 1); + + pr_info("use-after-free in strlen\n"); + strlen(ptr); + + pr_info("use-after-free in strnlen\n"); + strnlen(ptr, 1); +} + static int __init kmalloc_tests_init(void) { /* @@ -618,6 +685,9 @@ static int __init kmalloc_tests_init(void) use_after_scope_test(); kmem_cache_double_free(); kmem_cache_invalid_free(); + kasan_memchr(); + kasan_memcmp(); + kasan_strings(); kasan_restore_multi_shot(multishot);