Received: by 2002:a05:6a10:1a4d:0:0:0:0 with SMTP id nk13csp1652528pxb; Wed, 9 Feb 2022 01:15:38 -0800 (PST) X-Google-Smtp-Source: ABdhPJz158mhzHtfAu98OkP+8FtSvzhYWaLDMoRUiHEH/xwZ5ntV6RDJxesWE3eaDR4mey11Sfmq X-Received: by 2002:a17:902:d882:: with SMTP id b2mr1476053plz.162.1644398138165; Wed, 09 Feb 2022 01:15:38 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1644398138; cv=none; d=google.com; s=arc-20160816; b=E903yZhmrLv7ety5r4c2Kx6kMsktFGCPawUOBTmYVO8Z0nuq+X8Gf3Pq19BMdUwy/B lVwa4hbfaJFD7jPv9rjdxWf+3lyaOkwxCk0d3+26VotfRFW/QOTLjOohz4cHZk9CTON8 hg4XRU1bYEbuw96iiO2JWUzl9dtwhjpLhKfRkN/DskubGkniL/y/Plr7qOhERE8sVtAK NTa7DdeYFaLeeAxFXX7STjXNg/6uhzjhvBuxMOu5zkMnueHNjyjsp6YgRVv8gKXE1Ijk +miD3RdQ4L0KuM6PWxF6Lz6YVBkwvyZE4g1Qq8isS7mj3NxvklPedVu8RfzdwxoFMCNE yFdA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :message-id:date:subject:cc:to:from:dkim-signature; bh=gcjgT1JGS5YXvEC8btLC0N+cld9EBSbr9pVNw5PdFDA=; b=u2ywbr7yLNN7USFeRW2unM0/8ekunCMos7GvS7MknGft6RoHsxeyGF0wWAGLVlfuz4 K2C5ehUsjQaSbVpJuq9gnJBEpNtL5NUjI7yFlOLL9ZjOpYmUARSgW0rN/1bo2RNtcvzv CyjwoxOsO/YLBakhBJG2rX8vubJnaeyIuSNQ5cOWWdPnYxzPe/5Bp+GKilUVNFJTWNt1 5GfrbPbE5sI+0uauBerhnZmnzjl4amB+xbb5nuG1ZyDWa0lnFG86IlKLCkzu6g1vDhwd NStisrmZlK6emkXnuqFnqFKBt1YO/whaJJ9neeC3kkF9tYWg8tnKJADg9Utn3uyHwQKl EHJQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linux.dev header.s=key1 header.b=YwjFDHDp; 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=pass (p=NONE sp=NONE dis=NONE) header.from=linux.dev Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id o5si1722452pfg.202.2022.02.09.01.15.21; Wed, 09 Feb 2022 01:15:38 -0800 (PST) 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; dkim=pass header.i=@linux.dev header.s=key1 header.b=YwjFDHDp; 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=pass (p=NONE sp=NONE dis=NONE) header.from=linux.dev Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1385465AbiBHSsS (ORCPT + 99 others); Tue, 8 Feb 2022 13:48:18 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:42784 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1385455AbiBHSsP (ORCPT ); Tue, 8 Feb 2022 13:48:15 -0500 Received: from out1.migadu.com (out1.migadu.com [IPv6:2001:41d0:2:863f::]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 8F117C0612B8 for ; Tue, 8 Feb 2022 10:48:14 -0800 (PST) X-Report-Abuse: Please report any abuse attempt to abuse@migadu.com and include these headers. DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linux.dev; s=key1; t=1644346090; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version: content-transfer-encoding:content-transfer-encoding; bh=gcjgT1JGS5YXvEC8btLC0N+cld9EBSbr9pVNw5PdFDA=; b=YwjFDHDpUVOWsxMQhjaqg62TIJEVJAMmMjMpcWMzPmWPvhtEXTN4RpsoFoe8geQvMHhHUA vFTns2xWRjh/j2TG5fSJymx5r0Pyd5DICtZ2YqaS0YbWKMD7kyCmMVwfCtDslI/6KVwGJ6 nsJGiy/HAP6IZS+hEIWcWF9qLQ82RHA= From: andrey.konovalov@linux.dev To: Marco Elver , Andrew Morton Cc: Andrey Konovalov , Alexander Potapenko , Dmitry Vyukov , Andrey Ryabinin , kasan-dev@googlegroups.com, linux-mm@kvack.org, linux-kernel@vger.kernel.org, Andrey Konovalov Subject: [PATCH v2] kasan: test: prevent cache merging in kmem_cache_double_destroy Date: Tue, 8 Feb 2022 19:48:08 +0100 Message-Id: MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Migadu-Flow: FLOW_OUT X-Migadu-Auth-User: linux.dev X-Spam-Status: No, score=-2.1 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,SPF_HELO_NONE,SPF_PASS, T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Andrey Konovalov With HW_TAGS KASAN and kasan.stacktrace=off, the cache created in the kmem_cache_double_destroy() test might get merged with an existing one. Thus, the first kmem_cache_destroy() call won't actually destroy it but will only decrease the refcount. This causes the test to fail. Provide an empty constructor for the created cache to prevent the cache from getting merged. Fixes: f98f966cd750 ("kasan: test: add test case for double-kmem_cache_destroy()") Reviewed-by: Marco Elver Signed-off-by: Andrey Konovalov --- lib/test_kasan.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/lib/test_kasan.c b/lib/test_kasan.c index 26a5c9007653..3b413f8c8a71 100644 --- a/lib/test_kasan.c +++ b/lib/test_kasan.c @@ -869,11 +869,14 @@ static void kmem_cache_invalid_free(struct kunit *test) kmem_cache_destroy(cache); } +static void empty_cache_ctor(void *object) { } + static void kmem_cache_double_destroy(struct kunit *test) { struct kmem_cache *cache; - cache = kmem_cache_create("test_cache", 200, 0, 0, NULL); + /* Provide a constructor to prevent cache merging. */ + cache = kmem_cache_create("test_cache", 200, 0, 0, empty_cache_ctor); KUNIT_ASSERT_NOT_ERR_OR_NULL(test, cache); kmem_cache_destroy(cache); KUNIT_EXPECT_KASAN_FAIL(test, kmem_cache_destroy(cache)); -- 2.25.1