drm/ttm: Remove the CAP_SYS_ADMIN requirement for bo pinning
This breaks vmwgfx non-root EGL clients and is a remnant from the TTM user-space interface. This test should be done in the driver. Replace the remaining placement test with a BUG_ON, since triggering it is a driver bug. Signed-off-by: Thomas Hellstrom <thellstrom@vmware.com> Signed-off-by: Dave Airlie <airlied@redhat.com>
This commit is contained in:
parent
aa123268c2
commit
29e190e049
|
@ -1119,35 +1119,9 @@ EXPORT_SYMBOL(ttm_bo_validate);
|
|||
int ttm_bo_check_placement(struct ttm_buffer_object *bo,
|
||||
struct ttm_placement *placement)
|
||||
{
|
||||
int i;
|
||||
BUG_ON((placement->fpfn || placement->lpfn) &&
|
||||
(bo->mem.num_pages > (placement->lpfn - placement->fpfn)));
|
||||
|
||||
if (placement->fpfn || placement->lpfn) {
|
||||
if (bo->mem.num_pages > (placement->lpfn - placement->fpfn)) {
|
||||
printk(KERN_ERR TTM_PFX "Page number range to small "
|
||||
"Need %lu pages, range is [%u, %u]\n",
|
||||
bo->mem.num_pages, placement->fpfn,
|
||||
placement->lpfn);
|
||||
return -EINVAL;
|
||||
}
|
||||
}
|
||||
for (i = 0; i < placement->num_placement; i++) {
|
||||
if (!capable(CAP_SYS_ADMIN)) {
|
||||
if (placement->placement[i] & TTM_PL_FLAG_NO_EVICT) {
|
||||
printk(KERN_ERR TTM_PFX "Need to be root to "
|
||||
"modify NO_EVICT status.\n");
|
||||
return -EINVAL;
|
||||
}
|
||||
}
|
||||
}
|
||||
for (i = 0; i < placement->num_busy_placement; i++) {
|
||||
if (!capable(CAP_SYS_ADMIN)) {
|
||||
if (placement->busy_placement[i] & TTM_PL_FLAG_NO_EVICT) {
|
||||
printk(KERN_ERR TTM_PFX "Need to be root to "
|
||||
"modify NO_EVICT status.\n");
|
||||
return -EINVAL;
|
||||
}
|
||||
}
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue