correct vm_fault_gtt() merge error in rev 1.19
authorjsg <jsg@openbsd.org>
Mon, 19 Aug 2024 11:18:29 +0000 (11:18 +0000)
committerjsg <jsg@openbsd.org>
Mon, 19 Aug 2024 11:18:29 +0000 (11:18 +0000)
fixes panic when starting X on x40 (855GM gen 2)
problem with 945GM (gen 3) and G41 (gen 4) reported by semarie@

sys/dev/pci/drm/i915/gem/i915_gem_mman.c

index dcbb863..8ee2a8c 100644 (file)
@@ -753,8 +753,9 @@ vm_fault_gtt(struct i915_mmap_offset *mmo, struct uvm_faultinfo *ufi,
        int srcu;
        int ret;
 
-       obj_offset = entry->offset - drm_vma_node_start(&mmo->vma_node);
+       obj_offset = (entry->offset >> PAGE_SHIFT) - drm_vma_node_start(&mmo->vma_node);
        page_offset = (vaddr - entry->start) >> PAGE_SHIFT;
+       page_offset += obj_offset;
 
        trace_i915_gem_object_fault(obj, page_offset, true, write);