Received: by 2002:a05:7412:d8a:b0:e2:908c:2ebd with SMTP id b10csp2746376rdg; Mon, 16 Oct 2023 13:37:16 -0700 (PDT) X-Google-Smtp-Source: AGHT+IFDc9rzArkfiOal3OIPmWGY6cjwKLQjlL8CTGMbNZXkL4NbnBKJcZ3DCJGPWYgB9CxWBMJ2 X-Received: by 2002:a05:6a20:7d8e:b0:162:4f45:b415 with SMTP id v14-20020a056a207d8e00b001624f45b415mr161028pzj.51.1697488635943; Mon, 16 Oct 2023 13:37:15 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1697488635; cv=none; d=google.com; s=arc-20160816; b=a+Fr651u92detrvPpPlf7Bq3EmwqULXOJqUmv6dNxdnbf7NYUhMsXIBnDMM4M2ytbg Hf28Wpk9Gsta1LLUvEHNOAd1osPQ04oGiKjqMW8I0uAo/mhQRgaG5hkh4yZ/V9hQrqtH HuzBZaebyPNMfpN5bEK5cEQ2Lu150lx7Ol9AqP6fP+bO1A7cxUQy7bjRrxiSl+tq/pwT Ya26TBQm3EMyUyzAjLs3dTMfXV41hIh9PrqIXnexX0WYTXUCgVzMdGMDbxWmo45u35JA osGHPnPw2N163ptSJ6K4l6qNFn5n8qD3XABZE2kPTNx8z7z+R+eQk78/7xqBO7UjWkv6 CbLA== 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=AodHtY5bOphDx4xnpuhtV1x5N9Vz2Fukampd5mQ9OLw=; fh=acSJnLg2ksj7SBK4X9ZWyEDM6GWMuhiNwdU1EnJ+KN0=; b=OjXhKv2uanokJMt99wIt1/7q0BdJXT6tQNiFN3uW1eckisgrEIKqPbtD9u8I3y64Jy W/ay7juYVXG6bW41IQ3DoWzEh0WKQwGSOKXud6AU6dZ5pfxSXxwiERpwfbQlCVJZ8rwj 8zrXDQoLuVTzJo7DHKCm4RLZ1P1aabFeXRFM+x9MRSm0jfbS+2PfR7Bwt68BpSlSfeIM dLp5z/+fzkC4QntHOEcBQIBHePzk3hTGkrhR6DVecCpc/kPQYu0UEInWsQ2G4OvgXwh4 /Fum+69/5SBQwEUn0jqltBbWhN0SchQyI/7IT6Nr5pCTzze0nRJJSNjQQ9HdpXuqk6L+ ueKg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@redhat.com header.s=mimecast20190719 header.b=Ko40Cfii; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.37 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=redhat.com Return-Path: Received: from snail.vger.email (snail.vger.email. [23.128.96.37]) by mx.google.com with ESMTPS id s4-20020a656904000000b005893a7c438esi94024pgq.689.2023.10.16.13.37.15 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 16 Oct 2023 13:37:15 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.37 as permitted sender) client-ip=23.128.96.37; Authentication-Results: mx.google.com; dkim=pass header.i=@redhat.com header.s=mimecast20190719 header.b=Ko40Cfii; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.37 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=redhat.com Received: from out1.vger.email (depot.vger.email [IPv6:2620:137:e000::3:0]) by snail.vger.email (Postfix) with ESMTP id 0FA01802925F; Mon, 16 Oct 2023 13:37:15 -0700 (PDT) X-Virus-Status: Clean X-Virus-Scanned: clamav-milter 0.103.10 at snail.vger.email Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S234270AbjJPUhN (ORCPT + 99 others); Mon, 16 Oct 2023 16:37:13 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:43658 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S234264AbjJPUhD (ORCPT ); Mon, 16 Oct 2023 16:37:03 -0400 Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.133.124]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 74DFD102 for ; Mon, 16 Oct 2023 13:36:04 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1697488563; 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=AodHtY5bOphDx4xnpuhtV1x5N9Vz2Fukampd5mQ9OLw=; b=Ko40CfiiFbCp2eLIAatQOeZSDxPk/Ij4ZhLYOzCjUDLWu/ObO24wSWJnuEEUax71opizf5 PguOI4JSt7e4gbOZWLOt/CYywsigUp+p7BZEl9EQa+jeLLUfHWsSzDO5r2M69SqHIP+b5C WQ6b4EKzs9+8xelvt9iMKD9pys2x7PM= Received: from mail-qt1-f198.google.com (mail-qt1-f198.google.com [209.85.160.198]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-524-k9SSOJ7gOomBzrm0dS0Y7Q-1; Mon, 16 Oct 2023 16:36:02 -0400 X-MC-Unique: k9SSOJ7gOomBzrm0dS0Y7Q-1 Received: by mail-qt1-f198.google.com with SMTP id d75a77b69052e-41810af14a4so58644431cf.0 for ; Mon, 16 Oct 2023 13:36:02 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1697488562; x=1698093362; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=AodHtY5bOphDx4xnpuhtV1x5N9Vz2Fukampd5mQ9OLw=; b=VKuOyZU9hxlJWT7+c+O3Y/Ol3zlir0tmbgFO7nyhSIS6Vqn3j4uOKHtM/V5HNp6MmS iAoV3y5mruwIojhBNSP61KXaXVWp+gxt9ePGO1unY7xnNB9IS8H/UTI1XACRiuGrGt/Z JgywMEPCHv/NLQaxFXZskEtSJqbntEYPnNzDxQ93mF9jXBcOSm2SjunPZ47c3VSf0osR Bo+PSt9GBErTnTxa7Gf6edHmEom6lrneVuiyXvdgUEUJVTzuxSFUwJosrVSm/HvzpsmA kwBRbPmyjoWmTEzcFy6EBbtgNSuO0tqREwKKyJ8LWCUtrvDNjSMge+21Ks3Oo1NBzmDq 5Qzg== X-Gm-Message-State: AOJu0YyVS7sonEq6amoDkFi9+RvfdmJ4895DEiR+63We/hW64KVwMu/b ryV/k2yG1vgv9RdNFkB+XUKoqopNkQHWUGXeDd7QGYADncEWahxYx8RHSPr7hLsiaovpfy+EGe5 gCaoQr7ukMm5Vv6hmyM4z50s= X-Received: by 2002:a05:622a:81:b0:412:3092:feab with SMTP id o1-20020a05622a008100b004123092feabmr454526qtw.50.1697488561995; Mon, 16 Oct 2023 13:36:01 -0700 (PDT) X-Received: by 2002:a05:622a:81:b0:412:3092:feab with SMTP id o1-20020a05622a008100b004123092feabmr454509qtw.50.1697488561688; Mon, 16 Oct 2023 13:36:01 -0700 (PDT) Received: from klayman.redhat.com (net-2-34-31-107.cust.vodafonedsl.it. [2.34.31.107]) by smtp.gmail.com with ESMTPSA id bp43-20020a05622a1bab00b0041520676966sm40052qtb.47.2023.10.16.13.35.58 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 16 Oct 2023 13:36:01 -0700 (PDT) From: Marco Pagani To: Brendan Higgins , David Gow , Rae Moar , Shuah Khan , Jinjie Ruan Cc: Marco Pagani , linux-kselftest@vger.kernel.org, kunit-dev@googlegroups.com, linux-kernel@vger.kernel.org Subject: [PATCH] kunit: run test suites only after module initialization completes Date: Mon, 16 Oct 2023 22:35:47 +0200 Message-ID: <20231016203548.21993-1-marpagan@redhat.com> X-Mailer: git-send-email 2.41.0 MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Spam-Status: No, score=-2.1 required=5.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF, RCVD_IN_DNSWL_BLOCKED,RCVD_IN_MSPIKE_H3,RCVD_IN_MSPIKE_WL, SPF_HELO_NONE,SPF_NONE 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 X-Greylist: Sender passed SPF test, not delayed by milter-greylist-4.6.4 (snail.vger.email [0.0.0.0]); Mon, 16 Oct 2023 13:37:15 -0700 (PDT) Commit 2810c1e99867 ("kunit: Fix wild-memory-access bug in kunit_free_suite_set()") is causing all test suites to run (when built as modules) while still in MODULE_STATE_COMING. In that state, test modules are not fully initialized and lack sysfs kobjects. This behavior can cause a crash if the test module tries to register fake devices. This patch restores the normal execution flow, waiting for the module initialization to complete before running the test suites. The issue reported in the commit mentioned above is addressed using virt_addr_valid() to detect if the module loading has failed and mod->kunit_suites has not been allocated using kmalloc_array(). Fixes: 2810c1e99867 ("kunit: Fix wild-memory-access bug in kunit_free_suite_set()") Signed-off-by: Marco Pagani --- lib/kunit/test.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/lib/kunit/test.c b/lib/kunit/test.c index 421f13981412..1a49569186fc 100644 --- a/lib/kunit/test.c +++ b/lib/kunit/test.c @@ -769,12 +769,14 @@ static void kunit_module_exit(struct module *mod) }; const char *action = kunit_action(); + if (!suite_set.start || !virt_addr_valid(suite_set.start)) + return; + if (!action) __kunit_test_suites_exit(mod->kunit_suites, mod->num_kunit_suites); - if (suite_set.start) - kunit_free_suite_set(suite_set); + kunit_free_suite_set(suite_set); } static int kunit_module_notify(struct notifier_block *nb, unsigned long val, @@ -784,12 +786,12 @@ static int kunit_module_notify(struct notifier_block *nb, unsigned long val, switch (val) { case MODULE_STATE_LIVE: + kunit_module_init(mod); break; case MODULE_STATE_GOING: kunit_module_exit(mod); break; case MODULE_STATE_COMING: - kunit_module_init(mod); break; case MODULE_STATE_UNFORMED: break; -- 2.41.0