Bug 61765

Summary: Regression: null pointer dereference on reboot after switcheroo use
Product: xorg Reporter: Cristian Rodríguez <crrodriguez>
Component: Driver/nouveauAssignee: Nouveau Project <nouveau>
Status: RESOLVED MOVED QA Contact: Xorg Project Team <xorg-team>
Severity: major    
Priority: medium    
Version: git   
Hardware: x86-64 (AMD64)   
OS: Linux (All)   
Whiteboard:
i915 platform: i915 features:
Attachments:
Description Flags
screenshot of the crash none

Description Cristian Rodríguez 2013-03-03 22:02:30 UTC
Created attachment 75867 [details]
screenshot of the crash

echo OFF > /sys/kernel/debug/vgaswitcheroo/switch

causes a null ptr deref at shurdown in this hybrid graphics laptop.

01:00.0 VGA compatible controller: NVIDIA Corporation GF108 [GeForce GT 540M] (rev a1)

00:02.0 VGA compatible controller: Intel Corporation 2nd Generation Core Processor Family Integrated Graphics Controller (rev 09)

It used to work fine in 3.6 , it broke at some point after 3.7 and continues to be broken in 3.8 or in 3.9.

The attached file has a screen caputure of the crash.
Comment 1 Cristian Rodríguez 2013-06-16 05:15:33 UTC
Now the issue has mutated into a BUG: unable to handle kernel paging request at ffff8803323e9ffc

Here is the kernel trace

