Received: by 2002:a05:6a10:206:0:0:0:0 with SMTP id 6csp3890567pxj; Mon, 21 Jun 2021 08:46:56 -0700 (PDT) X-Google-Smtp-Source: ABdhPJz28PCe3OPl/B+3VBCDqmZPw3q2JvALVAqP6EeIfhb23YiabKZLcJgnxlhE49vSmNyUSyBy X-Received: by 2002:a17:906:15d5:: with SMTP id l21mr23491093ejd.429.1624290416232; Mon, 21 Jun 2021 08:46:56 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1624290416; cv=none; d=google.com; s=arc-20160816; b=HaQiFJGLcjAIXI8pKnQWkleY6v+GNhPCG7AVLgUzfMcqWhKT8cotdt79o/L7IAoEns oQneK5QGT6PAGIHRPZUcI6vPNY/hI82OU3HKEDc+oSjx2p/V4NX0FWhN+2CRaGVnK1e6 tEgsQzbPzMWvKS+n/5nCT/nZvKGgl42pkAPdmWG3Yft+qujxHLbB5cUudUZAS67VdP61 4PcrA9F5cUzj1EFdTUC3WWKnrRQUFuFdYc7EItWJ7qR1KVfLEDhMBTEXu5gIkCt/tSVR cz47fNaKBZPl18vclbzdpjwKVt3Go7dmFzave+EJAIGAF+EqJ4t1tYstKiHkc5Sm+6de ktvA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:mime-version:message-id:date:subject:cc:to:from; bh=hlWl5Yy89WPgOYRPYSqSNy03hJwdq94/dWvDHZsSeDc=; b=ZEfnGuKywiIYXkfeErKp7xFlJIfkY+ErwK0DgWVqpRKJ1mX8UqG65+Hc1gUQqLqw7w tJt7wsifwGWtFjPvuSC48Rah+gJTz9I9VcAGyV6y7IhhD3hbDPcEk74CUZvsv8Xwn8Ny iXm6Bc64RFJliglyI1MuNmnLh8Sj4MjRqP1Cbb0ilqKodqOTNj8YoDFx4SLTD5VtP5xH kn54Z/TG5uoewU2zEy+mb1wg/u9t+bpAV4LcoQzV3YKmRtJ1eEYFMeM6Nlb55t9zj3Ow 8dUKk9fX/frPxfidKUm19MSXAtMz1OgM1VczR6hqJ2+340PmSB5nM+Fs3fXqdLEEkxaK xXFw== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=mediatek.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id n2si13598261ejl.693.2021.06.21.08.46.31; Mon, 21 Jun 2021 08:46:56 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=mediatek.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S230057AbhFUPrv (ORCPT + 99 others); Mon, 21 Jun 2021 11:47:51 -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