* [openeuler:OLK-6.6 1817/1817] drivers/irqchip/irq-gic-v3.c:1036:30: error: implicit declaration of function 'pde_data'
@ 2025-01-11 2:46 kernel test robot
0 siblings, 0 replies; only message in thread
From: kernel test robot @ 2025-01-11 2:46 UTC (permalink / raw)
To: kernel, Jinjie Ruan; +Cc: oe-kbuild-all
tree: https://gitee.com/openeuler/kernel.git OLK-6.6
head: 628e30bc9a3c48a6ab38868cb77fc6497d6ebaa5
commit: 3053668e6b211924bb67c19d791a5a532eca2ad8 [1817/1817] arm64: Introduce Xint software solution
config: arm64-randconfig-r123-20250111 (https://download.01.org/0day-ci/archive/20250111/202501111013.pP2ro5fl-lkp@intel.com/config)
compiler: aarch64-linux-gcc (GCC) 14.2.0
reproduce: (https://download.01.org/0day-ci/archive/20250111/202501111013.pP2ro5fl-lkp@intel.com/reproduce)
If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <lkp@intel.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202501111013.pP2ro5fl-lkp@intel.com/
All error/warnings (new ones prefixed by >>):
drivers/irqchip/irq-gic-v3.c: In function 'xint_proc_write':
>> drivers/irqchip/irq-gic-v3.c:1036:30: error: implicit declaration of function 'pde_data' [-Wimplicit-function-declaration]
1036 | int irq = (int)(long)pde_data(file_inode(file));
| ^~~~~~~~
drivers/irqchip/irq-gic-v3.c: In function 'xint_proc_show':
drivers/irqchip/irq-gic-v3.c:1074:9: error: implicit declaration of function 'seq_printf'; did you mean 'bstr_printf'? [-Wimplicit-function-declaration]
1074 | seq_printf(m, "%d\n", xint_transform((long)m->private, XINT_SET_CHECK));
| ^~~~~~~~~~
| bstr_printf
drivers/irqchip/irq-gic-v3.c:1074:53: error: invalid use of undefined type 'struct seq_file'
1074 | seq_printf(m, "%d\n", xint_transform((long)m->private, XINT_SET_CHECK));
| ^~
drivers/irqchip/irq-gic-v3.c: In function 'xint_proc_open':
drivers/irqchip/irq-gic-v3.c:1080:16: error: implicit declaration of function 'single_open'; did you mean 'simple_open'? [-Wimplicit-function-declaration]
1080 | return single_open(file, xint_proc_show, pde_data(inode));
| ^~~~~~~~~~~
| simple_open
drivers/irqchip/irq-gic-v3.c: At top level:
>> drivers/irqchip/irq-gic-v3.c:1083:21: error: variable 'xint_proc_ops' has initializer but incomplete type
1083 | static const struct proc_ops xint_proc_ops = {
| ^~~~~~~~
>> drivers/irqchip/irq-gic-v3.c:1084:10: error: 'const struct proc_ops' has no member named 'proc_open'
1084 | .proc_open = xint_proc_open,
| ^~~~~~~~~
>> drivers/irqchip/irq-gic-v3.c:1084:27: warning: excess elements in struct initializer
1084 | .proc_open = xint_proc_open,
| ^~~~~~~~~~~~~~
drivers/irqchip/irq-gic-v3.c:1084:27: note: (near initialization for 'xint_proc_ops')
>> drivers/irqchip/irq-gic-v3.c:1085:10: error: 'const struct proc_ops' has no member named 'proc_read'
1085 | .proc_read = seq_read,
| ^~~~~~~~~
drivers/irqchip/irq-gic-v3.c:1085:27: error: 'seq_read' undeclared here (not in a function)
1085 | .proc_read = seq_read,
| ^~~~~~~~
drivers/irqchip/irq-gic-v3.c:1085:27: warning: excess elements in struct initializer
drivers/irqchip/irq-gic-v3.c:1085:27: note: (near initialization for 'xint_proc_ops')
>> drivers/irqchip/irq-gic-v3.c:1086:10: error: 'const struct proc_ops' has no member named 'proc_lseek'
1086 | .proc_lseek = seq_lseek,
| ^~~~~~~~~~
drivers/irqchip/irq-gic-v3.c:1086:27: error: 'seq_lseek' undeclared here (not in a function)
1086 | .proc_lseek = seq_lseek,
| ^~~~~~~~~
drivers/irqchip/irq-gic-v3.c:1086:27: warning: excess elements in struct initializer
drivers/irqchip/irq-gic-v3.c:1086:27: note: (near initialization for 'xint_proc_ops')
>> drivers/irqchip/irq-gic-v3.c:1087:10: error: 'const struct proc_ops' has no member named 'proc_release'
1087 | .proc_release = single_release,
| ^~~~~~~~~~~~
drivers/irqchip/irq-gic-v3.c:1087:27: error: 'single_release' undeclared here (not in a function); did you mean 'spin_release'?
1087 | .proc_release = single_release,
| ^~~~~~~~~~~~~~
| spin_release
drivers/irqchip/irq-gic-v3.c:1087:27: warning: excess elements in struct initializer
drivers/irqchip/irq-gic-v3.c:1087:27: note: (near initialization for 'xint_proc_ops')
>> drivers/irqchip/irq-gic-v3.c:1088:10: error: 'const struct proc_ops' has no member named 'proc_write'
1088 | .proc_write = xint_proc_write,
| ^~~~~~~~~~
drivers/irqchip/irq-gic-v3.c:1088:27: warning: excess elements in struct initializer
1088 | .proc_write = xint_proc_write,
| ^~~~~~~~~~~~~~~
drivers/irqchip/irq-gic-v3.c:1088:27: note: (near initialization for 'xint_proc_ops')
drivers/irqchip/irq-gic-v3.c: In function 'register_irqchip_proc':
>> drivers/irqchip/irq-gic-v3.c:1097:9: error: implicit declaration of function 'proc_create_data' [-Wimplicit-function-declaration]
1097 | proc_create_data("xint", 0644, desc->dir, &xint_proc_ops, irqp);
| ^~~~~~~~~~~~~~~~
>> drivers/irqchip/irq-gic-v3.c:1097:44: error: 'struct irq_desc' has no member named 'dir'
1097 | proc_create_data("xint", 0644, desc->dir, &xint_proc_ops, irqp);
| ^~
drivers/irqchip/irq-gic-v3.c: In function 'unregister_irqchip_proc':
>> drivers/irqchip/irq-gic-v3.c:1105:9: error: implicit declaration of function 'remove_proc_entry' [-Wimplicit-function-declaration]
1105 | remove_proc_entry("xint", desc->dir);
| ^~~~~~~~~~~~~~~~~
drivers/irqchip/irq-gic-v3.c:1105:39: error: 'struct irq_desc' has no member named 'dir'
1105 | remove_proc_entry("xint", desc->dir);
| ^~
drivers/irqchip/irq-gic-v3.c: At top level:
>> drivers/irqchip/irq-gic-v3.c:1083:30: error: storage size of 'xint_proc_ops' isn't known
1083 | static const struct proc_ops xint_proc_ops = {
| ^~~~~~~~~~~~~
vim +/pde_data +1036 drivers/irqchip/irq-gic-v3.c
1032
1033 static ssize_t xint_proc_write(struct file *file,
1034 const char __user *buffer, size_t count, loff_t *pos)
1035 {
> 1036 int irq = (int)(long)pde_data(file_inode(file));
1037 bool xint_state = false;
1038 unsigned long val;
1039 char *buf = NULL;
1040
1041 if (!xint_transform(irq, XINT_RANGE_CHECK))
1042 return -EPERM;
1043
1044 buf = memdup_user_nul(buffer, count);
1045 if (IS_ERR(buf))
1046 return PTR_ERR(buf);
1047
1048 if (kstrtoul(buf, 0, &val) || (val != 0 && val != 1)) {
1049 kfree(buf);
1050 return -EINVAL;
1051 }
1052
1053 xint_state = xint_transform(irq, XINT_SET_CHECK);
1054 if (xint_state == val) {
1055 kfree(buf);
1056 return -EBUSY;
1057 }
1058
1059 local_irq_disable();
1060 disable_irq(irq);
1061
1062 xint_transform(irq, xint_state ? XINT_TO_IRQ : IRQ_TO_XINT);
1063
1064 enable_irq(irq);
1065 local_irq_enable();
1066
1067 kfree(buf);
1068
1069 return count;
1070 }
1071
1072 static int xint_proc_show(struct seq_file *m, void *v)
1073 {
1074 seq_printf(m, "%d\n", xint_transform((long)m->private, XINT_SET_CHECK));
1075 return 0;
1076 }
1077
1078 static int xint_proc_open(struct inode *inode, struct file *file)
1079 {
1080 return single_open(file, xint_proc_show, pde_data(inode));
1081 }
1082
> 1083 static const struct proc_ops xint_proc_ops = {
> 1084 .proc_open = xint_proc_open,
> 1085 .proc_read = seq_read,
> 1086 .proc_lseek = seq_lseek,
> 1087 .proc_release = single_release,
> 1088 .proc_write = xint_proc_write,
1089 };
1090
1091 void register_irqchip_proc(struct irq_desc *desc, void *irqp)
1092 {
1093 if (!is_xint_support)
1094 return;
1095
1096 /* create /proc/irq/<irq>/xint */
> 1097 proc_create_data("xint", 0644, desc->dir, &xint_proc_ops, irqp);
1098 }
1099
1100 void unregister_irqchip_proc(struct irq_desc *desc)
1101 {
1102 if (!is_xint_support)
1103 return;
1104
> 1105 remove_proc_entry("xint", desc->dir);
1106 }
1107 #endif /* CONFIG_FAST_IRQ */
1108
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
^ permalink raw reply [flat|nested] only message in thread
only message in thread, other threads:[~2025-01-11 2:47 UTC | newest]
Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-01-11 2:46 [openeuler:OLK-6.6 1817/1817] drivers/irqchip/irq-gic-v3.c:1036:30: error: implicit declaration of function 'pde_data' 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.