bisecting cause commit starting from cd8c917a56f20f48748dd43d9ae3caff51d5b987 building syzkaller on 0230ba3e7ee638765ace8e2c3b436e703017b46c testing commit cd8c917a56f20f48748dd43d9ae3caff51d5b987 compiler: gcc (GCC) 10.2.1 20210217, GNU ld (GNU Binutils for Debian) 2.35.2 kernel signature: 9033bd3ac2aff8b673b26e20430b62fd9e396aac01681810044fe0833e1c0799 all runs: crashed: WARNING in __i2c_transfer testing release v5.15 testing commit 8bb7eca972ad531c9b149c0a51ab43a417385813 compiler: gcc (GCC) 10.2.1 20210217, GNU ld (GNU Binutils for Debian) 2.35.2 kernel signature: 23b867ff5df3d6cb6b498368a18ae79abf8004bbd96dea98ad38033811273ce5 all runs: crashed: WARNING in __i2c_transfer testing release v5.14 testing commit 7d2a07b769330c34b4deabeed939325c77a7ec2f compiler: gcc (GCC) 10.2.1 20210217, GNU ld (GNU Binutils for Debian) 2.35.2 kernel signature: b2164682a4188d600e8629b33fdd665dc2a6573b9b8685e4bb26430826cfdcc6 all runs: crashed: WARNING in __i2c_transfer testing release v5.13 testing commit 62fb9874f5da54fdb243003b386128037319b219 compiler: gcc (GCC) 10.2.1 20210217, GNU ld (GNU Binutils for Debian) 2.35.2 kernel signature: d6fe745592b80ae8986d100cc520c0fff9c440ffd363b3dd0a8a457d65577d25 all runs: crashed: WARNING in __i2c_transfer testing release v5.12 testing commit 9f4ad9e425a1d3b6a34617b8ea226d56a119a717 compiler: gcc (GCC) 10.2.1 20210217, GNU ld (GNU Binutils for Debian) 2.35.2 kernel signature: 864dad0df29c43a862d859123979720ac13bae730acb39cb4c33aff115ff50f2 all runs: crashed: WARNING in __i2c_transfer testing release v5.11 testing commit f40ddce88593482919761f74910f42f4b84c004b compiler: gcc (GCC) 10.2.1 20210217, GNU ld (GNU Binutils for Debian) 2.35.2 kernel signature: ff881afc3b439a2c202b9f684ce4fd4adcabd2fe7d0b6317383e3a44098713e9 all runs: crashed: WARNING in __i2c_transfer testing release v5.10 testing commit 2c85ebc57b3e1817b6ce1a6b703928e113a90442 compiler: gcc (GCC) 10.2.1 20210217, GNU ld (GNU Binutils for Debian) 2.35.2 kernel signature: ffa3bc1846989c522c16c86fc21eb8d70808f95a91697a117f234232fb4187eb all runs: crashed: WARNING in __i2c_transfer testing release v5.9 testing commit bbf5c979011a099af5dc76498918ed7df445635b compiler: gcc (GCC) 10.2.1 20210217, GNU ld (GNU Binutils for Debian) 2.35.2 kernel signature: 74c981e7841a396f3d3c3161e2d15b9bb981a31f7af64ba52b96d7764743d69d all runs: OK # git bisect start 2c85ebc57b3e1817b6ce1a6b703928e113a90442 bbf5c979011a099af5dc76498918ed7df445635b Bisecting: 9594 revisions left to test after this (roughly 13 steps) [4d0e9df5e43dba52d38b251e3b909df8fa1110be] lib, uaccess: add failure injection to usercopy functions testing commit 4d0e9df5e43dba52d38b251e3b909df8fa1110be compiler: gcc (GCC) 10.2.1 20210217, GNU ld (GNU Binutils for Debian) 2.35.2 kernel signature: 617338e246891774535981bc5335b14678562baee601ca8a467b5ef2748dc322 all runs: crashed: WARNING in __i2c_transfer # git bisect bad 4d0e9df5e43dba52d38b251e3b909df8fa1110be Bisecting: 3935 revisions left to test after this (roughly 12 steps) [f888bdf9823c85fe945c4eb3ba353f749dec3856] Merge tag 'devicetree-for-5.10' of git://git.kernel.org/pub/scm/linux/kernel/git/robh/linux testing commit f888bdf9823c85fe945c4eb3ba353f749dec3856 compiler: gcc (GCC) 10.2.1 20210217, GNU ld (GNU Binutils for Debian) 2.35.2 kernel signature: 01811e45dc10e4f422cc5054764ec88db38c49207ed19319f80f5392d4db0055 all runs: crashed: WARNING in __i2c_transfer # git bisect bad f888bdf9823c85fe945c4eb3ba353f749dec3856 Bisecting: 1997 revisions left to test after this (roughly 11 steps) [57218d7f2e87069f73c7a841b6ed6c1cc7acf616] Merge tag 'regmap-v5.10' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/regmap testing commit 57218d7f2e87069f73c7a841b6ed6c1cc7acf616 compiler: gcc (GCC) 10.2.1 20210217, GNU ld (GNU Binutils for Debian) 2.35.2 kernel signature: ed6f56723e812186e1164a8502dfa8763f44f696c8cb81d53e882159e9582159 all runs: crashed: WARNING in __i2c_transfer # git bisect bad 57218d7f2e87069f73c7a841b6ed6c1cc7acf616 Bisecting: 873 revisions left to test after this (roughly 10 steps) [39a5101f989e8d2be557136704d53990f9b402c8] Merge branch 'linus' of git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6 testing commit 39a5101f989e8d2be557136704d53990f9b402c8 compiler: gcc (GCC) 10.2.1 20210217, GNU ld (GNU Binutils for Debian) 2.35.2 kernel signature: cf915a2affdc3e45203534a4c06803939320d573b52e22c94a1de923bdc98d7e all runs: OK # git bisect good 39a5101f989e8d2be557136704d53990f9b402c8 Bisecting: 436 revisions left to test after this (roughly 9 steps) [6803a9e0e1e43e9eb2f473d1c4b5f51837610754] media: staging: rkisp1: cap: simplify link validation by comparing media bus code testing commit 6803a9e0e1e43e9eb2f473d1c4b5f51837610754 compiler: gcc (GCC) 8.4.1 20210217, GNU ld (GNU Binutils for Debian) 2.35.2 kernel signature: ec23207e849459775abc8384a76b3e5a1519593afb9ce6e1e66524cbeb06704b all runs: crashed: WARNING in __i2c_transfer # git bisect bad 6803a9e0e1e43e9eb2f473d1c4b5f51837610754 Bisecting: 218 revisions left to test after this (roughly 8 steps) [714d85f0ebae521ff6ef4bcf7c58a4a3d0213653] media: atomisp: fix code style issues testing commit 714d85f0ebae521ff6ef4bcf7c58a4a3d0213653 compiler: gcc (GCC) 8.4.1 20210217, GNU ld (GNU Binutils for Debian) 2.35.2 kernel signature: b3d1dbd9fb6a0bdc0e94b17515f4c700889c613b642247dd724f5083819e32f9 all runs: OK # git bisect good 714d85f0ebae521ff6ef4bcf7c58a4a3d0213653 Bisecting: 109 revisions left to test after this (roughly 7 steps) [3cd136713bf99911070d7203383748497581672c] media: venus: vdec: Set/Get VP9 profile/level testing commit 3cd136713bf99911070d7203383748497581672c compiler: gcc (GCC) 8.4.1 20210217, GNU ld (GNU Binutils for Debian) 2.35.2 kernel signature: 877893dbe7c405e25da38d5ce097b3af9a5d180b0cc009fdbbc7fe017502ba8e all runs: crashed: WARNING in __i2c_transfer # git bisect bad 3cd136713bf99911070d7203383748497581672c Bisecting: 54 revisions left to test after this (roughly 6 steps) [d13ee586e026e8166231e03e5345718ebf625c02] Merge tag 'v5.9-rc4' into patchwork testing commit d13ee586e026e8166231e03e5345718ebf625c02 compiler: gcc (GCC) 8.4.1 20210217, GNU ld (GNU Binutils for Debian) 2.35.2 kernel signature: be9b3ca7f6663e57d567b2084cc73628717519fd8b2a6eb03a62e7185e5e87a7 all runs: OK # git bisect good d13ee586e026e8166231e03e5345718ebf625c02 Bisecting: 27 revisions left to test after this (roughly 5 steps) [32b6e400c34df3574ba05100ebcf9d9e8d722a49] media: v4l2-fwnode: Use debug level for printing link frequencies testing commit 32b6e400c34df3574ba05100ebcf9d9e8d722a49 compiler: gcc (GCC) 8.4.1 20210217, GNU ld (GNU Binutils for Debian) 2.35.2 kernel signature: fbd05e61a975cd96d868a2c49907fa42af3cf5531bda6f1f8daf324f4d19aaf3 all runs: OK # git bisect good 32b6e400c34df3574ba05100ebcf9d9e8d722a49 Bisecting: 13 revisions left to test after this (roughly 4 steps) [da5c791cfcdf11d6c2be276896cf0cb8181da1fd] media: v4l2-fwnode: Document new usage patterns of v4l2_fwnode_endpoint_parse testing commit da5c791cfcdf11d6c2be276896cf0cb8181da1fd compiler: gcc (GCC) 8.4.1 20210217, GNU ld (GNU Binutils for Debian) 2.35.2 kernel signature: fbd05e61a975cd96d868a2c49907fa42af3cf5531bda6f1f8daf324f4d19aaf3 all runs: OK # git bisect good da5c791cfcdf11d6c2be276896cf0cb8181da1fd Bisecting: 6 revisions left to test after this (roughly 3 steps) [1f9a704601f02710f1456858f77e338b05c82f17] media: Documentation: vidtv: Add ReST documentation for vidtv testing commit 1f9a704601f02710f1456858f77e338b05c82f17 compiler: gcc (GCC) 8.4.1 20210217, GNU ld (GNU Binutils for Debian) 2.35.2 kernel signature: c8bd8709504734084fbc27e940c2aa2c1c0ec10b0d870498eebaee4d64c01c3e all runs: crashed: WARNING in __i2c_transfer # git bisect bad 1f9a704601f02710f1456858f77e338b05c82f17 Bisecting: 3 revisions left to test after this (roughly 2 steps) [5e8db34966222c34d7e98767a2d54b6bb3aa248d] media: av7110: don't do float point math testing commit 5e8db34966222c34d7e98767a2d54b6bb3aa248d compiler: gcc (GCC) 8.4.1 20210217, GNU ld (GNU Binutils for Debian) 2.35.2 kernel signature: fbd05e61a975cd96d868a2c49907fa42af3cf5531bda6f1f8daf324f4d19aaf3 all runs: OK # git bisect good 5e8db34966222c34d7e98767a2d54b6bb3aa248d Bisecting: 1 revision left to test after this (roughly 1 step) [f5ffc3b6edf122966b31acf7ce65ebdad42d1417] media: vidtv: implement a demodulator driver testing commit f5ffc3b6edf122966b31acf7ce65ebdad42d1417 compiler: gcc (GCC) 8.4.1 20210217, GNU ld (GNU Binutils for Debian) 2.35.2 kernel signature: 24d84b02bb7ce94c89cdc2f62db1519d43317311e1d83b43ebcc99fc7154fc9e all runs: OK # git bisect good f5ffc3b6edf122966b31acf7ce65ebdad42d1417 Bisecting: 0 revisions left to test after this (roughly 0 steps) [f90cf6079bf67988f8b1ad1ade70fc89d0080905] media: vidtv: add a bridge driver testing commit f90cf6079bf67988f8b1ad1ade70fc89d0080905 compiler: gcc (GCC) 8.4.1 20210217, GNU ld (GNU Binutils for Debian) 2.35.2 kernel signature: c8bd8709504734084fbc27e940c2aa2c1c0ec10b0d870498eebaee4d64c01c3e all runs: crashed: WARNING in __i2c_transfer # git bisect bad f90cf6079bf67988f8b1ad1ade70fc89d0080905 f90cf6079bf67988f8b1ad1ade70fc89d0080905 is the first bad commit commit f90cf6079bf67988f8b1ad1ade70fc89d0080905 Author: Daniel W. S. Almeida Date: Fri Aug 21 14:58:47 2020 +0200 media: vidtv: add a bridge driver Digital TV devices consist of several independent hardware components which are controlled by different drivers. Each media device is controlled by a group of cooperating drivers with the bridge driver as the main driver. This patch adds a bridge driver for the Virtual Digital TV driver [vidtv]. The bridge driver binds to the other drivers, that is, vidtv_tuner and vidtv_demod and implements the digital demux logic, providing userspace with a MPEG Transport Stream. The MPEG related code is split in the following way: - vidtv_ts: code to work with MPEG TS packets, such as TS headers, adaptation fields, PCR packets and NULL packets. - vidtv_psi: this is the PSI generator. PSI packets contain general information about a MPEG Transport Stream. A PSI generator is needed so userspace apps can retrieve information about the Transport Stream and eventually tune into a (dummy) channel. Because the generator is implemented in a separate file, it can be reused elsewhere in the media subsystem. Currently vidtv supports working with 3 PSI tables: PAT, PMT and SDT. - vidtv_pes: implements the PES logic to convert encoder data into MPEG TS packets. These can then be fed into a TS multiplexer and eventually into userspace. - vidtv_s302m: implements a S302M encoder to make it possible to insert PCM audio data in the generated MPEG Transport Stream. This shall enable passing an audio signal into userspace so it can be decoded and played by media software. - vidtv_channels: Implements a 'channel' abstraction When vidtv boots, it will create some hardcoded channels: Their services will be concatenated to populate the SDT. Their programs will be concatenated to populate the PAT For each program in the PAT, a PMT section will be created The PMT section for a channel will be assigned its streams. Every stream will have its corresponding encoder polled to produce TS packets These packets may be interleaved by the mux and then delivered to the bridge - vidtv_mux - Implements a MPEG TS mux, loosely based on the ffmpeg implementation The multiplexer is responsible for polling encoders, interleaving packets, padding the resulting stream with NULL packets if necessary and then delivering the resulting TS packets to the bridge driver so it can feed the demux. Signed-off-by: Daniel W. S. Almeida Signed-off-by: Mauro Carvalho Chehab drivers/media/test-drivers/vidtv/Makefile | 5 +- drivers/media/test-drivers/vidtv/vidtv_bridge.c | 546 +++++++++ drivers/media/test-drivers/vidtv/vidtv_bridge.h | 60 + drivers/media/test-drivers/vidtv/vidtv_channel.c | 306 +++++ drivers/media/test-drivers/vidtv/vidtv_channel.h | 76 ++ drivers/media/test-drivers/vidtv/vidtv_common.c | 89 ++ drivers/media/test-drivers/vidtv/vidtv_common.h | 33 + drivers/media/test-drivers/vidtv/vidtv_encoder.h | 96 ++ drivers/media/test-drivers/vidtv/vidtv_mux.c | 479 ++++++++ drivers/media/test-drivers/vidtv/vidtv_mux.h | 160 +++ drivers/media/test-drivers/vidtv/vidtv_pes.c | 398 +++++++ drivers/media/test-drivers/vidtv/vidtv_pes.h | 189 +++ drivers/media/test-drivers/vidtv/vidtv_psi.c | 1352 ++++++++++++++++++++++ drivers/media/test-drivers/vidtv/vidtv_psi.h | 593 ++++++++++ drivers/media/test-drivers/vidtv/vidtv_s302m.c | 552 +++++++++ drivers/media/test-drivers/vidtv/vidtv_s302m.h | 90 ++ drivers/media/test-drivers/vidtv/vidtv_ts.c | 137 +++ drivers/media/test-drivers/vidtv/vidtv_ts.h | 130 +++ 18 files changed, 5290 insertions(+), 1 deletion(-) create mode 100644 drivers/media/test-drivers/vidtv/vidtv_bridge.c create mode 100644 drivers/media/test-drivers/vidtv/vidtv_bridge.h create mode 100644 drivers/media/test-drivers/vidtv/vidtv_channel.c create mode 100644 drivers/media/test-drivers/vidtv/vidtv_channel.h create mode 100644 drivers/media/test-drivers/vidtv/vidtv_common.c create mode 100644 drivers/media/test-drivers/vidtv/vidtv_common.h create mode 100644 drivers/media/test-drivers/vidtv/vidtv_encoder.h create mode 100644 drivers/media/test-drivers/vidtv/vidtv_mux.c create mode 100644 drivers/media/test-drivers/vidtv/vidtv_mux.h create mode 100644 drivers/media/test-drivers/vidtv/vidtv_pes.c create mode 100644 drivers/media/test-drivers/vidtv/vidtv_pes.h create mode 100644 drivers/media/test-drivers/vidtv/vidtv_psi.c create mode 100644 drivers/media/test-drivers/vidtv/vidtv_psi.h create mode 100644 drivers/media/test-drivers/vidtv/vidtv_s302m.c create mode 100644 drivers/media/test-drivers/vidtv/vidtv_s302m.h create mode 100644 drivers/media/test-drivers/vidtv/vidtv_ts.c create mode 100644 drivers/media/test-drivers/vidtv/vidtv_ts.h culprit signature: c8bd8709504734084fbc27e940c2aa2c1c0ec10b0d870498eebaee4d64c01c3e parent signature: 24d84b02bb7ce94c89cdc2f62db1519d43317311e1d83b43ebcc99fc7154fc9e revisions tested: 22, total time: 4h18m4.886614011s (build: 2h15m24.215613577s, test: 2h0m5.10782636s) first bad commit: f90cf6079bf67988f8b1ad1ade70fc89d0080905 media: vidtv: add a bridge driver recipients (to): ["dwlsalmeida@gmail.com" "linux-kernel@vger.kernel.org" "mchehab+huawei@kernel.org"] recipients (cc): ["linux-media@vger.kernel.org" "mchehab@kernel.org"] crash: WARNING in __i2c_transfer ------------[ cut here ]------------ WARNING: CPU: 1 PID: 10001 at drivers/i2c/i2c-core-base.c:2019 trace_i2c_read include/trace/events/i2c.h:58 [inline] WARNING: CPU: 1 PID: 10001 at drivers/i2c/i2c-core-base.c:2019 __i2c_transfer drivers/i2c/i2c-core-base.c:2038 [inline] WARNING: CPU: 1 PID: 10001 at drivers/i2c/i2c-core-base.c:2019 __i2c_transfer+0x9f7/0x1310 drivers/i2c/i2c-core-base.c:2014 Kernel panic - not syncing: panic_on_warn set ... CPU: 1 PID: 10001 Comm: syz-executor.0 Not tainted 5.9.0-rc4-syzkaller #0 Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 01/01/2011 Call Trace: __dump_stack lib/dump_stack.c:77 [inline] dump_stack+0x99/0xd0 lib/dump_stack.c:118 panic+0x2a9/0x532 kernel/panic.c:231 __warn.cold.12+0x25/0x32 kernel/panic.c:600 report_bug+0x1af/0x260 lib/bug.c:198 handle_bug+0x3f/0x70 arch/x86/kernel/traps.c:234 exc_invalid_op+0x13/0x40 arch/x86/kernel/traps.c:254 asm_exc_invalid_op+0x12/0x20 arch/x86/include/asm/idtentry.h:536 RIP: 0010:__i2c_transfer+0x9f7/0x1310 drivers/i2c/i2c-core-base.c:2019 Code: 80 3c 28 00 0f 85 e8 08 00 00 49 8b 45 00 48 85 c0 75 be 65 ff 0d b9 8a a1 7a 0f 85 6b fa ff ff e8 8d e9 9f fb e9 61 fa ff ff <0f> 0b 41 b9 ea ff ff ff e9 55 fb ff ff 45 31 c9 0f 1f 44 00 00 65 RSP: 0018:ffffc9000a18fce0 EFLAGS: 00010202 RAX: 0000000000000001 RBX: ffff88823372cb58 RCX: 0000000000000000 RDX: 0000000000000000 RSI: 0000000000000010 RDI: ffff88823372cb58 RBP: ffff88823372cb78 R08: 0000000089521101 R09: fffffbfff1cf6f01 R10: ffffffff8e7b7807 R11: fffffbfff1cf6f00 R12: 0000000000000010 R13: 0000000000000000 R14: ffffffff89521100 R15: 0000000020000700 i2c_transfer+0x1a0/0x370 drivers/i2c/i2c-core-base.c:2110 i2cdev_ioctl_rdwr+0x453/0x5e0 drivers/i2c/i2c-dev.c:297 compat_i2cdev_ioctl+0x383/0x450 drivers/i2c/i2c-dev.c:556 __do_compat_sys_ioctl fs/ioctl.c:842 [inline] __se_compat_sys_ioctl fs/ioctl.c:793 [inline] __ia32_compat_sys_ioctl+0x1ce/0x220 fs/ioctl.c:793 do_syscall_32_irqs_on arch/x86/entry/common.c:78 [inline] __do_fast_syscall_32+0x60/0x90 arch/x86/entry/common.c:137 do_fast_syscall_32+0x2f/0x70 arch/x86/entry/common.c:160 entry_SYSENTER_compat_after_hwframe+0x4d/0x5c RIP: 0023:0xf6e7a549 Code: 03 74 c0 01 10 05 03 74 b8 01 10 06 03 74 b4 01 10 07 03 74 b0 01 10 08 03 74 d8 01 00 00 00 00 00 51 52 55 89 e5 0f 34 cd 80 <5d> 5a 59 c3 90 90 90 90 8d b4 26 00 00 00 00 8d b4 26 00 00 00 00 RSP: 002b:00000000f66745fc EFLAGS: 00000296 ORIG_RAX: 0000000000000036 RAX: ffffffffffffffda RBX: 0000000000000003 RCX: 0000000000000707 RDX: 0000000020000700 RSI: 0000000000000000 RDI: 0000000000000000 RBP: 0000000000000000 R08: 0000000000000000 R09: 0000000000000000 R10: 0000000000000000 R11: 0000000000000000 R12: 0000000000000000 R13: 0000000000000000 R14: 0000000000000000 R15: 0000000000000000 Kernel Offset: disabled Rebooting in 86400 seconds.. ---------------- Code disassembly (best guess): 0: 03 74 c0 01 add 0x1(%rax,%rax,8),%esi 4: 10 05 03 74 b8 01 adc %al,0x1b87403(%rip) # 0x1b8740d a: 10 06 adc %al,(%rsi) c: 03 74 b4 01 add 0x1(%rsp,%rsi,4),%esi 10: 10 07 adc %al,(%rdi) 12: 03 74 b0 01 add 0x1(%rax,%rsi,4),%esi 16: 10 08 adc %cl,(%rax) 18: 03 74 d8 01 add 0x1(%rax,%rbx,8),%esi 1c: 00 00 add %al,(%rax) 1e: 00 00 add %al,(%rax) 20: 00 51 52 add %dl,0x52(%rcx) 23: 55 push %rbp 24: 89 e5 mov %esp,%ebp 26: 0f 34 sysenter 28: cd 80 int $0x80 * 2a: 5d pop %rbp <-- trapping instruction 2b: 5a pop %rdx 2c: 59 pop %rcx 2d: c3 retq 2e: 90 nop 2f: 90 nop 30: 90 nop 31: 90 nop 32: 8d b4 26 00 00 00 00 lea 0x0(%rsi,%riz,1),%esi 39: 8d b4 26 00 00 00 00 lea 0x0(%rsi,%riz,1),%esi