klogg / fl2000_drm

Linux kernel FL2000DX/IT66121FN dongle DRM driver
GNU General Public License v2.0
111 stars 27 forks source link

kernel NULL pointer dereference when starting X server #17

Closed klogg closed 4 years ago

klogg commented 4 years ago

With FRAMEBUFFER=/dev/fb0 startx

X.Org X Server 1.20.8 X Protocol Version 11, Revision 0 Build Operating System: Linux 4.4.0-177-generic x86_64 Ubuntu Current Operating System: Linux (none) 5.4.0-28-generic #32-Ubuntu SMP Wed Apr 22 17:40:10 UTC 2020 x86_64 Kernel command line: virtme_root_mods=1 earlyprintk=serial,ttyS0,115200 console=ttyS0 psmouse.proto=exps "virtme_stty_con=rows 123 cols 237 iutf8" TERM=xterm-256color virtme_chdir=home/klogg/workspace/fl2000_drm init=/bin/sh -- -c "mkdir -p /run/virtme/guesttools;/bin/mount -n -t 9p -o ro,version=9p2000.L,trans=virtio,access=any virtme.guesttools /run/virtme/guesttools;exec /run/virtme/guesttools/virtme-init" Build Date: 06 April 2020 09:39:29AM xorg-server 2:1.20.8-2ubuntu2 (For technical support please see http://www.ubuntu.com/support) Current version of pixman: 0.38.4 Before reporting problems, check http://wiki.x.org to make sure that you have the latest version. Markers: (--) probed, (**) from config file, (==) default setting, (++) from command line, (!!) notice, (II) informational, (WW) warning, (EE) error, (NI) not implemented, (??) unknown. (==) Log file: "/var/log/Xorg.0.log", Time: Tue May 5 22:44:21 2020 (==) Using system config directory "/usr/share/X11/xorg.conf.d" MESA-LOADER: failed to open fl2000_drm (search paths /usr/lib/x86_64-linux-gnu/dri:\$${ORIGIN}/dri:/usr/lib/dri) failed to load driver: ### fl2000_drm [ 162.401144] usb 2-1.2: it66121_connector_mode_valid [ 162.403673] usb 2-1.2: DRM mode validation: "800x480": 66 32000 800 840 888 928 480 493 496 525 0x48 0xa [ 162.424915] usb 2-1.2: it66121_connector_mode_valid [ 162.427289] usb 2-1.2: DRM mode validation: "800x480": 66 32000 800 840 888 928 480 493 496 525 0x48 0xa (II) modeset(0): Initializing kms color map for depth 24, 8 bpc. [ 175.685335] usb 2-1.2: it66121_connector_mode_valid [ 175.685726] usb 2-1.2: DRM mode validation: "800x480": 66 32000 800 840 888 928 480 493 496 525 0x48 0xa [ 179.495154] IPMI message handler: version 39.2 [ 179.497976] ipmi device interface [ 179.908619] BUG: kernel NULL pointer dereference, address: 0000000000000000 [ 179.909150] #PF: supervisor read access in kernel mode [ 179.909541] #PF: error_code(0x0000) - not-present page [ 179.909932] PGD 0 P4D 0 [ 179.910130] Oops: 0000 [#1] SMP PTI [ 179.910399] CPU: 0 PID: 7 Comm: kworker/0:1 Tainted: G OE 5.4.0-28-generic #32-Ubuntu [ 179.911078] Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS 1.13.0-1ubuntu1 04/01/2014 [ 179.911740] Workqueue: 0x0 (fl2000_streaming) [ 179.912081] RIP: 0010:pwq_activate_delayed_work+0x2a/0x100 [ 179.912499] Code: 0f 1f 44 00 00 55 48 89 e5 41 55 41 54 53 48 8b 07 48 89 fb 49 89 c5 45 30 ed a8 04 b8 00 00 00 00 4c 0f 44 e8 0f 1f 44 00 00 <4d> 8b 45 00 49 8b 40 20 4d 8d 48 20 49 39 c1 0f 84 a7 00 00 00 48 [ 179.913894] RSP: 0018:ffffb2c8c0047e20 EFLAGS: 00010046 [ 179.914289] RAX: 0000000000000000 RBX: ffff94b738f94e30 RCX: ffffd2c8bfc03260 [ 179.914825] RDX: ffff94b738f94e38 RSI: 0000000000000000 RDI: ffff94b738f94e30 [ 179.915361] RBP: ffffb2c8c0047e38 R08: 000000000000277a R09: ffffb2c8c0047d58 [ 179.915899] R10: ffff94b73b15debc R11: 0000000000000018 R12: ffffd2c8bfc03200 [ 179.916435] R13: 0000000000000000 R14: 0000000000000000 R15: ffff94b73b15de40 [ 179.916972] FS: 0000000000000000(0000) GS:ffff94b73ba00000(0000) knlGS:0000000000000000 [ 179.917578] CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033 [ 179.918012] CR2: 00000000000000b0 CR3: 000000016b96a003 CR4: 0000000000360ef0 [ 179.918548] DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000 [ 179.919084] DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400 [ 179.919620] Call Trace: [ 179.919813] pwq_dec_nr_in_flight+0x62/0xa0 [ 179.920136] process_one_work+0x270/0x3b0 [ 179.920447] worker_thread+0x4d/0x400 [ 179.920728] kthread+0x104/0x140 [ 179.920978] ? process_one_work+0x3b0/0x3b0 [ 179.921297] ? kthread_park+0x90/0x90 [ 179.921579] ret_from_fork+0x35/0x40 [ 179.921854] Modules linked in: ipmi_devintf ipmi_msghandler it66121(OE) fl2000(OE) drm_kms_helper fb_sys_fops syscopyarea sysfillrect sysimgblt drm usbmon intel_rapl_msr intel_rapl_common kvm_intel kvm crct10dif_pclmul crc32_pclmul ghash_clmulni_intel aesni_intel crypto_simd cryptd glue_helper input_leds lpc_ich ahci psmouse libahci serio_raw i2c_i801 qemu_fw_cfg e1000 mac_hid 9pnet_virtio 9p 9pnet fscache [ 179.924533] CR2: 0000000000000000 [ 179.924788] ---[ end trace dd3ac184d1fd37fc ]--- [ 179.925140] RIP: 0010:pwq_activate_delayed_work+0x2a/0x100 [ 179.925555] Code: 0f 1f 44 00 00 55 48 89 e5 41 55 41 54 53 48 8b 07 48 89 fb 49 89 c5 45 30 ed a8 04 b8 00 00 00 00 4c 0f 44 e8 0f 1f 44 00 00 <4d> 8b 45 00 49 8b 40 20 4d 8d 48 20 49 39 c1 0f 84 a7 00 00 00 48 [ 179.926949] RSP: 0018:ffffb2c8c0047e20 EFLAGS: 00010046 [ 179.927345] RAX: 0000000000000000 RBX: ffff94b738f94e30 RCX: ffffd2c8bfc03260 [ 179.927870] RDX: ffff94b738f94e38 RSI: 0000000000000000 RDI: ffff94b738f94e30 [ 179.928406] RBP: ffffb2c8c0047e38 R08: 000000000000277a R09: ffffb2c8c0047d58 [ 179.928941] R10: ffff94b73b15debc R11: 0000000000000018 R12: ffffd2c8bfc03200 [ 179.929476] R13: 0000000000000000 R14: 0000000000000000 R15: ffff94b73b15de40 [ 179.930012] FS: 0000000000000000(0000) GS:ffff94b73ba00000(0000) knlGS:0000000000000000 [ 179.930618] CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033 [ 179.931051] CR2: 00000000000000b0 CR3: 000000016b96a003 CR4: 0000000000360ef0 [ 179.931590] DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000 [ 179.932126] DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400

klogg commented 4 years ago

Solved by moving vblank handler from workqueue to URB completion handler