drm/nouveau: fix oops on unload with disabled LVDS panel
Fixes: https://bugs.freedesktop.org/show_bug.cgi?id=35135
BUG: unable to handle kernel NULL pointer dereference at
000002d8
IP: [<
f83694af>] nv04_dfp_restore+0x7f/0xd0 [nouveau]
(...)
Call Trace:
[<
f8372208>] nv04_display_destroy+0xa8/0x140 [nouveau]
[<
f830344a>] nouveau_unload+0x2a/0x160 [nouveau]
[<
f80d98fb>] drm_put_dev+0xbb/0x1b0 [drm]
[<
f8301025>] nouveau_pci_remove+0x15/0x20 [nouveau]
[<
c1292ad4>] pci_device_remove+0x44/0xf0
[<
c13339d1>] __device_release_driver+0x51/0xb0
[<
c133401f>] driver_detach+0x8f/0xa0
[<
c13338a3>] bus_remove_driver+0x63/0xa0
[<
c13340a9>] driver_unregister+0x49/0x80
[<
c1182f84>] ? sysfs_remove_file+0x14/0x20
[<
c1292bb2>] pci_unregister_driver+0x32/0x90
[<
c109b1da>] ? __stop_machine+0x5a/0x70
[<
f80d3f93>] drm_exit+0x83/0x90 [drm]
[<
f837875d>] nouveau_exit+0x1b/0x8be [nouveau]
[<
c1087b5b>] sys_delete_module+0x13b/0x1f0
[<
c1104c3e>] ? do_munmap+0x1fe/0x280
[<
c1104780>] ? arch_unmap_area_topdown+0x0/0x20
[<
c15096f4>] syscall_call+0x7/0xb
Reported-by: Francesco Marella <francesco.marella@gmail.com>
Tested-by: Francesco Marella <francesco.marella@gmail.com>
Signed-off-by: Marcin Slusarz <marcin.slusarz@gmail.com>
[ currojerez@riseup.net: No need to spam the logs in that case, an
unbound LVDS encoder is not an error. ]
Signed-off-by: Francisco Jerez <currojerez@riseup.net>
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>