[Nouveau] 2.6.39-rc6, nouveau: unload trips on freed memory (SLUB poison)

Bruno Prémont bonbons at linux-vserver.org
Sat May 7 05:45:19 PDT 2011


On Thu, 05 May 2011 Bruno Prémont <bonbons at linux-vserver.org> wrote:
> With 2.6.39-rc6 I'm hitting the following (relevant part from objdump of
> drm_mm.o at bottom).
> Some part of node passed to drm_mm_remove_node() is being use after free
> and hits SLUB poison.
> 
> Bruno
> 
> 
> [  328.447498] drm: unregistered panic notifier
> [  328.447648] [drm] nouveau 0000:02:00.0: 0xAFD8: Parsing digital output script table
> [  328.448642] [drm] nouveau 0000:02:00.0: Restoring VGA fonts
> [  328.450949] [drm:drm_mm_takedown] *ERROR* Memory manager not clean. Delaying takedown

Here is the trace to the erroring drm_mm_takedown() call:

[   95.486464] [drm:drm_mm_takedown] *ERROR* Memory manager not clean. Delaying takedown
[   95.486585] ------------[ cut here ]------------
[   95.486640] kernel BUG at /usr/src/linux-2.6/drivers/gpu/drm/drm_mm.c:628!
[   95.486697] invalid opcode: 0000 [#1] 
[   95.486805] last sysfs file: /sys/devices/platform/w83627hf.656/temp3_input
[   95.486862] Modules linked in: nouveau(-) fbcon tileblit font ttm bitblit softcursor drm_kms_helper drm fb fbdev i2c_algo_bit cfbcopyarea video cfbimgblt cfbfillrect nfs lockd nfs_acl sunrpc snd_intel8x0 snd_ac97_codec ac97_bus snd_pcm snd_timer snd snd_page_alloc pcspkr
[   95.488061] 
[   95.488121] Pid: 1714, comm: rmmod Tainted: G        W   2.6.39-rc6-jupiter-00001-g443badf-dirty #13 NVIDIA Corporation. nFORCE-MCP/MS-6373
[   95.488306] EIP: 0060:[<deb52e0c>] EFLAGS: 00010292 CPU: 0
[   95.488397] EIP is at drm_mm_takedown+0x7c/0x80 [drm]
[   95.488451] EAX: 0000005f EBX: da148620 ECX: fffffed5 EDX: 00000000
[   95.488508] ESI: da148620 EDI: 00000090 EBP: dbc47e18 ESP: dbc47e04
[   95.488563]  DS: 007b ES: 007b FS: 0000 GS: 00e0 SS: 0068
[   95.488631] Process rmmod (pid: 1714, ti=dbc46000 task=dd446470 task.ti=dbc46000)
[   95.488693] Stack:
[   95.488740]  deb62a24 deb5c8ab da148620 da0001e8 00000090 dbc47e28 dec5934b da000148
[   95.489099]  da0001d8 dbc47e44 dec550eb dbc47e44 def998cb da204820 da000000 da000000
[   95.489469]  dbc47e64 def6dc51 deb5c280 da000148 da204830 da204820 dd5270c0 dd5271d8
[   95.489839] Call Trace:
[   95.489907]  [<dec5934b>] ttm_bo_man_takedown+0x2b/0x50 [ttm]
[   95.489968]  [<dec550eb>] ttm_bo_clean_mm+0x5b/0xa0 [ttm]
[   95.490063]  [<def998cb>] ? nv10_fb_takedown+0x2b/0x50 [nouveau]
[   95.490130]  [<def6dc51>] nouveau_unload+0xa1/0x150 [nouveau]
[   95.490198]  [<deb4ec33>] drm_put_dev+0xb3/0x1c0 [drm]
[   95.490263]  [<def6d010>] nouveau_pci_remove+0x10/0x20 [nouveau]
[   95.490325]  [<c11d0baf>] pci_device_remove+0x3f/0xf0
[   95.490384]  [<c123b6ab>] __device_release_driver+0x4b/0xa0
[   95.490424]  [<c123b777>] driver_detach+0x77/0x80
[   95.490424]  [<c123aa5b>] bus_remove_driver+0x5b/0xa0
[   95.490424]  [<c123bfc6>] driver_unregister+0x46/0x80
[   95.490424]  [<c110087f>] ? sysfs_remove_file+0xf/0x20
[   95.490424]  [<c11d0e4a>] pci_unregister_driver+0x2a/0x70
[   95.490424]  [<deb50adf>] drm_pci_exit+0x7f/0x90 [drm]
[   95.490424]  [<defe9f17>] nouveau_exit+0x1b/0x22 [nouveau]
[   95.490424]  [<c105cdbb>] sys_delete_module+0x19b/0x1f0
[   95.490424]  [<c10a42d2>] ? do_munmap+0x212/0x2f0
[   95.490424]  [<c1370bd7>] sysenter_do_call+0x12/0x26
[   95.490424] Code: 75 d5 85 c9 75 0d 83 c4 08 5b 5e 5f c9 c3 8b 4e 30 eb ef 0f 0b eb fe c7 44 24 04 ab c8 b5 de c7 04 24 24 2a b6 de e8 75 bc 81 e2 <0f> 0b eb fe 55 89 e5 56 53 8b 58 1c ff 4b 48 0f b6 50 10 f6 c2 
[   95.490424] EIP: [<deb52e0c>] drm_mm_takedown+0x7c/0x80 [drm] SS:ESP 0068:dbc47e04
[   95.494410] ---[ end trace ea6b63472f535569 ]---





More information about the Nouveau mailing list