summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorjsg <jsg@openbsd.org>2014-03-30 02:12:23 +0000
committerjsg <jsg@openbsd.org>2014-03-30 02:12:23 +0000
commit24cc238ecbc2c503281fb5e5f9452f54266a340f (patch)
tree95a044a7616904e9a40875cf6569eb8ec3e8755a
parentsort attachments (diff)
downloadwireguard-openbsd-24cc238ecbc2c503281fb5e5f9452f54266a340f.tar.xz
wireguard-openbsd-24cc238ecbc2c503281fb5e5f9452f54266a340f.zip
drm/radeon: fix missing bo reservation
From Christian Koenig ea0e5ee12a70badcdfee846bfaf5d4338dc285ca in ubuntu 3.8 5e386b574cf7e1593e1296e5b0feea4108ed6ad8 in mainline linux
-rw-r--r--sys/dev/pci/drm/radeon/radeon_kms.c8
1 files changed, 7 insertions, 1 deletions
diff --git a/sys/dev/pci/drm/radeon/radeon_kms.c b/sys/dev/pci/drm/radeon/radeon_kms.c
index 67c42ac8a70..b9dd7855b0c 100644
--- a/sys/dev/pci/drm/radeon/radeon_kms.c
+++ b/sys/dev/pci/drm/radeon/radeon_kms.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: radeon_kms.c,v 1.25 2014/03/13 12:45:04 kettenis Exp $ */
+/* $OpenBSD: radeon_kms.c,v 1.26 2014/03/30 02:12:23 jsg Exp $ */
/*
* Copyright 2008 Advanced Micro Devices, Inc.
* Copyright 2008 Red Hat Inc.
@@ -1110,6 +1110,10 @@ int radeon_driver_open_kms(struct drm_device *dev, struct drm_file *file_priv)
radeon_vm_init(rdev, &fpriv->vm);
+ r = radeon_bo_reserve(rdev->ring_tmp_bo.bo, false);
+ if (r)
+ return r;
+
/* map the ib pool buffer read only into
* virtual address space */
bo_va = radeon_vm_bo_add(rdev, &fpriv->vm,
@@ -1117,6 +1121,8 @@ int radeon_driver_open_kms(struct drm_device *dev, struct drm_file *file_priv)
r = radeon_vm_bo_set_addr(rdev, bo_va, RADEON_VA_IB_OFFSET,
RADEON_VM_PAGE_READABLE |
RADEON_VM_PAGE_SNOOPED);
+
+ radeon_bo_unreserve(rdev->ring_tmp_bo.bo);
if (r) {
radeon_vm_fini(rdev, &fpriv->vm);
kfree(fpriv);