From patchwork Sat Nov 19 23:08:38 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Alexander Lobakin X-Patchwork-Id: 23350 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:adf:f944:0:0:0:0:0 with SMTP id q4csp898768wrr; Sat, 19 Nov 2022 15:11:03 -0800 (PST) X-Google-Smtp-Source: AA0mqf7XRJOAo6EWz/1Ds6Vnf5wBLlKgUNJ/Jbofup4x2DrsQyC6M31FrSXAIwFbY10gd4IOeT3R X-Received: by 2002:a63:ef50:0:b0:476:e813:1ae9 with SMTP id c16-20020a63ef50000000b00476e8131ae9mr12084320pgk.305.1668899463673; Sat, 19 Nov 2022 15:11:03 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1668899463; cv=none; d=google.com; s=arc-20160816; b=qxm9qblDSf/eYK+i8Nl/7rDicrBo0SRbB3KsrEJgJ9PDgG7tyZKTExpek2t8V7uuLP mrw3XSF+x+a/E51tmVwYKAPBJpevPJB/fo5sHCxUA5/VOalgvRZ8sTiIGTB0H9PxY98g WfCmyi+WvpCd1cLUijp8VePAnhm5/2lceSyMqKjGW4sxVLgHeOJkIs2MRzksGmGraAO5 A0zElyekxL4h+U8Q1QUV+zDLXmLT7h3LGBG1SfyIWRuh5Qiq3CciY1NcGG2+LakvSeHK /guxWT0qClMimaVFaAdfAEp5cwNpjemp8ZMs1MeOqodJCWI2NKQ1Ns2au2ZimPSOHmyx KdcA== 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 :feedback-id:references:in-reply-to:message-id:subject:cc:from:to :dkim-signature:date; bh=6VdnaXou6NR0qAZ4WE3kmJZHL9lSgizWaAZ3d9S6Fq0=; b=KRCUquPmZT9XBVFZydmKp4HOGRdFUwW8YUD+AwdU7n3jzs1eLt2yWpuHyztmeUgXZo 9DSVkZ57Za8L7hchxiEJYoWVv63NrM3Y3DY6UO6HvKWWjWpVC4/ybbrg0axTkOjv787a wsRRaPRjKf2NXsM5SGEuF+ueH6K7thvh/POAgJ/3MKeR04f0wPR6WdylQsysk62Hi5L/ WYWetlYxlsUwme97TCDYSuhwyrpYc80iCjd075yuky+1TGDnvi5K5xCH7rZTV7LjGkWQ arDsmi6oZvLcVrls1o2Ga2dS3GP+f/eUmhjLPZoiFrVlobrz1qIWAtArh7MeELwxhUsw 5gLg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@pm.me header.s=protonmail3 header.b=INXKOGkR; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=pm.me Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id g13-20020a63520d000000b00476898c6c27si7023519pgb.524.2022.11.19.15.10.50; Sat, 19 Nov 2022 15:11:03 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@pm.me header.s=protonmail3 header.b=INXKOGkR; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=pm.me Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S235298AbiKSXIy (ORCPT + 99 others); Sat, 19 Nov 2022 18:08:54 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:60992 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S235257AbiKSXIt (ORCPT ); Sat, 19 Nov 2022 18:08:49 -0500 Received: from mail-4316.protonmail.ch (mail-4316.protonmail.ch [185.70.43.16]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id D01151A229; Sat, 19 Nov 2022 15:08:44 -0800 (PST) Date: Sat, 19 Nov 2022 23:08:38 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=pm.me; s=protonmail3; t=1668899323; x=1669158523; bh=6VdnaXou6NR0qAZ4WE3kmJZHL9lSgizWaAZ3d9S6Fq0=; h=Date:To:From:Cc:Subject:Message-ID:In-Reply-To:References: Feedback-ID:From:To:Cc:Date:Subject:Reply-To:Feedback-ID: Message-ID:BIMI-Selector; b=INXKOGkRr2fEvjSVnH7n1ELGTYSOahKgcJ1OEsqxDE12WVvYIATZ1d9ka42M9pldj vlkF9bLkDrDpSVKsRgceOF9oregCmZmEgKdy02ovi9AJLizJjDjrV4PXbXh2KjRZeB GxZKdTv7/ZNCfyKKWy2ynBIoTDaki2bxc3FGoE5b4R7DiuTQcG7dIwgbeD+NHp7ZV3 8bBbypXTZ45UqlAPmE59QGuLxOFpIIclsEbniBv4dRGCwbc7kwmt1BVNN+fFpTUCav kGv+SbOKmyeJffXLU9ZxCaIzB+TmnZH/djqrpQVTNcnx79SZuj5dJIMv6OjmG08g/u sqy8nmjZNGQVA== To: linux-kbuild@vger.kernel.org From: Alexander Lobakin Cc: Alexander Lobakin , Masahiro Yamada , Nicolas Schier , Jens Axboe , Boris Brezillon , Borislav Petkov , Tony Luck , Miquel Raynal , Vladimir Oltean , Alexandre Belloni , Derek Chickles , Ioana Ciornei , Salil Mehta , Sunil Goutham , Grygorii Strashko , Daniel Scally , Hans de Goede , Mark Brown , Andy Shevchenko , NXP Linux Team , netdev@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH 12/18] mtd: tests: fix object shared between several modules Message-ID: <20221119225650.1044591-13-alobakin@pm.me> In-Reply-To: <20221119225650.1044591-1-alobakin@pm.me> References: <20221119225650.1044591-1-alobakin@pm.me> Feedback-ID: 22809121:user:proton MIME-Version: 1.0 X-Spam-Status: No, score=-2.1 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_MSPIKE_H2,SPF_HELO_PASS, SPF_PASS 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-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1749967923936807287?= X-GMAIL-MSGID: =?utf-8?q?1749967923936807287?= mtd_test.o is linked to 8(!) different test modules: > scripts/Makefile.build:252: ./drivers/mtd/tests/Makefile: mtd_test.o > is added to multiple modules: mtd_nandbiterrs mtd_oobtest mtd_pagetest > mtd_readtest mtd_speedtest mtd_stresstest mtd_subpagetest mtd_torturetest Although all of them share one Kconfig option (CONFIG_MTD_TESTS), it's better to not link one object file into several modules (and/or vmlinux). Under certain circumstances, such can lead to the situation fixed by commit 637a642f5ca5 ("zstd: Fixing mixed module-builtin objects"). In this particular case, there's also no need to duplicate the very same object code 8 times. Convert mtd_test.o to a standalone module which will export its functions to the rest. Fixes: a995c792280d ("mtd: tests: rename sources in order to link a helper object") Suggested-by: Masahiro Yamada Signed-off-by: Alexander Lobakin --- drivers/mtd/tests/Makefile | 17 +++++++++-------- drivers/mtd/tests/mtd_test.c | 9 +++++++++ drivers/mtd/tests/nandbiterrs.c | 2 ++ drivers/mtd/tests/oobtest.c | 2 ++ drivers/mtd/tests/pagetest.c | 2 ++ drivers/mtd/tests/readtest.c | 2 ++ drivers/mtd/tests/speedtest.c | 2 ++ drivers/mtd/tests/stresstest.c | 2 ++ drivers/mtd/tests/subpagetest.c | 2 ++ drivers/mtd/tests/torturetest.c | 2 ++ 10 files changed, 34 insertions(+), 8 deletions(-) -- 2.38.1 diff --git a/drivers/mtd/tests/Makefile b/drivers/mtd/tests/Makefile index 5de0378f90db..e3f86ed123ca 100644 --- a/drivers/mtd/tests/Makefile +++ b/drivers/mtd/tests/Makefile @@ -1,4 +1,5 @@ # SPDX-License-Identifier: GPL-2.0 +obj-$(CONFIG_MTD_TESTS) += mtd_test.o obj-$(CONFIG_MTD_TESTS) += mtd_oobtest.o obj-$(CONFIG_MTD_TESTS) += mtd_pagetest.o obj-$(CONFIG_MTD_TESTS) += mtd_readtest.o @@ -9,11 +10,11 @@ obj-$(CONFIG_MTD_TESTS) += mtd_torturetest.o obj-$(CONFIG_MTD_TESTS) += mtd_nandecctest.o obj-$(CONFIG_MTD_TESTS) += mtd_nandbiterrs.o -mtd_oobtest-objs := oobtest.o mtd_test.o -mtd_pagetest-objs := pagetest.o mtd_test.o -mtd_readtest-objs := readtest.o mtd_test.o -mtd_speedtest-objs := speedtest.o mtd_test.o -mtd_stresstest-objs := stresstest.o mtd_test.o -mtd_subpagetest-objs := subpagetest.o mtd_test.o -mtd_torturetest-objs := torturetest.o mtd_test.o -mtd_nandbiterrs-objs := nandbiterrs.o mtd_test.o +mtd_oobtest-objs := oobtest.o +mtd_pagetest-objs := pagetest.o +mtd_readtest-objs := readtest.o +mtd_speedtest-objs := speedtest.o +mtd_stresstest-objs := stresstest.o +mtd_subpagetest-objs := subpagetest.o +mtd_torturetest-objs := torturetest.o +mtd_nandbiterrs-objs := nandbiterrs.o diff --git a/drivers/mtd/tests/mtd_test.c b/drivers/mtd/tests/mtd_test.c index c84250beffdc..93920a714315 100644 --- a/drivers/mtd/tests/mtd_test.c +++ b/drivers/mtd/tests/mtd_test.c @@ -25,6 +25,7 @@ int mtdtest_erase_eraseblock(struct mtd_info *mtd, unsigned int ebnum) return 0; } +EXPORT_SYMBOL_NS_GPL(mtdtest_erase_eraseblock, MTD_TESTS); static int is_block_bad(struct mtd_info *mtd, unsigned int ebnum) { @@ -57,6 +58,7 @@ int mtdtest_scan_for_bad_eraseblocks(struct mtd_info *mtd, unsigned char *bbt, return 0; } +EXPORT_SYMBOL_NS_GPL(mtdtest_scan_for_bad_eraseblocks, MTD_TESTS); int mtdtest_erase_good_eraseblocks(struct mtd_info *mtd, unsigned char *bbt, unsigned int eb, int ebcnt) @@ -75,6 +77,7 @@ int mtdtest_erase_good_eraseblocks(struct mtd_info *mtd, unsigned char *bbt, return 0; } +EXPORT_SYMBOL_NS_GPL(mtdtest_erase_good_eraseblocks, MTD_TESTS); int mtdtest_read(struct mtd_info *mtd, loff_t addr, size_t size, void *buf) { @@ -92,6 +95,7 @@ int mtdtest_read(struct mtd_info *mtd, loff_t addr, size_t size, void *buf) return err; } +EXPORT_SYMBOL_NS_GPL(mtdtest_read, MTD_TESTS); int mtdtest_write(struct mtd_info *mtd, loff_t addr, size_t size, const void *buf) @@ -107,3 +111,8 @@ int mtdtest_write(struct mtd_info *mtd, loff_t addr, size_t size, return err; } +EXPORT_SYMBOL_NS_GPL(mtdtest_write, MTD_TESTS); + +MODULE_DESCRIPTION("MTD test common module"); +MODULE_AUTHOR("Adrian Hunter"); +MODULE_LICENSE("GPL"); diff --git a/drivers/mtd/tests/nandbiterrs.c b/drivers/mtd/tests/nandbiterrs.c index 98d7508f95b1..acf44edfca53 100644 --- a/drivers/mtd/tests/nandbiterrs.c +++ b/drivers/mtd/tests/nandbiterrs.c @@ -414,6 +414,8 @@ static void __exit mtd_nandbiterrs_exit(void) module_init(mtd_nandbiterrs_init); module_exit(mtd_nandbiterrs_exit); +MODULE_IMPORT_NS(MTD_TESTS); + MODULE_DESCRIPTION("NAND bit error recovery test"); MODULE_AUTHOR("Iwo Mergler"); MODULE_LICENSE("GPL"); diff --git a/drivers/mtd/tests/oobtest.c b/drivers/mtd/tests/oobtest.c index 13fed398937e..da4efcdd59b2 100644 --- a/drivers/mtd/tests/oobtest.c +++ b/drivers/mtd/tests/oobtest.c @@ -728,6 +728,8 @@ static void __exit mtd_oobtest_exit(void) } module_exit(mtd_oobtest_exit); +MODULE_IMPORT_NS(MTD_TESTS); + MODULE_DESCRIPTION("Out-of-band test module"); MODULE_AUTHOR("Adrian Hunter"); MODULE_LICENSE("GPL"); diff --git a/drivers/mtd/tests/pagetest.c b/drivers/mtd/tests/pagetest.c index 8eb40b6e6dfa..ac2bcc76b402 100644 --- a/drivers/mtd/tests/pagetest.c +++ b/drivers/mtd/tests/pagetest.c @@ -456,6 +456,8 @@ static void __exit mtd_pagetest_exit(void) } module_exit(mtd_pagetest_exit); +MODULE_IMPORT_NS(MTD_TESTS); + MODULE_DESCRIPTION("NAND page test"); MODULE_AUTHOR("Adrian Hunter"); MODULE_LICENSE("GPL"); diff --git a/drivers/mtd/tests/readtest.c b/drivers/mtd/tests/readtest.c index 99670ef91f2b..7e01dbc1e8ca 100644 --- a/drivers/mtd/tests/readtest.c +++ b/drivers/mtd/tests/readtest.c @@ -210,6 +210,8 @@ static void __exit mtd_readtest_exit(void) } module_exit(mtd_readtest_exit); +MODULE_IMPORT_NS(MTD_TESTS); + MODULE_DESCRIPTION("Read test module"); MODULE_AUTHOR("Adrian Hunter"); MODULE_LICENSE("GPL"); diff --git a/drivers/mtd/tests/speedtest.c b/drivers/mtd/tests/speedtest.c index 075bce32caa5..58f3701d65f2 100644 --- a/drivers/mtd/tests/speedtest.c +++ b/drivers/mtd/tests/speedtest.c @@ -413,6 +413,8 @@ static void __exit mtd_speedtest_exit(void) } module_exit(mtd_speedtest_exit); +MODULE_IMPORT_NS(MTD_TESTS); + MODULE_DESCRIPTION("Speed test module"); MODULE_AUTHOR("Adrian Hunter"); MODULE_LICENSE("GPL"); diff --git a/drivers/mtd/tests/stresstest.c b/drivers/mtd/tests/stresstest.c index 75b6ddc5dc4d..341d7cc86d89 100644 --- a/drivers/mtd/tests/stresstest.c +++ b/drivers/mtd/tests/stresstest.c @@ -227,6 +227,8 @@ static void __exit mtd_stresstest_exit(void) } module_exit(mtd_stresstest_exit); +MODULE_IMPORT_NS(MTD_TESTS); + MODULE_DESCRIPTION("Stress test module"); MODULE_AUTHOR("Adrian Hunter"); MODULE_LICENSE("GPL"); diff --git a/drivers/mtd/tests/subpagetest.c b/drivers/mtd/tests/subpagetest.c index 05250a080139..87ee2a5c518a 100644 --- a/drivers/mtd/tests/subpagetest.c +++ b/drivers/mtd/tests/subpagetest.c @@ -432,6 +432,8 @@ static void __exit mtd_subpagetest_exit(void) } module_exit(mtd_subpagetest_exit); +MODULE_IMPORT_NS(MTD_TESTS); + MODULE_DESCRIPTION("Subpage test module"); MODULE_AUTHOR("Adrian Hunter"); MODULE_LICENSE("GPL"); diff --git a/drivers/mtd/tests/torturetest.c b/drivers/mtd/tests/torturetest.c index 841689b4d86d..2de770f18724 100644 --- a/drivers/mtd/tests/torturetest.c +++ b/drivers/mtd/tests/torturetest.c @@ -475,6 +475,8 @@ static int countdiffs(unsigned char *buf, unsigned char *check_buf, return first; } +MODULE_IMPORT_NS(MTD_TESTS); + MODULE_DESCRIPTION("Eraseblock torturing module"); MODULE_AUTHOR("Artem Bityutskiy, Jarkko Lavinen, Adrian Hunter"); MODULE_LICENSE("GPL");