Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

Merge tag 'drm-fixes-for-v4.14-rc9' of git://people.freedesktop.org/~airlied/linux

Pull drm fixes from Dave Airlie:
"Last few patches to wrap up.

Two i915 fixes that are on their way to stable, one vmware black
screen bug, and one const patch that I was going to drop, but it was
clearly a pretty safe one liner"

* tag 'drm-fixes-for-v4.14-rc9' of git://people.freedesktop.org/~airlied/linux:
drm/i915: Deconstruct struct sgt_dma initialiser
drm/i915: Reject unknown syncobj flags
drm/vmwgfx: Fix Ubuntu 17.10 Wayland black screen issue
drm/vmwgfx: constify vmw_fence_ops

+20 -18
+8
drivers/gpu/drm/i915/i915_gem_execbuffer.c
··· 2094 2094 goto err; 2095 2095 } 2096 2096 2097 + if (fence.flags & __I915_EXEC_FENCE_UNKNOWN_FLAGS) { 2098 + err = -EINVAL; 2099 + goto err; 2100 + } 2101 + 2097 2102 syncobj = drm_syncobj_find(file, fence.handle); 2098 2103 if (!syncobj) { 2099 2104 DRM_DEBUG("Invalid syncobj handle provided\n"); 2100 2105 err = -ENOENT; 2101 2106 goto err; 2102 2107 } 2108 + 2109 + BUILD_BUG_ON(~(ARCH_KMALLOC_MINALIGN - 1) & 2110 + ~__I915_EXEC_FENCE_UNKNOWN_FLAGS); 2103 2111 2104 2112 fences[n] = ptr_pack_bits(syncobj, fence.flags, 2); 2105 2113 }
+9 -16
drivers/gpu/drm/i915/i915_gem_gtt.c
··· 832 832 } 833 833 } 834 834 835 - struct sgt_dma { 835 + static inline struct sgt_dma { 836 836 struct scatterlist *sg; 837 837 dma_addr_t dma, max; 838 - }; 838 + } sgt_dma(struct i915_vma *vma) { 839 + struct scatterlist *sg = vma->pages->sgl; 840 + dma_addr_t addr = sg_dma_address(sg); 841 + return (struct sgt_dma) { sg, addr, addr + sg->length }; 842 + } 839 843 840 844 struct gen8_insert_pte { 841 845 u16 pml4e; ··· 920 916 u32 unused) 921 917 { 922 918 struct i915_hw_ppgtt *ppgtt = i915_vm_to_ppgtt(vm); 923 - struct sgt_dma iter = { 924 - .sg = vma->pages->sgl, 925 - .dma = sg_dma_address(iter.sg), 926 - .max = iter.dma + iter.sg->length, 927 - }; 919 + struct sgt_dma iter = sgt_dma(vma); 928 920 struct gen8_insert_pte idx = gen8_insert_pte(vma->node.start); 929 921 930 922 gen8_ppgtt_insert_pte_entries(ppgtt, &ppgtt->pdp, &iter, &idx, ··· 933 933 u32 unused) 934 934 { 935 935 struct i915_hw_ppgtt *ppgtt = i915_vm_to_ppgtt(vm); 936 - struct sgt_dma iter = { 937 - .sg = vma->pages->sgl, 938 - .dma = sg_dma_address(iter.sg), 939 - .max = iter.dma + iter.sg->length, 940 - }; 936 + struct sgt_dma iter = sgt_dma(vma); 941 937 struct i915_page_directory_pointer **pdps = ppgtt->pml4.pdps; 942 938 struct gen8_insert_pte idx = gen8_insert_pte(vma->node.start); 943 939 ··· 1628 1632 unsigned act_pt = first_entry / GEN6_PTES; 1629 1633 unsigned act_pte = first_entry % GEN6_PTES; 1630 1634 const u32 pte_encode = vm->pte_encode(0, cache_level, flags); 1631 - struct sgt_dma iter; 1635 + struct sgt_dma iter = sgt_dma(vma); 1632 1636 gen6_pte_t *vaddr; 1633 1637 1634 1638 vaddr = kmap_atomic_px(ppgtt->pd.page_table[act_pt]); 1635 - iter.sg = vma->pages->sgl; 1636 - iter.dma = sg_dma_address(iter.sg); 1637 - iter.max = iter.dma + iter.sg->length; 1638 1639 do { 1639 1640 vaddr[act_pte] = pte_encode | GEN6_PTE_ADDR_ENCODE(iter.dma); 1640 1641
+1 -1
drivers/gpu/drm/vmwgfx/vmwgfx_drv.c
··· 721 721 * allocation taken by fbdev 722 722 */ 723 723 if (!(dev_priv->capabilities & SVGA_CAP_3D)) 724 - mem_size *= 2; 724 + mem_size *= 3; 725 725 726 726 dev_priv->max_mob_pages = mem_size * 1024 / PAGE_SIZE; 727 727 dev_priv->prim_bb_mem =
+1 -1
drivers/gpu/drm/vmwgfx/vmwgfx_fence.c
··· 224 224 return ret; 225 225 } 226 226 227 - static struct dma_fence_ops vmw_fence_ops = { 227 + static const struct dma_fence_ops vmw_fence_ops = { 228 228 .get_driver_name = vmw_fence_get_driver_name, 229 229 .get_timeline_name = vmw_fence_get_timeline_name, 230 230 .enable_signaling = vmw_fence_enable_signaling,
+1
include/uapi/drm/i915_drm.h
··· 829 829 830 830 #define I915_EXEC_FENCE_WAIT (1<<0) 831 831 #define I915_EXEC_FENCE_SIGNAL (1<<1) 832 + #define __I915_EXEC_FENCE_UNKNOWN_FLAGS (-(I915_EXEC_FENCE_SIGNAL << 1)) 832 833 __u32 flags; 833 834 }; 834 835