lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [day] [month] [year] [list]
Message-Id: <20120719113820.c15d1572d38d93b4581ecade@canb.auug.org.au>
Date:	Thu, 19 Jul 2012 11:38:20 +1000
From:	Stephen Rothwell <sfr@...b.auug.org.au>
To:	Dave Airlie <airlied@...ux.ie>
Cc:	linux-next@...r.kernel.org, linux-kernel@...r.kernel.org,
	Alex Deucher <alexander.deucher@....com>,
	"Christian König" <deathsimple@...afone.de>
Subject: linux-next: manual merge of the drm tree with Linus' tree

Hi Dave,

Today's linux-next merge of the drm tree got a conflict in
drivers/gpu/drm/radeon/radeon_gart.c between commit c21b328ea8c7
("drm/radeon: fix VM page table setup on SI") from Linus' tree and commit
c6105f249a63 ("drm/radeon: remove vm_manager start/suspend") from the drm
tree.

I fixed it up (I think - see below) and can carry the fix as necessary.
-- 
Cheers,
Stephen Rothwell                    sfr@...b.auug.org.au

diff --cc drivers/gpu/drm/radeon/radeon_gart.c
index 84b648a,56752da..0000000
--- a/drivers/gpu/drm/radeon/radeon_gart.c
+++ b/drivers/gpu/drm/radeon/radeon_gart.c
@@@ -282,31 -282,61 +282,62 @@@ void radeon_gart_fini(struct radeon_dev
   *
   * TODO bind a default page at vm initialization for default address
   */
+ 
  int radeon_vm_manager_init(struct radeon_device *rdev)
  {
+ 	struct radeon_vm *vm;
+ 	struct radeon_bo_va *bo_va;
  	int r;
  
- 	rdev->vm_manager.enabled = false;
+ 	if (!rdev->vm_manager.enabled) {
+ 		/* mark first vm as always in use, it's the system one */
++		/* allocate enough for 2 full VM pts */
+ 		r = radeon_sa_bo_manager_init(rdev, &rdev->vm_manager.sa_manager,
 -					      rdev->vm_manager.max_pfn * 8,
++					      rdev->vm_manager.max_pfn * 8 * 2,
+ 					      RADEON_GEM_DOMAIN_VRAM);
+ 		if (r) {
+ 			dev_err(rdev->dev, "failed to allocate vm bo (%dKB)\n",
+ 				(rdev->vm_manager.max_pfn * 8) >> 10);
+ 			return r;
+ 		}
  
- 	/* mark first vm as always in use, it's the system one */
- 	/* allocate enough for 2 full VM pts */
- 	r = radeon_sa_bo_manager_init(rdev, &rdev->vm_manager.sa_manager,
- 				      rdev->vm_manager.max_pfn * 8 * 2,
- 				      RADEON_GEM_DOMAIN_VRAM);
- 	if (r) {
- 		dev_err(rdev->dev, "failed to allocate vm bo (%dKB)\n",
- 			(rdev->vm_manager.max_pfn * 8) >> 10);
- 		return r;
+ 		r = rdev->vm_manager.funcs->init(rdev);
+ 		if (r)
+ 			return r;
+ 	
+ 		rdev->vm_manager.enabled = true;
+ 
+ 		r = radeon_sa_bo_manager_start(rdev, &rdev->vm_manager.sa_manager);
+ 		if (r)
+ 			return r;
  	}
  
- 	r = rdev->vm_manager.funcs->init(rdev);
- 	if (r == 0)
- 		rdev->vm_manager.enabled = true;
+ 	/* restore page table */
+ 	list_for_each_entry(vm, &rdev->vm_manager.lru_vm, list) {
+ 		if (vm->id == -1)
+ 			continue;
  
- 	return r;
+ 		list_for_each_entry(bo_va, &vm->va, vm_list) {
+ 			struct ttm_mem_reg *mem = NULL;
+ 			if (bo_va->valid)
+ 				mem = &bo_va->bo->tbo.mem;
+ 
+ 			bo_va->valid = false;
+ 			r = radeon_vm_bo_update_pte(rdev, vm, bo_va->bo, mem);
+ 			if (r) {
+ 				DRM_ERROR("Failed to update pte for vm %d!\n", vm->id);
+ 			}
+ 		}
+ 
+ 		r = rdev->vm_manager.funcs->bind(rdev, vm, vm->id);
+ 		if (r) {
+ 			DRM_ERROR("Failed to bind vm %d!\n", vm->id);
+ 		}
+ 	}
+ 	return 0;
  }
  
- /* cs mutex must be lock */
+ /* global mutex must be lock */
  static void radeon_vm_unbind_locked(struct radeon_device *rdev,
  				    struct radeon_vm *vm)
  {

Content of type "application/pgp-signature" skipped

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