nouveau: refcount_t splat on 4.15-rc1 on nv50

Adam Borowski kilobyte at angband.pl
Sat Dec 2 18:03:16 UTC 2017


Hi guys!
I'm getting the following warn on 4.15-rc1, on GTX 560 Ti:

[    9.430433] nouveau 0000:01:00.0: NVIDIA GF114 (0ce000a1)
...
[    9.585172] nouveau 0000:01:00.0: bios: version 70.24.2e.00.02
...
[    9.772204] nouveau 0000:01:00.0: fb: 1024 MiB GDDR5
[    9.777342] ------------[ cut here ]------------
[    9.782106] refcount_t: increment on 0; use-after-free.
[    9.787522] WARNING: CPU: 0 PID: 3 at lib/refcount.c:153 refcount_inc+0x30/0x50
[    9.795060] Modules linked in: sha256_generic cfg80211(+) rfkill snd_usb_audio snd_usbmidi_lib nouveau(+) video ttm
[    9.805756] CPU: 0 PID: 3 Comm: kworker/0:0 Not tainted 4.15.0-rc1-debug-ubsan-00020-gf4707a916107 #1
[    9.815215] Hardware name: System manufacturer System Product Name/M4A77T, BIOS 2401    05/18/2011
[    9.824420] Workqueue: events work_for_cpu_fn
[    9.828915] task: ffff880226110c80 task.stack: ffffc90000c80000
[    9.830647] cfg80211: Loaded X.509 cert 'sforshee: 00b28ddf47aef9cea7'
[    9.841681] RIP: 0010:refcount_inc+0x30/0x50
[    9.846093] RSP: 0018:ffffc90000c83808 EFLAGS: 00010296
[    9.851458] RAX: 000000000000002b RBX: 0000000000000000 RCX: 0000000000000000
[    9.858763] RDX: 0000000000000001 RSI: 0000000000000082 RDI: ffffffff8378eb8c
[    9.866051] RBP: ffff88021f103fd0 R08: 0000000000000199 R09: ffff8800000bd500
[    9.873330] R10: 0000000000000000 R11: ffffffff82289a80 R12: 0000000000000000
[    9.880621] R13: ffff8802103a69e0 R14: ffff88021f103fe0 R15: ffff88021f103fe0
[    9.887909] FS:  0000000000000000(0000) GS:ffff88022fc00000(0000) knlGS:0000000000000000
[    9.896230] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
[    9.902117] CR2: 0000560476ba0000 CR3: 0000000225232000 CR4: 00000000000006f0
[    9.909417] Call Trace:
[    9.912106]  nv50_instobj_acquire+0x123/0x1c0 [nouveau]
[    9.917565]  ? nvbios_rd08+0x1b/0x70 [nouveau]
[    9.922239]  nvkm_instobj_new+0x1e3/0x520 [nouveau]
[    9.927353]  ? nvbios_rd08+0x1b/0x70 [nouveau]
[    9.932017]  ? nvbios_pll_parse+0x8d7/0xcf0 [nouveau]
[    9.937218]  ? kmem_cache_alloc+0x1f0/0x2d0
[    9.941624]  nvkm_memory_new+0x4b/0xc0 [nouveau]
[    9.946461]  ? nvkm_longopt+0x17/0x60 [nouveau]
[    9.951208]  gf100_fb_oneinit+0x7b/0x1c0 [nouveau]
[    9.956218]  nvkm_fb_oneinit+0x89/0x2e0 [nouveau]
[    9.961144]  nvkm_subdev_init+0x92/0x600 [nouveau]
[    9.966085]  ? ktime_get+0x64/0x110
[    9.969815]  nvkm_device_init+0x169/0x2a0 [nouveau]
[    9.974922]  nvkm_udevice_init+0x7e/0xf0 [nouveau]
[    9.979924]  nvkm_object_init+0x6a/0x2e0 [nouveau]
[    9.984932]  nvkm_ioctl_new+0x198/0x430 [nouveau]
[    9.989846]  ? nvif_vmm_init+0x340/0x340 [nouveau]
[    9.994864]  ? nvkm_udevice_rd08+0x90/0x90 [nouveau]
[   10.000056]  nvkm_ioctl+0x21e/0x5a0 [nouveau]
[   10.004548]  ? yield_to+0x2b2/0x370
[   10.008257]  nvif_object_init+0xef/0x1b0 [nouveau]
[   10.013281]  nvif_device_init+0x9/0x40 [nouveau]
[   10.018136]  nouveau_cli_init+0x234/0x12f0 [nouveau]
[   10.023253]  ? idr_alloc_cyclic+0x6c/0x110
[   10.027487]  ? _cond_resched+0x1d/0x80
[   10.031366]  ? kmem_cache_alloc+0x1f0/0x2d0
[   10.035790]  nouveau_drm_load+0x71/0xec0 [nouveau]
[   10.040735]  drm_dev_register+0x1b4/0x330
[   10.044872]  ? pci_enable_device_flags+0x155/0x200
[   10.049806]  drm_get_pci_dev+0xde/0x2c0
[   10.053874]  nouveau_drm_probe+0x1b9/0x240 [nouveau]
[   10.058986]  ? __pm_runtime_resume+0x68/0xb0
[   10.063409]  local_pci_probe+0x5e/0xf0
[   10.067300]  work_for_cpu_fn+0x10/0x30
[   10.071183]  process_one_work+0x21a/0x670
[   10.075325]  worker_thread+0x256/0x500
[   10.079208]  ? manage_workers+0x1e0/0x1e0
[   10.083362]  kthread+0x169/0x220
[   10.086730]  ? kthread_create_worker_on_cpu+0x40/0x40
[   10.091933]  ret_from_fork+0x1f/0x30
[   10.095655] Code: ff 84 c0 74 02 5b c3 0f b6 1d 59 b2 a6 01 80 fb 01 77 1c 83 e3 01 75 ed 48 c7 c7 c8 f1 3f 82 c6 05 41 b2 a6 01 01 e8 50 02 8d ff <0f> ff 5b c3 0f b6 f3 48 c7 c7 00 16 c7 82 e8 dd 81 0d 00 eb d3 
[   10.114909] ---[ end trace 08f29138ff4259e6 ]---
[   10.119703] hpet1: lost 21 rtc interrupts
[   10.125534] ------------[ cut here ]------------
[   10.130326] refcount_t: underflow; use-after-free.
[   10.135292] WARNING: CPU: 0 PID: 3 at lib/refcount.c:281 refcount_dec_not_one+0x68/0x90
[   10.143540] Modules linked in: sha256_generic cfg80211 rfkill snd_usb_audio snd_usbmidi_lib nouveau(+) video ttm
[   10.153956] CPU: 0 PID: 3 Comm: kworker/0:0 Tainted: G        W        4.15.0-rc1-debug-ubsan-00020-gf4707a916107 #1
[   10.164719] Hardware name: System manufacturer System Product Name/M4A77T, BIOS 2401    05/18/2011
[   10.173929] Workqueue: events work_for_cpu_fn
[   10.178423] task: ffff880226110c80 task.stack: ffffc90000c80000
[   10.184488] RIP: 0010:refcount_dec_not_one+0x68/0x90
[   10.189580] RSP: 0018:ffffc90000c837f0 EFLAGS: 00010286
[   10.194946] RAX: 0000000000000026 RBX: 0000000000000000 RCX: 0000000000000000
[   10.202232] RDX: 0000000000000001 RSI: 0000000000000092 RDI: ffffffff8378eb8c
[   10.209512] RBP: ffff8802103a69e0 R08: 0000000000000199 R09: ffff8800000b9040
[   10.216801] R10: 0000000000000000 R11: ffffffff82289a80 R12: ffff8802103a69e0
[   10.224090] R13: ffffffffa025dc20 R14: ffff88021f103f80 R15: ffffffffa0368e60
[   10.231362] FS:  0000000000000000(0000) GS:ffff88022fc00000(0000) knlGS:0000000000000000
[   10.239679] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
[   10.245569] CR2: 0000560476ba0000 CR3: 0000000225232000 CR4: 00000000000006f0
[   10.252862] Call Trace:
[   10.255433]  refcount_dec_and_mutex_lock+0x18/0x70
[   10.260450]  nv50_instobj_release+0x69/0x1a0 [nouveau]
[   10.265834]  nvkm_instobj_new+0x219/0x520 [nouveau]
[   10.270935]  ? nvbios_rd08+0x1b/0x70 [nouveau]
[   10.275598]  ? nvbios_pll_parse+0x8d7/0xcf0 [nouveau]
[   10.280807]  ? kmem_cache_alloc+0x1f0/0x2d0
[   10.285205]  nvkm_memory_new+0x4b/0xc0 [nouveau]
[   10.290042]  ? nvkm_longopt+0x17/0x60 [nouveau]
[   10.294808]  gf100_fb_oneinit+0x7b/0x1c0 [nouveau]
[   10.299818]  nvkm_fb_oneinit+0x89/0x2e0 [nouveau]
[   10.304733]  nvkm_subdev_init+0x92/0x600 [nouveau]
[   10.309667]  ? ktime_get+0x64/0x110
[   10.313394]  nvkm_device_init+0x169/0x2a0 [nouveau]
[   10.318512]  nvkm_udevice_init+0x7e/0xf0 [nouveau]
[   10.323524]  nvkm_object_init+0x6a/0x2e0 [nouveau]
[   10.328539]  nvkm_ioctl_new+0x198/0x430 [nouveau]
[   10.333464]  ? nvif_vmm_init+0x340/0x340 [nouveau]
[   10.338506]  ? nvkm_udevice_rd08+0x90/0x90 [nouveau]
[   10.343691]  nvkm_ioctl+0x21e/0x5a0 [nouveau]
[   10.348190]  ? yield_to+0x2b2/0x370
[   10.351891]  nvif_object_init+0xef/0x1b0 [nouveau]
[   10.356914]  nvif_device_init+0x9/0x40 [nouveau]
[   10.361761]  nouveau_cli_init+0x234/0x12f0 [nouveau]
[   10.366876]  ? idr_alloc_cyclic+0x6c/0x110
[   10.371120]  ? _cond_resched+0x1d/0x80
[   10.375000]  ? kmem_cache_alloc+0x1f0/0x2d0
[   10.379405]  nouveau_drm_load+0x71/0xec0 [nouveau]
[   10.384340]  drm_dev_register+0x1b4/0x330
[   10.388488]  ? pci_enable_device_flags+0x155/0x200
[   10.393411]  drm_get_pci_dev+0xde/0x2c0
[   10.397482]  nouveau_drm_probe+0x1b9/0x240 [nouveau]
[   10.402583]  ? __pm_runtime_resume+0x68/0xb0
[   10.407001]  local_pci_probe+0x5e/0xf0
[   10.410890]  work_for_cpu_fn+0x10/0x30
[   10.414780]  process_one_work+0x21a/0x670
[   10.418925]  worker_thread+0x256/0x500
[   10.422816]  ? manage_workers+0x1e0/0x1e0
[   10.426967]  kthread+0x169/0x220
[   10.430328]  ? kthread_create_worker_on_cpu+0x40/0x40
[   10.435524]  ret_from_fork+0x1f/0x30
[   10.439246] Code: da eb ea 31 c0 eb eb 0f b6 1d ce b0 a6 01 80 fb 01 77 2c 83 e3 01 75 d5 48 c7 c7 f8 f1 3f 82 c6 05 b6 b0 a6 01 01 e8 c8 00 8d ff <0f> ff eb be 31 f6 48 c7 c7 a0 14 c7 82 e8 a6 7d 0d 00 eb 91 0f 
[   10.458480] ---[ end trace 08f29138ff4259e7 ]---

Appears to be benign: no obvious breakage afterwards.

I did not yet bisect -- would you want me to?


Meow!
-- 
< darkling> When all you have is a hammock, every problem looks like a nap.


More information about the dri-devel mailing list