* [bcache:nvdimm-meta 2/16] drivers/md/bcache/nvm-pages.c:258:42: error: expected declaration specifiers before '; ' token
@ 2021-03-29 19:57 kernel test robot
0 siblings, 0 replies; only message in thread
From: kernel test robot @ 2021-03-29 19:57 UTC (permalink / raw)
To: kbuild-all
[-- Attachment #1: Type: text/plain, Size: 30491 bytes --]
tree: https://git.kernel.org/pub/scm/linux/kernel/git/colyli/linux-bcache.git nvdimm-meta
head: be0f72faa6d269aa7d824296859cd055f0ba61a0
commit: 9c528f4cca590ee66dee96866f6a7a67f873ccd1 [2/16] bcache: initialize the nvm pages allocator
config: mips-randconfig-r016-20210329 (attached as .config)
compiler: mips-linux-gcc (GCC) 9.3.0
reproduce (this is a W=1 build):
wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
chmod +x ~/bin/make.cross
# https://git.kernel.org/pub/scm/linux/kernel/git/colyli/linux-bcache.git/commit/?id=9c528f4cca590ee66dee96866f6a7a67f873ccd1
git remote add bcache https://git.kernel.org/pub/scm/linux/kernel/git/colyli/linux-bcache.git
git fetch --no-tags bcache nvdimm-meta
git checkout 9c528f4cca590ee66dee96866f6a7a67f873ccd1
# save the attached .config to linux build tree
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-9.3.0 make.cross ARCH=mips
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@intel.com>
All error/warnings (new ones prefixed by >>):
| ^~~~~~~~~~~~~~~~~~~~
include/linux/seq_file.h:260:27: error: storage class specified for parameter 'seq_hlist_next'
260 | extern struct hlist_node *seq_hlist_next(void *v, struct hlist_head *head,
| ^~~~~~~~~~~~~~
include/linux/seq_file.h:263:27: error: storage class specified for parameter 'seq_hlist_start_rcu'
263 | extern struct hlist_node *seq_hlist_start_rcu(struct hlist_head *head,
| ^~~~~~~~~~~~~~~~~~~
include/linux/seq_file.h:265:27: error: storage class specified for parameter 'seq_hlist_start_head_rcu'
265 | extern struct hlist_node *seq_hlist_start_head_rcu(struct hlist_head *head,
| ^~~~~~~~~~~~~~~~~~~~~~~~
include/linux/seq_file.h:267:27: error: storage class specified for parameter 'seq_hlist_next_rcu'
267 | extern struct hlist_node *seq_hlist_next_rcu(void *v,
| ^~~~~~~~~~~~~~~~~~
include/linux/seq_file.h:272:27: error: storage class specified for parameter 'seq_hlist_start_percpu'
272 | extern struct hlist_node *seq_hlist_start_percpu(struct hlist_head __percpu *head, int *cpu, loff_t pos);
| ^~~~~~~~~~~~~~~~~~~~~~
include/linux/seq_file.h:274:27: error: storage class specified for parameter 'seq_hlist_next_percpu'
274 | extern struct hlist_node *seq_hlist_next_percpu(void *v, struct hlist_head __percpu *head, int *cpu, loff_t *pos);
| ^~~~~~~~~~~~~~~~~~~~~
In file included from drivers/md/bcache/super.c:20:
include/linux/debugfs.h:21:1: warning: empty declaration
21 | struct device;
| ^~~~~~
include/linux/debugfs.h:22:1: warning: empty declaration
22 | struct file_operations;
| ^~~~~~
include/linux/debugfs.h:24:1: warning: empty declaration
24 | struct debugfs_blob_wrapper {
| ^~~~~~
include/linux/debugfs.h:29:1: warning: empty declaration
29 | struct debugfs_reg32 {
| ^~~~~~
include/linux/debugfs.h:34:1: warning: empty declaration
34 | struct debugfs_regset32 {
| ^~~~~~
include/linux/debugfs.h:41:1: warning: empty declaration
41 | struct debugfs_u32_array {
| ^~~~~~
include/linux/debugfs.h:46:23: error: storage class specified for parameter 'arch_debugfs_dir'
46 | extern struct dentry *arch_debugfs_dir;
| ^~~~~~~~~~~~~~~~
include/linux/debugfs.h:63:28: error: storage class specified for parameter 'debugfs_automount_t'
63 | typedef struct vfsmount *(*debugfs_automount_t)(struct dentry *, void *);
| ^~~~~~~~~~~~~~~~~~~
include/linux/debugfs.h:88:6: error: expected declaration specifiers or '...' before 'debugfs_automount_t'
88 | debugfs_automount_t f,
| ^~~~~~~~~~~~~~~~~~~
include/linux/debugfs.h:367:1: error: expected '=', ',', ';', 'asm' or '__attribute__' before '{' token
367 | {
| ^
In file included from include/linux/kmod.h:9,
from include/linux/module.h:16,
from drivers/md/bcache/super.c:25:
include/linux/umh.h:11:1: warning: empty declaration
11 | struct cred;
| ^~~~~~
include/linux/umh.h:12:1: warning: empty declaration
12 | struct file;
| ^~~~~~
include/linux/umh.h:19:1: warning: empty declaration
19 | struct subprocess_info {
| ^~~~~~
include/linux/umh.h:33:1: error: storage class specified for parameter 'call_usermodehelper'
33 | call_usermodehelper(const char *path, char **argv, char **envp, int wait);
| ^~~~~~~~~~~~~~~~~~~
include/linux/umh.h:36:1: error: storage class specified for parameter 'call_usermodehelper_setup'
36 | call_usermodehelper_setup(const char *path, char **argv, char **envp,
| ^~~~~~~~~~~~~~~~~~~~~~~~~
include/linux/umh.h:42:1: error: storage class specified for parameter 'call_usermodehelper_exec'
42 | call_usermodehelper_exec(struct subprocess_info *info, int wait);
| ^~~~~~~~~~~~~~~~~~~~~~~~
include/linux/umh.h:44:25: error: storage class specified for parameter 'usermodehelper_table'
44 | extern struct ctl_table usermodehelper_table[];
| ^~~~~~~~~~~~~~~~~~~~
include/linux/umh.h:46:1: warning: empty declaration
46 | enum umh_disable_depth {
| ^~~~
include/linux/umh.h:52:12: error: storage class specified for parameter '__usermodehelper_disable'
52 | extern int __usermodehelper_disable(enum umh_disable_depth depth);
| ^~~~~~~~~~~~~~~~~~~~~~~~
include/linux/umh.h:53:13: error: storage class specified for parameter '__usermodehelper_set_disable_depth'
53 | extern void __usermodehelper_set_disable_depth(enum umh_disable_depth depth);
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
include/linux/umh.h:56:1: error: expected '=', ',', ';', 'asm' or '__attribute__' before '{' token
56 | {
| ^
include/linux/umh.h:61:1: error: expected '=', ',', ';', 'asm' or '__attribute__' before '{' token
61 | {
| ^
include/linux/umh.h:65:12: error: storage class specified for parameter 'usermodehelper_read_trylock'
65 | extern int usermodehelper_read_trylock(void);
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~
include/linux/umh.h:66:13: error: storage class specified for parameter 'usermodehelper_read_lock_wait'
66 | extern long usermodehelper_read_lock_wait(long timeout);
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
include/linux/umh.h:67:13: error: storage class specified for parameter 'usermodehelper_read_unlock'
67 | extern void usermodehelper_read_unlock(void);
| ^~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from include/linux/module.h:16,
from drivers/md/bcache/super.c:25:
>> include/linux/kmod.h:30:57: error: expected '=', ',', ';', 'asm' or '__attribute__' before '{' token
30 | static inline int request_module(const char *name, ...) { return -ENOSYS; }
| ^
include/linux/kmod.h:31:64: error: expected '=', ',', ';', 'asm' or '__attribute__' before '{' token
31 | static inline int request_module_nowait(const char *name, ...) { return -ENOSYS; }
| ^
In file included from arch/mips/include/asm/elf.h:15,
from include/linux/elf.h:6,
from include/linux/module.h:18,
from drivers/md/bcache/super.c:25:
include/uapi/linux/elf.h:9:15: error: storage class specified for parameter 'Elf32_Addr'
9 | typedef __u32 Elf32_Addr;
| ^~~~~~~~~~
include/uapi/linux/elf.h:10:15: error: storage class specified for parameter 'Elf32_Half'
10 | typedef __u16 Elf32_Half;
| ^~~~~~~~~~
include/uapi/linux/elf.h:11:15: error: storage class specified for parameter 'Elf32_Off'
11 | typedef __u32 Elf32_Off;
| ^~~~~~~~~
include/uapi/linux/elf.h:12:15: error: storage class specified for parameter 'Elf32_Sword'
12 | typedef __s32 Elf32_Sword;
| ^~~~~~~~~~~
include/uapi/linux/elf.h:13:15: error: storage class specified for parameter 'Elf32_Word'
13 | typedef __u32 Elf32_Word;
| ^~~~~~~~~~
include/uapi/linux/elf.h:16:15: error: storage class specified for parameter 'Elf64_Addr'
16 | typedef __u64 Elf64_Addr;
| ^~~~~~~~~~
include/uapi/linux/elf.h:17:15: error: storage class specified for parameter 'Elf64_Half'
17 | typedef __u16 Elf64_Half;
| ^~~~~~~~~~
include/uapi/linux/elf.h:18:15: error: storage class specified for parameter 'Elf64_SHalf'
18 | typedef __s16 Elf64_SHalf;
| ^~~~~~~~~~~
include/uapi/linux/elf.h:19:15: error: storage class specified for parameter 'Elf64_Off'
19 | typedef __u64 Elf64_Off;
| ^~~~~~~~~
include/uapi/linux/elf.h:20:15: error: storage class specified for parameter 'Elf64_Sword'
20 | typedef __s32 Elf64_Sword;
| ^~~~~~~~~~~
include/uapi/linux/elf.h:21:15: error: storage class specified for parameter 'Elf64_Word'
21 | typedef __u32 Elf64_Word;
| ^~~~~~~~~~
include/uapi/linux/elf.h:22:15: error: storage class specified for parameter 'Elf64_Xword'
22 | typedef __u64 Elf64_Xword;
| ^~~~~~~~~~~
include/uapi/linux/elf.h:23:15: error: storage class specified for parameter 'Elf64_Sxword'
23 | typedef __s64 Elf64_Sxword;
| ^~~~~~~~~~~~
include/uapi/linux/elf.h:140:3: error: expected specifier-qualifier-list before 'Elf32_Sword'
140 | Elf32_Sword d_tag;
| ^~~~~~~~~~~
include/uapi/linux/elf.h:145:3: error: storage class specified for parameter 'Elf32_Dyn'
145 | } Elf32_Dyn;
| ^~~~~~~~~
include/uapi/linux/elf.h:148:3: error: expected specifier-qualifier-list before 'Elf64_Sxword'
148 | Elf64_Sxword d_tag; /* entry tag value */
| ^~~~~~~~~~~~
include/uapi/linux/elf.h:153:3: error: storage class specified for parameter 'Elf64_Dyn'
153 | } Elf64_Dyn;
| ^~~~~~~~~
include/uapi/linux/elf.h:163:3: error: expected specifier-qualifier-list before 'Elf32_Addr'
163 | Elf32_Addr r_offset;
| ^~~~~~~~~~
include/uapi/linux/elf.h:165:3: error: storage class specified for parameter 'Elf32_Rel'
165 | } Elf32_Rel;
| ^~~~~~~~~
include/uapi/linux/elf.h:168:3: error: expected specifier-qualifier-list before 'Elf64_Addr'
168 | Elf64_Addr r_offset; /* Location at which to apply the action */
| ^~~~~~~~~~
include/uapi/linux/elf.h:170:3: error: storage class specified for parameter 'Elf64_Rel'
170 | } Elf64_Rel;
| ^~~~~~~~~
include/uapi/linux/elf.h:173:3: error: expected specifier-qualifier-list before 'Elf32_Addr'
173 | Elf32_Addr r_offset;
| ^~~~~~~~~~
include/uapi/linux/elf.h:176:3: error: storage class specified for parameter 'Elf32_Rela'
176 | } Elf32_Rela;
| ^~~~~~~~~~
include/uapi/linux/elf.h:179:3: error: expected specifier-qualifier-list before 'Elf64_Addr'
179 | Elf64_Addr r_offset; /* Location at which to apply the action */
| ^~~~~~~~~~
include/uapi/linux/elf.h:182:3: error: storage class specified for parameter 'Elf64_Rela'
182 | } Elf64_Rela;
| ^~~~~~~~~~
include/uapi/linux/elf.h:185:3: error: expected specifier-qualifier-list before 'Elf32_Word'
185 | Elf32_Word st_name;
| ^~~~~~~~~~
include/uapi/linux/elf.h:191:3: error: storage class specified for parameter 'Elf32_Sym'
191 | } Elf32_Sym;
| ^~~~~~~~~
include/uapi/linux/elf.h:194:3: error: expected specifier-qualifier-list before 'Elf64_Word'
194 | Elf64_Word st_name; /* Symbol name, index in string tbl */
| ^~~~~~~~~~
include/uapi/linux/elf.h:200:3: error: storage class specified for parameter 'Elf64_Sym'
200 | } Elf64_Sym;
| ^~~~~~~~~
include/uapi/linux/elf.h:207:3: error: expected specifier-qualifier-list before 'Elf32_Half'
207 | Elf32_Half e_type;
| ^~~~~~~~~~
include/uapi/linux/elf.h:220:3: error: storage class specified for parameter 'Elf32_Ehdr'
220 | } Elf32_Ehdr;
| ^~~~~~~~~~
include/uapi/linux/elf.h:224:3: error: expected specifier-qualifier-list before 'Elf64_Half'
224 | Elf64_Half e_type;
| ^~~~~~~~~~
include/uapi/linux/elf.h:237:3: error: storage class specified for parameter 'Elf64_Ehdr'
237 | } Elf64_Ehdr;
| ^~~~~~~~~~
include/uapi/linux/elf.h:246:3: error: expected specifier-qualifier-list before 'Elf32_Word'
246 | Elf32_Word p_type;
| ^~~~~~~~~~
include/uapi/linux/elf.h:254:3: error: storage class specified for parameter 'Elf32_Phdr'
254 | } Elf32_Phdr;
| ^~~~~~~~~~
include/uapi/linux/elf.h:257:3: error: expected specifier-qualifier-list before 'Elf64_Word'
257 | Elf64_Word p_type;
| ^~~~~~~~~~
include/uapi/linux/elf.h:265:3: error: storage class specified for parameter 'Elf64_Phdr'
265 | } Elf64_Phdr;
| ^~~~~~~~~~
include/uapi/linux/elf.h:305:3: error: expected specifier-qualifier-list before 'Elf32_Word'
305 | Elf32_Word sh_name;
| ^~~~~~~~~~
include/uapi/linux/elf.h:315:3: error: storage class specified for parameter 'Elf32_Shdr'
315 | } Elf32_Shdr;
| ^~~~~~~~~~
include/uapi/linux/elf.h:318:3: error: expected specifier-qualifier-list before 'Elf64_Word'
318 | Elf64_Word sh_name; /* Section name, index in string tbl */
| ^~~~~~~~~~
include/uapi/linux/elf.h:328:3: error: storage class specified for parameter 'Elf64_Shdr'
328 | } Elf64_Shdr;
| ^~~~~~~~~~
include/uapi/linux/elf.h:440:3: error: expected specifier-qualifier-list before 'Elf32_Word'
440 | Elf32_Word n_namesz; /* Name size */
| ^~~~~~~~~~
include/uapi/linux/elf.h:443:3: error: storage class specified for parameter 'Elf32_Nhdr'
443 | } Elf32_Nhdr;
| ^~~~~~~~~~
include/uapi/linux/elf.h:447:3: error: expected specifier-qualifier-list before 'Elf64_Word'
447 | Elf64_Word n_namesz; /* Name size */
| ^~~~~~~~~~
include/uapi/linux/elf.h:450:3: error: storage class specified for parameter 'Elf64_Nhdr'
450 | } Elf64_Nhdr;
| ^~~~~~~~~~
In file included from include/linux/elf.h:6,
from include/linux/module.h:18,
from drivers/md/bcache/super.c:25:
>> arch/mips/include/asm/elf.h:189:1: warning: empty declaration
189 | struct mips_elf_abiflags_v0 {
| ^~~~~~
>> arch/mips/include/asm/elf.h:208:23: error: storage class specified for parameter 'elf_greg_t'
208 | typedef unsigned long elf_greg_t;
| ^~~~~~~~~~
>> arch/mips/include/asm/elf.h:209:20: error: expected '=', ',', ';', 'asm' or '__attribute__' before 'elf_gregset_t'
209 | typedef elf_greg_t elf_gregset_t[ELF_NGREG];
| ^~~~~~~~~~~~~
>> arch/mips/include/asm/elf.h:211:16: error: storage class specified for parameter 'elf_fpreg_t'
211 | typedef double elf_fpreg_t;
| ^~~~~~~~~~~
>> arch/mips/include/asm/elf.h:212:21: error: expected '=', ',', ';', 'asm' or '__attribute__' before 'elf_fpregset_t'
212 | typedef elf_fpreg_t elf_fpregset_t[ELF_NFPREG];
| ^~~~~~~~~~~~~~
arch/mips/include/asm/elf.h:321:1: warning: empty declaration
321 | struct mips_abi;
| ^~~~~~
>> arch/mips/include/asm/elf.h:323:24: error: storage class specified for parameter 'mips_abi'
323 | extern struct mips_abi mips_abi;
| ^~~~~~~~
>> arch/mips/include/asm/elf.h:324:24: error: storage class specified for parameter 'mips_abi_32'
324 | extern struct mips_abi mips_abi_32;
| ^~~~~~~~~~~
>> arch/mips/include/asm/elf.h:325:24: error: storage class specified for parameter 'mips_abi_n32'
325 | extern struct mips_abi mips_abi_n32;
| ^~~~~~~~~~~~
>> arch/mips/include/asm/elf.h:421:21: error: storage class specified for parameter 'elf_hwcap'
421 | extern unsigned int elf_hwcap;
| ^~~~~~~~~
In file included from include/linux/elf.h:6,
from include/linux/module.h:18,
from drivers/md/bcache/super.c:25:
>> arch/mips/include/asm/elf.h:431:20: error: storage class specified for parameter '__elf_platform'
431 | extern const char *__elf_platform;
| ^~~~~~~~~~~~~~
>> arch/mips/include/asm/elf.h:434:20: error: storage class specified for parameter '__elf_base_platform'
434 | extern const char *__elf_base_platform;
| ^~~~~~~~~~~~~~~~~~~
arch/mips/include/asm/elf.h:466:1: warning: empty declaration
466 | struct linux_binprm;
| ^~~~~~
>> arch/mips/include/asm/elf.h:467:12: error: storage class specified for parameter 'arch_setup_additional_pages'
467 | extern int arch_setup_additional_pages(struct linux_binprm *bprm,
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~
arch/mips/include/asm/elf.h:472:1: warning: empty declaration
472 | struct arch_elf_state {
| ^~~~~~
>> arch/mips/include/asm/elf.h:488:12: error: storage class specified for parameter 'arch_elf_pt_proc'
488 | extern int arch_elf_pt_proc(void *ehdr, void *phdr, struct file *elf,
| ^~~~~~~~~~~~~~~~
>> arch/mips/include/asm/elf.h:491:12: error: storage class specified for parameter 'arch_check_elf'
491 | extern int arch_check_elf(void *ehdr, bool has_interpreter, void *interp_ehdr,
| ^~~~~~~~~~~~~~
>> arch/mips/include/asm/elf.h:495:13: error: storage class specified for parameter 'mips_use_nan_legacy'
495 | extern bool mips_use_nan_legacy;
| ^~~~~~~~~~~~~~~~~~~
>> arch/mips/include/asm/elf.h:496:13: error: storage class specified for parameter 'mips_use_nan_2008'
496 | extern bool mips_use_nan_2008;
| ^~~~~~~~~~~~~~~~~
>> arch/mips/include/asm/elf.h:498:13: error: storage class specified for parameter 'mips_set_personality_nan'
498 | extern void mips_set_personality_nan(struct arch_elf_state *state);
| ^~~~~~~~~~~~~~~~~~~~~~~~
>> arch/mips/include/asm/elf.h:499:13: error: storage class specified for parameter 'mips_set_personality_fp'
499 | extern void mips_set_personality_fp(struct arch_elf_state *state);
| ^~~~~~~~~~~~~~~~~~~~~~~
>> arch/mips/include/asm/elf.h:518:12: error: storage class specified for parameter 'mips_elf_read_implies_exec'
518 | extern int mips_elf_read_implies_exec(void *elf_ex, int exstack);
| ^~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from include/linux/module.h:18,
from drivers/md/bcache/super.c:25:
include/linux/elf.h:40:18: error: expected '=', ',', ';', 'asm' or '__attribute__' before '_DYNAMIC'
40 | extern Elf32_Dyn _DYNAMIC [];
| ^~~~~~~~
include/linux/elf.h:65:1: warning: empty declaration
65 | struct file;
| ^~~~~~
include/linux/elf.h:66:1: warning: empty declaration
66 | struct coredump_params;
| ^~~~~~
include/linux/elf.h:69:55: error: expected '=', ',', ';', 'asm' or '__attribute__' before '{' token
69 | static inline int elf_coredump_extra_notes_size(void) { return 0; }
| ^
include/linux/elf.h:70:80: error: expected '=', ',', ';', 'asm' or '__attribute__' before '{' token
70 | static inline int elf_coredump_extra_notes_write(struct coredump_params *cprm) { return 0; }
| ^
include/linux/elf.h:81:1: warning: empty declaration
81 | struct gnu_property {
| ^~~~~~
include/linux/elf.h:86:1: warning: empty declaration
86 | struct arch_elf_state;
| ^~~~~~
include/linux/elf.h:92:1: error: expected '=', ',', ';', 'asm' or '__attribute__' before '{' token
92 | {
| ^
include/linux/elf.h:107:1: error: expected '=', ',', ';', 'asm' or '__attribute__' before '{' token
107 | {
| ^
In file included from include/linux/module.h:21,
from drivers/md/bcache/super.c:25:
include/linux/moduleparam.h:36:1: warning: empty declaration
36 | struct kernel_param;
| ^~~~~~
include/linux/moduleparam.h:43:1: warning: empty declaration
43 | enum {
| ^~~~
include/linux/moduleparam.h:47:1: warning: empty declaration
47 | struct kernel_param_ops {
| ^~~~~~
include/linux/moduleparam.h:64:1: warning: empty declaration
64 | enum {
| ^~~~
include/linux/moduleparam.h:69:1: warning: empty declaration
69 | struct kernel_param {
| ^~~~~~
include/linux/moduleparam.h:83:34: error: storage class specified for parameter '__start___param'
83 | extern const struct kernel_param __start___param[], __stop___param[];
| ^~~~~~~~~~~~~~~
include/linux/moduleparam.h:83:53: error: storage class specified for parameter '__stop___param'
83 | extern const struct kernel_param __start___param[], __stop___param[];
| ^~~~~~~~~~~~~~
include/linux/moduleparam.h:86:1: warning: empty declaration
86 | struct kparam_string {
| ^~~~~~
include/linux/moduleparam.h:92:1: warning: empty declaration
92 | struct kparam_array
| ^~~~~~
include/linux/moduleparam.h:304:13: error: storage class specified for parameter 'kernel_param_lock'
304 | extern void kernel_param_lock(struct module *mod);
| ^~~~~~~~~~~~~~~~~
include/linux/moduleparam.h:305:13: error: storage class specified for parameter 'kernel_param_unlock'
305 | extern void kernel_param_unlock(struct module *mod);
| ^~~~~~~~~~~~~~~~~~~
include/linux/moduleparam.h:372:13: error: storage class specified for parameter 'parameq'
372 | extern bool parameq(const char *name1, const char *name2);
| ^~~~~~~
include/linux/moduleparam.h:382:13: error: storage class specified for parameter 'parameqn'
382 | extern bool parameqn(const char *name1, const char *name2, size_t n);
| ^~~~~~~~
include/linux/moduleparam.h:385:14: error: storage class specified for parameter 'parse_args'
385 | extern char *parse_args(const char *name,
| ^~~~~~~~~~
include/linux/moduleparam.h:397:13: error: storage class specified for parameter 'destroy_params'
397 | extern void destroy_params(const struct kernel_param *params, unsigned num);
| ^~~~~~~~~~~~~~
include/linux/moduleparam.h:411:38: error: storage class specified for parameter 'param_ops_byte'
411 | extern const struct kernel_param_ops param_ops_byte;
| ^~~~~~~~~~~~~~
include/linux/moduleparam.h:412:12: error: storage class specified for parameter 'param_set_byte'
412 | extern int param_set_byte(const char *val, const struct kernel_param *kp);
| ^~~~~~~~~~~~~~
include/linux/moduleparam.h:413:12: error: storage class specified for parameter 'param_get_byte'
413 | extern int param_get_byte(char *buffer, const struct kernel_param *kp);
| ^~~~~~~~~~~~~~
include/linux/moduleparam.h:416:38: error: storage class specified for parameter 'param_ops_short'
416 | extern const struct kernel_param_ops param_ops_short;
| ^~~~~~~~~~~~~~~
include/linux/moduleparam.h:417:12: error: storage class specified for parameter 'param_set_short'
417 | extern int param_set_short(const char *val, const struct kernel_param *kp);
| ^~~~~~~~~~~~~~~
include/linux/moduleparam.h:418:12: error: storage class specified for parameter 'param_get_short'
418 | extern int param_get_short(char *buffer, const struct kernel_param *kp);
| ^~~~~~~~~~~~~~~
include/linux/moduleparam.h:421:38: error: storage class specified for parameter 'param_ops_ushort'
421 | extern const struct kernel_param_ops param_ops_ushort;
| ^~~~~~~~~~~~~~~~
include/linux/moduleparam.h:422:12: error: storage class specified for parameter 'param_set_ushort'
..
vim +258 drivers/md/bcache/nvm-pages.c
120
121 struct bch_nvm_namespace *bch_register_namespace(const char *dev_path)
122 {
123 struct bch_nvm_namespace *ns;
124 int err;
125 pgoff_t pgoff;
126 char buf[BDEVNAME_SIZE];
127 struct block_device *bdev;
128 uint64_t expected_csum;
129 int id;
130 char *path = NULL;
131
132 path = kstrndup(dev_path, 512, GFP_KERNEL);
133 if (!path) {
134 pr_err("kstrndup failed\n");
135 return ERR_PTR(-ENOMEM);
136 }
137
138 bdev = blkdev_get_by_path(strim(path),
139 FMODE_READ|FMODE_WRITE|FMODE_EXEC,
140 only_set);
141 if (IS_ERR(bdev)) {
142 pr_info("get %s error: %ld\n", dev_path, PTR_ERR(bdev));
143 kfree(path);
144 return ERR_PTR(PTR_ERR(bdev));
145 }
146
147 ns = kzalloc(sizeof(struct bch_nvm_namespace), GFP_KERNEL);
148 if (!ns)
149 goto bdput;
150
151 err = -EIO;
152 if (read_nvdimm_meta_super(bdev, ns)) {
153 pr_info("%s read nvdimm meta super block failed.\n",
154 bdevname(bdev, buf));
155 goto free_ns;
156 }
157
158 err = -EOPNOTSUPP;
159 if (!bdev_dax_supported(bdev, ns->page_size)) {
160 pr_info("%s don't support DAX\n", bdevname(bdev, buf));
161 goto free_ns;
162 }
163
164 err = -EINVAL;
165 if (bdev_dax_pgoff(bdev, 0, ns->page_size, &pgoff)) {
166 pr_info("invalid offset of %s\n", bdevname(bdev, buf));
167 goto free_ns;
168 }
169
170 err = -ENOMEM;
171 ns->dax_dev = fs_dax_get_by_bdev(bdev);
172 if (!ns->dax_dev) {
173 pr_info("can't by dax device by %s\n", bdevname(bdev, buf));
174 goto free_ns;
175 }
176
177 err = -EINVAL;
178 id = dax_read_lock();
179 if (dax_direct_access(ns->dax_dev, pgoff, ns->pages_total,
180 &ns->kaddr, &ns->start_pfn) <= 0) {
181 pr_info("dax_direct_access error\n");
182 dax_read_unlock(id);
183 goto free_ns;
184 }
185 dax_read_unlock(id);
186
187 ns->sb = ns->kaddr + BCH_NVM_PAGES_SB_OFFSET;
188
189 if (memcmp(ns->sb->magic, bch_nvm_pages_magic, 16)) {
190 pr_info("invalid bch_nvm_pages_magic\n");
191 goto free_ns;
192 }
193
194 if (ns->sb->sb_offset != BCH_NVM_PAGES_SB_OFFSET) {
195 pr_info("invalid superblock offset\n");
196 goto free_ns;
197 }
198
199 if (ns->sb->total_namespaces_nr != 1) {
200 pr_info("only one nvm device\n");
201 goto free_ns;
202 }
203
204 expected_csum = csum_set(ns->sb);
205 if (expected_csum != ns->sb->csum) {
206 pr_info("csum is not match with expected one\n");
207 goto free_ns;
208 }
209
210 err = -EEXIST;
211 if (!attach_nvm_set(ns))
212 goto free_ns;
213
214 // Firstly attach
215 if ((unsigned long)ns->sb->owner_list_head == BCH_NVM_PAGES_OWNER_LIST_HEAD_OFFSET) {
216 struct bch_nvm_pages_owner_head *sys_owner_head;
217 struct bch_nvm_pgalloc_recs *sys_pgalloc_recs;
218
219 ns->sb->owner_list_head = ns->kaddr + BCH_NVM_PAGES_OWNER_LIST_HEAD_OFFSET;
220 sys_pgalloc_recs = ns->kaddr + BCH_NVM_PAGES_SYS_RECS_HEAD_OFFSET;
221
222 sys_owner_head = &(ns->sb->owner_list_head->heads[0]);
223 sys_owner_head->recs[0] = sys_pgalloc_recs;
224 ns->sb->csum = csum_set(ns->sb);
225
226 sys_pgalloc_recs->owner = sys_owner_head;
227 } else
228 BUG_ON(ns->sb->owner_list_head !=
229 (ns->kaddr + BCH_NVM_PAGES_OWNER_LIST_HEAD_OFFSET));
230
231 ns->page_size = ns->sb->page_size;
232 ns->pages_offset = ns->sb->pages_offset;
233 ns->pages_total = ns->sb->pages_total;
234 ns->free = 0;
235 ns->bdev = bdev;
236 ns->nvm_set = only_set;
237 mutex_init(&ns->lock);
238
239 if (ns->sb->this_namespace_nr == 0) {
240 pr_info("only first namespace contain owner info\n");
241 err = init_owner_info(ns);
242 if (err < 0) {
243 pr_info("init_owner_info met error %d\n", err);
244 only_set->nss[ns->sb->this_namespace_nr] = NULL;
245 goto free_ns;
246 }
247 }
248
249 kfree(path);
250 return ns;
251 free_ns:
252 kfree(ns);
253 bdput:
254 blkdev_put(bdev, FMODE_READ|FMODE_WRITE|FMODE_EXEC);
255 kfree(path);
256 return ERR_PTR(err);
257 }
> 258 EXPORT_SYMBOL_GPL(bch_register_namespace);
259
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all(a)lists.01.org
[-- Attachment #2: config.gz --]
[-- Type: application/gzip, Size: 28010 bytes --]
^ permalink raw reply [flat|nested] only message in thread
only message in thread, other threads:[~2021-03-29 19:57 UTC | newest]
Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-03-29 19:57 [bcache:nvdimm-meta 2/16] drivers/md/bcache/nvm-pages.c:258:42: error: expected declaration specifiers before '; ' token kernel test robot
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.