Hi Harshad, Thank you for the patch! Perhaps something to improve: [auto build test WARNING on linus/master] [cannot apply to v5.3-rc1 next-20190722] [if your patch is applied to the wrong git tree, please drop us a note to help improve the system] url: https://github.com/0day-ci/linux/commits/Harshad-Shirwadkar/ext4-add-handling-for-extended-mount-options/20190723-001855 config: mips-allmodconfig (attached as .config) compiler: mips-linux-gcc (GCC) 7.4.0 reproduce: wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross chmod +x ~/bin/make.cross # save the attached .config to linux build tree GCC_VERSION=7.4.0 make.cross ARCH=mips If you fix the issue, kindly add following tag Reported-by: kbuild test robot All warnings (new ones prefixed by >>): In file included from include/linux/linkage.h:7:0, from include/linux/kernel.h:8, from include/linux/list.h:9, from include/linux/module.h:9, from fs/jbd2/journal.c:22: include/linux/export.h:81:20: error: redefinition of '__kstrtab_jbd2_complete_transaction' static const char __kstrtab_##sym[] \ ^ include/linux/export.h:120:25: note: in expansion of macro '___EXPORT_SYMBOL' #define __EXPORT_SYMBOL ___EXPORT_SYMBOL ^~~~~~~~~~~~~~~~ include/linux/export.h:124:2: note: in expansion of macro '__EXPORT_SYMBOL' __EXPORT_SYMBOL(sym, "") ^~~~~~~~~~~~~~~ fs/jbd2/journal.c:839:1: note: in expansion of macro 'EXPORT_SYMBOL' EXPORT_SYMBOL(jbd2_complete_transaction); ^~~~~~~~~~~~~ include/linux/export.h:81:20: note: previous definition of '__kstrtab_jbd2_complete_transaction' was here static const char __kstrtab_##sym[] \ ^ include/linux/export.h:120:25: note: in expansion of macro '___EXPORT_SYMBOL' #define __EXPORT_SYMBOL ___EXPORT_SYMBOL ^~~~~~~~~~~~~~~~ include/linux/export.h:124:2: note: in expansion of macro '__EXPORT_SYMBOL' __EXPORT_SYMBOL(sym, "") ^~~~~~~~~~~~~~~ fs/jbd2/journal.c:812:1: note: in expansion of macro 'EXPORT_SYMBOL' EXPORT_SYMBOL(jbd2_complete_transaction); ^~~~~~~~~~~~~ include/linux/export.h:67:36: error: redefinition of '__ksymtab_jbd2_complete_transaction' static const struct kernel_symbol __ksymtab_##sym \ ^ >> include/linux/export.h:84:2: note: in expansion of macro '__KSYMTAB_ENTRY' __KSYMTAB_ENTRY(sym, sec) ^~~~~~~~~~~~~~~ include/linux/export.h:120:25: note: in expansion of macro '___EXPORT_SYMBOL' #define __EXPORT_SYMBOL ___EXPORT_SYMBOL ^~~~~~~~~~~~~~~~ include/linux/export.h:124:2: note: in expansion of macro '__EXPORT_SYMBOL' __EXPORT_SYMBOL(sym, "") ^~~~~~~~~~~~~~~ fs/jbd2/journal.c:839:1: note: in expansion of macro 'EXPORT_SYMBOL' EXPORT_SYMBOL(jbd2_complete_transaction); ^~~~~~~~~~~~~ include/linux/export.h:67:36: note: previous definition of '__ksymtab_jbd2_complete_transaction' was here static const struct kernel_symbol __ksymtab_##sym \ ^ >> include/linux/export.h:84:2: note: in expansion of macro '__KSYMTAB_ENTRY' __KSYMTAB_ENTRY(sym, sec) ^~~~~~~~~~~~~~~ include/linux/export.h:120:25: note: in expansion of macro '___EXPORT_SYMBOL' #define __EXPORT_SYMBOL ___EXPORT_SYMBOL ^~~~~~~~~~~~~~~~ include/linux/export.h:124:2: note: in expansion of macro '__EXPORT_SYMBOL' __EXPORT_SYMBOL(sym, "") ^~~~~~~~~~~~~~~ fs/jbd2/journal.c:812:1: note: in expansion of macro 'EXPORT_SYMBOL' EXPORT_SYMBOL(jbd2_complete_transaction); ^~~~~~~~~~~~~ vim +/__KSYMTAB_ENTRY +84 include/linux/export.h 7290d58095712a8 Ard Biesheuvel 2018-08-21 76 f50169324df4ad9 Paul Gortmaker 2011-05-23 77 /* For every exported symbol, place a struct in the __ksymtab section */ f235541699bcf14 Nicolas Pitre 2016-01-22 78 #define ___EXPORT_SYMBOL(sym, sec) \ f50169324df4ad9 Paul Gortmaker 2011-05-23 79 extern typeof(sym) sym; \ f50169324df4ad9 Paul Gortmaker 2011-05-23 80 __CRC_SYMBOL(sym, sec) \ f50169324df4ad9 Paul Gortmaker 2011-05-23 81 static const char __kstrtab_##sym[] \ 7290d58095712a8 Ard Biesheuvel 2018-08-21 82 __attribute__((section("__ksymtab_strings"), used, aligned(1))) \ 94e58e0ac31284f Masahiro Yamada 2018-05-09 83 = #sym; \ 7290d58095712a8 Ard Biesheuvel 2018-08-21 @84 __KSYMTAB_ENTRY(sym, sec) f50169324df4ad9 Paul Gortmaker 2011-05-23 85 f922c4abdf76485 Ard Biesheuvel 2018-08-21 86 #if defined(__DISABLE_EXPORTS) f922c4abdf76485 Ard Biesheuvel 2018-08-21 87 f922c4abdf76485 Ard Biesheuvel 2018-08-21 88 /* f922c4abdf76485 Ard Biesheuvel 2018-08-21 89 * Allow symbol exports to be disabled completely so that C code may f922c4abdf76485 Ard Biesheuvel 2018-08-21 90 * be reused in other execution contexts such as the UEFI stub or the f922c4abdf76485 Ard Biesheuvel 2018-08-21 91 * decompressor. f922c4abdf76485 Ard Biesheuvel 2018-08-21 92 */ f922c4abdf76485 Ard Biesheuvel 2018-08-21 93 #define __EXPORT_SYMBOL(sym, sec) f922c4abdf76485 Ard Biesheuvel 2018-08-21 94 bbda5ec671d3fe6 Masahiro Yamada 2018-11-30 95 #elif defined(CONFIG_TRIM_UNUSED_KSYMS) bbda5ec671d3fe6 Masahiro Yamada 2018-11-30 96 bbda5ec671d3fe6 Masahiro Yamada 2018-11-30 97 #include c1a95fda2a40ae8 Nicolas Pitre 2016-01-22 98 c1a95fda2a40ae8 Nicolas Pitre 2016-01-22 99 /* c1a95fda2a40ae8 Nicolas Pitre 2016-01-22 100 * For fine grained build dependencies, we want to tell the build system c1a95fda2a40ae8 Nicolas Pitre 2016-01-22 101 * about each possible exported symbol even if they're not actually exported. bbda5ec671d3fe6 Masahiro Yamada 2018-11-30 102 * We use a symbol pattern __ksym_marker_ that the build system filters bbda5ec671d3fe6 Masahiro Yamada 2018-11-30 103 * from the $(NM) output (see scripts/gen_ksymdeps.sh). These symbols are bbda5ec671d3fe6 Masahiro Yamada 2018-11-30 104 * discarded in the final link stage. c1a95fda2a40ae8 Nicolas Pitre 2016-01-22 105 */ bbda5ec671d3fe6 Masahiro Yamada 2018-11-30 106 #define __ksym_marker(sym) \ bbda5ec671d3fe6 Masahiro Yamada 2018-11-30 107 static int __ksym_marker_##sym[0] __section(".discard.ksym") __used f235541699bcf14 Nicolas Pitre 2016-01-22 108 f235541699bcf14 Nicolas Pitre 2016-01-22 109 #define __EXPORT_SYMBOL(sym, sec) \ bbda5ec671d3fe6 Masahiro Yamada 2018-11-30 110 __ksym_marker(sym); \ 6023d2369ba7b82 Masahiro Yamada 2016-06-14 111 __cond_export_sym(sym, sec, __is_defined(__KSYM_##sym)) f235541699bcf14 Nicolas Pitre 2016-01-22 112 #define __cond_export_sym(sym, sec, conf) \ f235541699bcf14 Nicolas Pitre 2016-01-22 113 ___cond_export_sym(sym, sec, conf) f235541699bcf14 Nicolas Pitre 2016-01-22 114 #define ___cond_export_sym(sym, sec, enabled) \ f235541699bcf14 Nicolas Pitre 2016-01-22 115 __cond_export_sym_##enabled(sym, sec) f235541699bcf14 Nicolas Pitre 2016-01-22 116 #define __cond_export_sym_1(sym, sec) ___EXPORT_SYMBOL(sym, sec) f235541699bcf14 Nicolas Pitre 2016-01-22 117 #define __cond_export_sym_0(sym, sec) /* nothing */ f235541699bcf14 Nicolas Pitre 2016-01-22 118 f235541699bcf14 Nicolas Pitre 2016-01-22 119 #else f235541699bcf14 Nicolas Pitre 2016-01-22 120 #define __EXPORT_SYMBOL ___EXPORT_SYMBOL f235541699bcf14 Nicolas Pitre 2016-01-22 121 #endif f235541699bcf14 Nicolas Pitre 2016-01-22 122 f50169324df4ad9 Paul Gortmaker 2011-05-23 123 #define EXPORT_SYMBOL(sym) \ f50169324df4ad9 Paul Gortmaker 2011-05-23 @124 __EXPORT_SYMBOL(sym, "") f50169324df4ad9 Paul Gortmaker 2011-05-23 125 f50169324df4ad9 Paul Gortmaker 2011-05-23 126 #define EXPORT_SYMBOL_GPL(sym) \ f50169324df4ad9 Paul Gortmaker 2011-05-23 127 __EXPORT_SYMBOL(sym, "_gpl") f50169324df4ad9 Paul Gortmaker 2011-05-23 128 f50169324df4ad9 Paul Gortmaker 2011-05-23 129 #define EXPORT_SYMBOL_GPL_FUTURE(sym) \ f50169324df4ad9 Paul Gortmaker 2011-05-23 130 __EXPORT_SYMBOL(sym, "_gpl_future") f50169324df4ad9 Paul Gortmaker 2011-05-23 131 f50169324df4ad9 Paul Gortmaker 2011-05-23 132 #ifdef CONFIG_UNUSED_SYMBOLS f50169324df4ad9 Paul Gortmaker 2011-05-23 133 #define EXPORT_UNUSED_SYMBOL(sym) __EXPORT_SYMBOL(sym, "_unused") f50169324df4ad9 Paul Gortmaker 2011-05-23 134 #define EXPORT_UNUSED_SYMBOL_GPL(sym) __EXPORT_SYMBOL(sym, "_unused_gpl") f50169324df4ad9 Paul Gortmaker 2011-05-23 135 #else f50169324df4ad9 Paul Gortmaker 2011-05-23 136 #define EXPORT_UNUSED_SYMBOL(sym) f50169324df4ad9 Paul Gortmaker 2011-05-23 137 #define EXPORT_UNUSED_SYMBOL_GPL(sym) f50169324df4ad9 Paul Gortmaker 2011-05-23 138 #endif f50169324df4ad9 Paul Gortmaker 2011-05-23 139 f50169324df4ad9 Paul Gortmaker 2011-05-23 140 #endif /* __GENKSYMS__ */ f50169324df4ad9 Paul Gortmaker 2011-05-23 141 f50169324df4ad9 Paul Gortmaker 2011-05-23 142 #else /* !CONFIG_MODULES... */ f50169324df4ad9 Paul Gortmaker 2011-05-23 143 f50169324df4ad9 Paul Gortmaker 2011-05-23 144 #define EXPORT_SYMBOL(sym) f50169324df4ad9 Paul Gortmaker 2011-05-23 145 #define EXPORT_SYMBOL_GPL(sym) f50169324df4ad9 Paul Gortmaker 2011-05-23 146 #define EXPORT_SYMBOL_GPL_FUTURE(sym) f50169324df4ad9 Paul Gortmaker 2011-05-23 147 #define EXPORT_UNUSED_SYMBOL(sym) f50169324df4ad9 Paul Gortmaker 2011-05-23 148 #define EXPORT_UNUSED_SYMBOL_GPL(sym) f50169324df4ad9 Paul Gortmaker 2011-05-23 149 f50169324df4ad9 Paul Gortmaker 2011-05-23 150 #endif /* CONFIG_MODULES */ b92021b09df70c1 Rusty Russell 2013-03-15 151 #endif /* !__ASSEMBLY__ */ f50169324df4ad9 Paul Gortmaker 2011-05-23 152 f50169324df4ad9 Paul Gortmaker 2011-05-23 153 #endif /* _LINUX_EXPORT_H */ :::::: The code at line 84 was first introduced by commit :::::: 7290d58095712a89f845e1bca05334796dd49ed2 module: use relative references for __ksymtab entries :::::: TO: Ard Biesheuvel :::::: CC: Linus Torvalds --- 0-DAY kernel test infrastructure Open Source Technology Center https://lists.01.org/pipermail/kbuild-all Intel Corporation