From patchwork Mon Jun 21 15:44:41 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: =?utf-8?b?WWVlIExlZSAo5p2O5bu66Kq8KQ==?= X-Patchwork-Id: 12335021 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-17.0 required=3.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER, INCLUDES_PATCH,MAILING_LIST_MULTI,MIME_BASE64_TEXT,SPF_HELO_NONE,SPF_PASS, UNPARSEABLE_RELAY,USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 7DD36C4743C for ; Mon, 21 Jun 2021 15:45:43 +0000 (UTC) Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by mail.kernel.org (Postfix) with ESMTP id 2573F61156 for ; Mon, 21 Jun 2021 15:45:43 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 2573F61156 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=mediatek.com Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=owner-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix) id 61E236B006C; Mon, 21 Jun 2021 11:45:42 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 5CE956B0070; Mon, 21 Jun 2021 11:45:42 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 46F0C6B0072; Mon, 21 Jun 2021 11:45:42 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from forelay.hostedemail.com (smtprelay0171.hostedemail.com [216.40.44.171]) by kanga.kvack.org (Postfix) with ESMTP id 130476B006C for ; Mon, 21 Jun 2021 11:45:42 -0400 (EDT) Received: from smtpin13.hostedemail.com (10.5.19.251.rfc1918.com [10.5.19.251]) by forelay05.hostedemail.com (Postfix) with ESMTP id 87C9C181AEF09 for ; Mon, 21 Jun 2021 15:45:41 +0000 (UTC) X-FDA: 78278156082.13.01C629D Received: from mailgw01.mediatek.com (mailgw01.mediatek.com [216.200.240.184]) by imf29.hostedemail.com (Postfix) with ESMTP id 8F0BC2BF4 for ; Mon, 21 Jun 2021 15:45:38 +0000 (UTC) X-UUID: 99a207d761d74de18619e6fb87396b59-20210621 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=mediatek.com; s=dk; h=Content-Transfer-Encoding:Content-Type:MIME-Version:Message-ID:Date:Subject:CC:To:From; bh=eng4MkXhF6IiAFDOMo+SUNDfxBp5P3RDBTYY52X5RQQ=; b=ilIoUoDy75VfcZUbvFapF5Nktz4WKIxmQ3QRc+1Gq5+pN7b1aqtl516x6Dt2tXyBM4xfhI2JJPto6oy7yuAdVf/y/RvRn4tcQIa1E2zdCeK6iBMRWMxwuGxjJQoK4xHNo2NnoSo5hzLYLvuRB+Ak3elymPKjtY3YKDNb4JgWgkE=; X-UUID: 99a207d761d74de18619e6fb87396b59-20210621 Received: from mtkcas66.mediatek.inc [(172.29.193.44)] by mailgw01.mediatek.com (envelope-from ) (musrelay.mediatek.com ESMTP with TLSv1.2 ECDHE-RSA-AES256-SHA384 256/256) with ESMTP id 986400988; Mon, 21 Jun 2021 08:45:35 -0700 Received: from MTKMBS07N2.mediatek.inc (172.21.101.141) by MTKMBS62N2.mediatek.inc (172.29.193.42) with Microsoft SMTP Server (TLS) id 15.0.1497.2; Mon, 21 Jun 2021 08:45:34 -0700 Received: from mtkcas10.mediatek.inc (172.21.101.39) by mtkmbs07n2.mediatek.inc (172.21.101.141) with Microsoft SMTP Server (TLS) id 15.0.1497.2; Mon, 21 Jun 2021 23:45:32 +0800 Received: from mtksdccf07.mediatek.inc (172.21.84.99) by mtkcas10.mediatek.inc (172.21.101.73) with Microsoft SMTP Server id 15.0.1497.2 via Frontend Transport; Mon, 21 Jun 2021 23:45:32 +0800 From: To: CC: , Yee Lee , "Andrey Ryabinin" , Alexander Potapenko , Dmitry Vyukov , Andrew Morton , Matthias Brugger , "open list:KASAN" , "open list:MEMORY MANAGEMENT" , open list , "moderated list:ARM/Mediatek SoC support" , "moderated list:ARM/Mediatek SoC support" Subject: [PATCH] kasan: unpoison use memset to init unaligned object size Date: Mon, 21 Jun 2021 23:44:41 +0800 Message-ID: <20210621154442.18463-1-yee.lee@mediatek.com> X-Mailer: git-send-email 2.18.0 MIME-Version: 1.0 X-MTK: N Authentication-Results: imf29.hostedemail.com; dkim=pass header.d=mediatek.com header.s=dk header.b=ilIoUoDy; dmarc=pass (policy=none) header.from=mediatek.com; spf=pass (imf29.hostedemail.com: domain of yee.lee@mediatek.com designates 216.200.240.184 as permitted sender) smtp.mailfrom=yee.lee@mediatek.com X-Stat-Signature: o6brn1yemd9bx1gfxbrfd5515iijpzru X-Rspamd-Server: rspam04 X-Rspamd-Queue-Id: 8F0BC2BF4 X-HE-Tag: 1624290338-387554 X-Bogosity: Ham, tests=bogofilter, spamicity=0.000000, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: From: Yee Lee This patch adds a memset to initialize object of unaligned size. Duing to the MTE granulrity, the integrated initialization using hwtag instruction will force clearing out bytes in granular size, which may cause undesired effect, such as overwriting to the redzone of SLUB debug. In this patch, for the unaligned object size, function uses memset to initailize context instead of the hwtag instruction. Signed-off-by: Yee Lee --- mm/kasan/kasan.h | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/mm/kasan/kasan.h b/mm/kasan/kasan.h index 8f450bc28045..d8faa64614b7 100644 --- a/mm/kasan/kasan.h +++ b/mm/kasan/kasan.h @@ -387,8 +387,11 @@ static inline void kasan_unpoison(const void *addr, size_t size, bool init) if (WARN_ON((unsigned long)addr & KASAN_GRANULE_MASK)) return; + if (init && ((unsigned long)size & KASAN_GRANULE_MASK)) { + init = false; + memset((void *)addr, 0, size); + } size = round_up(size, KASAN_GRANULE_SIZE); - hw_set_mem_tag_range((void *)addr, size, tag, init); }