[PATCH] drm/nouveau/gsp: fix potential leak of memory used during acpi init

Danilo Krummrich dakr at kernel.org
Mon Jul 7 14:31:52 UTC 2025


On 7/7/25 10:27 AM, Philipp Stanner wrote:
> On Tue, 2025-06-17 at 14:00 +1000, Ben Skeggs wrote:
>> If any of the ACPI calls fail, memory allocated for the input buffer
>> would be leaked.  Fix failure paths to free allocated memory.
>>
>> Also add checks to ensure the allocations succeeded in the first
>> place.
> 
> If you've got a kmemleak trace, it would also be good to put it here in
> the commit message so that we can distinguish this bug from potential
> other leaks.

unreferenced object 0xffff8ed5029bfb28 (size 8):
   comm "(udev-worker)", pid 464, jiffies 4294672444
   hex dump (first 8 bytes):
     7c b4 d4 79 01 59 36 6c                          |..y.Y6l
   backtrace (crc 4461fdb7):
     __kmalloc_cache_noprof+0x31b/0x410
     r535_gsp_acpi_jt+0x7c/0x110 [nouveau]
     r535_gsp_set_system_info+0x153/0x390 [nouveau]
     r535_gsp_oneinit+0xa4d/0xf50 [nouveau]
     tu102_gsp_oneinit+0x124/0x440 [nouveau]
     nvkm_subdev_oneinit_+0x3f/0x90 [nouveau]
     nvkm_subdev_init_+0x33/0xa0 [nouveau]
     nvkm_subdev_init+0x46/0x60 [nouveau]
     nvkm_device_init+0x167/0x1f0 [nouveau]
     nvkm_udevice_init+0x4b/0x70 [nouveau]
     nvkm_object_init+0x3a/0x110 [nouveau]
     nvkm_ioctl_new+0x13a/0x200 [nouveau]
     nvkm_ioctl+0x9f/0x140 [nouveau]
     nvif_object_ctor+0x11a/0x1a0 [nouveau]
     nvif_device_ctor+0x2a/0x80 [nouveau]
     nouveau_drm_device_new+0x157/0x2e0 [nouveau]
unreferenced object 0xffff8ed502a37580 (size 32):
   comm "(udev-worker)", pid 464, jiffies 4294672444
   hex dump (first 32 bytes):
     01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
     00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
   backtrace (crc f1da05aa):
     __kmalloc_noprof+0x3ac/0x500
     acpi_ut_initialize_buffer+0x67/0xc0
     acpi_evaluate_object+0x272/0x2c0
     acpi_evaluate_dsm+0xb4/0x120
     r535_gsp_acpi_jt+0xa3/0x110 [nouveau]
     r535_gsp_set_system_info+0x153/0x390 [nouveau]
     r535_gsp_oneinit+0xa4d/0xf50 [nouveau]
     tu102_gsp_oneinit+0x124/0x440 [nouveau]
     nvkm_subdev_oneinit_+0x3f/0x90 [nouveau]
     nvkm_subdev_init_+0x33/0xa0 [nouveau]
     nvkm_subdev_init+0x46/0x60 [nouveau]
     nvkm_device_init+0x167/0x1f0 [nouveau]
     nvkm_udevice_init+0x4b/0x70 [nouveau]
     nvkm_object_init+0x3a/0x110 [nouveau]
     nvkm_ioctl_new+0x13a/0x200 [nouveau]
     nvkm_ioctl+0x9f/0x140 [nouveau]
unreferenced object 0xffff8ed5029bf1c0 (size 8):
   comm "(udev-worker)", pid 464, jiffies 4294672446
   hex dump (first 8 bytes):
     cc bb d4 79 01 59 3c 84                          ...y.Y<.
   backtrace (crc 30e1d939):
     __kmalloc_cache_noprof+0x31b/0x410
     r535_gsp_acpi_caps+0x7e/0x120 [nouveau]
     r535_gsp_set_system_info+0x162/0x390 [nouveau]
     r535_gsp_oneinit+0xa4d/0xf50 [nouveau]
     tu102_gsp_oneinit+0x124/0x440 [nouveau]
     nvkm_subdev_oneinit_+0x3f/0x90 [nouveau]
     nvkm_subdev_init_+0x33/0xa0 [nouveau]
     nvkm_subdev_init+0x46/0x60 [nouveau]
     nvkm_device_init+0x167/0x1f0 [nouveau]
     nvkm_udevice_init+0x4b/0x70 [nouveau]
     nvkm_object_init+0x3a/0x110 [nouveau]
     nvkm_ioctl_new+0x13a/0x200 [nouveau]
     nvkm_ioctl+0x9f/0x140 [nouveau]
     nvif_object_ctor+0x11a/0x1a0 [nouveau]
     nvif_device_ctor+0x2a/0x80 [nouveau]
     nouveau_drm_device_new+0x157/0x2e0 [nouveau]



More information about the Nouveau mailing list