From: Li Wang via ltp <ltp@lists.linux.it>
To: Cyril Hrubis <chrubis@suse.cz>
Cc: ltp@lists.linux.it
Subject: Re: [LTP] [PATCH 04/17] lib: tst_kconfig: Add module presence checks
Date: Fri, 3 Apr 2026 11:09:42 +0800 [thread overview]
Message-ID: <ac8vdjEM0awKPmHE@redhat.com> (raw)
In-Reply-To: <20260402121356.31266-5-chrubis@suse.cz>
On Thu, Apr 02, 2026 at 02:13:43PM +0200, Cyril Hrubis wrote:
> The .needs_kconfig and .needs_drivers fields in the tst_test structure
> had overlaping functionality. Both were checking if a functionality was
> build in into the kernel or compiled as a driver. Similarily to the
> runtime checks added to tst_kconfig modules can be build but packaged
> into separate packages and may not be installed on the system even if
> corresponding config option was set to 'm'.
>
> This commit adds a mapping table from CONFIG options to module names for
> the modules we care about. Most of the time the mapping is trivial, but
> some CONFIG options does not really match the module name, hence we need
> a mapping. We may also be able to generate the table from kernel config
> infrastructure later on, but at this point the number of options is
> small enough to be manageable by hand editing.
>
> Once we have that mapping we can run aditional check for a module
> presence if the confing option was set to 'm' and if mapping exists in
> order to disable the config option when the module was not found.
>
> Signed-off-by: Cyril Hrubis <chrubis@suse.cz>
> ---
> lib/tst_kconfig.c | 41 +++++++++++++++++++++++++++++++++++++++++
> 1 file changed, 41 insertions(+)
>
> diff --git a/lib/tst_kconfig.c b/lib/tst_kconfig.c
> index 52dd6d726..c5dd97a45 100644
> --- a/lib/tst_kconfig.c
> +++ b/lib/tst_kconfig.c
> @@ -144,6 +144,46 @@ static void runtime_check(struct tst_kconfig_var *var)
> }
> }
>
> +static struct module_check {
> + const char *config;
> + const char *module_name;
> +} module_checks[] = {
> + {"CONFIG_KVM", "kvm"},
> + {"CONFIG_ZRAM", "zram"},
> + {"CONFIG_SQUASHFS", "squashfs"},
> + {"CONFIG_BLK_DEV_LOOP", "loop"},
> + {"CONFIG_TUN", "tun"},
> + {"CONFIG_BLK_DEV_RAM", "brd"},
> + {"CONFIG_HWPOISON_INJECT", "hwpoison_inject"},
> + {"CONFIG_QFMT_V2", "quota_v2"},
> + {"CONFIG_INPUT_UINPUT", "uinput"},
> + {"CONFIG_DUMMY", "dummy"},
> + {"CONFIG_CAN_VCAN", "vcan"},
> + {"CONFIG_CAN_RAW", "can-raw"},
> + {"CONFIG_CAN_BCM", "can-bcm"},
> + {"CONFIG_IP_SCTP", "sctp"},
> + {}
> +};
Maybe rename the struct to:
static struct config_module_map {
const char *config;
const char *module_name;
} config_module_maps[] = {
...
}
And rename 'struct runtime_check' to:
static struct config_runtime_map {
const char *config;
bool (*runtime_check)(void);
} config_runtime_maps[] = {
...
};
This is a tiny nit; I don't have strong opinions.
> static inline int kconfig_parse_line(const char *line,
> struct tst_kconfig_var *vars,
> unsigned int vars_len)
> @@ -222,6 +262,7 @@ out:
> case 'm':
> vars[i].choice = 'm';
> runtime_check(&vars[i]);
> + module_check(&vars[i]);
Then rename the two functions to:
kconfig_runtime_check()
kconfig_module_check()
Because in tst_kconfig.c most function contains "kconfig_" string.
--
Regards,
Li Wang
--
Mailing list info: https://lists.linux.it/listinfo/ltp
next prev parent reply other threads:[~2026-04-03 3:10 UTC|newest]
Thread overview: 36+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-04-02 12:13 [LTP] [PATCH 00/17] Replace needs_drivers with needs_kconfigs Cyril Hrubis
2026-04-02 12:13 ` [LTP] [PATCH 01/17] syscalls: ioctl08: Remove .needs_drivers Cyril Hrubis
2026-04-02 21:34 ` Petr Vorel
2026-04-02 12:13 ` [LTP] [PATCH 02/17] lib: shell: Remove needs_drivers from JSON parser Cyril Hrubis
2026-04-02 21:29 ` Petr Vorel
2026-04-02 12:13 ` [LTP] [PATCH 03/17] lib: tst_kernel: Add tst_check_module_driver() Cyril Hrubis
2026-04-02 21:26 ` Petr Vorel
2026-04-02 21:47 ` Petr Vorel
2026-04-07 9:43 ` Cyril Hrubis
2026-04-07 11:15 ` Petr Vorel
2026-04-07 11:24 ` Cyril Hrubis
2026-04-08 7:06 ` Petr Vorel
2026-04-02 12:13 ` [LTP] [PATCH 04/17] lib: tst_kconfig: Add module presence checks Cyril Hrubis
2026-04-03 3:09 ` Li Wang via ltp [this message]
2026-04-07 10:05 ` Cyril Hrubis
2026-04-07 11:40 ` Li Wang via ltp
2026-04-07 11:44 ` Cyril Hrubis
2026-04-02 12:13 ` [LTP] [PATCH 05/17] tests: kvm: Switch from needs_drivers to needs_kconfigs Cyril Hrubis
2026-04-02 12:13 ` [LTP] [PATCH 06/17] tests: zram03: " Cyril Hrubis
2026-04-02 12:13 ` [LTP] [PATCH 07/17] tests: squashfs01: " Cyril Hrubis
2026-04-02 12:13 ` [LTP] [PATCH 08/17] tests: ioctl: " Cyril Hrubis
2026-04-02 12:13 ` [LTP] [PATCH 09/17] tests: madvise11: " Cyril Hrubis
2026-04-02 12:13 ` [LTP] [PATCH 10/17] tests: quotactl: " Cyril Hrubis
2026-04-02 12:13 ` [LTP] [PATCH 11/17] tests: uevent: " Cyril Hrubis
2026-04-02 12:13 ` [LTP] [PATCH 12/17] cve: tcindex01: " Cyril Hrubis
2026-04-02 12:13 ` [LTP] [PATCH 13/17] tests: can: " Cyril Hrubis
2026-04-02 12:13 ` [LTP] [PATCH 14/17] tests: fsetxattr: " Cyril Hrubis
2026-04-02 12:13 ` [LTP] [PATCH 15/17] sctp: " Cyril Hrubis
2026-04-02 12:13 ` [LTP] [PATCH 16/17] lib: tst_test: Remove now unused needs_drivers Cyril Hrubis
2026-04-03 3:01 ` Li Wang via ltp
2026-04-07 10:02 ` Cyril Hrubis
2026-04-07 11:39 ` Li Wang via ltp
2026-04-07 11:40 ` Cyril Hrubis
2026-04-02 12:13 ` [LTP] [PATCH 17/17] doc: metadata: Remove needs_drivers from docs Cyril Hrubis
2026-04-02 21:34 ` Petr Vorel
2026-04-02 21:59 ` [LTP] [PATCH 00/17] Replace needs_drivers with needs_kconfigs Petr Vorel
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=ac8vdjEM0awKPmHE@redhat.com \
--to=ltp@lists.linux.it \
--cc=chrubis@suse.cz \
--cc=liwang@redhat.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox