* [PATCH] media: vicodec: add V4L2_CID_MIN_BUFFERS_FOR_* controls
@ 2024-10-31 7:49 Hans Verkuil
2024-11-04 7:42 ` kernel test robot
0 siblings, 1 reply; 2+ messages in thread
From: Hans Verkuil @ 2024-10-31 7:49 UTC (permalink / raw)
To: Linux Media Mailing List
Stateful codecs must support the V4L2_CID_MIN_BUFFERS_FOR_OUTPUT
and V4L2_CID_MIN_BUFFERS_FOR_CAPTURE controls. The vicodec driver
was missing support for these controls. Add them.
Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl>
---
drivers/media/test-drivers/vicodec/vicodec-core.c | 5 +++++
1 file changed, 5 insertions(+)
diff --git a/drivers/media/test-drivers/vicodec/vicodec-core.c b/drivers/media/test-drivers/vicodec/vicodec-core.c
index 00c84a06f343..50c46b00d2d8 100644
--- a/drivers/media/test-drivers/vicodec/vicodec-core.c
+++ b/drivers/media/test-drivers/vicodec/vicodec-core.c
@@ -1852,6 +1852,11 @@ static int vicodec_open(struct file *file)
1, 31, 1, 20);
v4l2_ctrl_new_std(hdl, &vicodec_ctrl_ops, V4L2_CID_FWHT_P_FRAME_QP,
1, 31, 1, 20);
+ if (!ctx->is_stateless)
+ v4l2_ctrl_new_std(hdl, &vicodec_ctrl_ops, ctx->is_enc ?
+ V4L2_CID_MIN_BUFFERS_FOR_OUTPUT :
+ V4L2_CID_MIN_BUFFERS_FOR_CAPTURE,
+ 1, 32, 1, 2);
if (ctx->is_enc)
v4l2_ctrl_new_std(hdl, &vicodec_ctrl_ops,
V4L2_CID_MIN_BUFFERS_FOR_OUTPUT, 1, 1, 1, 1);
--
2.45.2
^ permalink raw reply related [flat|nested] 2+ messages in thread
* Re: [PATCH] media: vicodec: add V4L2_CID_MIN_BUFFERS_FOR_* controls
2024-10-31 7:49 [PATCH] media: vicodec: add V4L2_CID_MIN_BUFFERS_FOR_* controls Hans Verkuil
@ 2024-11-04 7:42 ` kernel test robot
0 siblings, 0 replies; 2+ messages in thread
From: kernel test robot @ 2024-11-04 7:42 UTC (permalink / raw)
To: Hans Verkuil; +Cc: oe-lkp, lkp, linux-media, oliver.sang
Hello,
kernel test robot noticed "BUG:kernel_NULL_pointer_dereference,address" on:
commit: 9e4beef457f5cf6e0c388248b2e12d9755edf03d ("[PATCH] media: vicodec: add V4L2_CID_MIN_BUFFERS_FOR_* controls")
url: https://github.com/intel-lab-lkp/linux/commits/Hans-Verkuil/media-vicodec-add-V4L2_CID_MIN_BUFFERS_FOR_-controls/20241031-155021
base: https://git.linuxtv.org/media_stage.git master
patch link: https://lore.kernel.org/all/1dd09050-40ca-4c5b-b985-819731140388@xs4all.nl/
patch subject: [PATCH] media: vicodec: add V4L2_CID_MIN_BUFFERS_FOR_* controls
in testcase: boot
config: i386-randconfig-013-20241103
compiler: gcc-12
test machine: qemu-system-x86_64 -enable-kvm -cpu SandyBridge -smp 2 -m 16G
(please refer to attached dmesg/kmsg for entire log/backtrace)
+---------------------------------------------+------------+------------+
| | d020ca11a8 | 9e4beef457 |
+---------------------------------------------+------------+------------+
| boot_successes | 6 | 0 |
| boot_failures | 0 | 6 |
| BUG:kernel_NULL_pointer_dereference,address | 0 | 6 |
| Oops | 0 | 6 |
| EIP:__v4l2_ctrl_handler_setup | 0 | 6 |
| Kernel_panic-not_syncing:Fatal_exception | 0 | 6 |
+---------------------------------------------+------------+------------+
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 <oliver.sang@intel.com>
| Closes: https://lore.kernel.org/oe-lkp/202411041552.ff2b79d7-lkp@intel.com
[ 9.211498][ T113] BUG: kernel NULL pointer dereference, address: 00000000
[ 9.212220][ T113] #PF: supervisor read access in kernel mode
[ 9.212739][ T113] #PF: error_code(0x0000) - not-present page
[ 9.213245][ T113] *pde = 00000000
[ 9.213566][ T113] Oops: Oops: 0000 [#1] PREEMPT SMP
[ 9.214004][ T113] CPU: 1 UID: 0 PID: 113 Comm: v4l_id Not tainted 6.12.0-rc1-00151-g9e4beef457f5 #1
[ 9.214806][ T113] Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS 1.16.2-debian-1.16.2-1 04/01/2014
[ 9.215724][ T113] EIP: __v4l2_ctrl_handler_setup (drivers/media/v4l2-core/v4l2-ctrls-core.c:2469)
[ 9.216251][ T113] Code: 83 c0 38 e8 69 34 26 00 85 c0 75 02 0f 0b 8b 43 50 8d 73 50 39 c6 74 08 80 60 1c fe 8b 00 eb f4 8b 5b 50 39 de 74 c1 8b 43 14 <8b> 38 f6 43 1c 01 74 04 8b 1b eb ed 83 7b 30 04 74 f6 31 d2 f6 43
All code
========
0: 83 c0 38 add $0x38,%eax
3: e8 69 34 26 00 call 0x263471
8: 85 c0 test %eax,%eax
a: 75 02 jne 0xe
c: 0f 0b ud2
e: 8b 43 50 mov 0x50(%rbx),%eax
11: 8d 73 50 lea 0x50(%rbx),%esi
14: 39 c6 cmp %eax,%esi
16: 74 08 je 0x20
18: 80 60 1c fe andb $0xfe,0x1c(%rax)
1c: 8b 00 mov (%rax),%eax
1e: eb f4 jmp 0x14
20: 8b 5b 50 mov 0x50(%rbx),%ebx
23: 39 de cmp %ebx,%esi
25: 74 c1 je 0xffffffffffffffe8
27: 8b 43 14 mov 0x14(%rbx),%eax
2a:* 8b 38 mov (%rax),%edi <-- trapping instruction
2c: f6 43 1c 01 testb $0x1,0x1c(%rbx)
30: 74 04 je 0x36
32: 8b 1b mov (%rbx),%ebx
34: eb ed jmp 0x23
36: 83 7b 30 04 cmpl $0x4,0x30(%rbx)
3a: 74 f6 je 0x32
3c: 31 d2 xor %edx,%edx
3e: f6 .byte 0xf6
3f: 43 rex.XB
Code starting with the faulting instruction
===========================================
0: 8b 38 mov (%rax),%edi
2: f6 43 1c 01 testb $0x1,0x1c(%rbx)
6: 74 04 je 0xc
8: 8b 1b mov (%rbx),%ebx
a: eb ed jmp 0xfffffffffffffff9
c: 83 7b 30 04 cmpl $0x4,0x30(%rbx)
10: 74 f6 je 0x8
12: 31 d2 xor %edx,%edx
14: f6 .byte 0xf6
15: 43 rex.XB
[ 9.217884][ T113] EAX: 00000000 EBX: c410a7c0 ECX: 00000000 EDX: 00000000
[ 9.218489][ T113] ESI: c0a6c104 EDI: c410a900 EBP: c425dd68 ESP: c425dd58
[ 9.219105][ T113] DS: 007b ES: 007b FS: 00d8 GS: 0033 SS: 0068 EFLAGS: 00010287
[ 9.219760][ T113] CR0: 80050033 CR2: 00000000 CR3: 048af000 CR4: 000406d0
[ 9.220371][ T113] DR0: 00000000 DR1: 00000000 DR2: 00000000 DR3: 00000000
[ 9.220987][ T113] DR6: fffe0ff0 DR7: 00000400
[ 9.221391][ T113] Call Trace:
[ 9.221717][ T113] ? show_regs (arch/x86/kernel/dumpstack.c:478)
[ 9.222109][ T113] ? __die_body (arch/x86/kernel/dumpstack.c:421)
[ 9.222498][ T113] ? __die (arch/x86/kernel/dumpstack.c:435)
[ 9.222868][ T113] ? page_fault_oops (arch/x86/mm/fault.c:715)
[ 9.223285][ T113] ? kernelmode_fixup_or_oops+0x50/0x5e
[ 9.223873][ T113] ? __bad_area_nosemaphore+0x37/0x1db
[ 9.224429][ T113] ? up_read (kernel/locking/rwsem.c:1621)
[ 9.224788][ T113] ? mmap_read_unlock (include/linux/mmap_lock.h:171)
[ 9.225210][ T113] ? bad_area_nosemaphore (arch/x86/mm/fault.c:835)
[ 9.225649][ T113] ? do_user_addr_fault (arch/x86/mm/fault.c:1280 (discriminator 1))
[ 9.226083][ T113] ? exc_page_fault (arch/x86/include/asm/irqflags.h:26 arch/x86/include/asm/irqflags.h:87 arch/x86/include/asm/irqflags.h:147 arch/x86/mm/fault.c:1489 arch/x86/mm/fault.c:1539)
[ 9.226496][ T113] ? pvclock_clocksource_read_nowd (arch/x86/mm/fault.c:1494)
[ 9.227059][ T113] ? handle_exception (arch/x86/entry/entry_32.S:1047)
[ 9.227509][ T113] ? pvclock_clocksource_read_nowd (arch/x86/mm/fault.c:1494)
[ 9.228049][ T113] ? __v4l2_ctrl_handler_setup (drivers/media/v4l2-core/v4l2-ctrls-core.c:2469)
[ 9.228563][ T113] ? pvclock_clocksource_read_nowd (arch/x86/mm/fault.c:1494)
[ 9.229122][ T113] ? __v4l2_ctrl_handler_setup (drivers/media/v4l2-core/v4l2-ctrls-core.c:2469)
[ 9.229606][ T113] v4l2_ctrl_handler_setup (drivers/media/v4l2-core/v4l2-ctrls-core.c:2502)
[ 9.230067][ T113] vicodec_open (drivers/media/test-drivers/vicodec/vicodec-core.c:1874)
[ 9.230469][ T113] ? __mutex_unlock_slowpath (arch/x86/include/asm/atomic.h:23 include/linux/atomic/atomic-arch-fallback.h:457 include/linux/atomic/atomic-long.h:40 include/linux/atomic/atomic-instrumented.h:3189 kernel/locking/mutex.c:921)
[ 9.230942][ T113] v4l2_open (drivers/media/v4l2-core/v4l2-dev.c:429)
[ 9.231310][ T113] chrdev_open (fs/char_dev.c:414)
[ 9.231704][ T113] ? cdev_put (fs/char_dev.c:374)
[ 9.232074][ T113] do_dentry_open (fs/open.c:958)
[ 9.232468][ T113] ? cdev_put (fs/char_dev.c:374)
[ 9.232809][ T113] vfs_open (fs/open.c:1088)
[ 9.233152][ T113] do_open (fs/namei.c:3774)
[ 9.233507][ T113] ? open_last_lookups (fs/namei.c:3721)
[ 9.233893][ T113] path_openat (fs/namei.c:3933)
[ 9.234240][ T113] do_filp_open (fs/namei.c:3961)
[ 9.234580][ T113] do_sys_openat2 (fs/open.c:1415)
[ 9.234933][ T113] do_sys_open (fs/open.c:1431)
[ 9.235262][ T113] __ia32_sys_openat (fs/open.c:1441)
[ 9.235647][ T113] ia32_sys_call (kbuild/obj/consumer/i386-randconfig-013-20241103/./arch/x86/include/generated/asm/syscalls_32.h:296)
[ 9.236049][ T113] do_int80_syscall_32 (arch/x86/entry/common.c:165 arch/x86/entry/common.c:339)
[ 9.236452][ T113] ? irqentry_exit (kernel/entry/common.c:334)
[ 9.236817][ T113] ? exc_page_fault (arch/x86/mm/fault.c:1543)
[ 9.237201][ T113] entry_INT80_32 (arch/x86/entry/entry_32.S:941)
[ 9.237584][ T113] EIP: 0xb7edd2a9
[ 9.237888][ T113] Code: 89 d0 31 f6 25 00 00 41 00 3d 00 00 41 00 74 29 65 a1 0c 00 00 00 85 c0 75 27 b8 27 01 00 00 bb 9c ff ff ff 8b 4c 24 20 cd 80 <3d> 00 f0 ff ff 77 50 83 c4 10 5b 5e 5f c3 90 8b 74 24 28 eb d1 66
All code
========
0: 89 d0 mov %edx,%eax
2: 31 f6 xor %esi,%esi
4: 25 00 00 41 00 and $0x410000,%eax
9: 3d 00 00 41 00 cmp $0x410000,%eax
e: 74 29 je 0x39
10: 65 a1 0c 00 00 00 85 movabs %gs:0x2775c0850000000c,%eax
17: c0 75 27
1a: b8 27 01 00 00 mov $0x127,%eax
1f: bb 9c ff ff ff mov $0xffffff9c,%ebx
24: 8b 4c 24 20 mov 0x20(%rsp),%ecx
28: cd 80 int $0x80
2a:* 3d 00 f0 ff ff cmp $0xfffff000,%eax <-- trapping instruction
2f: 77 50 ja 0x81
31: 83 c4 10 add $0x10,%esp
34: 5b pop %rbx
35: 5e pop %rsi
36: 5f pop %rdi
37: c3 ret
38: 90 nop
39: 8b 74 24 28 mov 0x28(%rsp),%esi
3d: eb d1 jmp 0x10
3f: 66 data16
Code starting with the faulting instruction
===========================================
0: 3d 00 f0 ff ff cmp $0xfffff000,%eax
5: 77 50 ja 0x57
7: 83 c4 10 add $0x10,%esp
a: 5b pop %rbx
b: 5e pop %rsi
c: 5f pop %rdi
d: c3 ret
e: 90 nop
f: 8b 74 24 28 mov 0x28(%rsp),%esi
13: eb d1 jmp 0xffffffffffffffe6
15: 66 data16
The kernel config and materials to reproduce are available at:
https://download.01.org/0day-ci/archive/20241104/202411041552.ff2b79d7-lkp@intel.com
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2024-11-04 7:42 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-10-31 7:49 [PATCH] media: vicodec: add V4L2_CID_MIN_BUFFERS_FOR_* controls Hans Verkuil
2024-11-04 7:42 ` kernel test robot
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).