Add kconf_symbol attribute to kernel struct module.

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.

Signed-off-by: Cristina Moraru <[email protected]>
---
 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,
-- 
2.7.4

Reply via email to