[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#880660: xserver-xorg-video-nouveau: Crash when kernel tries to switch to frame buffer



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: