Hi:
When I perform "echo mem > /sys/power/state", I got BUG on
rs600_gart_set_page, then suspend hangs.
I don't have a camera to log the outputs, the call trace are:
rs600_gart_set_page+0x31
radeon_gart_bind
radeon_ttm_backend
ttm_tt_bind
ttm_bo_handle_move_me
drm_fill_in_dev may allocate memories for agp/gem/ht, introduce new function
drm_cleanup_dev(derived from drm_put_dev) to cleanup what drm_fill_in_dev.
Signed-off-by: Xiaotian Feng
---
drivers/gpu/drm/drm_stub.c | 47 +--
1 files changed, 27 insertions
hread+0x8a/0x92
[] child_rip+0xa/0x20
[] 0x
Signed-off-by: Xiaotian Feng
---
drivers/gpu/drm/radeon/radeon_kms.c |2 ++
1 files changed, 2 insertions(+), 0 deletions(-)
diff --git a/drivers/gpu/drm/radeon/radeon_kms.c
b/drivers/gpu/drm/radeon/radeon_kms.c
index 4612a7c..df3fd
I've noticed a bundle of kmemleak reports on drm. When I look into dmesg,
I found: "[drm:radeon_driver_load_kms] *ERROR* Failed to initialize radeon,
disabling IOCTL".
In radeon_driver_load_kms, if radeon_device_init fails, rdev is not freed.
Then radeon_driver_load_kms as dev->driver->load, if l
Noticed a bundle of memory leaks after radeon_driver_load_kms fails.
After dev->driver->load failes, drm_get_dev doesn't free memories
allocated from drm_fill_in_dev.
Signed-off-by: Xiaotian Feng
---
drivers/gpu/drm/drm_stub.c | 14 --
1 files changed, 8 insertions(+),
In drm_fill_in_dev, drm_ht_create/drm_agp_init/drm_gem_init all allocate
memories. but in the fail path, those memory is not freed, then memory
leaks is resulted.
Signed-off-by: Xiaotian Feng
---
drivers/gpu/drm/drm_stub.c | 25 -
1 files changed, 20 insertions(+), 5
15 [radeon]
[] radeon_driver_load_kms+0x26/0xe1 [radeon]
[] drm_get_dev+0x37f/0x480 [drm]
[] radeon_pci_probe+0x15/0x269 [radeon]
[] local_pci_probe+0x17/0x1b
[] do_work_for_cpu+0x18/0x2a
[] kthread+0x8a/0x92
[] child_rip+0xa/0x20
[] 0x
Signed-off-by: Xia