Jun 16 01:05:12 xps15z.thno.cristianrodriguez.org kernel: VGA switcheroo: switched nouveau off
Jun 16 01:05:12 xps15z.thno.cristianrodriguez.org kernel: nouveau  [     DRM] suspending fbcon...
Jun 16 01:05:12 xps15z.thno.cristianrodriguez.org kernel: nouveau  [     DRM] suspending display...
Jun 16 01:05:12 xps15z.thno.cristianrodriguez.org kernel: nouveau  [     DRM] unpinning framebuffer(s)...
Jun 16 01:05:12 xps15z.thno.cristianrodriguez.org kernel: nouveau  [     DRM] evicting buffers...
Jun 16 01:05:12 xps15z.thno.cristianrodriguez.org kernel: nouveau  [     DRM] waiting for kernel channels to go idle...
Jun 16 01:05:12 xps15z.thno.cristianrodriguez.org kernel: nouveau  [     DRM] suspending client object trees...
Jun 16 01:05:12 xps15z.thno.cristianrodriguez.org kernel: nouveau  [     DRM] suspending kernel object tree...
Jun 16 01:05:13 xps15z.thno.cristianrodriguez.org kernel: nouveau 0000:01:00.0: power state changed by ACPI to D3hot
Jun 16 01:05:50 xps15z.thno.cristianrodriguez.org kernel: BUG: unable to handle kernel paging request at ffff8803323e9ffc
Jun 16 01:05:50 xps15z.thno.cristianrodriguez.org kernel: IP: [<ffffffff81486609>] evo_wait+0x69/0xd0
Jun 16 01:05:50 xps15z.thno.cristianrodriguez.org kernel: PGD 1ed7067 PUD 0 
Jun 16 01:05:50 xps15z.thno.cristianrodriguez.org kernel: Oops: 0002 [#1] PREEMPT SMP 
Jun 16 01:05:50 xps15z.thno.cristianrodriguez.org kernel: Modules linked in: intel_powerclamp coretemp kvm_intel iTCO_wdt iTCO_vendor_support kvm crc32_pclmul dell_wmi sparse_keymap ghash_clmulni_intel aesni_intel
Jun 16 01:05:50 xps15z.thno.cristianrodriguez.org kernel: CPU: 0 PID: 703 Comm: Xorg Not tainted 3.10.0-rc6-666-desktop-00017-g6a1c4e4 #43
Jun 16 01:05:50 xps15z.thno.cristianrodriguez.org kernel: Hardware name: Dell Inc.          Dell System XPS 15Z/00WW5M, BIOS A12 09/07/2012
Jun 16 01:05:50 xps15z.thno.cristianrodriguez.org kernel: task: ffff880232940000 ti: ffff880232e5e000 task.ti: ffff880232e5e000
Jun 16 01:05:50 xps15z.thno.cristianrodriguez.org kernel: RIP: 0010:[<ffffffff81486609>]  [<ffffffff81486609>] evo_wait+0x69/0xd0
Jun 16 01:05:50 xps15z.thno.cristianrodriguez.org kernel: RSP: 0018:ffff880232e5f960  EFLAGS: 00010246
Jun 16 01:05:50 xps15z.thno.cristianrodriguez.org kernel: RAX: ffff8802323ea000 RBX: 000000003fffffff RCX: ffff88023269a200
Jun 16 01:05:50 xps15z.thno.cristianrodriguez.org kernel: RDX: 0000000000000000 RSI: 0000000000000000 RDI: ffff880233cbca40
Jun 16 01:05:50 xps15z.thno.cristianrodriguez.org kernel: RBP: ffff880232e5f980 R08: 000000000000000d R09: ffff880210696500
Jun 16 01:05:50 xps15z.thno.cristianrodriguez.org kernel: R10: 0000000000000000 R11: 0000000000000000 R12: ffff880233cbca20
Jun 16 01:05:50 xps15z.thno.cristianrodriguez.org kernel: R13: ffff880233cbca40 R14: 0000000040000007 R15: ffffffff8187e460
Jun 16 01:05:50 xps15z.thno.cristianrodriguez.org kernel: FS:  00007f58984ba880(0000) GS:ffff88023fa00000(0000) knlGS:0000000000000000
Jun 16 01:05:50 xps15z.thno.cristianrodriguez.org kernel: CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
Jun 16 01:05:50 xps15z.thno.cristianrodriguez.org kernel: CR2: ffff8803323e9ffc CR3: 000000022cf98000 CR4: 00000000000407e0
Jun 16 01:05:50 xps15z.thno.cristianrodriguez.org kernel: DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
Jun 16 01:05:50 xps15z.thno.cristianrodriguez.org kernel: DR3: 0000000000000000 DR6: 00000000ffff0ff0 DR7: 0000000000000400
Jun 16 01:05:50 xps15z.thno.cristianrodriguez.org kernel: Stack:
Jun 16 01:05:50 xps15z.thno.cristianrodriguez.org kernel:  ffff880233cb7000 ffff880210696b00 ffff880232676e40 ffff880233cbc000
Jun 16 01:05:50 xps15z.thno.cristianrodriguez.org kernel:  ffff880232e5f9a8 ffffffff814888a3 ffff880232676e40 ffff880233cbca20
Jun 16 01:05:50 xps15z.thno.cristianrodriguez.org kernel:  ffff880233cbc000 ffff880232e5f9d0 ffffffff81488975 ffff88023234c478
Jun 16 01:05:50 xps15z.thno.cristianrodriguez.org kernel: Call Trace:
Jun 16 01:05:50 xps15z.thno.cristianrodriguez.org kernel:  [<ffffffff814888a3>] nv50_display_flip_stop+0x53/0xc0
Jun 16 01:05:50 xps15z.thno.cristianrodriguez.org kernel:  [<ffffffff81488975>] nv50_crtc_prepare+0x25/0x190
Jun 16 01:05:50 xps15z.thno.cristianrodriguez.org kernel:  [<ffffffff8136510f>] drm_crtc_helper_set_mode+0x25f/0x450
Jun 16 01:05:50 xps15z.thno.cristianrodriguez.org kernel:  [<ffffffff813667d2>] drm_crtc_helper_set_config+0xa22/0xb40
Jun 16 01:05:50 xps15z.thno.cristianrodriguez.org kernel:  [<ffffffff8137798e>] drm_mode_set_config_internal+0x1e/0x50
Jun 16 01:05:50 xps15z.thno.cristianrodriguez.org kernel:  [<ffffffff8137a187>] drm_mode_setcrtc+0xf7/0x650
Jun 16 01:05:50 xps15z.thno.cristianrodriguez.org kernel:  [<ffffffff81470f86>] ? nouveau_user_framebuffer_create+0x66/0xb0
Jun 16 01:05:50 xps15z.thno.cristianrodriguez.org kernel:  [<ffffffff8136b302>] drm_ioctl+0x532/0x660
Jun 16 01:05:50 xps15z.thno.cristianrodriguez.org kernel:  [<ffffffff811657c5>] do_vfs_ioctl+0x2e5/0x4d0
Jun 16 01:05:50 xps15z.thno.cristianrodriguez.org kernel:  [<ffffffff8106dc31>] ? vtime_account_user+0x61/0x70
Jun 16 01:05:50 xps15z.thno.cristianrodriguez.org kernel:  [<ffffffff811659f0>] SyS_ioctl+0x40/0x80
Jun 16 01:05:50 xps15z.thno.cristianrodriguez.org kernel:  [<ffffffff816aca8b>] tracesys+0xdd/0xe2
Jun 16 01:05:50 xps15z.thno.cristianrodriguez.org kernel: Code: 81 fe f7 03 00 00 77 1a 48 89 d0 49 03 44 24 18 5b 41 5c 41 5d 41 5e 5d c3 66 0f 1f 84 00 00 00 00 00 49 8b 44 24 18 31 d2 31 f6 <c7> 04 98 00 00 00 
Jun 16 01:05:50 xps15z.thno.cristianrodriguez.org kernel: RIP  [<ffffffff81486609>] evo_wait+0x69/0xd0
Jun 16 01:05:50 xps15z.thno.cristianrodriguez.org kernel:  RSP <ffff880232e5f960>
Jun 16 01:05:50 xps15z.thno.cristianrodriguez.org kernel: CR2: ffff8803323e9ffc
Jun 16 01:05:50 xps15z.thno.cristianrodriguez.org kernel: ---[ end trace 403519e1213664b5 ]---
Comment 2 Ilia Mirkin 2013-09-06 20:22:50 UTC
Can you explain what steps you take in order to make this happen? It seems like vgaswitcheroo turns off the nvidia card, and then Xorg sends it an ioctl (which I would have assumed should fail) which breaks since the card is off.
Comment 3 Tobias Klausmann 2015-01-17 00:08:09 UTC
still a problem with newer kernels (3.17, 3.18)? there were really many fixes in between that could fix this...
Comment 4 Martin Peres 2019-12-04 08:33:01 UTC
-- GitLab Migration Automatic Message --

This bug has been migrated to freedesktop.org's GitLab instance and has been closed from further activity.

You can subscribe and participate further through the new bug through this link to our GitLab instance: https://gitlab.freedesktop.org/xorg/driver/xf86-video-nouveau/issues/38.

Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.