mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2026-05-09 03:10:30 -04:00
drm/xe: Fix lockdep warning from xe_vm_madvise
We need to hold vm->lock before the xe_vm_is_closed_or_banned().
Else we get this splat:
[ 802.555227] ------------[ cut here ]------------
[ 802.555234] WARNING: CPU: 33 PID: 3122 at drivers/gpu/drm/xe/xe_vm.h:60
[ 802.555515] CPU: 33 PID: 3122 Comm: xe_exec_fault_m Tainted:
...
[ 802.555709] Call Trace:
[ 802.555714] <TASK>
[ 802.555720] ? __warn+0x81/0x170
[ 802.555737] ? xe_vm_madvise_ioctl+0x2de/0x440 [xe]
Fixes: 9d858b69b0 ("drm/xe: Ban a VM if rebind worker hits an error")
Reviewed-by: Matthew Brost <matthew.brost@intel.com>
Signed-off-by: Brian Welty <brian.welty@intel.com>
Signed-off-by: Rodrigo Vivi <rodrigo.vivi@intel.com>
This commit is contained in:
committed by
Rodrigo Vivi
parent
b1f8f4b5ee
commit
04194a4f78
@@ -267,11 +267,6 @@ int xe_vm_madvise_ioctl(struct drm_device *dev, void *data,
|
||||
if (XE_IOCTL_ERR(xe, !vm))
|
||||
return -EINVAL;
|
||||
|
||||
if (XE_IOCTL_ERR(xe, xe_vm_is_closed_or_banned(vm))) {
|
||||
err = -ENOENT;
|
||||
goto put_vm;
|
||||
}
|
||||
|
||||
if (XE_IOCTL_ERR(xe, !xe_vm_in_fault_mode(vm))) {
|
||||
err = -EINVAL;
|
||||
goto put_vm;
|
||||
@@ -279,6 +274,11 @@ int xe_vm_madvise_ioctl(struct drm_device *dev, void *data,
|
||||
|
||||
down_read(&vm->lock);
|
||||
|
||||
if (XE_IOCTL_ERR(xe, xe_vm_is_closed_or_banned(vm))) {
|
||||
err = -ENOENT;
|
||||
goto unlock_vm;
|
||||
}
|
||||
|
||||
vmas = get_vmas(vm, &num_vmas, args->addr, args->range);
|
||||
if (XE_IOCTL_ERR(xe, err))
|
||||
goto unlock_vm;
|
||||
|
||||
Reference in New Issue
Block a user