Black screen with all 340.xx drivers newer than 340.46

On my Lenovo W510 with an NVidia GT216GLM [Quadro FX 880M], starting the X-server with the NVidia 340xx driver newer than 340.46 FUBARs the graphic subsystem completely, i.e., there is a black screen, the backlight is off (and no image showing anyway), there is no possibility to switch back to a terminal etc. Magic SysRq works though… This occurs both with and without an external monitor on DisplayPort or on a DisplayPort->HDMI cable.

A NULL pointer dereference occurs somewhere in the NVidia driver. You can find a stack trace in this ArchLinux forum post I wrote some time ago: https://bbs.archlinux.org/viewtopic.php?pid=1474892#p1474892 This occurs when the X-server starts, way before any GUI elements appear. This is most likely the reason why my system ends up in an undefined state with backlight off and unable to display anything.

The problem persists with kernels 3.16.x, 3.17.x as well as 3.18.x. The 340.46 driver works perfectly though (with all those kernels). My distribution is ArchLinux, but I’m using a custom kernel. I can provide my kernel .config if it’s relevant (but as a matter of fact, the NVidia drivers have always worked fine with all of my custom kernels … up to 340.46).

If you need more details, please just let me know how to gather them for you.

Update: 340.46 does not work with 3.18.x, simply because it doesn’t compile there. Sorry about the confusing formulation above.

BTW, there’s a related thread here: https://devtalk.nvidia.com/default/topic/794458/linux/340-58-and-vanilla-kernel-bug-unable-to-handle-kernel-null-pointer-dereference/

FTR, the problem still persists, which is badly annoying. My laptop has been unusable because of this for quite a long time already.

