diff --git a/shared-core/radeon_mem.c b/shared-core/radeon_mem.c index 5488313c..d77c60b9 100644 --- a/shared-core/radeon_mem.c +++ b/shared-core/radeon_mem.c @@ -174,6 +174,9 @@ void radeon_mem_release( struct mem_block *heap ) int pid = DRM_CURRENTPID; struct mem_block *p; + if (!heap || !heap->next) + return; + for (p = heap->next ; p != heap ; p = p->next) { if (p->pid == pid) p->pid = 0; @@ -198,6 +201,9 @@ void radeon_mem_release( struct mem_block *heap ) void radeon_mem_takedown( struct mem_block **heap ) { struct mem_block *p; + + if (!*heap) + return; for (p = (*heap)->next ; p != *heap ; ) { struct mem_block *q = p; diff --git a/shared/radeon_mem.c b/shared/radeon_mem.c index 5488313c..d77c60b9 100644 --- a/shared/radeon_mem.c +++ b/shared/radeon_mem.c @@ -174,6 +174,9 @@ void radeon_mem_release( struct mem_block *heap ) int pid = DRM_CURRENTPID; struct mem_block *p; + if (!heap || !heap->next) + return; + for (p = heap->next ; p != heap ; p = p->next) { if (p->pid == pid) p->pid = 0; @@ -198,6 +201,9 @@ void radeon_mem_release( struct mem_block *heap ) void radeon_mem_takedown( struct mem_block **heap ) { struct mem_block *p; + + if (!*heap) + return; for (p = (*heap)->next ; p != *heap ; ) { struct mem_block *q = p;