gallium/radeon: disallow exports of sparse and suballocated BOs
I think it's unsafe, because the slabs can reuse exported storage. Reviewed-by: Nicolai Hähnle <nicolai.haehnle@amd.com>
This commit is contained in:
@@ -1365,10 +1365,9 @@ static bool amdgpu_bo_get_handle(struct pb_buffer *buffer,
|
||||
enum amdgpu_bo_handle_type type;
|
||||
int r;
|
||||
|
||||
if (!bo->bo) {
|
||||
offset += bo->va - bo->u.slab.real->va;
|
||||
bo = bo->u.slab.real;
|
||||
}
|
||||
/* Don't allow exports of slab entries and sparse buffers. */
|
||||
if (!bo->bo)
|
||||
return false;
|
||||
|
||||
bo->u.real.use_reusable_pool = false;
|
||||
|
||||
|
||||
@@ -1290,10 +1290,9 @@ static bool radeon_winsys_bo_get_handle(struct pb_buffer *buffer,
|
||||
struct radeon_bo *bo = radeon_bo(buffer);
|
||||
struct radeon_drm_winsys *ws = bo->rws;
|
||||
|
||||
if (!bo->handle) {
|
||||
offset += bo->va - bo->u.slab.real->va;
|
||||
bo = bo->u.slab.real;
|
||||
}
|
||||
/* Don't allow exports of slab entries. */
|
||||
if (!bo->handle)
|
||||
return false;
|
||||
|
||||
memset(&flink, 0, sizeof(flink));
|
||||
|
||||
|
||||
Reference in New Issue
Block a user