[solved] Kernel module null pointer error with GTX550 and Ubuntu 14.04

With the latest Ubuntu kernels, I have been getting the following error message in boot:

[    5.096010] BUG: unable to handle kernel NULL pointer dereference at           (null)
[    5.096226] IP: [<ffffffff8172a54b>] __down_common+0x4c/0x144
[    5.096371] PGD 210f51067 PUD 2118aa067 PMD 0 
[    5.096620] Oops: 0002 [#1] SMP 
[    5.096814] Modules linked in: nvidia(POX+) intel_rapl(+) x86_pkg_temp_thermal intel_powerclamp coretemp snd_hda_codec_realtek kvm snd_hda_intel(+) snd_hda_codec crct10dif_pclmul budget_av(+) crc32_pclmul snd_hwdep saa7146_vv ghash_clmulni_intel budget_core snd_pcm ttpci_eeprom snd_page_alloc saa7146 aesni_intel videobuf_dma_sg aes_x86_64 snd_seq_midi dvb_core lrw snd_seq_midi_event snd_rawmidi v4l2_common gf128mul videobuf_core glue_helper snd_seq videodev ablk_helper cryptd snd_seq_device snd_timer drm snd serio_raw mei_me soundcore lpc_ich shpchp mei mac_hid hid_generic usb_storage usbhid hid psmouse r8169 pata_acpi mii video
[    5.100132] CPU: 0 PID: 512 Comm: nvidia-persiste Tainted: P           OX 3.13.0-63-generic #103-Ubuntu
[    5.100226] Hardware name: Gigabyte Technology Co., Ltd. To be filled by O.E.M./Z77-HD3, BIOS F2b 11/21/2012
[    5.100319] task: ffff8802118eb000 ti: ffff88020d9f2000 task.ti: ffff88020d9f2000
[    5.100409] RIP: 0010:[<ffffffff8172a54b>]  [<ffffffff8172a54b>] __down_common+0x4c/0x144
[    5.100553] RSP: 0018:ffff88020d9f3b48  EFLAGS: 00010096
[    5.100627] RAX: 0000000000000000 RBX: ffffffffa0bfc970 RCX: 0000000000000000
[    5.100703] RDX: ffffffffa0bfc978 RSI: ffff88020d9f3b50 RDI: ffffffffa0bfc970
[    5.100780] RBP: ffff88020d9f3b98 R08: 0000000000000296 R09: ffffffffa09620bb
[    5.100856] R10: 0000000000000009 R11: 00000000000000ff R12: 7fffffffffffffff
[    5.100933] R13: ffff8802118eb000 R14: 0000000000000002 R15: 0000000000000000
[    5.101009] FS:  00007fa673910740(0000) GS:ffff88021ec00000(0000) knlGS:0000000000000000
[    5.101100] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
[    5.101175] CR2: 0000000000000000 CR3: 0000000211cb7000 CR4: 00000000001407f0
[    5.101251] Stack:
[    5.101319]  0000000000000000 ffffffffa0bfc978 0000000000000000 ffff880035869e00
[    5.101618]  0000000000000000 ffffffffa0bfc970 ffff880035950000 0000000000000003
[    5.101916]  ffff88003582cd78 0000000000000002 ffff88020d9f3ba8 ffffffff8172a660
[    5.102212] Call Trace:
[    5.102283]  [<ffffffff8172a660>] __down+0x1d/0x1f
[    5.102357]  [<ffffffff810b0f71>] down+0x41/0x50
[    5.102472]  [<ffffffffa09623b7>] nvidia_open+0x387/0x8b0 [nvidia]
[    5.102577]  [<ffffffffa096f7a9>] nvidia_frontend_open+0x49/0xa0 [nvidia]
[    5.102654]  [<ffffffff811c2dbf>] chrdev_open+0x9f/0x1d0
[    5.102729]  [<ffffffff811bb8f3>] do_dentry_open+0x233/0x2e0
[    5.102804]  [<ffffffff811c2d20>] ? cdev_put+0x30/0x30
[    5.102878]  [<ffffffff811bbc29>] vfs_open+0x49/0x50
[    5.102952]  [<ffffffff811ccfd4>] do_last+0x564/0x1240
[    5.103026]  [<ffffffff811caa91>] ? link_path_walk+0x71/0x880
[    5.103102]  [<ffffffff8131618b>] ? apparmor_file_alloc_security+0x5b/0x180
[    5.103179]  [<ffffffff811cdd6b>] path_openat+0xbb/0x650
[    5.103254]  [<ffffffff811cf16a>] do_filp_open+0x3a/0x90
[    5.103329]  [<ffffffff811dbfe7>] ? __alloc_fd+0xa7/0x130
[    5.103403]  [<ffffffff811bd749>] do_sys_open+0x129/0x280
[    5.103478]  [<ffffffff811bd8be>] SyS_open+0x1e/0x20
[    5.103552]  [<ffffffff8173489d>] system_call_fastpath+0x1a/0x1f
[    5.103626] Code: 54 49 89 d4 48 8d 57 08 53 48 89 fb 48 83 e4 f0 48 83 ec 28 48 8b 47 10 48 8d 74 24 08 48 89 54 24 08 48 89 44 24 10 48 89 77 10 <48> 89 30 4c 89 f0 4c 89 6c 24 18 83 e0 01 c6 44 24 20 00 48 89 
[    5.107150] RIP  [<ffffffff8172a54b>] __down_common+0x4c/0x144
[    5.107277]  RSP <ffff88020d9f3b48>
[    5.107348] CR2: 0000000000000000
[    5.107419] ---[ end trace 4d738c8a43fe461e ]---

After this, X does not start. The system is Ubuntu 64-bit Ubuntu 14.04 with kernel 3.13.0-63. The problem first appeared with 3.13.0-58. With some kernel versions, at least 3.13.0-60, this problem can be avoided by playing around with rcutree.rcu_idle_gp_delay values, but the latest versions always produce the problem.

The strange-looking part at line 6 shows up first as a continuous text which is overwritten after a fraction of second, this output is from dmesg and shows the content after overwrite.

The full nvidia-bug.sh output (until it hangs): https://www.dropbox.com/s/vplve9aexpc75e2/nvidia-bug-report.log.gz?dl=0

Looks like updating kernel to 3.19 using linux-generic-lts-vivid package solved the problem.