From mboxrd@z Thu Jan 1 00:00:00 1970 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=-16.7 required=3.0 tests=BAYES_00, HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER,INCLUDES_PATCH, MAILING_LIST_MULTI,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 88D0DC4743C for ; Mon, 21 Jun 2021 15:45:39 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 5AD2861042 for ; Mon, 21 Jun 2021 15:45:39 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S230161AbhFUPrw (ORCPT ); Mon, 21 Jun 2021 11:47:52 -0400 Received: from mailgw02.mediatek.com ([210.61.82.184]:52055 "EHLO mailgw02.mediatek.com" rhost-flags-OK-FAIL-OK-FAIL) by vger.kernel.org with ESMTP id S230028AbhFUPrv (ORCPT ); Mon, 21 Jun 2021 11:47:51 -0400 X-UUID: 4d3fb1b3cf1e47ee99897b930936ce1e-20210621 X-UUID: 4d3fb1b3cf1e47ee99897b930936ce1e-20210621 Received: from mtkcas10.mediatek.inc [(172.21.101.39)] by mailgw02.mediatek.com (envelope-from ) (Generic MTA with TLSv1.2 ECDHE-RSA-AES256-SHA384 256/256) with ESMTP id 1944458588; Mon, 21 Jun 2021 23:45:34 +0800 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 Content-Type: text/plain X-MTK: N Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org 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); } -- 2.18.0