Module Name:    src
Committed By:   riastradh
Date:           Tue Jan 21 20:49:01 UTC 2014

Modified Files:
        src/sys/external/bsd/drm2/dist/drm/i915 [riastradh-drm2]: i915_drv.h
            i915_gem.c

Log Message:
i915_gem_object_get_page takes a page number, not byte offset.


To generate a diff of this commit:
cvs rdiff -u -r1.1.1.1.2.17 -r1.1.1.1.2.18 \
    src/sys/external/bsd/drm2/dist/drm/i915/i915_drv.h \
    src/sys/external/bsd/drm2/dist/drm/i915/i915_gem.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/sys/external/bsd/drm2/dist/drm/i915/i915_drv.h
diff -u src/sys/external/bsd/drm2/dist/drm/i915/i915_drv.h:1.1.1.1.2.17 src/sys/external/bsd/drm2/dist/drm/i915/i915_drv.h:1.1.1.1.2.18
--- src/sys/external/bsd/drm2/dist/drm/i915/i915_drv.h:1.1.1.1.2.17	Wed Jan 15 13:52:09 2014
+++ src/sys/external/bsd/drm2/dist/drm/i915/i915_drv.h	Tue Jan 21 20:49:01 2014
@@ -1457,7 +1457,8 @@ i915_gem_object_get_page(struct drm_i915
 	 */
 	KASSERT(obj->pages != NULL);
 	mutex_enter(obj->base.gemo_shm_uao->vmobjlock);
-	struct vm_page *const page = uvm_pagelookup(obj->base.gemo_shm_uao, n);
+	struct vm_page *const page = uvm_pagelookup(obj->base.gemo_shm_uao,
+	    ptoa(n));
 	mutex_exit(obj->base.gemo_shm_uao->vmobjlock);
 
 	return container_of(page, struct page, p_vmp);
Index: src/sys/external/bsd/drm2/dist/drm/i915/i915_gem.c
diff -u src/sys/external/bsd/drm2/dist/drm/i915/i915_gem.c:1.1.1.1.2.17 src/sys/external/bsd/drm2/dist/drm/i915/i915_gem.c:1.1.1.1.2.18
--- src/sys/external/bsd/drm2/dist/drm/i915/i915_gem.c:1.1.1.1.2.17	Wed Jan 15 13:53:32 2014
+++ src/sys/external/bsd/drm2/dist/drm/i915/i915_gem.c	Tue Jan 21 20:49:01 2014
@@ -500,7 +500,7 @@ i915_gem_shmem_pread(struct drm_device *
 		KASSERT(shmem_page_offset < PAGE_SIZE);
 		page_length = MIN(remain, (PAGE_SIZE - shmem_page_offset));
 		struct page *const page = i915_gem_object_get_page(obj,
-		    (offset & ~(PAGE_SIZE-1)));
+		    atop(offset));
 
 		/* Decide whether to swizzle bit 17.  */
 		page_do_bit17_swizzling = obj_do_bit17_swizzling &&
@@ -885,7 +885,7 @@ i915_gem_shmem_pwrite(struct drm_device 
 		KASSERT(shmem_page_offset < PAGE_SIZE);
 		page_length = MIN(remain, (PAGE_SIZE - shmem_page_offset));
 		struct page *const page = i915_gem_object_get_page(obj,
-		    (offset & ~(PAGE_SIZE-1)));
+		    atop(offset));
 
 		/* Decide whether to flush the cache or swizzle bit 17.  */
 		const bool partial_cacheline_write = needs_clflush_before &&

Reply via email to