Re: [RFC PATCH 5/5] Add kconf_symb as kernel module attribute

From: Luis R. Rodriguez
Date: Thu Aug 18 2016 - 20:56:18 EST


On Wed, Aug 17, 2016 at 09:27:03PM +0200, Cristina Moraru wrote:
> Add kconf_symbol attribute to kernel struct module.

Nice, you can describe here what and how this can be
used by userspace, for instance you can mention how
udevadm might use this, etc.

> This patch is part of a research project within
> Google Summer of Code of porting 'make localmodconfig'
> for backported drivers. The goal is to enable each
> module to expose in /sys its corresponding CONFIG_* option.
> The value of this attribute will be dynamically pegged by
> modpost without requiring extra work from the driver developers.
> Further, this information will be used by a hardware interogation
> tool to extract build information about the existing devices.

You can leave this out.

> Signed-off-by: Cristina Moraru <cristina.moraru09@xxxxxxxxx>
> ---
> include/linux/module.h | 1 +
> kernel/module.c | 2 ++
> 2 files changed, 3 insertions(+)
>
> diff --git a/include/linux/module.h b/include/linux/module.h
> index 3daf2b3..bef5e44 100644
> --- a/include/linux/module.h
> +++ b/include/linux/module.h
> @@ -353,6 +353,7 @@ struct module {
> struct module_attribute *modinfo_attrs;
> const char *version;
> const char *srcversion;
> + const char *kconfig_symbol;
> struct kobject *holders_dir;
>
> /* Exported symbols */
> diff --git a/kernel/module.c b/kernel/module.c
> index 5f71aa6..bb27300 100644
> --- a/kernel/module.c
> +++ b/kernel/module.c
> @@ -757,6 +757,7 @@ static struct module_attribute modinfo_##field = { \
>
> MODINFO_ATTR(version);
> MODINFO_ATTR(srcversion);
> +MODINFO_ATTR(kconfig_symbol);
>
> static char last_unloaded_module[MODULE_NAME_LEN+1];
>
> @@ -1229,6 +1230,7 @@ static struct module_attribute *modinfo_attrs[] = {
> &module_uevent,
> &modinfo_version,
> &modinfo_srcversion,
> + &modinfo_kconfig_symbol,
> &modinfo_initstate,
> &modinfo_coresize,
> &modinfo_initsize,
> --

Do we #ifdef over other features that are optional?

Luis