[  123.186715] BUG: unable to handle kernel NULL pointer dereference at 0000000000000328
[  123.186871] IP: [<ffffffffa0ac64fb>] _nv006515rm+0x4b/0xc0 [nvidia]
[  123.186873] PGD 4157f0067 PUD 415478067 PMD 0 
[  123.186875] Oops: 0000 [#1] PREEMPT SMP 
[  123.186909] Modules linked in: nvidia(PO) drm ccm twofish_generic twofish_x86_64_3way twofish_x86_64 twofish_common blowfish_generic blowfish_x86_64 blowfish_common cast5_generic cast_common seqiv ctr ecb des3_ede_x86_64 des_generic cbc camellia_generic camellia_x86_64 xcbc hmac sha512_ssse3 sha512_generic sha256_ssse3 sha256_generic md5 md4 algif_hash xfrm_user xfrm4_tunnel tunnel4 ipcomp xfrm_ipcomp esp4 ah4 af_key xfrm_algo bnep snd_hda_codec_hdmi uvcvideo msr videobuf2_vmalloc videobuf2_memops videobuf2_core v4l2_common videodev snd_hda_codec_conexant snd_hda_codec_generic arc4 iTCO_wdt iTCO_vendor_support media btusb bluetooth iwldvm mac80211 crc16 mxm_wmi iwlwifi psmouse evdev i7core_edac serio_raw edac_core cfg80211 i2c_i801 lpc_ich mfd_core thinkpad_acpi tpm_tis snd_hda_intel nvram tpm rfkill
[  123.186943]  snd_hda_controller battery video rtc_cmos ac snd_hda_codec wmi snd_pcm snd_timer e1000e snd ptp soundcore pps_core button sch_fq_codel cuse fuse nfs lockd grace sunrpc fscache sg ip6_tables x_tables kvm_intel kvm pcrypt coretemp cpufreq_ondemand acpi_cpufreq processor thermal_sys hwmon shpchp ioatdma dca dm_crypt serpent_sse2_x86_64 serpent_generic lrw glue_helper ablk_helper cryptd xts gf128mul algif_skcipher af_alg btrfs xor raid6_pq dm_mod sr_mod sd_mod cdrom mmc_block crc32c_intel ahci libahci libata scsi_mod firewire_ohci sdhci_pci xhci_pci firewire_core sdhci crc_itu_t led_class xhci_hcd ehci_pci mmc_core ehci_hcd usbcore usb_common ipv6 autofs4
[  123.186946] CPU: 2 PID: 1579 Comm: Xorg Tainted: P           O   3.19.3-AP+ #1
[  123.186947] Hardware name: LENOVO 43193BG/43193BG, BIOS 6NET80WW (1.41 ) 11/29/2011
[  123.186949] task: ffff88042ba25dc0 ti: ffff88041fd44000 task.ti: ffff88041fd44000
[  123.187092] RIP: 0010:[<ffffffffa0ac64fb>]  [<ffffffffa0ac64fb>] _nv006515rm+0x4b/0xc0 [nvidia]
[  123.187093] RSP: 0018:ffff88041fd47a28  EFLAGS: 00010286
[  123.187094] RAX: 0000000000000000 RBX: ffff880412cb8008 RCX: 0000000000000000
[  123.187095] RDX: 0000000000000000 RSI: 0000000000000056 RDI: 0000000000000000
[  123.187096] RBP: ffff88042138af00 R08: 0000000000000002 R09: ffff88042b3bf948
[  123.187097] R10: ffff880421351008 R11: ffffffffa0b620a0 R12: 0000000000000000
[  123.187098] R13: 0000000000000000 R14: ffff880417fb0008 R15: 0000000000000002
[  123.187100] FS:  00007f4fa335f900(0000) GS:ffff88043fc80000(0000) knlGS:0000000000000000
[  123.187101] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
[  123.187102] CR2: 0000000000000328 CR3: 0000000411d7e000 CR4: 00000000000007e0
[  123.187102] Stack:
[  123.187105]  ffff880411d12008 ffff880411d12008 ffff880412cb8008 ffff880417fb0008
[  123.187106]  0000000000000008 ffffffffa0ab25c6 000000000000000a ffff880417fb0008
[  123.187108]  ffff880412cb8008 ffff880422e0b008 ffff880412cd0008 ffffffffa0aabe56
[  123.187109] Call Trace:
[  123.187248]  [<ffffffffa0ab25c6>] ? _nv007058rm+0x406/0x920 [nvidia]
[  123.187386]  [<ffffffffa0aabe56>] ? _nv007054rm+0xa6/0x2c0 [nvidia]
[  123.187545]  [<ffffffffa0b6460f>] ? _nv008900rm+0x3d0f/0x5c10 [nvidia]
[  123.187630]  [<ffffffffa0d6083b>] ? _nv009251rm+0x3b/0x60 [nvidia]
[  123.187686]  [<ffffffffa0ddd879>] ? _nv013594rm+0xa79/0xb90 [nvidia]
[  123.187741]  [<ffffffffa0dde75f>] ? _nv000780rm+0x32f/0x650 [nvidia]
[  123.187797]  [<ffffffffa0dd65aa>] ? rm_init_adapter+0x6a/0x100 [nvidia]
[  123.187802]  [<ffffffff81089c00>] ? request_threaded_irq+0x30/0x180
[  123.187856]  [<ffffffffa0de6733>] ? nvidia_open+0x1e3/0x930 [nvidia]
[  123.187860]  [<ffffffff812aacd1>] ? kobj_lookup+0x111/0x170
[  123.187912]  [<ffffffffa0df0fff>] ? nvidia_frontend_open+0x3f/0x90 [nvidia]
[  123.187916]  [<ffffffff8112d876>] ? chrdev_open+0x96/0x1c0
[  123.187919]  [<ffffffff8112d7e0>] ? cdev_put+0x30/0x30
[  123.187921]  [<ffffffff81126f71>] ? do_dentry_open+0x1d1/0x320
[  123.187923]  [<ffffffff811377df>] ? do_last.isra.42+0x21f/0x10d0
[  123.187926]  [<ffffffff81116993>] ? kmem_cache_alloc+0xd3/0x170
[  123.187928]  [<ffffffff8113870f>] ? path_openat+0x7f/0x5a0
[  123.187931]  [<ffffffff81139b4b>] ? do_filp_open+0x2b/0x90
[  123.187934]  [<ffffffff81145c77>] ? __alloc_fd+0x97/0x120
[  123.187936]  [<ffffffff81128835>] ? do_sys_open+0x125/0x210
[  123.187940]  [<ffffffff813ae2e5>] ? int_check_syscall_exit_work+0x34/0x3d
[  123.187942]  [<ffffffff813ae0b6>] ? system_call_fastpath+0x16/0x1b
[  123.187961] Code: 20 c7 83 5c 18 00 00 00 00 00 00 49 89 c5 eb 18 44 89 e2 48 89 de 4c 89 f7 ff 93 a0 05 00 00 01 83 5c 18 00 00 41 ff c4 4c 89 ef <41> ff 95 28 03 00 00 44 39 e0 77 d9 4c 89 f7 b9 74 06 10 00 31
[  123.188103] RIP  [<ffffffffa0ac64fb>] _nv006515rm+0x4b/0xc0 [nvidia]
[  123.188103]  RSP <ffff88041fd47a28>
[  123.188104] CR2: 0000000000000328
[  123.188114] ---[ end trace d7e5931ab4cf1a9d ]---