Re: [PATCH bpf-next v1 2/8] bpf: Add bpf_page_to_pfn helper
by kernel test robot
Hi Kumar,
Thank you for the patch! Yet something to improve:
[auto build test ERROR on bpf-next/master]
url: https://github.com/0day-ci/linux/commits/Kumar-Kartikeya-Dwivedi/Introduc...
base: https://git.kernel.org/pub/scm/linux/kernel/git/bpf/bpf-next.git master
config: i386-randconfig-a014-20211116 (attached as .config)
compiler: gcc-9 (Debian 9.3.0-22) 9.3.0
reproduce (this is a W=1 build):
# https://github.com/0day-ci/linux/commit/567c9b678d5ade1a63c993cfa10394902...
git remote add linux-review https://github.com/0day-ci/linux
git fetch --no-tags linux-review Kumar-Kartikeya-Dwivedi/Introduce-BPF-iterators-for-io_uring-and-epoll/20211116-140234
git checkout 567c9b678d5ade1a63c993cfa10394902d4671ca
# save the attached .config to linux build tree
mkdir build_dir
make W=1 O=build_dir ARCH=i386 SHELL=/bin/bash
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp(a)intel.com>
All errors (new ones prefixed by >>):
ld: kernel/trace/bpf_trace.o: in function `bpf_tracing_func_proto':
>> kernel/trace/bpf_trace.c:1216: undefined reference to `bpf_page_to_pfn_proto'
vim +1216 kernel/trace/bpf_trace.c
1093
1094 static const struct bpf_func_proto *
1095 bpf_tracing_func_proto(enum bpf_func_id func_id, const struct bpf_prog *prog)
1096 {
1097 switch (func_id) {
1098 case BPF_FUNC_map_lookup_elem:
1099 return &bpf_map_lookup_elem_proto;
1100 case BPF_FUNC_map_update_elem:
1101 return &bpf_map_update_elem_proto;
1102 case BPF_FUNC_map_delete_elem:
1103 return &bpf_map_delete_elem_proto;
1104 case BPF_FUNC_map_push_elem:
1105 return &bpf_map_push_elem_proto;
1106 case BPF_FUNC_map_pop_elem:
1107 return &bpf_map_pop_elem_proto;
1108 case BPF_FUNC_map_peek_elem:
1109 return &bpf_map_peek_elem_proto;
1110 case BPF_FUNC_ktime_get_ns:
1111 return &bpf_ktime_get_ns_proto;
1112 case BPF_FUNC_ktime_get_boot_ns:
1113 return &bpf_ktime_get_boot_ns_proto;
1114 case BPF_FUNC_ktime_get_coarse_ns:
1115 return &bpf_ktime_get_coarse_ns_proto;
1116 case BPF_FUNC_tail_call:
1117 return &bpf_tail_call_proto;
1118 case BPF_FUNC_get_current_pid_tgid:
1119 return &bpf_get_current_pid_tgid_proto;
1120 case BPF_FUNC_get_current_task:
1121 return &bpf_get_current_task_proto;
1122 case BPF_FUNC_get_current_task_btf:
1123 return &bpf_get_current_task_btf_proto;
1124 case BPF_FUNC_task_pt_regs:
1125 return &bpf_task_pt_regs_proto;
1126 case BPF_FUNC_get_current_uid_gid:
1127 return &bpf_get_current_uid_gid_proto;
1128 case BPF_FUNC_get_current_comm:
1129 return &bpf_get_current_comm_proto;
1130 case BPF_FUNC_trace_printk:
1131 return bpf_get_trace_printk_proto();
1132 case BPF_FUNC_get_smp_processor_id:
1133 return &bpf_get_smp_processor_id_proto;
1134 case BPF_FUNC_get_numa_node_id:
1135 return &bpf_get_numa_node_id_proto;
1136 case BPF_FUNC_perf_event_read:
1137 return &bpf_perf_event_read_proto;
1138 case BPF_FUNC_current_task_under_cgroup:
1139 return &bpf_current_task_under_cgroup_proto;
1140 case BPF_FUNC_get_prandom_u32:
1141 return &bpf_get_prandom_u32_proto;
1142 case BPF_FUNC_probe_write_user:
1143 return security_locked_down(LOCKDOWN_BPF_WRITE_USER) < 0 ?
1144 NULL : bpf_get_probe_write_proto();
1145 case BPF_FUNC_probe_read_user:
1146 return &bpf_probe_read_user_proto;
1147 case BPF_FUNC_probe_read_kernel:
1148 return security_locked_down(LOCKDOWN_BPF_READ_KERNEL) < 0 ?
1149 NULL : &bpf_probe_read_kernel_proto;
1150 case BPF_FUNC_probe_read_user_str:
1151 return &bpf_probe_read_user_str_proto;
1152 case BPF_FUNC_probe_read_kernel_str:
1153 return security_locked_down(LOCKDOWN_BPF_READ_KERNEL) < 0 ?
1154 NULL : &bpf_probe_read_kernel_str_proto;
1155 #ifdef CONFIG_ARCH_HAS_NON_OVERLAPPING_ADDRESS_SPACE
1156 case BPF_FUNC_probe_read:
1157 return security_locked_down(LOCKDOWN_BPF_READ_KERNEL) < 0 ?
1158 NULL : &bpf_probe_read_compat_proto;
1159 case BPF_FUNC_probe_read_str:
1160 return security_locked_down(LOCKDOWN_BPF_READ_KERNEL) < 0 ?
1161 NULL : &bpf_probe_read_compat_str_proto;
1162 #endif
1163 #ifdef CONFIG_CGROUPS
1164 case BPF_FUNC_get_current_cgroup_id:
1165 return &bpf_get_current_cgroup_id_proto;
1166 case BPF_FUNC_get_current_ancestor_cgroup_id:
1167 return &bpf_get_current_ancestor_cgroup_id_proto;
1168 #endif
1169 case BPF_FUNC_send_signal:
1170 return &bpf_send_signal_proto;
1171 case BPF_FUNC_send_signal_thread:
1172 return &bpf_send_signal_thread_proto;
1173 case BPF_FUNC_perf_event_read_value:
1174 return &bpf_perf_event_read_value_proto;
1175 case BPF_FUNC_get_ns_current_pid_tgid:
1176 return &bpf_get_ns_current_pid_tgid_proto;
1177 case BPF_FUNC_ringbuf_output:
1178 return &bpf_ringbuf_output_proto;
1179 case BPF_FUNC_ringbuf_reserve:
1180 return &bpf_ringbuf_reserve_proto;
1181 case BPF_FUNC_ringbuf_submit:
1182 return &bpf_ringbuf_submit_proto;
1183 case BPF_FUNC_ringbuf_discard:
1184 return &bpf_ringbuf_discard_proto;
1185 case BPF_FUNC_ringbuf_query:
1186 return &bpf_ringbuf_query_proto;
1187 case BPF_FUNC_jiffies64:
1188 return &bpf_jiffies64_proto;
1189 case BPF_FUNC_get_task_stack:
1190 return &bpf_get_task_stack_proto;
1191 case BPF_FUNC_copy_from_user:
1192 return prog->aux->sleepable ? &bpf_copy_from_user_proto : NULL;
1193 case BPF_FUNC_snprintf_btf:
1194 return &bpf_snprintf_btf_proto;
1195 case BPF_FUNC_per_cpu_ptr:
1196 return &bpf_per_cpu_ptr_proto;
1197 case BPF_FUNC_this_cpu_ptr:
1198 return &bpf_this_cpu_ptr_proto;
1199 case BPF_FUNC_task_storage_get:
1200 return &bpf_task_storage_get_proto;
1201 case BPF_FUNC_task_storage_delete:
1202 return &bpf_task_storage_delete_proto;
1203 case BPF_FUNC_for_each_map_elem:
1204 return &bpf_for_each_map_elem_proto;
1205 case BPF_FUNC_snprintf:
1206 return &bpf_snprintf_proto;
1207 case BPF_FUNC_get_func_ip:
1208 return &bpf_get_func_ip_proto_tracing;
1209 case BPF_FUNC_get_branch_snapshot:
1210 return &bpf_get_branch_snapshot_proto;
1211 case BPF_FUNC_find_vma:
1212 return &bpf_find_vma_proto;
1213 case BPF_FUNC_trace_vprintk:
1214 return bpf_get_trace_vprintk_proto();
1215 case BPF_FUNC_page_to_pfn:
> 1216 return &bpf_page_to_pfn_proto;
1217 default:
1218 return bpf_base_func_proto(func_id);
1219 }
1220 }
1221
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
10 months, 1 week
[intel-tdx:guest-upstream 29/37] arch/x86/mm/mem_encrypt.c:96:13: warning: no previous prototype for 'mem_encrypt_init'
by kernel test robot
tree: https://github.com/intel/tdx.git guest-upstream
head: 6d174fafe2becc43fd3eaebd3112a5a271b82ded
commit: 3a38521c8205c1c951e57551558dbfec739516cd [29/37] x86/tdx: Make pages shared in ioremap()
config: x86_64-allyesconfig (attached as .config)
compiler: gcc-9 (Debian 9.3.0-22) 9.3.0
reproduce (this is a W=1 build):
# https://github.com/intel/tdx/commit/3a38521c8205c1c951e57551558dbfec739516cd
git remote add intel-tdx https://github.com/intel/tdx.git
git fetch --no-tags intel-tdx guest-upstream
git checkout 3a38521c8205c1c951e57551558dbfec739516cd
# save the attached .config to linux build tree
make W=1 ARCH=x86_64
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp(a)intel.com>
All warnings (new ones prefixed by >>):
>> arch/x86/mm/mem_encrypt.c:96:13: warning: no previous prototype for 'mem_encrypt_init' [-Wmissing-prototypes]
96 | void __init mem_encrypt_init(void)
| ^~~~~~~~~~~~~~~~
vim +/mem_encrypt_init +96 arch/x86/mm/mem_encrypt.c
446571d51af2609 Kirill A. Shutemov 2020-03-18 94
446571d51af2609 Kirill A. Shutemov 2020-03-18 95 /* Architecture __weak replacement functions */
446571d51af2609 Kirill A. Shutemov 2020-03-18 @96 void __init mem_encrypt_init(void)
446571d51af2609 Kirill A. Shutemov 2020-03-18 97 {
446571d51af2609 Kirill A. Shutemov 2020-03-18 98 if (!sme_me_mask)
446571d51af2609 Kirill A. Shutemov 2020-03-18 99 return;
446571d51af2609 Kirill A. Shutemov 2020-03-18 100
446571d51af2609 Kirill A. Shutemov 2020-03-18 101 /* Call into SWIOTLB to update the SWIOTLB DMA buffers */
446571d51af2609 Kirill A. Shutemov 2020-03-18 102 swiotlb_update_mem_attributes();
446571d51af2609 Kirill A. Shutemov 2020-03-18 103
446571d51af2609 Kirill A. Shutemov 2020-03-18 104 print_amd_mem_encrypt_feature_info();
446571d51af2609 Kirill A. Shutemov 2020-03-18 105 }
446571d51af2609 Kirill A. Shutemov 2020-03-18 106
:::::: The code at line 96 was first introduced by commit
:::::: 446571d51af2609e66067b08442c89c5afd07843 x86: Move common memory encryption code to mem_encrypt.c
:::::: TO: Kirill A. Shutemov <kirill.shutemov(a)linux.intel.com>
:::::: CC: Kuppuswamy Sathyanarayanan <sathyanarayanan.kuppuswamy(a)linux.intel.com>
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
10 months, 1 week
drivers/gpu/drm/msm/adreno/a6xx_hfi.c:104:15: sparse: sparse: incorrect type in argument 1 (different address spaces)
by kernel test robot
tree: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
head: 8ab774587903771821b59471cc723bba6d893942
commit: b3ed524f84f573ece1aa2f26e9db3c34a593e0d1 drm/msm: allow compile_test on !ARM
date: 7 weeks ago
config: mips-allyesconfig (attached as .config)
compiler: mips-linux-gcc (GCC) 11.2.0
reproduce:
wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
chmod +x ~/bin/make.cross
# apt-get install sparse
# sparse version: v0.6.4-dirty
# https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit...
git remote add linus https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
git fetch --no-tags linus master
git checkout b3ed524f84f573ece1aa2f26e9db3c34a593e0d1
# save the attached .config to linux build tree
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-11.2.0 make.cross C=1 CF='-fdiagnostic-prefix -D__CHECK_ENDIAN__' ARCH=mips
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp(a)intel.com>
sparse warnings: (new ones prefixed by >>)
command-line: note: in included file:
builtin:1:9: sparse: sparse: preprocessor token __ATOMIC_ACQUIRE redefined
builtin:0:0: sparse: this was the original definition
builtin:1:9: sparse: sparse: preprocessor token __ATOMIC_SEQ_CST redefined
builtin:0:0: sparse: this was the original definition
builtin:1:9: sparse: sparse: preprocessor token __ATOMIC_ACQ_REL redefined
builtin:0:0: sparse: this was the original definition
builtin:1:9: sparse: sparse: preprocessor token __ATOMIC_RELEASE redefined
builtin:0:0: sparse: this was the original definition
>> drivers/gpu/drm/msm/adreno/a6xx_hfi.c:104:15: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const volatile [noderef] __iomem *mem @@ got void * @@
drivers/gpu/drm/msm/adreno/a6xx_hfi.c:104:15: sparse: expected void const volatile [noderef] __iomem *mem
drivers/gpu/drm/msm/adreno/a6xx_hfi.c:104:15: sparse: got void *
>> drivers/gpu/drm/msm/adreno/a6xx_hfi.c:104:15: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const volatile [noderef] __iomem *mem @@ got void * @@
drivers/gpu/drm/msm/adreno/a6xx_hfi.c:104:15: sparse: expected void const volatile [noderef] __iomem *mem
drivers/gpu/drm/msm/adreno/a6xx_hfi.c:104:15: sparse: got void *
drivers/gpu/drm/msm/adreno/a6xx_hfi.c: note: in included file:
drivers/gpu/drm/msm/adreno/a6xx_gmu.h:98:44: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void [noderef] __iomem *addr @@ got void * @@
drivers/gpu/drm/msm/adreno/a6xx_gmu.h:98:44: sparse: expected void [noderef] __iomem *addr
drivers/gpu/drm/msm/adreno/a6xx_gmu.h:98:44: sparse: got void *
drivers/gpu/drm/msm/adreno/a6xx_gmu.h:98:34: sparse: sparse: dereference of noderef expression
drivers/gpu/drm/msm/adreno/a6xx_hfi.c:104:15: sparse: sparse: dereference of noderef expression
drivers/gpu/drm/msm/adreno/a6xx_hfi.c:104:15: sparse: sparse: dereference of noderef expression
drivers/gpu/drm/msm/adreno/a6xx_hfi.c:104:15: sparse: sparse: dereference of noderef expression
drivers/gpu/drm/msm/adreno/a6xx_hfi.c:104:15: sparse: sparse: dereference of noderef expression
drivers/gpu/drm/msm/adreno/a6xx_gmu.h:98:44: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void [noderef] __iomem *addr @@ got void * @@
drivers/gpu/drm/msm/adreno/a6xx_gmu.h:98:44: sparse: expected void [noderef] __iomem *addr
drivers/gpu/drm/msm/adreno/a6xx_gmu.h:98:44: sparse: got void *
drivers/gpu/drm/msm/adreno/a6xx_gmu.h:98:34: sparse: sparse: dereference of noderef expression
--
command-line: note: in included file:
builtin:1:9: sparse: sparse: preprocessor token __ATOMIC_ACQUIRE redefined
builtin:0:0: sparse: this was the original definition
builtin:1:9: sparse: sparse: preprocessor token __ATOMIC_SEQ_CST redefined
builtin:0:0: sparse: this was the original definition
builtin:1:9: sparse: sparse: preprocessor token __ATOMIC_ACQ_REL redefined
builtin:0:0: sparse: this was the original definition
builtin:1:9: sparse: sparse: preprocessor token __ATOMIC_RELEASE redefined
builtin:0:0: sparse: this was the original definition
>> drivers/gpu/drm/msm/adreno/a6xx_gmu.c:224:15: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const volatile [noderef] __iomem *mem @@ got void * @@
drivers/gpu/drm/msm/adreno/a6xx_gmu.c:224:15: sparse: expected void const volatile [noderef] __iomem *mem
drivers/gpu/drm/msm/adreno/a6xx_gmu.c:224:15: sparse: got void *
>> drivers/gpu/drm/msm/adreno/a6xx_gmu.c:224:15: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const volatile [noderef] __iomem *mem @@ got void * @@
drivers/gpu/drm/msm/adreno/a6xx_gmu.c:224:15: sparse: expected void const volatile [noderef] __iomem *mem
drivers/gpu/drm/msm/adreno/a6xx_gmu.c:224:15: sparse: got void *
drivers/gpu/drm/msm/adreno/a6xx_gmu.c:240:15: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const volatile [noderef] __iomem *mem @@ got void * @@
drivers/gpu/drm/msm/adreno/a6xx_gmu.c:240:15: sparse: expected void const volatile [noderef] __iomem *mem
drivers/gpu/drm/msm/adreno/a6xx_gmu.c:240:15: sparse: got void *
drivers/gpu/drm/msm/adreno/a6xx_gmu.c:240:15: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const volatile [noderef] __iomem *mem @@ got void * @@
drivers/gpu/drm/msm/adreno/a6xx_gmu.c:240:15: sparse: expected void const volatile [noderef] __iomem *mem
drivers/gpu/drm/msm/adreno/a6xx_gmu.c:240:15: sparse: got void *
drivers/gpu/drm/msm/adreno/a6xx_gmu.c:320:15: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const volatile [noderef] __iomem *mem @@ got void * @@
drivers/gpu/drm/msm/adreno/a6xx_gmu.c:320:15: sparse: expected void const volatile [noderef] __iomem *mem
drivers/gpu/drm/msm/adreno/a6xx_gmu.c:320:15: sparse: got void *
drivers/gpu/drm/msm/adreno/a6xx_gmu.c:320:15: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const volatile [noderef] __iomem *mem @@ got void * @@
drivers/gpu/drm/msm/adreno/a6xx_gmu.c:320:15: sparse: expected void const volatile [noderef] __iomem *mem
drivers/gpu/drm/msm/adreno/a6xx_gmu.c:320:15: sparse: got void *
drivers/gpu/drm/msm/adreno/a6xx_gmu.c:362:15: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const volatile [noderef] __iomem *mem @@ got void * @@
drivers/gpu/drm/msm/adreno/a6xx_gmu.c:362:15: sparse: expected void const volatile [noderef] __iomem *mem
drivers/gpu/drm/msm/adreno/a6xx_gmu.c:362:15: sparse: got void *
drivers/gpu/drm/msm/adreno/a6xx_gmu.c:362:15: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const volatile [noderef] __iomem *mem @@ got void * @@
drivers/gpu/drm/msm/adreno/a6xx_gmu.c:362:15: sparse: expected void const volatile [noderef] __iomem *mem
drivers/gpu/drm/msm/adreno/a6xx_gmu.c:362:15: sparse: got void *
drivers/gpu/drm/msm/adreno/a6xx_gmu.c:387:15: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const volatile [noderef] __iomem *mem @@ got void * @@
drivers/gpu/drm/msm/adreno/a6xx_gmu.c:387:15: sparse: expected void const volatile [noderef] __iomem *mem
drivers/gpu/drm/msm/adreno/a6xx_gmu.c:387:15: sparse: got void *
drivers/gpu/drm/msm/adreno/a6xx_gmu.c:387:15: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const volatile [noderef] __iomem *mem @@ got void * @@
drivers/gpu/drm/msm/adreno/a6xx_gmu.c:387:15: sparse: expected void const volatile [noderef] __iomem *mem
drivers/gpu/drm/msm/adreno/a6xx_gmu.c:387:15: sparse: got void *
drivers/gpu/drm/msm/adreno/a6xx_gmu.c:460:15: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const volatile [noderef] __iomem *mem @@ got void * @@
drivers/gpu/drm/msm/adreno/a6xx_gmu.c:460:15: sparse: expected void const volatile [noderef] __iomem *mem
drivers/gpu/drm/msm/adreno/a6xx_gmu.c:460:15: sparse: got void *
drivers/gpu/drm/msm/adreno/a6xx_gmu.c:460:15: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const volatile [noderef] __iomem *mem @@ got void * @@
drivers/gpu/drm/msm/adreno/a6xx_gmu.c:460:15: sparse: expected void const volatile [noderef] __iomem *mem
drivers/gpu/drm/msm/adreno/a6xx_gmu.c:460:15: sparse: got void *
drivers/gpu/drm/msm/adreno/a6xx_gmu.c:467:15: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const volatile [noderef] __iomem *mem @@ got void * @@
drivers/gpu/drm/msm/adreno/a6xx_gmu.c:467:15: sparse: expected void const volatile [noderef] __iomem *mem
drivers/gpu/drm/msm/adreno/a6xx_gmu.c:467:15: sparse: got void *
drivers/gpu/drm/msm/adreno/a6xx_gmu.c:467:15: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const volatile [noderef] __iomem *mem @@ got void * @@
drivers/gpu/drm/msm/adreno/a6xx_gmu.c:467:15: sparse: expected void const volatile [noderef] __iomem *mem
drivers/gpu/drm/msm/adreno/a6xx_gmu.c:467:15: sparse: got void *
drivers/gpu/drm/msm/adreno/a6xx_gmu.c:493:15: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const volatile [noderef] __iomem *mem @@ got void * @@
drivers/gpu/drm/msm/adreno/a6xx_gmu.c:493:15: sparse: expected void const volatile [noderef] __iomem *mem
drivers/gpu/drm/msm/adreno/a6xx_gmu.c:493:15: sparse: got void *
drivers/gpu/drm/msm/adreno/a6xx_gmu.c:493:15: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const volatile [noderef] __iomem *mem @@ got void * @@
drivers/gpu/drm/msm/adreno/a6xx_gmu.c:493:15: sparse: expected void const volatile [noderef] __iomem *mem
drivers/gpu/drm/msm/adreno/a6xx_gmu.c:493:15: sparse: got void *
drivers/gpu/drm/msm/adreno/a6xx_gmu.c:1412:31: sparse: sparse: incorrect type in return expression (different address spaces) @@ expected void [noderef] __iomem * @@ got void * @@
drivers/gpu/drm/msm/adreno/a6xx_gmu.c:1412:31: sparse: expected void [noderef] __iomem *
drivers/gpu/drm/msm/adreno/a6xx_gmu.c:1412:31: sparse: got void *
drivers/gpu/drm/msm/adreno/a6xx_gmu.c:1418:31: sparse: sparse: incorrect type in return expression (different address spaces) @@ expected void [noderef] __iomem * @@ got void * @@
drivers/gpu/drm/msm/adreno/a6xx_gmu.c:1418:31: sparse: expected void [noderef] __iomem *
drivers/gpu/drm/msm/adreno/a6xx_gmu.c:1418:31: sparse: got void *
drivers/gpu/drm/msm/adreno/a6xx_gmu.c:858:9: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const volatile [noderef] __iomem *mem @@ got void * @@
drivers/gpu/drm/msm/adreno/a6xx_gmu.c:858:9: sparse: expected void const volatile [noderef] __iomem *mem
drivers/gpu/drm/msm/adreno/a6xx_gmu.c:858:9: sparse: got void *
drivers/gpu/drm/msm/adreno/a6xx_gmu.c:858:9: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const volatile [noderef] __iomem *mem @@ got void * @@
drivers/gpu/drm/msm/adreno/a6xx_gmu.c:858:9: sparse: expected void const volatile [noderef] __iomem *mem
drivers/gpu/drm/msm/adreno/a6xx_gmu.c:858:9: sparse: got void *
drivers/gpu/drm/msm/adreno/a6xx_gmu.c:860:9: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const volatile [noderef] __iomem *mem @@ got void * @@
drivers/gpu/drm/msm/adreno/a6xx_gmu.c:860:9: sparse: expected void const volatile [noderef] __iomem *mem
drivers/gpu/drm/msm/adreno/a6xx_gmu.c:860:9: sparse: got void *
drivers/gpu/drm/msm/adreno/a6xx_gmu.c:860:9: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const volatile [noderef] __iomem *mem @@ got void * @@
drivers/gpu/drm/msm/adreno/a6xx_gmu.c:860:9: sparse: expected void const volatile [noderef] __iomem *mem
drivers/gpu/drm/msm/adreno/a6xx_gmu.c:860:9: sparse: got void *
drivers/gpu/drm/msm/adreno/a6xx_gmu.c:862:9: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const volatile [noderef] __iomem *mem @@ got void * @@
drivers/gpu/drm/msm/adreno/a6xx_gmu.c:862:9: sparse: expected void const volatile [noderef] __iomem *mem
drivers/gpu/drm/msm/adreno/a6xx_gmu.c:862:9: sparse: got void *
drivers/gpu/drm/msm/adreno/a6xx_gmu.c:862:9: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const volatile [noderef] __iomem *mem @@ got void * @@
drivers/gpu/drm/msm/adreno/a6xx_gmu.c:862:9: sparse: expected void const volatile [noderef] __iomem *mem
drivers/gpu/drm/msm/adreno/a6xx_gmu.c:862:9: sparse: got void *
drivers/gpu/drm/msm/adreno/a6xx_gmu.c:864:9: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const volatile [noderef] __iomem *mem @@ got void * @@
drivers/gpu/drm/msm/adreno/a6xx_gmu.c:864:9: sparse: expected void const volatile [noderef] __iomem *mem
drivers/gpu/drm/msm/adreno/a6xx_gmu.c:864:9: sparse: got void *
drivers/gpu/drm/msm/adreno/a6xx_gmu.c:864:9: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const volatile [noderef] __iomem *mem @@ got void * @@
drivers/gpu/drm/msm/adreno/a6xx_gmu.c:864:9: sparse: expected void const volatile [noderef] __iomem *mem
drivers/gpu/drm/msm/adreno/a6xx_gmu.c:864:9: sparse: got void *
drivers/gpu/drm/msm/adreno/a6xx_gmu.c:1066:23: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const volatile [noderef] __iomem *mem @@ got void * @@
drivers/gpu/drm/msm/adreno/a6xx_gmu.c:1066:23: sparse: expected void const volatile [noderef] __iomem *mem
drivers/gpu/drm/msm/adreno/a6xx_gmu.c:1066:23: sparse: got void *
drivers/gpu/drm/msm/adreno/a6xx_gmu.c:1066:23: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const volatile [noderef] __iomem *mem @@ got void * @@
drivers/gpu/drm/msm/adreno/a6xx_gmu.c:1066:23: sparse: expected void const volatile [noderef] __iomem *mem
drivers/gpu/drm/msm/adreno/a6xx_gmu.c:1066:23: sparse: got void *
>> drivers/gpu/drm/msm/adreno/a6xx_gmu.c:1458:20: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const volatile [noderef] __iomem *addr @@ got void *[noderef] mmio @@
drivers/gpu/drm/msm/adreno/a6xx_gmu.c:1458:20: sparse: expected void const volatile [noderef] __iomem *addr
drivers/gpu/drm/msm/adreno/a6xx_gmu.c:1458:20: sparse: got void *[noderef] mmio
>> drivers/gpu/drm/msm/adreno/a6xx_gmu.c:1460:28: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const volatile [noderef] __iomem *addr @@ got void *[noderef] rscc @@
drivers/gpu/drm/msm/adreno/a6xx_gmu.c:1460:28: sparse: expected void const volatile [noderef] __iomem *addr
drivers/gpu/drm/msm/adreno/a6xx_gmu.c:1460:28: sparse: got void *[noderef] rscc
drivers/gpu/drm/msm/adreno/a6xx_gmu.c:1560:19: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected void *[noderef] mmio @@ got void [noderef] __iomem * @@
drivers/gpu/drm/msm/adreno/a6xx_gmu.c:1560:19: sparse: expected void *[noderef] mmio
drivers/gpu/drm/msm/adreno/a6xx_gmu.c:1560:19: sparse: got void [noderef] __iomem *
drivers/gpu/drm/msm/adreno/a6xx_gmu.c:1567:27: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected void *[noderef] rscc @@ got void [noderef] __iomem * @@
drivers/gpu/drm/msm/adreno/a6xx_gmu.c:1567:27: sparse: expected void *[noderef] rscc
drivers/gpu/drm/msm/adreno/a6xx_gmu.c:1567:27: sparse: got void [noderef] __iomem *
drivers/gpu/drm/msm/adreno/a6xx_gmu.c:1598:20: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const volatile [noderef] __iomem *addr @@ got void *[noderef] mmio @@
drivers/gpu/drm/msm/adreno/a6xx_gmu.c:1598:20: sparse: expected void const volatile [noderef] __iomem *addr
drivers/gpu/drm/msm/adreno/a6xx_gmu.c:1598:20: sparse: got void *[noderef] mmio
drivers/gpu/drm/msm/adreno/a6xx_gmu.c:1600:28: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const volatile [noderef] __iomem *addr @@ got void *[noderef] rscc @@
drivers/gpu/drm/msm/adreno/a6xx_gmu.c:1600:28: sparse: expected void const volatile [noderef] __iomem *addr
drivers/gpu/drm/msm/adreno/a6xx_gmu.c:1600:28: sparse: got void *[noderef] rscc
drivers/gpu/drm/msm/adreno/a6xx_gmu.c: note: in included file (through drivers/gpu/drm/msm/adreno/a6xx_gpu.h):
drivers/gpu/drm/msm/adreno/a6xx_gmu.h:93:36: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const [noderef] __iomem *addr @@ got void * @@
drivers/gpu/drm/msm/adreno/a6xx_gmu.h:93:36: sparse: expected void const [noderef] __iomem *addr
drivers/gpu/drm/msm/adreno/a6xx_gmu.h:93:36: sparse: got void *
drivers/gpu/drm/msm/adreno/a6xx_gmu.h:93:26: sparse: sparse: dereference of noderef expression
drivers/gpu/drm/msm/adreno/a6xx_gmu.h:98:44: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void [noderef] __iomem *addr @@ got void * @@
drivers/gpu/drm/msm/adreno/a6xx_gmu.h:98:44: sparse: expected void [noderef] __iomem *addr
drivers/gpu/drm/msm/adreno/a6xx_gmu.h:98:44: sparse: got void *
drivers/gpu/drm/msm/adreno/a6xx_gmu.h:98:34: sparse: sparse: dereference of noderef expression
drivers/gpu/drm/msm/adreno/a6xx_gmu.h:93:36: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const [noderef] __iomem *addr @@ got void * @@
drivers/gpu/drm/msm/adreno/a6xx_gmu.h:93:36: sparse: expected void const [noderef] __iomem *addr
drivers/gpu/drm/msm/adreno/a6xx_gmu.h:93:36: sparse: got void *
drivers/gpu/drm/msm/adreno/a6xx_gmu.h:93:26: sparse: sparse: dereference of noderef expression
drivers/gpu/drm/msm/adreno/a6xx_gmu.h:93:36: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const [noderef] __iomem *addr @@ got void * @@
drivers/gpu/drm/msm/adreno/a6xx_gmu.h:93:36: sparse: expected void const [noderef] __iomem *addr
drivers/gpu/drm/msm/adreno/a6xx_gmu.h:93:36: sparse: got void *
drivers/gpu/drm/msm/adreno/a6xx_gmu.h:93:26: sparse: sparse: dereference of noderef expression
drivers/gpu/drm/msm/adreno/a6xx_gmu.h:98:44: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void [noderef] __iomem *addr @@ got void * @@
drivers/gpu/drm/msm/adreno/a6xx_gmu.h:98:44: sparse: expected void [noderef] __iomem *addr
drivers/gpu/drm/msm/adreno/a6xx_gmu.h:98:44: sparse: got void *
drivers/gpu/drm/msm/adreno/a6xx_gmu.h:98:34: sparse: sparse: dereference of noderef expression
drivers/gpu/drm/msm/adreno/a6xx_gmu.h:93:36: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const [noderef] __iomem *addr @@ got void * @@
drivers/gpu/drm/msm/adreno/a6xx_gmu.h:93:36: sparse: expected void const [noderef] __iomem *addr
drivers/gpu/drm/msm/adreno/a6xx_gmu.h:93:36: sparse: got void *
drivers/gpu/drm/msm/adreno/a6xx_gmu.h:93:26: sparse: sparse: dereference of noderef expression
drivers/gpu/drm/msm/adreno/a6xx_gmu.h:93:36: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const [noderef] __iomem *addr @@ got void * @@
drivers/gpu/drm/msm/adreno/a6xx_gmu.h:93:36: sparse: expected void const [noderef] __iomem *addr
drivers/gpu/drm/msm/adreno/a6xx_gmu.h:93:36: sparse: got void *
drivers/gpu/drm/msm/adreno/a6xx_gmu.h:93:26: sparse: sparse: dereference of noderef expression
drivers/gpu/drm/msm/adreno/a6xx_gmu.h:98:44: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void [noderef] __iomem *addr @@ got void * @@
drivers/gpu/drm/msm/adreno/a6xx_gmu.h:98:44: sparse: expected void [noderef] __iomem *addr
drivers/gpu/drm/msm/adreno/a6xx_gmu.h:98:44: sparse: got void *
drivers/gpu/drm/msm/adreno/a6xx_gmu.h:98:34: sparse: sparse: dereference of noderef expression
drivers/gpu/drm/msm/adreno/a6xx_gmu.h:98:44: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void [noderef] __iomem *addr @@ got void * @@
drivers/gpu/drm/msm/adreno/a6xx_gmu.h:98:44: sparse: expected void [noderef] __iomem *addr
drivers/gpu/drm/msm/adreno/a6xx_gmu.h:98:44: sparse: got void *
drivers/gpu/drm/msm/adreno/a6xx_gmu.h:98:34: sparse: sparse: dereference of noderef expression
drivers/gpu/drm/msm/adreno/a6xx_gmu.h:98:44: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void [noderef] __iomem *addr @@ got void * @@
drivers/gpu/drm/msm/adreno/a6xx_gmu.h:98:44: sparse: expected void [noderef] __iomem *addr
drivers/gpu/drm/msm/adreno/a6xx_gmu.h:98:44: sparse: got void *
drivers/gpu/drm/msm/adreno/a6xx_gmu.h:98:34: sparse: sparse: dereference of noderef expression
drivers/gpu/drm/msm/adreno/a6xx_gmu.h:93:36: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const [noderef] __iomem *addr @@ got void * @@
drivers/gpu/drm/msm/adreno/a6xx_gmu.h:93:36: sparse: expected void const [noderef] __iomem *addr
drivers/gpu/drm/msm/adreno/a6xx_gmu.h:93:36: sparse: got void *
drivers/gpu/drm/msm/adreno/a6xx_gmu.h:93:26: sparse: sparse: dereference of noderef expression
drivers/gpu/drm/msm/adreno/a6xx_gmu.h:93:36: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const [noderef] __iomem *addr @@ got void * @@
drivers/gpu/drm/msm/adreno/a6xx_gmu.h:93:36: sparse: expected void const [noderef] __iomem *addr
drivers/gpu/drm/msm/adreno/a6xx_gmu.h:93:36: sparse: got void *
drivers/gpu/drm/msm/adreno/a6xx_gmu.h:93:26: sparse: sparse: dereference of noderef expression
drivers/gpu/drm/msm/adreno/a6xx_gmu.h:93:36: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const [noderef] __iomem *addr @@ got void * @@
drivers/gpu/drm/msm/adreno/a6xx_gmu.h:93:36: sparse: expected void const [noderef] __iomem *addr
drivers/gpu/drm/msm/adreno/a6xx_gmu.h:93:36: sparse: got void *
drivers/gpu/drm/msm/adreno/a6xx_gmu.h:93:26: sparse: sparse: dereference of noderef expression
drivers/gpu/drm/msm/adreno/a6xx_gmu.h:98:44: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void [noderef] __iomem *addr @@ got void * @@
drivers/gpu/drm/msm/adreno/a6xx_gmu.h:98:44: sparse: expected void [noderef] __iomem *addr
drivers/gpu/drm/msm/adreno/a6xx_gmu.h:98:44: sparse: got void *
drivers/gpu/drm/msm/adreno/a6xx_gmu.h:98:34: sparse: sparse: dereference of noderef expression
drivers/gpu/drm/msm/adreno/a6xx_gmu.h:98:44: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void [noderef] __iomem *addr @@ got void * @@
drivers/gpu/drm/msm/adreno/a6xx_gmu.h:98:44: sparse: expected void [noderef] __iomem *addr
drivers/gpu/drm/msm/adreno/a6xx_gmu.h:98:44: sparse: got void *
drivers/gpu/drm/msm/adreno/a6xx_gmu.h:98:34: sparse: sparse: dereference of noderef expression
drivers/gpu/drm/msm/adreno/a6xx_gmu.h:98:44: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void [noderef] __iomem *addr @@ got void * @@
drivers/gpu/drm/msm/adreno/a6xx_gmu.h:98:44: sparse: expected void [noderef] __iomem *addr
drivers/gpu/drm/msm/adreno/a6xx_gmu.h:98:44: sparse: got void *
drivers/gpu/drm/msm/adreno/a6xx_gmu.h:98:34: sparse: sparse: dereference of noderef expression
drivers/gpu/drm/msm/adreno/a6xx_gmu.c:224:15: sparse: sparse: dereference of noderef expression
drivers/gpu/drm/msm/adreno/a6xx_gmu.c:224:15: sparse: sparse: dereference of noderef expression
drivers/gpu/drm/msm/adreno/a6xx_gmu.c:224:15: sparse: sparse: dereference of noderef expression
drivers/gpu/drm/msm/adreno/a6xx_gmu.c:224:15: sparse: sparse: dereference of noderef expression
drivers/gpu/drm/msm/adreno/a6xx_gmu.h:98:44: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void [noderef] __iomem *addr @@ got void * @@
drivers/gpu/drm/msm/adreno/a6xx_gmu.h:98:44: sparse: expected void [noderef] __iomem *addr
drivers/gpu/drm/msm/adreno/a6xx_gmu.h:98:44: sparse: got void *
drivers/gpu/drm/msm/adreno/a6xx_gmu.h:98:34: sparse: sparse: dereference of noderef expression
drivers/gpu/drm/msm/adreno/a6xx_gmu.c:240:15: sparse: sparse: dereference of noderef expression
drivers/gpu/drm/msm/adreno/a6xx_gmu.c:240:15: sparse: sparse: dereference of noderef expression
drivers/gpu/drm/msm/adreno/a6xx_gmu.c:240:15: sparse: sparse: dereference of noderef expression
drivers/gpu/drm/msm/adreno/a6xx_gmu.c:240:15: sparse: sparse: dereference of noderef expression
drivers/gpu/drm/msm/adreno/a6xx_gmu.h:98:44: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void [noderef] __iomem *addr @@ got void * @@
drivers/gpu/drm/msm/adreno/a6xx_gmu.h:98:44: sparse: expected void [noderef] __iomem *addr
drivers/gpu/drm/msm/adreno/a6xx_gmu.h:98:44: sparse: got void *
drivers/gpu/drm/msm/adreno/a6xx_gmu.h:98:34: sparse: sparse: dereference of noderef expression
drivers/gpu/drm/msm/adreno/a6xx_gmu.c:320:15: sparse: sparse: dereference of noderef expression
drivers/gpu/drm/msm/adreno/a6xx_gmu.c:320:15: sparse: sparse: dereference of noderef expression
drivers/gpu/drm/msm/adreno/a6xx_gmu.c:320:15: sparse: sparse: dereference of noderef expression
drivers/gpu/drm/msm/adreno/a6xx_gmu.c:320:15: sparse: sparse: dereference of noderef expression
drivers/gpu/drm/msm/adreno/a6xx_gmu.h:93:36: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const [noderef] __iomem *addr @@ got void * @@
vim +104 drivers/gpu/drm/msm/adreno/a6xx_hfi.c
4b565ca5a2cbbbb Jordan Crouse 2018-08-06 95
df0dff132905974 Jordan Crouse 2018-09-20 96 static int a6xx_hfi_wait_for_ack(struct a6xx_gmu *gmu, u32 id, u32 seqnum,
df0dff132905974 Jordan Crouse 2018-09-20 97 u32 *payload, u32 payload_size)
df0dff132905974 Jordan Crouse 2018-09-20 98 {
df0dff132905974 Jordan Crouse 2018-09-20 99 struct a6xx_hfi_queue *queue = &gmu->queues[HFI_RESPONSE_QUEUE];
df0dff132905974 Jordan Crouse 2018-09-20 100 u32 val;
df0dff132905974 Jordan Crouse 2018-09-20 101 int ret;
4b565ca5a2cbbbb Jordan Crouse 2018-08-06 102
df0dff132905974 Jordan Crouse 2018-09-20 103 /* Wait for a response */
df0dff132905974 Jordan Crouse 2018-09-20 @104 ret = gmu_poll_timeout(gmu, REG_A6XX_GMU_GMU2HOST_INTR_INFO, val,
df0dff132905974 Jordan Crouse 2018-09-20 105 val & A6XX_GMU_GMU2HOST_INTR_INFO_MSGQ, 100, 5000);
4b565ca5a2cbbbb Jordan Crouse 2018-08-06 106
df0dff132905974 Jordan Crouse 2018-09-20 107 if (ret) {
6a41da17e87dee2 Mamta Shukla 2018-10-20 108 DRM_DEV_ERROR(gmu->dev,
df0dff132905974 Jordan Crouse 2018-09-20 109 "Message %s id %d timed out waiting for response\n",
df0dff132905974 Jordan Crouse 2018-09-20 110 a6xx_hfi_msg_id[id], seqnum);
df0dff132905974 Jordan Crouse 2018-09-20 111 return -ETIMEDOUT;
4b565ca5a2cbbbb Jordan Crouse 2018-08-06 112 }
4b565ca5a2cbbbb Jordan Crouse 2018-08-06 113
df0dff132905974 Jordan Crouse 2018-09-20 114 /* Clear the interrupt */
df0dff132905974 Jordan Crouse 2018-09-20 115 gmu_write(gmu, REG_A6XX_GMU_GMU2HOST_INTR_CLR,
df0dff132905974 Jordan Crouse 2018-09-20 116 A6XX_GMU_GMU2HOST_INTR_INFO_MSGQ);
4b565ca5a2cbbbb Jordan Crouse 2018-08-06 117
df0dff132905974 Jordan Crouse 2018-09-20 118 for (;;) {
df0dff132905974 Jordan Crouse 2018-09-20 119 struct a6xx_hfi_msg_response resp;
4b565ca5a2cbbbb Jordan Crouse 2018-08-06 120
df0dff132905974 Jordan Crouse 2018-09-20 121 /* Get the next packet */
8167e6fa76c8f71 Jonathan Marek 2020-04-23 122 ret = a6xx_hfi_queue_read(gmu, queue, (u32 *) &resp,
df0dff132905974 Jordan Crouse 2018-09-20 123 sizeof(resp) >> 2);
df0dff132905974 Jordan Crouse 2018-09-20 124
df0dff132905974 Jordan Crouse 2018-09-20 125 /* If the queue is empty our response never made it */
df0dff132905974 Jordan Crouse 2018-09-20 126 if (!ret) {
6a41da17e87dee2 Mamta Shukla 2018-10-20 127 DRM_DEV_ERROR(gmu->dev,
df0dff132905974 Jordan Crouse 2018-09-20 128 "The HFI response queue is unexpectedly empty\n");
df0dff132905974 Jordan Crouse 2018-09-20 129
df0dff132905974 Jordan Crouse 2018-09-20 130 return -ENOENT;
4b565ca5a2cbbbb Jordan Crouse 2018-08-06 131 }
4b565ca5a2cbbbb Jordan Crouse 2018-08-06 132
df0dff132905974 Jordan Crouse 2018-09-20 133 if (HFI_HEADER_ID(resp.header) == HFI_F2H_MSG_ERROR) {
df0dff132905974 Jordan Crouse 2018-09-20 134 struct a6xx_hfi_msg_error *error =
df0dff132905974 Jordan Crouse 2018-09-20 135 (struct a6xx_hfi_msg_error *) &resp;
4b565ca5a2cbbbb Jordan Crouse 2018-08-06 136
6a41da17e87dee2 Mamta Shukla 2018-10-20 137 DRM_DEV_ERROR(gmu->dev, "GMU firmware error %d\n",
df0dff132905974 Jordan Crouse 2018-09-20 138 error->code);
df0dff132905974 Jordan Crouse 2018-09-20 139 continue;
df0dff132905974 Jordan Crouse 2018-09-20 140 }
4b565ca5a2cbbbb Jordan Crouse 2018-08-06 141
df0dff132905974 Jordan Crouse 2018-09-20 142 if (seqnum != HFI_HEADER_SEQNUM(resp.ret_header)) {
6a41da17e87dee2 Mamta Shukla 2018-10-20 143 DRM_DEV_ERROR(gmu->dev,
df0dff132905974 Jordan Crouse 2018-09-20 144 "Unexpected message id %d on the response queue\n",
df0dff132905974 Jordan Crouse 2018-09-20 145 HFI_HEADER_SEQNUM(resp.ret_header));
df0dff132905974 Jordan Crouse 2018-09-20 146 continue;
df0dff132905974 Jordan Crouse 2018-09-20 147 }
df0dff132905974 Jordan Crouse 2018-09-20 148
df0dff132905974 Jordan Crouse 2018-09-20 149 if (resp.error) {
6a41da17e87dee2 Mamta Shukla 2018-10-20 150 DRM_DEV_ERROR(gmu->dev,
df0dff132905974 Jordan Crouse 2018-09-20 151 "Message %s id %d returned error %d\n",
df0dff132905974 Jordan Crouse 2018-09-20 152 a6xx_hfi_msg_id[id], seqnum, resp.error);
df0dff132905974 Jordan Crouse 2018-09-20 153 return -EINVAL;
4b565ca5a2cbbbb Jordan Crouse 2018-08-06 154 }
4b565ca5a2cbbbb Jordan Crouse 2018-08-06 155
df0dff132905974 Jordan Crouse 2018-09-20 156 /* All is well, copy over the buffer */
df0dff132905974 Jordan Crouse 2018-09-20 157 if (payload && payload_size)
df0dff132905974 Jordan Crouse 2018-09-20 158 memcpy(payload, resp.payload,
df0dff132905974 Jordan Crouse 2018-09-20 159 min_t(u32, payload_size, sizeof(resp.payload)));
4b565ca5a2cbbbb Jordan Crouse 2018-08-06 160
df0dff132905974 Jordan Crouse 2018-09-20 161 return 0;
4b565ca5a2cbbbb Jordan Crouse 2018-08-06 162 }
4b565ca5a2cbbbb Jordan Crouse 2018-08-06 163 }
4b565ca5a2cbbbb Jordan Crouse 2018-08-06 164
:::::: The code at line 104 was first introduced by commit
:::::: df0dff132905974697e2a19aa8bcc0ecc447c00e drm/msm/a6xx: Poll for HFI responses
:::::: TO: Jordan Crouse <jcrouse(a)codeaurora.org>
:::::: CC: Rob Clark <robdclark(a)gmail.com>
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
10 months, 1 week
drivers/gpu/drm/msm/adreno/a6xx_gpu.c:1643:6: sparse: sparse: symbol 'a6xx_gpu_set_freq' was not declared. Should it be static?
by kernel test robot
Hi Stephen,
First bad commit (maybe != root cause):
tree: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
head: 8ab774587903771821b59471cc723bba6d893942
commit: 970eae15600a883e4ad27dd0757b18871cc983ab BackMerge tag 'v5.15-rc7' into drm-next
date: 3 weeks ago
config: alpha-randconfig-s031-20211117 (attached as .config)
compiler: alpha-linux-gcc (GCC) 11.2.0
reproduce:
wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
chmod +x ~/bin/make.cross
# apt-get install sparse
# sparse version: v0.6.4-dirty
# https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit...
git remote add linus https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
git fetch --no-tags linus master
git checkout 970eae15600a883e4ad27dd0757b18871cc983ab
# save the attached .config to linux build tree
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-11.2.0 make.cross C=1 CF='-fdiagnostic-prefix -D__CHECK_ENDIAN__' O=build_dir ARCH=alpha SHELL=/bin/bash drivers/gpu/drm/msm/
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp(a)intel.com>
sparse warnings: (new ones prefixed by >>)
drivers/gpu/drm/msm/adreno/a6xx_gpu.c:1512:36: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected void [noderef] __iomem *llc_mmio @@ got void * @@
drivers/gpu/drm/msm/adreno/a6xx_gpu.c:1512:36: sparse: expected void [noderef] __iomem *llc_mmio
drivers/gpu/drm/msm/adreno/a6xx_gpu.c:1512:36: sparse: got void *
>> drivers/gpu/drm/msm/adreno/a6xx_gpu.c:1643:6: sparse: sparse: symbol 'a6xx_gpu_set_freq' was not declared. Should it be static?
drivers/gpu/drm/msm/adreno/a6xx_gpu.c: note: in included file (through drivers/gpu/drm/msm/adreno/a6xx_gpu.h):
drivers/gpu/drm/msm/adreno/a6xx_gmu.h:96:36: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const [noderef] __iomem *addr @@ got void * @@
drivers/gpu/drm/msm/adreno/a6xx_gmu.h:96:36: sparse: expected void const [noderef] __iomem *addr
drivers/gpu/drm/msm/adreno/a6xx_gmu.h:96:36: sparse: got void *
drivers/gpu/drm/msm/adreno/a6xx_gmu.h:96:26: sparse: sparse: dereference of noderef expression
drivers/gpu/drm/msm/adreno/a6xx_gmu.h:101:44: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void [noderef] __iomem *addr @@ got void * @@
drivers/gpu/drm/msm/adreno/a6xx_gmu.h:101:44: sparse: expected void [noderef] __iomem *addr
drivers/gpu/drm/msm/adreno/a6xx_gmu.h:101:44: sparse: got void *
drivers/gpu/drm/msm/adreno/a6xx_gmu.h:101:34: sparse: sparse: dereference of noderef expression
drivers/gpu/drm/msm/adreno/a6xx_gmu.h:96:36: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const [noderef] __iomem *addr @@ got void * @@
drivers/gpu/drm/msm/adreno/a6xx_gmu.h:96:36: sparse: expected void const [noderef] __iomem *addr
drivers/gpu/drm/msm/adreno/a6xx_gmu.h:96:36: sparse: got void *
drivers/gpu/drm/msm/adreno/a6xx_gmu.h:96:26: sparse: sparse: dereference of noderef expression
drivers/gpu/drm/msm/adreno/a6xx_gmu.h:101:44: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void [noderef] __iomem *addr @@ got void * @@
drivers/gpu/drm/msm/adreno/a6xx_gmu.h:101:44: sparse: expected void [noderef] __iomem *addr
drivers/gpu/drm/msm/adreno/a6xx_gmu.h:101:44: sparse: got void *
drivers/gpu/drm/msm/adreno/a6xx_gmu.h:101:34: sparse: sparse: dereference of noderef expression
drivers/gpu/drm/msm/adreno/a6xx_gmu.h:101:44: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void [noderef] __iomem *addr @@ got void * @@
drivers/gpu/drm/msm/adreno/a6xx_gmu.h:101:44: sparse: expected void [noderef] __iomem *addr
drivers/gpu/drm/msm/adreno/a6xx_gmu.h:101:44: sparse: got void *
drivers/gpu/drm/msm/adreno/a6xx_gmu.h:101:34: sparse: sparse: dereference of noderef expression
drivers/gpu/drm/msm/adreno/a6xx_gmu.h:101:44: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void [noderef] __iomem *addr @@ got void * @@
drivers/gpu/drm/msm/adreno/a6xx_gmu.h:101:44: sparse: expected void [noderef] __iomem *addr
drivers/gpu/drm/msm/adreno/a6xx_gmu.h:101:44: sparse: got void *
drivers/gpu/drm/msm/adreno/a6xx_gmu.h:101:34: sparse: sparse: dereference of noderef expression
drivers/gpu/drm/msm/adreno/a6xx_gmu.h:124:41: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const [noderef] __iomem *addr @@ got void * @@
drivers/gpu/drm/msm/adreno/a6xx_gmu.h:124:41: sparse: expected void const [noderef] __iomem *addr
drivers/gpu/drm/msm/adreno/a6xx_gmu.h:124:41: sparse: got void *
drivers/gpu/drm/msm/adreno/a6xx_gmu.h:125:43: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const [noderef] __iomem *addr @@ got void * @@
drivers/gpu/drm/msm/adreno/a6xx_gmu.h:125:43: sparse: expected void const [noderef] __iomem *addr
drivers/gpu/drm/msm/adreno/a6xx_gmu.h:125:43: sparse: got void *
drivers/gpu/drm/msm/adreno/a6xx_gmu.h:124:31: sparse: sparse: dereference of noderef expression
drivers/gpu/drm/msm/adreno/a6xx_gmu.h:125:33: sparse: sparse: dereference of noderef expression
vim +/a6xx_gpu_set_freq +1643 drivers/gpu/drm/msm/adreno/a6xx_gpu.c
474dadb8b0d5576 Sharat Masetty 2020-11-25 1488
474dadb8b0d5576 Sharat Masetty 2020-11-25 1489 static void a6xx_llc_slices_init(struct platform_device *pdev,
474dadb8b0d5576 Sharat Masetty 2020-11-25 1490 struct a6xx_gpu *a6xx_gpu)
474dadb8b0d5576 Sharat Masetty 2020-11-25 1491 {
3d247123b5a16f5 Jordan Crouse 2020-11-25 1492 struct device_node *phandle;
3d247123b5a16f5 Jordan Crouse 2020-11-25 1493
3d247123b5a16f5 Jordan Crouse 2020-11-25 1494 /*
3d247123b5a16f5 Jordan Crouse 2020-11-25 1495 * There is a different programming path for targets with an mmu500
3d247123b5a16f5 Jordan Crouse 2020-11-25 1496 * attached, so detect if that is the case
3d247123b5a16f5 Jordan Crouse 2020-11-25 1497 */
3d247123b5a16f5 Jordan Crouse 2020-11-25 1498 phandle = of_parse_phandle(pdev->dev.of_node, "iommus", 0);
3d247123b5a16f5 Jordan Crouse 2020-11-25 1499 a6xx_gpu->have_mmu500 = (phandle &&
3d247123b5a16f5 Jordan Crouse 2020-11-25 1500 of_device_is_compatible(phandle, "arm,mmu-500"));
3d247123b5a16f5 Jordan Crouse 2020-11-25 1501 of_node_put(phandle);
3d247123b5a16f5 Jordan Crouse 2020-11-25 1502
4b95d371fb00118 Jonathan Marek 2021-04-23 1503 if (a6xx_gpu->have_mmu500)
4b95d371fb00118 Jonathan Marek 2021-04-23 1504 a6xx_gpu->llc_mmio = NULL;
4b95d371fb00118 Jonathan Marek 2021-04-23 1505 else
4b95d371fb00118 Jonathan Marek 2021-04-23 1506 a6xx_gpu->llc_mmio = msm_ioremap(pdev, "cx_mem", "gpu_cx");
4b95d371fb00118 Jonathan Marek 2021-04-23 1507
474dadb8b0d5576 Sharat Masetty 2020-11-25 1508 a6xx_gpu->llc_slice = llcc_slice_getd(LLCC_GPU);
474dadb8b0d5576 Sharat Masetty 2020-11-25 1509 a6xx_gpu->htw_llc_slice = llcc_slice_getd(LLCC_GPUHTW);
474dadb8b0d5576 Sharat Masetty 2020-11-25 1510
276619c0923f8fa Sai Prakash Ranjan 2021-01-11 1511 if (IS_ERR_OR_NULL(a6xx_gpu->llc_slice) && IS_ERR_OR_NULL(a6xx_gpu->htw_llc_slice))
474dadb8b0d5576 Sharat Masetty 2020-11-25 @1512 a6xx_gpu->llc_mmio = ERR_PTR(-EINVAL);
474dadb8b0d5576 Sharat Masetty 2020-11-25 1513 }
474dadb8b0d5576 Sharat Masetty 2020-11-25 1514
4b565ca5a2cbbbb Jordan Crouse 2018-08-06 1515 static int a6xx_pm_resume(struct msm_gpu *gpu)
4b565ca5a2cbbbb Jordan Crouse 2018-08-06 1516 {
4b565ca5a2cbbbb Jordan Crouse 2018-08-06 1517 struct adreno_gpu *adreno_gpu = to_adreno_gpu(gpu);
4b565ca5a2cbbbb Jordan Crouse 2018-08-06 1518 struct a6xx_gpu *a6xx_gpu = to_a6xx_gpu(adreno_gpu);
4b565ca5a2cbbbb Jordan Crouse 2018-08-06 1519 int ret;
4b565ca5a2cbbbb Jordan Crouse 2018-08-06 1520
4b565ca5a2cbbbb Jordan Crouse 2018-08-06 1521 gpu->needs_hw_init = true;
4b565ca5a2cbbbb Jordan Crouse 2018-08-06 1522
ec1cb6e4408abe5 Rob Clark 2020-09-01 1523 trace_msm_gpu_resume(0);
ec1cb6e4408abe5 Rob Clark 2020-09-01 1524
f6f59072e821901 Rob Clark 2021-09-27 1525 mutex_lock(&a6xx_gpu->gmu.lock);
41570b747cf3ae8 Jordan Crouse 2019-02-04 1526 ret = a6xx_gmu_resume(a6xx_gpu);
f6f59072e821901 Rob Clark 2021-09-27 1527 mutex_unlock(&a6xx_gpu->gmu.lock);
41570b747cf3ae8 Jordan Crouse 2019-02-04 1528 if (ret)
41570b747cf3ae8 Jordan Crouse 2019-02-04 1529 return ret;
41570b747cf3ae8 Jordan Crouse 2019-02-04 1530
af5b4fff0fe80c8 Rob Clark 2021-07-26 1531 msm_devfreq_resume(gpu);
a2c3c0a54d4cccb Sharat Masetty 2018-10-04 1532
474dadb8b0d5576 Sharat Masetty 2020-11-25 1533 a6xx_llc_activate(a6xx_gpu);
474dadb8b0d5576 Sharat Masetty 2020-11-25 1534
41570b747cf3ae8 Jordan Crouse 2019-02-04 1535 return 0;
4b565ca5a2cbbbb Jordan Crouse 2018-08-06 1536 }
4b565ca5a2cbbbb Jordan Crouse 2018-08-06 1537
4b565ca5a2cbbbb Jordan Crouse 2018-08-06 1538 static int a6xx_pm_suspend(struct msm_gpu *gpu)
4b565ca5a2cbbbb Jordan Crouse 2018-08-06 1539 {
4b565ca5a2cbbbb Jordan Crouse 2018-08-06 1540 struct adreno_gpu *adreno_gpu = to_adreno_gpu(gpu);
4b565ca5a2cbbbb Jordan Crouse 2018-08-06 1541 struct a6xx_gpu *a6xx_gpu = to_a6xx_gpu(adreno_gpu);
e8b0b994c3a5881 Rob Clark 2020-11-10 1542 int i, ret;
4b565ca5a2cbbbb Jordan Crouse 2018-08-06 1543
ec1cb6e4408abe5 Rob Clark 2020-09-01 1544 trace_msm_gpu_suspend(0);
ec1cb6e4408abe5 Rob Clark 2020-09-01 1545
474dadb8b0d5576 Sharat Masetty 2020-11-25 1546 a6xx_llc_deactivate(a6xx_gpu);
474dadb8b0d5576 Sharat Masetty 2020-11-25 1547
af5b4fff0fe80c8 Rob Clark 2021-07-26 1548 msm_devfreq_suspend(gpu);
a2c3c0a54d4cccb Sharat Masetty 2018-10-04 1549
f6f59072e821901 Rob Clark 2021-09-27 1550 mutex_lock(&a6xx_gpu->gmu.lock);
e8b0b994c3a5881 Rob Clark 2020-11-10 1551 ret = a6xx_gmu_stop(a6xx_gpu);
f6f59072e821901 Rob Clark 2021-09-27 1552 mutex_unlock(&a6xx_gpu->gmu.lock);
e8b0b994c3a5881 Rob Clark 2020-11-10 1553 if (ret)
e8b0b994c3a5881 Rob Clark 2020-11-10 1554 return ret;
e8b0b994c3a5881 Rob Clark 2020-11-10 1555
ce86c239e4d218a Jonathan Marek 2021-05-13 1556 if (a6xx_gpu->shadow_bo)
e8b0b994c3a5881 Rob Clark 2020-11-10 1557 for (i = 0; i < gpu->nr_rings; i++)
e8b0b994c3a5881 Rob Clark 2020-11-10 1558 a6xx_gpu->shadow[i] = 0;
e8b0b994c3a5881 Rob Clark 2020-11-10 1559
e8b0b994c3a5881 Rob Clark 2020-11-10 1560 return 0;
4b565ca5a2cbbbb Jordan Crouse 2018-08-06 1561 }
4b565ca5a2cbbbb Jordan Crouse 2018-08-06 1562
4b565ca5a2cbbbb Jordan Crouse 2018-08-06 1563 static int a6xx_get_timestamp(struct msm_gpu *gpu, uint64_t *value)
4b565ca5a2cbbbb Jordan Crouse 2018-08-06 1564 {
4b565ca5a2cbbbb Jordan Crouse 2018-08-06 1565 struct adreno_gpu *adreno_gpu = to_adreno_gpu(gpu);
4b565ca5a2cbbbb Jordan Crouse 2018-08-06 1566 struct a6xx_gpu *a6xx_gpu = to_a6xx_gpu(adreno_gpu);
5f98b33b04c02c0 Eric Anholt 2021-01-28 1567
f6f59072e821901 Rob Clark 2021-09-27 1568 mutex_lock(&a6xx_gpu->gmu.lock);
4b565ca5a2cbbbb Jordan Crouse 2018-08-06 1569
4b565ca5a2cbbbb Jordan Crouse 2018-08-06 1570 /* Force the GPU power on so we can read this register */
7a7cbf2a8197406 Eric Anholt 2021-01-28 1571 a6xx_gmu_set_oob(&a6xx_gpu->gmu, GMU_OOB_PERFCOUNTER_SET);
4b565ca5a2cbbbb Jordan Crouse 2018-08-06 1572
9fbd3088351b92e Rob Clark 2021-03-24 1573 *value = gpu_read64(gpu, REG_A6XX_CP_ALWAYS_ON_COUNTER_LO,
9fbd3088351b92e Rob Clark 2021-03-24 1574 REG_A6XX_CP_ALWAYS_ON_COUNTER_HI);
4b565ca5a2cbbbb Jordan Crouse 2018-08-06 1575
7a7cbf2a8197406 Eric Anholt 2021-01-28 1576 a6xx_gmu_clear_oob(&a6xx_gpu->gmu, GMU_OOB_PERFCOUNTER_SET);
f6f59072e821901 Rob Clark 2021-09-27 1577
f6f59072e821901 Rob Clark 2021-09-27 1578 mutex_unlock(&a6xx_gpu->gmu.lock);
f6f59072e821901 Rob Clark 2021-09-27 1579
4b565ca5a2cbbbb Jordan Crouse 2018-08-06 1580 return 0;
4b565ca5a2cbbbb Jordan Crouse 2018-08-06 1581 }
4b565ca5a2cbbbb Jordan Crouse 2018-08-06 1582
4b565ca5a2cbbbb Jordan Crouse 2018-08-06 1583 static struct msm_ringbuffer *a6xx_active_ring(struct msm_gpu *gpu)
4b565ca5a2cbbbb Jordan Crouse 2018-08-06 1584 {
4b565ca5a2cbbbb Jordan Crouse 2018-08-06 1585 struct adreno_gpu *adreno_gpu = to_adreno_gpu(gpu);
4b565ca5a2cbbbb Jordan Crouse 2018-08-06 1586 struct a6xx_gpu *a6xx_gpu = to_a6xx_gpu(adreno_gpu);
4b565ca5a2cbbbb Jordan Crouse 2018-08-06 1587
4b565ca5a2cbbbb Jordan Crouse 2018-08-06 1588 return a6xx_gpu->cur_ring;
4b565ca5a2cbbbb Jordan Crouse 2018-08-06 1589 }
4b565ca5a2cbbbb Jordan Crouse 2018-08-06 1590
4b565ca5a2cbbbb Jordan Crouse 2018-08-06 1591 static void a6xx_destroy(struct msm_gpu *gpu)
4b565ca5a2cbbbb Jordan Crouse 2018-08-06 1592 {
4b565ca5a2cbbbb Jordan Crouse 2018-08-06 1593 struct adreno_gpu *adreno_gpu = to_adreno_gpu(gpu);
4b565ca5a2cbbbb Jordan Crouse 2018-08-06 1594 struct a6xx_gpu *a6xx_gpu = to_a6xx_gpu(adreno_gpu);
4b565ca5a2cbbbb Jordan Crouse 2018-08-06 1595
4b565ca5a2cbbbb Jordan Crouse 2018-08-06 1596 if (a6xx_gpu->sqe_bo) {
7ad0e8cf6317825 Jordan Crouse 2018-11-07 1597 msm_gem_unpin_iova(a6xx_gpu->sqe_bo, gpu->aspace);
f7d33950cd6a70a Emil Velikov 2020-05-15 1598 drm_gem_object_put(a6xx_gpu->sqe_bo);
4b565ca5a2cbbbb Jordan Crouse 2018-08-06 1599 }
4b565ca5a2cbbbb Jordan Crouse 2018-08-06 1600
d3a569fccfa087a Jordan Crouse 2020-09-14 1601 if (a6xx_gpu->shadow_bo) {
d3a569fccfa087a Jordan Crouse 2020-09-14 1602 msm_gem_unpin_iova(a6xx_gpu->shadow_bo, gpu->aspace);
d3a569fccfa087a Jordan Crouse 2020-09-14 1603 drm_gem_object_put(a6xx_gpu->shadow_bo);
d3a569fccfa087a Jordan Crouse 2020-09-14 1604 }
d3a569fccfa087a Jordan Crouse 2020-09-14 1605
474dadb8b0d5576 Sharat Masetty 2020-11-25 1606 a6xx_llc_slices_destroy(a6xx_gpu);
474dadb8b0d5576 Sharat Masetty 2020-11-25 1607
4b565ca5a2cbbbb Jordan Crouse 2018-08-06 1608 a6xx_gmu_remove(a6xx_gpu);
4b565ca5a2cbbbb Jordan Crouse 2018-08-06 1609
4b565ca5a2cbbbb Jordan Crouse 2018-08-06 1610 adreno_gpu_cleanup(adreno_gpu);
fe7952c629daec6 Akhil P Oommen 2021-01-08 1611
4b565ca5a2cbbbb Jordan Crouse 2018-08-06 1612 kfree(a6xx_gpu);
4b565ca5a2cbbbb Jordan Crouse 2018-08-06 1613 }
4b565ca5a2cbbbb Jordan Crouse 2018-08-06 1614
a2c3c0a54d4cccb Sharat Masetty 2018-10-04 1615 static unsigned long a6xx_gpu_busy(struct msm_gpu *gpu)
a2c3c0a54d4cccb Sharat Masetty 2018-10-04 1616 {
a2c3c0a54d4cccb Sharat Masetty 2018-10-04 1617 struct adreno_gpu *adreno_gpu = to_adreno_gpu(gpu);
a2c3c0a54d4cccb Sharat Masetty 2018-10-04 1618 struct a6xx_gpu *a6xx_gpu = to_a6xx_gpu(adreno_gpu);
16f37102181e23e Sean Paul 2018-10-08 1619 u64 busy_cycles, busy_time;
a2c3c0a54d4cccb Sharat Masetty 2018-10-04 1620
eadf79286a4bade Jordan Crouse 2020-05-01 1621
eadf79286a4bade Jordan Crouse 2020-05-01 1622 /* Only read the gpu busy if the hardware is already active */
eadf79286a4bade Jordan Crouse 2020-05-01 1623 if (pm_runtime_get_if_in_use(a6xx_gpu->gmu.dev) == 0)
eadf79286a4bade Jordan Crouse 2020-05-01 1624 return 0;
eadf79286a4bade Jordan Crouse 2020-05-01 1625
a2c3c0a54d4cccb Sharat Masetty 2018-10-04 1626 busy_cycles = gmu_read64(&a6xx_gpu->gmu,
a2c3c0a54d4cccb Sharat Masetty 2018-10-04 1627 REG_A6XX_GMU_CX_GMU_POWER_COUNTER_XOCLK_0_L,
a2c3c0a54d4cccb Sharat Masetty 2018-10-04 1628 REG_A6XX_GMU_CX_GMU_POWER_COUNTER_XOCLK_0_H);
a2c3c0a54d4cccb Sharat Masetty 2018-10-04 1629
16f37102181e23e Sean Paul 2018-10-08 1630 busy_time = (busy_cycles - gpu->devfreq.busy_cycles) * 10;
16f37102181e23e Sean Paul 2018-10-08 1631 do_div(busy_time, 192);
a2c3c0a54d4cccb Sharat Masetty 2018-10-04 1632
a2c3c0a54d4cccb Sharat Masetty 2018-10-04 1633 gpu->devfreq.busy_cycles = busy_cycles;
a2c3c0a54d4cccb Sharat Masetty 2018-10-04 1634
eadf79286a4bade Jordan Crouse 2020-05-01 1635 pm_runtime_put(a6xx_gpu->gmu.dev);
eadf79286a4bade Jordan Crouse 2020-05-01 1636
16f37102181e23e Sean Paul 2018-10-08 1637 if (WARN_ON(busy_time > ~0LU))
16f37102181e23e Sean Paul 2018-10-08 1638 return ~0LU;
16f37102181e23e Sean Paul 2018-10-08 1639
16f37102181e23e Sean Paul 2018-10-08 1640 return (unsigned long)busy_time;
a2c3c0a54d4cccb Sharat Masetty 2018-10-04 1641 }
a2c3c0a54d4cccb Sharat Masetty 2018-10-04 1642
f6f59072e821901 Rob Clark 2021-09-27 @1643 void a6xx_gpu_set_freq(struct msm_gpu *gpu, struct dev_pm_opp *opp)
f6f59072e821901 Rob Clark 2021-09-27 1644 {
f6f59072e821901 Rob Clark 2021-09-27 1645 struct adreno_gpu *adreno_gpu = to_adreno_gpu(gpu);
f6f59072e821901 Rob Clark 2021-09-27 1646 struct a6xx_gpu *a6xx_gpu = to_a6xx_gpu(adreno_gpu);
f6f59072e821901 Rob Clark 2021-09-27 1647
f6f59072e821901 Rob Clark 2021-09-27 1648 mutex_lock(&a6xx_gpu->gmu.lock);
f6f59072e821901 Rob Clark 2021-09-27 1649 a6xx_gmu_set_freq(gpu, opp);
f6f59072e821901 Rob Clark 2021-09-27 1650 mutex_unlock(&a6xx_gpu->gmu.lock);
f6f59072e821901 Rob Clark 2021-09-27 1651 }
f6f59072e821901 Rob Clark 2021-09-27 1652
:::::: The code at line 1643 was first introduced by commit
:::::: f6f59072e821901d96c791864a07d57d8ec8d312 drm/msm/a6xx: Serialize GMU communication
:::::: TO: Rob Clark <robdclark(a)chromium.org>
:::::: CC: Rob Clark <robdclark(a)chromium.org>
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
10 months, 1 week
[cel:topic-nfsd-tracepoints 50/162] include/trace/../../fs/lockd/xdrtrace.h:35:19: error: 'NLM_DEADLCK' undeclared here (not in a function)
by kernel test robot
tree: git://git.kernel.org/pub/scm/linux/kernel/git/cel/linux topic-nfsd-tracepoints
head: b6c4274cc47f0469a384be035e9f685deeb018c6
commit: 4f709b313a7165ea0c8d7324dd8c4f0bc58c071b [50/162] lockd: Infrastructure for lockd server-side XDR tracepoints
config: microblaze-buildonly-randconfig-r006-20211116 (attached as .config)
compiler: microblaze-linux-gcc (GCC) 11.2.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/cel/linux.git/commit/?id=...
git remote add cel git://git.kernel.org/pub/scm/linux/kernel/git/cel/linux
git fetch --no-tags cel topic-nfsd-tracepoints
git checkout 4f709b313a7165ea0c8d7324dd8c4f0bc58c071b
# save the attached .config to linux build tree
mkdir build_dir
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-11.2.0 make.cross O=build_dir ARCH=microblaze SHELL=/bin/bash fs/
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp(a)intel.com>
All errors (new ones prefixed by >>):
In file included from include/trace/define_trace.h:102,
from fs/lockd/xdrtrace.h:96,
from fs/lockd/xdrtrace.c:30:
>> include/trace/../../fs/lockd/xdrtrace.h:35:19: error: 'NLM_DEADLCK' undeclared here (not in a function)
35 | TRACE_DEFINE_ENUM(NLM_DEADLCK);
| ^~~~~~~~~~~
include/trace/trace_events.h:45:31: note: in definition of macro 'TRACE_DEFINE_ENUM'
45 | .eval_value = a \
| ^
>> include/trace/../../fs/lockd/xdrtrace.h:36:19: error: 'NLM_ROFS' undeclared here (not in a function)
36 | TRACE_DEFINE_ENUM(NLM_ROFS);
| ^~~~~~~~
include/trace/trace_events.h:45:31: note: in definition of macro 'TRACE_DEFINE_ENUM'
45 | .eval_value = a \
| ^
>> include/trace/../../fs/lockd/xdrtrace.h:37:19: error: 'NLM_STALE_FH' undeclared here (not in a function)
37 | TRACE_DEFINE_ENUM(NLM_STALE_FH);
| ^~~~~~~~~~~~
include/trace/trace_events.h:45:31: note: in definition of macro 'TRACE_DEFINE_ENUM'
45 | .eval_value = a \
| ^
>> include/trace/../../fs/lockd/xdrtrace.h:38:19: error: 'NLM_FBIG' undeclared here (not in a function)
38 | TRACE_DEFINE_ENUM(NLM_FBIG);
| ^~~~~~~~
include/trace/trace_events.h:45:31: note: in definition of macro 'TRACE_DEFINE_ENUM'
45 | .eval_value = a \
| ^
>> include/trace/../../fs/lockd/xdrtrace.h:39:19: error: 'NLM_FAILED' undeclared here (not in a function); did you mean 'MF_FAILED'?
39 | TRACE_DEFINE_ENUM(NLM_FAILED);
| ^~~~~~~~~~
include/trace/trace_events.h:45:31: note: in definition of macro 'TRACE_DEFINE_ENUM'
45 | .eval_value = a \
| ^
vim +/NLM_DEADLCK +35 include/trace/../../fs/lockd/xdrtrace.h
25
26 /**
27 ** Helpers
28 **/
29
30 TRACE_DEFINE_ENUM(NLM_LCK_GRANTED);
31 TRACE_DEFINE_ENUM(NLM_LCK_DENIED);
32 TRACE_DEFINE_ENUM(NLM_LCK_DENIED_NOLOCKS);
33 TRACE_DEFINE_ENUM(NLM_LCK_BLOCKED);
34 TRACE_DEFINE_ENUM(NLM_LCK_DENIED_GRACE_PERIOD);
> 35 TRACE_DEFINE_ENUM(NLM_DEADLCK);
> 36 TRACE_DEFINE_ENUM(NLM_ROFS);
> 37 TRACE_DEFINE_ENUM(NLM_STALE_FH);
> 38 TRACE_DEFINE_ENUM(NLM_FBIG);
> 39 TRACE_DEFINE_ENUM(NLM_FAILED);
40
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
10 months, 1 week