Messages in this thread Patch in this message | | | From | Harvey Yang <> | Subject | [PATCH 1/1] devtmpfs: Fix section mismatch warning | Date | Sun, 21 Aug 2011 10:44:15 +0800 |
| |
drivers/base/built-in.o(.text+0xe554): Section mismatch in reference f rom the function devtmpfsd() to the variable .init.data:setup_done The function devtmpfsd() references the variable __initdata setup_done. This is often because devtmpfsd lacks a __initdata annotation or the annotation of setup_done is wrong.
"setup_done" is not used after init. but putting it into initdata section leads a section mismatch warning, so initialize it dynamically in __init function.
Signed-off-by: Harvey Yang <harvey.huawei.yang@gmail.com> --- drivers/base/devtmpfs.c | 4 +++- 1 files changed, 3 insertions(+), 1 deletions(-)
diff --git a/drivers/base/devtmpfs.c b/drivers/base/devtmpfs.c index 33e1bed..d26b47b 100644 --- a/drivers/base/devtmpfs.c +++ b/drivers/base/devtmpfs.c @@ -376,7 +376,6 @@ int devtmpfs_mount(const char *mntdir) return err; } -static __initdata DECLARE_COMPLETION(setup_done); static int handle(const char *name, mode_t mode, struct device *dev) { @@ -430,6 +429,9 @@ out: */ int __init devtmpfs_init(void) { + struct compiletion setup_done; + init_compiletion(&setup_done); + int err = register_filesystem(&dev_fs_type); if (err) { printk(KERN_ERR "devtmpfs: unable to register devtmpfs " -- 1.7.2.5
| |