tree:
https://android.googlesource.com/kernel/common android12-5.10
head: e6a59da61ee8027a97faa3e93945e3f397570a1e
commit: e6a59da61ee8027a97faa3e93945e3f397570a1e [1/1] ANDROID: media: v4l2-core: Fix
deadlock in vendor hook
config: x86_64-randconfig-s021-20210720 (attached as .config)
compiler: gcc-10 (Ubuntu 10.3.0-1ubuntu1~20.04) 10.3.0
reproduce:
# apt-get install sparse
# sparse version: v0.6.3-341-g8af24329-dirty
git remote add android-common
https://android.googlesource.com/kernel/common
git fetch --no-tags android-common android12-5.10
git checkout e6a59da61ee8027a97faa3e93945e3f397570a1e
# save the attached .config to linux build tree
make W=1 C=1 CF='-fdiagnostic-prefix -D__CHECK_ENDIAN__' ARCH=x86_64
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 >>)
include/trace/hooks/sched.h:337:1: sparse: expected struct tracepoint_func
*it_func_ptr
include/trace/hooks/sched.h:337:1: sparse: got struct tracepoint_func [noderef]
__rcu *funcs
include/trace/hooks/sched.h:341:1: sparse: sparse: incorrect type in assignment
(different address spaces) @@ expected struct tracepoint_func *it_func_ptr @@ got
struct tracepoint_func [noderef] __rcu *funcs @@
include/trace/hooks/sched.h:341:1: sparse: expected struct tracepoint_func
*it_func_ptr
include/trace/hooks/sched.h:341:1: sparse: got struct tracepoint_func [noderef]
__rcu *funcs
include/trace/hooks/sched.h:345:1: sparse: sparse: incorrect type in assignment
(different address spaces) @@ expected struct tracepoint_func *it_func_ptr @@ got
struct tracepoint_func [noderef] __rcu *funcs @@
include/trace/hooks/sched.h:345:1: sparse: expected struct tracepoint_func
*it_func_ptr
include/trace/hooks/sched.h:345:1: sparse: got struct tracepoint_func [noderef]
__rcu *funcs
include/trace/hooks/sched.h:349:1: sparse: sparse: incorrect type in assignment
(different address spaces) @@ expected struct tracepoint_func *it_func_ptr @@ got
struct tracepoint_func [noderef] __rcu *funcs @@
include/trace/hooks/sched.h:349:1: sparse: expected struct tracepoint_func
*it_func_ptr
include/trace/hooks/sched.h:349:1: sparse: got struct tracepoint_func [noderef]
__rcu *funcs
include/trace/hooks/sched.h:369:1: sparse: sparse: incorrect type in assignment
(different address spaces) @@ expected struct tracepoint_func *it_func_ptr @@ got
struct tracepoint_func [noderef] __rcu *funcs @@
include/trace/hooks/sched.h:369:1: sparse: expected struct tracepoint_func
*it_func_ptr
include/trace/hooks/sched.h:369:1: sparse: got struct tracepoint_func [noderef]
__rcu *funcs
include/trace/hooks/sched.h:373:1: sparse: sparse: incorrect type in assignment
(different address spaces) @@ expected struct tracepoint_func *it_func_ptr @@ got
struct tracepoint_func [noderef] __rcu *funcs @@
include/trace/hooks/sched.h:373:1: sparse: expected struct tracepoint_func
*it_func_ptr
include/trace/hooks/sched.h:373:1: sparse: got struct tracepoint_func [noderef]
__rcu *funcs
include/trace/hooks/sched.h:377:1: sparse: sparse: incorrect type in assignment
(different address spaces) @@ expected struct tracepoint_func *it_func_ptr @@ got
struct tracepoint_func [noderef] __rcu *funcs @@
include/trace/hooks/sched.h:377:1: sparse: expected struct tracepoint_func
*it_func_ptr
include/trace/hooks/sched.h:377:1: sparse: got struct tracepoint_func [noderef]
__rcu *funcs
drivers/android/vendor_hooks.c: note: in included file (through
include/trace/define_trace.h, include/trace/hooks/gic_v3.h):
include/trace/hooks/gic_v3.h:18:1: sparse: sparse: incorrect type in assignment
(different address spaces) @@ expected struct tracepoint_func *it_func_ptr @@ got
struct tracepoint_func [noderef] __rcu *funcs @@
include/trace/hooks/gic_v3.h:18:1: sparse: expected struct tracepoint_func
*it_func_ptr
include/trace/hooks/gic_v3.h:18:1: sparse: got struct tracepoint_func [noderef]
__rcu *funcs
drivers/android/vendor_hooks.c: note: in included file (through
include/trace/define_trace.h, include/trace/hooks/cpufreq.h):
include/trace/hooks/cpufreq.h:27:1: sparse: sparse: incorrect type in assignment
(different address spaces) @@ expected struct tracepoint_func *it_func_ptr @@ got
struct tracepoint_func [noderef] __rcu *funcs @@
include/trace/hooks/cpufreq.h:27:1: sparse: expected struct tracepoint_func
*it_func_ptr
include/trace/hooks/cpufreq.h:27:1: sparse: got struct tracepoint_func [noderef]
__rcu *funcs
drivers/android/vendor_hooks.c: note: in included file (through
include/trace/define_trace.h, include/trace/hooks/mm.h):
include/trace/hooks/mm.h:19:1: sparse: sparse: incorrect type in assignment (different
address spaces) @@ expected struct tracepoint_func *it_func_ptr @@ got struct
tracepoint_func [noderef] __rcu *funcs @@
include/trace/hooks/mm.h:19:1: sparse: expected struct tracepoint_func
*it_func_ptr
include/trace/hooks/mm.h:19:1: sparse: got struct tracepoint_func [noderef] __rcu
*funcs
include/trace/hooks/mm.h:22:1: sparse: sparse: incorrect type in assignment (different
address spaces) @@ expected struct tracepoint_func *it_func_ptr @@ got struct
tracepoint_func [noderef] __rcu *funcs @@
include/trace/hooks/mm.h:22:1: sparse: expected struct tracepoint_func
*it_func_ptr
include/trace/hooks/mm.h:22:1: sparse: got struct tracepoint_func [noderef] __rcu
*funcs
include/trace/hooks/mm.h:25:1: sparse: sparse: incorrect type in assignment (different
address spaces) @@ expected struct tracepoint_func *it_func_ptr @@ got struct
tracepoint_func [noderef] __rcu *funcs @@
include/trace/hooks/mm.h:25:1: sparse: expected struct tracepoint_func
*it_func_ptr
include/trace/hooks/mm.h:25:1: sparse: got struct tracepoint_func [noderef] __rcu
*funcs
drivers/android/vendor_hooks.c: note: in included file (through
include/trace/define_trace.h, include/trace/hooks/preemptirq.h):
include/trace/hooks/preemptirq.h:14:1: sparse: sparse: incorrect type in assignment
(different address spaces) @@ expected struct tracepoint_func *it_func_ptr @@ got
struct tracepoint_func [noderef] __rcu *funcs @@
include/trace/hooks/preemptirq.h:14:1: sparse: expected struct tracepoint_func
*it_func_ptr
include/trace/hooks/preemptirq.h:14:1: sparse: got struct tracepoint_func [noderef]
__rcu *funcs
include/trace/hooks/preemptirq.h:18:1: sparse: sparse: incorrect type in assignment
(different address spaces) @@ expected struct tracepoint_func *it_func_ptr @@ got
struct tracepoint_func [noderef] __rcu *funcs @@
include/trace/hooks/preemptirq.h:18:1: sparse: expected struct tracepoint_func
*it_func_ptr
include/trace/hooks/preemptirq.h:18:1: sparse: got struct tracepoint_func [noderef]
__rcu *funcs
include/trace/hooks/preemptirq.h:22:1: sparse: sparse: incorrect type in assignment
(different address spaces) @@ expected struct tracepoint_func *it_func_ptr @@ got
struct tracepoint_func [noderef] __rcu *funcs @@
include/trace/hooks/preemptirq.h:22:1: sparse: expected struct tracepoint_func
*it_func_ptr
include/trace/hooks/preemptirq.h:22:1: sparse: got struct tracepoint_func [noderef]
__rcu *funcs
include/trace/hooks/preemptirq.h:26:1: sparse: sparse: incorrect type in assignment
(different address spaces) @@ expected struct tracepoint_func *it_func_ptr @@ got
struct tracepoint_func [noderef] __rcu *funcs @@
include/trace/hooks/preemptirq.h:26:1: sparse: expected struct tracepoint_func
*it_func_ptr
include/trace/hooks/preemptirq.h:26:1: sparse: got struct tracepoint_func [noderef]
__rcu *funcs
drivers/android/vendor_hooks.c: note: in included file (through
include/trace/define_trace.h, include/trace/hooks/bug.h):
include/trace/hooks/bug.h:14:1: sparse: sparse: incorrect type in assignment (different
address spaces) @@ expected struct tracepoint_func *it_func_ptr @@ got struct
tracepoint_func [noderef] __rcu *funcs @@
include/trace/hooks/bug.h:14:1: sparse: expected struct tracepoint_func
*it_func_ptr
include/trace/hooks/bug.h:14:1: sparse: got struct tracepoint_func [noderef] __rcu
*funcs
drivers/android/vendor_hooks.c: note: in included file (through
include/trace/define_trace.h, include/trace/hooks/fault.h):
include/trace/hooks/fault.h:15:1: sparse: sparse: incorrect type in assignment
(different address spaces) @@ expected struct tracepoint_func *it_func_ptr @@ got
struct tracepoint_func [noderef] __rcu *funcs @@
include/trace/hooks/fault.h:15:1: sparse: expected struct tracepoint_func
*it_func_ptr
include/trace/hooks/fault.h:15:1: sparse: got struct tracepoint_func [noderef]
__rcu *funcs
include/trace/hooks/fault.h:19:1: sparse: sparse: incorrect type in assignment
(different address spaces) @@ expected struct tracepoint_func *it_func_ptr @@ got
struct tracepoint_func [noderef] __rcu *funcs @@
include/trace/hooks/fault.h:19:1: sparse: expected struct tracepoint_func
*it_func_ptr
include/trace/hooks/fault.h:19:1: sparse: got struct tracepoint_func [noderef]
__rcu *funcs
include/trace/hooks/fault.h:23:1: sparse: sparse: incorrect type in assignment
(different address spaces) @@ expected struct tracepoint_func *it_func_ptr @@ got
struct tracepoint_func [noderef] __rcu *funcs @@
include/trace/hooks/fault.h:23:1: sparse: expected struct tracepoint_func
*it_func_ptr
include/trace/hooks/fault.h:23:1: sparse: got struct tracepoint_func [noderef]
__rcu *funcs
include/trace/hooks/fault.h:27:1: sparse: sparse: incorrect type in assignment
(different address spaces) @@ expected struct tracepoint_func *it_func_ptr @@ got
struct tracepoint_func [noderef] __rcu *funcs @@
include/trace/hooks/fault.h:27:1: sparse: expected struct tracepoint_func
*it_func_ptr
include/trace/hooks/fault.h:27:1: sparse: got struct tracepoint_func [noderef]
__rcu *funcs
drivers/android/vendor_hooks.c: note: in included file (through
include/trace/define_trace.h, include/trace/hooks/cgroup.h):
include/trace/hooks/cgroup.h:15:1: sparse: sparse: incorrect type in assignment
(different address spaces) @@ expected struct tracepoint_func *it_func_ptr @@ got
struct tracepoint_func [noderef] __rcu *funcs @@
include/trace/hooks/cgroup.h:15:1: sparse: expected struct tracepoint_func
*it_func_ptr
include/trace/hooks/cgroup.h:15:1: sparse: got struct tracepoint_func [noderef]
__rcu *funcs
include/trace/hooks/cgroup.h:18:1: sparse: sparse: incorrect type in assignment
(different address spaces) @@ expected struct tracepoint_func *it_func_ptr @@ got
struct tracepoint_func [noderef] __rcu *funcs @@
include/trace/hooks/cgroup.h:18:1: sparse: expected struct tracepoint_func
*it_func_ptr
include/trace/hooks/cgroup.h:18:1: sparse: got struct tracepoint_func [noderef]
__rcu *funcs
include/trace/hooks/cgroup.h:21:1: sparse: sparse: incorrect type in assignment
(different address spaces) @@ expected struct tracepoint_func *it_func_ptr @@ got
struct tracepoint_func [noderef] __rcu *funcs @@
include/trace/hooks/cgroup.h:21:1: sparse: expected struct tracepoint_func
*it_func_ptr
include/trace/hooks/cgroup.h:21:1: sparse: got struct tracepoint_func [noderef]
__rcu *funcs
drivers/android/vendor_hooks.c: note: in included file (through
include/trace/define_trace.h, include/trace/hooks/traps.h):
include/trace/hooks/traps.h:15:1: sparse: sparse: incorrect type in assignment
(different address spaces) @@ expected struct tracepoint_func *it_func_ptr @@ got
struct tracepoint_func [noderef] __rcu *funcs @@
include/trace/hooks/traps.h:15:1: sparse: expected struct tracepoint_func
*it_func_ptr
include/trace/hooks/traps.h:15:1: sparse: got struct tracepoint_func [noderef]
__rcu *funcs
include/trace/hooks/traps.h:20:1: sparse: sparse: incorrect type in assignment
(different address spaces) @@ expected struct tracepoint_func *it_func_ptr @@ got
struct tracepoint_func [noderef] __rcu *funcs @@
include/trace/hooks/traps.h:20:1: sparse: expected struct tracepoint_func
*it_func_ptr
include/trace/hooks/traps.h:20:1: sparse: got struct tracepoint_func [noderef]
__rcu *funcs
include/trace/hooks/traps.h:24:1: sparse: sparse: incorrect type in assignment
(different address spaces) @@ expected struct tracepoint_func *it_func_ptr @@ got
struct tracepoint_func [noderef] __rcu *funcs @@
include/trace/hooks/traps.h:24:1: sparse: expected struct tracepoint_func
*it_func_ptr
include/trace/hooks/traps.h:24:1: sparse: got struct tracepoint_func [noderef]
__rcu *funcs
drivers/android/vendor_hooks.c: note: in included file (through
include/trace/define_trace.h, include/trace/hooks/typec.h):
include/trace/hooks/typec.h:32:1: sparse: sparse: incorrect type in assignment
(different address spaces) @@ expected struct tracepoint_func *it_func_ptr @@ got
struct tracepoint_func [noderef] __rcu *funcs @@
include/trace/hooks/typec.h:32:1: sparse: expected struct tracepoint_func
*it_func_ptr
include/trace/hooks/typec.h:32:1: sparse: got struct tracepoint_func [noderef]
__rcu *funcs
include/trace/hooks/typec.h:43:1: sparse: sparse: incorrect type in assignment
(different address spaces) @@ expected struct tracepoint_func *it_func_ptr @@ got
struct tracepoint_func [noderef] __rcu *funcs @@
include/trace/hooks/typec.h:43:1: sparse: expected struct tracepoint_func
*it_func_ptr
include/trace/hooks/typec.h:43:1: sparse: got struct tracepoint_func [noderef]
__rcu *funcs
drivers/android/vendor_hooks.c: note: in included file (through
include/trace/define_trace.h, include/trace/hooks/vmscan.h):
include/trace/hooks/vmscan.h:28:1: sparse: sparse: incorrect type in assignment
(different address spaces) @@ expected struct tracepoint_func *it_func_ptr @@ got
struct tracepoint_func [noderef] __rcu *funcs @@
include/trace/hooks/vmscan.h:28:1: sparse: expected struct tracepoint_func
*it_func_ptr
include/trace/hooks/vmscan.h:28:1: sparse: got struct tracepoint_func [noderef]
__rcu *funcs
drivers/android/vendor_hooks.c: note: in included file (through
include/trace/define_trace.h, include/trace/hooks/v4l2core.h):
> include/trace/hooks/v4l2core.h:47:1: sparse: sparse: incorrect
type in assignment (different address spaces) @@ expected struct tracepoint_func
*it_func_ptr @@ got struct tracepoint_func [noderef] __rcu *funcs @@
include/trace/hooks/v4l2core.h:47:1: sparse: expected struct tracepoint_func
*it_func_ptr
include/trace/hooks/v4l2core.h:47:1: sparse: got struct tracepoint_func [noderef]
__rcu *funcs
include/trace/hooks/v4l2core.h:52:1: sparse: sparse: incorrect type in assignment
(different address spaces) @@ expected struct tracepoint_func *it_func_ptr @@ got
struct tracepoint_func [noderef] __rcu *funcs @@
include/trace/hooks/v4l2core.h:52:1: sparse: expected struct tracepoint_func
*it_func_ptr
include/trace/hooks/v4l2core.h:52:1: sparse: got struct tracepoint_func [noderef]
__rcu *funcs
include/trace/hooks/v4l2core.h:57:1: sparse: sparse: incorrect type in assignment
(different address spaces) @@ expected struct tracepoint_func *it_func_ptr @@ got
struct tracepoint_func [noderef] __rcu *funcs @@
include/trace/hooks/v4l2core.h:57:1: sparse: expected struct tracepoint_func
*it_func_ptr
include/trace/hooks/v4l2core.h:57:1: sparse: got struct tracepoint_func [noderef]
__rcu *funcs
drivers/android/vendor_hooks.c: note: in included file (through
include/trace/define_trace.h, include/trace/hooks/v4l2mc.h):
> include/trace/hooks/v4l2mc.h:19:1: sparse: sparse: incorrect type
in assignment (different address spaces) @@ expected struct tracepoint_func
*it_func_ptr @@ got struct tracepoint_func [noderef] __rcu *funcs @@
include/trace/hooks/v4l2mc.h:19:1: sparse: expected struct tracepoint_func
*it_func_ptr
include/trace/hooks/v4l2mc.h:19:1: sparse: got struct tracepoint_func [noderef]
__rcu *funcs
drivers/android/vendor_hooks.c: note: in included file (through
include/trace/define_trace.h, include/trace/hooks/net.h):
include/trace/hooks/net.h:23:1: sparse: sparse: incorrect type in assignment (different
address spaces) @@ expected struct tracepoint_func *it_func_ptr @@ got struct
tracepoint_func [noderef] __rcu *funcs @@
include/trace/hooks/net.h:23:1: sparse: expected struct tracepoint_func
*it_func_ptr
include/trace/hooks/net.h:23:1: sparse: got struct tracepoint_func [noderef] __rcu
*funcs
include/trace/hooks/net.h:25:1: sparse: sparse: incorrect type in assignment (different
address spaces) @@ expected struct tracepoint_func *it_func_ptr @@ got struct
tracepoint_func [noderef] __rcu *funcs @@
include/trace/hooks/net.h:25:1: sparse: expected struct tracepoint_func
*it_func_ptr
include/trace/hooks/net.h:25:1: sparse: got struct tracepoint_func [noderef] __rcu
*funcs
include/trace/hooks/net.h:27:1: sparse: sparse: incorrect type in assignment (different
address spaces) @@ expected struct tracepoint_func *it_func_ptr @@ got struct
tracepoint_func [noderef] __rcu *funcs @@
include/trace/hooks/net.h:27:1: sparse: expected struct tracepoint_func
*it_func_ptr
include/trace/hooks/net.h:27:1: sparse: got struct tracepoint_func [noderef] __rcu
*funcs
include/trace/hooks/net.h:29:1: sparse: sparse: incorrect type in assignment (different
address spaces) @@ expected struct tracepoint_func *it_func_ptr @@ got struct
tracepoint_func [noderef] __rcu *funcs @@
include/trace/hooks/net.h:29:1: sparse: expected struct tracepoint_func
*it_func_ptr
include/trace/hooks/net.h:29:1: sparse: got struct tracepoint_func [noderef] __rcu
*funcs
vim +47 include/trace/hooks/v4l2core.h
12
13 struct v4l2_format;
14 DECLARE_HOOK(android_vh_clear_reserved_fmt_fields,
15 TP_PROTO(struct v4l2_format *fmt, int *ret),
16 TP_ARGS(fmt, ret));
17
18 struct v4l2_fmtdesc;
19 DECLARE_HOOK(android_vh_fill_ext_fmtdesc,
20 TP_PROTO(struct v4l2_fmtdesc *fmtd, const char **descr),
21 TP_ARGS(fmtd, descr));
22
23 DECLARE_HOOK(android_vh_clear_mask_adjust,
24 TP_PROTO(unsigned int ctrl, int *n),
25 TP_ARGS(ctrl, n));
26
27 struct v4l2_subdev;
28 struct v4l2_subdev_pad_config;
29 struct v4l2_subdev_selection;
30 DECLARE_HOOK(android_vh_v4l2subdev_set_selection,
31 TP_PROTO(struct v4l2_subdev *sd, struct v4l2_subdev_pad_config *pad,
32 struct v4l2_subdev_selection *sel, int *ret),
33 TP_ARGS(sd, pad, sel, ret));
34
35 struct v4l2_subdev_format;
36 DECLARE_HOOK(android_vh_v4l2subdev_set_fmt,
37 TP_PROTO(struct v4l2_subdev *sd, struct v4l2_subdev_pad_config *pad,
38 struct v4l2_subdev_format *format, int *ret),
39 TP_ARGS(sd, pad, format, ret));
40
41 struct v4l2_subdev_frame_interval;
42 DECLARE_HOOK(android_vh_v4l2subdev_set_frame_interval,
43 TP_PROTO(struct v4l2_subdev *sd, struct v4l2_subdev_frame_interval *fi,
44 int *ret),
45 TP_ARGS(sd, fi, ret));
46
47 DECLARE_RESTRICTED_HOOK(android_rvh_v4l2subdev_set_selection,
48 TP_PROTO(struct v4l2_subdev *sd, struct v4l2_subdev_pad_config *pad,
49 struct v4l2_subdev_selection *sel, int *ret),
50 TP_ARGS(sd, pad, sel, ret), 1);
51
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org