Bug#880660: xserver-xorg-video-nouveau: Crash when kernel tries to switch to frame buffer
- To: Christoph Pohl <christophpohl@gmx.com>
- Cc: 880660@bugs.debian.org
- Subject: Bug#880660: xserver-xorg-video-nouveau: Crash when kernel tries to switch to frame buffer
- From: Sven Joachim <svenjoac@gmx.de>
- Date: Tue, 09 Jan 2018 20:48:35 +0100
- Message-id: <[🔎] 878td6hkz0.fsf@turtle.gmx.de>
- Reply-to: Sven Joachim <svenjoac@gmx.de>, 880660@bugs.debian.org
- In-reply-to: <150971316791.7105.8996440410764198345.reportbug@ws6779.zit.bam.de> (Christoph Pohl's message of "Fri, 03 Nov 2017 13:46:07 +0100")
- References: <150971316791.7105.8996440410764198345.reportbug@ws6779.zit.bam.de> <150971316791.7105.8996440410764198345.reportbug@ws6779.zit.bam.de>
On 2017-11-03 13:46 +0100, Christoph Pohl wrote:
> after upgrading to kernel 4.13, the nouveau kernel module crashes when
> the kernel tries to switch to frame buffer during boot. Under 4.12,
> where everything was working fine, this was the relevant output of
> dmesg:
>
> Nov 3 09:15:04 ws6779 kernel: [ 4.615541] nouveau 0000:01:00.0: DRM: allocated 1920x1200 fb: 0x60000, bo ffff97aed7608800
> Nov 3 09:15:04 ws6779 kernel: [ 4.615989] fbcon: nouveaufb (fb0) is primary device
> Nov 3 09:15:04 ws6779 kernel: [ 4.758665] Console: switching to colour frame buffer device 240x75
> Nov 3 09:15:04 ws6779 kernel: [ 4.862120] nouveau 0000:01:00.0: fb0: nouveaufb frame buffer device
>
> Now, under 4.13, this happens and leaves the monitor without a signal,
> making the system unuseable:
>
> Nov 3 09:14:06 ws6779 kernel: [ 4.647634] nouveau 0000:01:00.0: DRM: allocated 1920x1200 fb: 0x60000, bo ffff8c79da533000
> Nov 3 09:14:06 ws6779 kernel: [ 4.652071] fbcon: nouveaufb (fb0) is primary device
> Nov 3 09:14:06 ws6779 kernel: [ 4.749172] BUG: unable to handle kernel NULL pointer dereference at (null)
> Nov 3 09:14:06 ws6779 kernel: [ 4.749173] IP: (null)
> Nov 3 09:14:06 ws6779 kernel: [ 4.749174] PGD 0
> Nov 3 09:14:06 ws6779 kernel: [ 4.749174] P4D 0
> Nov 3 09:14:06 ws6779 kernel: [ 4.749174]
> Nov 3 09:14:06 ws6779 kernel: [ 4.749175] Oops: 0010 [#1] SMP
> Nov 3 09:14:06 ws6779 kernel: [ 4.749176] Modules linked in: joydev hid_generic usbhid hid binfmt_misc intel_uncore(+) hp_wmi sparse_keymap rfkill wmi_bmof evdev intel_rapl_perf serio_raw pcspkr sg lpc_ich(+) mfd_core snd_hda_intel(+) snd_hda_codec snd_hda_core snd_hwdep snd_pcm snd_timer snd soundcore mei_me(+) mei battery i915(+) shpchp(+) tpm_infineon nouveau(+) mxm_wmi wmi video button ttm drm_kms_helper drm i2c_algo_bit parport_pc ppdev lp sunrpc parport ip_tables x_tables autofs4 ext4 crc16 mbcache jbd2 crc32c_generic fscrypto ecb sr_mod cdrom sd_mod crc32c_intel ahci libahci aesni_intel aes_x86_64 crypto_simd cryptd glue_helper libata xhci_pci ehci_pci e1000e xhci_hcd ehci_hcd psmouse scsi_mod i2c_i801 ptp usbcore pps_core usb_common fan thermal
> Nov 3 09:14:06 ws6779 kernel: [ 4.749204] CPU: 4 PID: 199 Comm: kworker/u16:4 Not tainted 4.13.0-1-amd64 #1 Debian 4.13.4-2
> Nov 3 09:14:06 ws6779 kernel: [ 4.749205] Hardware name: Hewlett-Packard HP EliteDesk 800 G1 TWR/18E4, BIOS L01 v02.65 07/13/2015
> Nov 3 09:14:06 ws6779 kernel: [ 4.749241] Workqueue: nvkm-disp gf119_disp_super [nouveau]
> Nov 3 09:14:06 ws6779 kernel: [ 4.749241] task: ffff8c79d753d040 task.stack: ffffb4f2821c4000
> Nov 3 09:14:06 ws6779 kernel: [ 4.749242] RIP: 0010: (null)
> Nov 3 09:14:06 ws6779 kernel: [ 4.749242] RSP: 0018:ffffb4f2821c7c40 EFLAGS: 00010206
> Nov 3 09:14:06 ws6779 kernel: [ 4.749243] RAX: ffffffffc081fec0 RBX: 0000000000000000 RCX: 0000000000000016
> Nov 3 09:14:06 ws6779 kernel: [ 4.749244] RDX: 0000000000000000 RSI: 0000000000000000 RDI: ffff8c79dbe9a000
> Nov 3 09:14:06 ws6779 kernel: [ 4.749244] RBP: 0000000000000000 R08: 0000000000000000 R09: 0000000000000000
> Nov 3 09:14:06 ws6779 kernel: [ 4.749244] R10: 0000000000001000 R11: 0000000010624dd3 R12: 0000000000000000
> Nov 3 09:14:06 ws6779 kernel: [ 4.749245] R13: ffffb4f2821c7d6e R14: ffffb4f2821c7d60 R15: ffff8c79dce92c00
> Nov 3 09:14:06 ws6779 kernel: [ 4.749245] FS: 0000000000000000(0000) GS:ffff8c79efb00000(0000) knlGS:0000000000000000
> Nov 3 09:14:06 ws6779 kernel: [ 4.749246] CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033
> Nov 3 09:14:06 ws6779 kernel: [ 4.749247] CR2: 0000000000000000 CR3: 0000000214009000 CR4: 00000000001406e0
> Nov 3 09:14:06 ws6779 kernel: [ 4.749247] Call Trace:
> Nov 3 09:14:06 ws6779 kernel: [ 4.749272] ? nvkm_dp_train_drive+0x210/0x2f0 [nouveau]
> Nov 3 09:14:06 ws6779 kernel: [ 4.749294] ? nvkm_dp_acquire+0x89c/0xca0 [nouveau]
> Nov 3 09:14:06 ws6779 kernel: [ 4.749317] ? nv50_disp_super_2_2+0x69/0x430 [nouveau]
> Nov 3 09:14:06 ws6779 kernel: [ 4.749337] ? gf119_disp_super+0x1a5/0x2f0 [nouveau]
> Nov 3 09:14:06 ws6779 kernel: [ 4.749340] ? process_one_work+0x181/0x370
> Nov 3 09:14:06 ws6779 kernel: [ 4.749341] ? worker_thread+0x4d/0x3a0
> Nov 3 09:14:06 ws6779 kernel: [ 4.749342] ? kthread+0xfc/0x130
> Nov 3 09:14:06 ws6779 kernel: [ 4.749343] ? process_one_work+0x370/0x370
> Nov 3 09:14:06 ws6779 kernel: [ 4.749344] ? kthread_create_on_node+0x70/0x70
> Nov 3 09:14:06 ws6779 kernel: [ 4.749346] ? ret_from_fork+0x25/0x30
> Nov 3 09:14:06 ws6779 kernel: [ 4.749346] Code: Bad RIP value.
> Nov 3 09:14:06 ws6779 kernel: [ 4.749349] RIP: (null) RSP: ffffb4f2821c7c40
> Nov 3 09:14:06 ws6779 kernel: [ 4.749349] CR2: 0000000000000000
> Nov 3 09:14:06 ws6779 kernel: [ 4.749350] ---[ end trace e7e26cc20e08b3dd ]---
Looking again, I think this is
https://bugs.freedesktop.org/show_bug.cgi?id=103421 which has a patch
that works for at least two people, attached for convenience. If you
dare building your own kernel, you may want to try it out.
Cheers,
Sven
diff --git a/drivers/gpu/drm/nouveau/nvkm/engine/disp/sorgf119.c b/drivers/gpu/drm/nouveau/nvkm/engine/disp/sorgf119.c
index a2978a37b4f3..700fc754f28a 100644
--- a/drivers/gpu/drm/nouveau/nvkm/engine/disp/sorgf119.c
+++ b/drivers/gpu/drm/nouveau/nvkm/engine/disp/sorgf119.c
@@ -174,6 +174,7 @@ gf119_sor = {
.links = gf119_sor_dp_links,
.power = g94_sor_dp_power,
.pattern = gf119_sor_dp_pattern,
+ .drive = gf119_sor_dp_drive,
.vcpi = gf119_sor_dp_vcpi,
.audio = gf119_sor_dp_audio,
.audio_sym = gf119_sor_dp_audio_sym,
Reply to: