From 7481b368632ee0154c6c44261b2f9022fb4db01d Mon Sep 17 00:00:00 2001 From: Kay Sievers Date: Fri, 24 Nov 2006 12:15:25 +0100 Subject: [PATCH] --- yaml --- r: 44558 b: refs/heads/master c: 1f71740ab9714bf5ae9ee04c724ff0d5c67ca3dc h: refs/heads/master v: v3 --- [refs] | 2 +- trunk/kernel/module.c | 25 +++++++++++++++++++++++++ 2 files changed, 26 insertions(+), 1 deletion(-) diff --git a/[refs] b/[refs] index aa18e719addf..5d85ff0729a5 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: aef6fba4f97bbec1dc5a253f388be9a4c7a30e41 +refs/heads/master: 1f71740ab9714bf5ae9ee04c724ff0d5c67ca3dc diff --git a/trunk/kernel/module.c b/trunk/kernel/module.c index d9eae45d0145..b565eaeff7e6 100644 --- a/trunk/kernel/module.c +++ b/trunk/kernel/module.c @@ -824,9 +824,34 @@ static inline void module_unload_init(struct module *mod) } #endif /* CONFIG_MODULE_UNLOAD */ +static ssize_t show_initstate(struct module_attribute *mattr, + struct module *mod, char *buffer) +{ + const char *state = "unknown"; + + switch (mod->state) { + case MODULE_STATE_LIVE: + state = "live"; + break; + case MODULE_STATE_COMING: + state = "coming"; + break; + case MODULE_STATE_GOING: + state = "going"; + break; + } + return sprintf(buffer, "%s\n", state); +} + +static struct module_attribute initstate = { + .attr = { .name = "initstate", .mode = 0444, .owner = THIS_MODULE }, + .show = show_initstate, +}; + static struct module_attribute *modinfo_attrs[] = { &modinfo_version, &modinfo_srcversion, + &initstate, #ifdef CONFIG_MODULE_UNLOAD &refcnt, #endif