drm/panthor: Don't return NULL from panthor_vm_get_heap_pool()
The kernel doc says this function returns either a valid pointer or an ERR_PTR(), but in practice this function can return NULL if create=false. Fix the function to match the doc (return ERR_PTR(-ENOENT) instead of NULL) and adjust all call-sites accordingly. Fixes: 4bdca1150792 ("drm/panthor: Add the driver frontend block") Signed-off-by: Harshit Mogalapalli <harshit.m.mogalapalli@oracle.com> Reviewed-by: Boris Brezillon <boris.brezillon@collabora.com> Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com> Link: https://patchwork.freedesktop.org/patch/msgid/20240402141412.1707949-1-harshit.m.mogalapalli@oracle.com
This commit is contained in:
parent
6e0718f21f
commit
45c734fdd4
@ -1090,8 +1090,8 @@ static int panthor_ioctl_tiler_heap_destroy(struct drm_device *ddev, void *data,
|
||||
return -EINVAL;
|
||||
|
||||
pool = panthor_vm_get_heap_pool(vm, false);
|
||||
if (!pool) {
|
||||
ret = -EINVAL;
|
||||
if (IS_ERR(pool)) {
|
||||
ret = PTR_ERR(pool);
|
||||
goto out_put_vm;
|
||||
}
|
||||
|
||||
|
@ -1897,6 +1897,8 @@ struct panthor_heap_pool *panthor_vm_get_heap_pool(struct panthor_vm *vm, bool c
|
||||
vm->heaps.pool = panthor_heap_pool_get(pool);
|
||||
} else {
|
||||
pool = panthor_heap_pool_get(vm->heaps.pool);
|
||||
if (!pool)
|
||||
pool = ERR_PTR(-ENOENT);
|
||||
}
|
||||
mutex_unlock(&vm->heaps.lock);
|
||||
|
||||
|
@ -1343,7 +1343,7 @@ static int group_process_tiler_oom(struct panthor_group *group, u32 cs_id)
|
||||
if (unlikely(csg_id < 0))
|
||||
return 0;
|
||||
|
||||
if (!heaps || frag_end > vt_end || vt_end >= vt_start) {
|
||||
if (IS_ERR(heaps) || frag_end > vt_end || vt_end >= vt_start) {
|
||||
ret = -EINVAL;
|
||||
} else {
|
||||
/* We do the allocation without holding the scheduler lock to avoid
|
||||
|
Loading…
x
Reference in New Issue
Block a user