UBI: block: Mark init-only symbol as __initdata
authorEzequiel Garcia <ezequiel.garcia@free-electrons.com>
Mon, 3 Mar 2014 16:42:38 +0000 (13:42 -0300)
committerArtem Bityutskiy <artem.bityutskiy@linux.intel.com>
Tue, 4 Mar 2014 12:49:43 +0000 (14:49 +0200)
ubiblock_param_ops should be marked as __init as it's only used to set
a driver parameter on insertion time. This commit fixes the following:

  WARNING: drivers/mtd/built-in.o(.text+0x653ac): Section mismatch in
  reference from the variable ubiblock_param_ops to the function
  .init.text:ubiblock_set_param()

  The function ubiblock_param_ops() references the function __init
  ubiblock_set_param(). This is often because ubiblock_param_ops lacks a
  __init annotation or the annotation of ubiblock_set_param is wrong.

Given gcc errors if the struct is marked const __initdata, this commit
drops the const mark from it.

Reported-by: kbuild test robot <fengguang.wu@intel.com>
Signed-off-by: Ezequiel Garcia <ezequiel.garcia@free-electrons.com>
Signed-off-by: Artem Bityutskiy <artem.bityutskiy@linux.intel.com>
drivers/mtd/ubi/block.c

index 6402e41e40b49bc9bc8ac6ede3a9aee24d4950fb..cd6be981be3032bc9f2a155aeffa294646a43a4f 100644 (file)
@@ -156,7 +156,7 @@ static int __init ubiblock_set_param(const char *val,
        return 0;
 }
 
-static const struct kernel_param_ops ubiblock_param_ops = {
+static struct kernel_param_ops ubiblock_param_ops __initdata = {
        .set    = ubiblock_set_param,
 };
 module_param_cb(block, &ubiblock_param_ops, NULL, 0);