From: Greg Kroah-Hartman Date: Wed, 13 Feb 2019 14:06:38 +0000 (+0100) Subject: 3.18-stable patches X-Git-Tag: v4.9.157~21 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=418a592a3eba26efd54a1c8308ab67f152186a30;p=thirdparty%2Fkernel%2Fstable-queue.git 3.18-stable patches added patches: drm-vmwgfx-fix-setting-of-dma-masks.patch drm-vmwgfx-return-error-code-from-vmw_execbuf_copy_fence_user.patch --- diff --git a/queue-3.18/drm-vmwgfx-fix-setting-of-dma-masks.patch b/queue-3.18/drm-vmwgfx-fix-setting-of-dma-masks.patch new file mode 100644 index 00000000000..e28b091a922 --- /dev/null +++ b/queue-3.18/drm-vmwgfx-fix-setting-of-dma-masks.patch @@ -0,0 +1,44 @@ +From 4cbfa1e6c09e98450aab3240e5119b0ab2c9795b Mon Sep 17 00:00:00 2001 +From: Thomas Hellstrom +Date: Mon, 28 Jan 2019 10:31:33 +0100 +Subject: drm/vmwgfx: Fix setting of dma masks + +From: Thomas Hellstrom + +commit 4cbfa1e6c09e98450aab3240e5119b0ab2c9795b upstream. + +Previously we set only the dma mask and not the coherent mask. Fix that. +Also, for clarity, make sure both are initially set to 64 bits. + +Cc: +Fixes: 0d00c488f3de: ("drm/vmwgfx: Fix the driver for large dma addresses") +Signed-off-by: Thomas Hellstrom +Reviewed-by: Deepak Rawat +Signed-off-by: Greg Kroah-Hartman + +--- + drivers/gpu/drm/vmwgfx/vmwgfx_drv.c | 9 ++++++--- + 1 file changed, 6 insertions(+), 3 deletions(-) + +--- a/drivers/gpu/drm/vmwgfx/vmwgfx_drv.c ++++ b/drivers/gpu/drm/vmwgfx/vmwgfx_drv.c +@@ -562,13 +562,16 @@ out_fixup: + static int vmw_dma_masks(struct vmw_private *dev_priv) + { + struct drm_device *dev = dev_priv->dev; ++ int ret = 0; + +- if (intel_iommu_enabled && ++ ret = dma_set_mask_and_coherent(dev->dev, DMA_BIT_MASK(64)); ++ if (dev_priv->map_mode != vmw_dma_phys && + (sizeof(unsigned long) == 4 || vmw_restrict_dma_mask)) { + DRM_INFO("Restricting DMA addresses to 44 bits.\n"); +- return dma_set_mask(dev->dev, DMA_BIT_MASK(44)); ++ return dma_set_mask_and_coherent(dev->dev, DMA_BIT_MASK(44)); + } +- return 0; ++ ++ return ret; + } + #else + static int vmw_dma_masks(struct vmw_private *dev_priv) diff --git a/queue-3.18/drm-vmwgfx-return-error-code-from-vmw_execbuf_copy_fence_user.patch b/queue-3.18/drm-vmwgfx-return-error-code-from-vmw_execbuf_copy_fence_user.patch new file mode 100644 index 00000000000..56e8fdb3c19 --- /dev/null +++ b/queue-3.18/drm-vmwgfx-return-error-code-from-vmw_execbuf_copy_fence_user.patch @@ -0,0 +1,38 @@ +From 728354c005c36eaf44b6e5552372b67e60d17f56 Mon Sep 17 00:00:00 2001 +From: Thomas Hellstrom +Date: Thu, 31 Jan 2019 10:55:37 +0100 +Subject: drm/vmwgfx: Return error code from vmw_execbuf_copy_fence_user + +From: Thomas Hellstrom + +commit 728354c005c36eaf44b6e5552372b67e60d17f56 upstream. + +The function was unconditionally returning 0, and a caller would have to +rely on the returned fence pointer being NULL to detect errors. However, +the function vmw_execbuf_copy_fence_user() would expect a non-zero error +code in that case and would BUG otherwise. + +So make sure we return a proper non-zero error code if the fence pointer +returned is NULL. + +Cc: +Fixes: ae2a104058e2: ("vmwgfx: Implement fence objects") +Signed-off-by: Thomas Hellstrom +Reviewed-by: Deepak Rawat +Signed-off-by: Greg Kroah-Hartman + +--- + drivers/gpu/drm/vmwgfx/vmwgfx_execbuf.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +--- a/drivers/gpu/drm/vmwgfx/vmwgfx_execbuf.c ++++ b/drivers/gpu/drm/vmwgfx/vmwgfx_execbuf.c +@@ -2346,7 +2346,7 @@ int vmw_execbuf_fence_commands(struct dr + *p_fence = NULL; + } + +- return 0; ++ return ret; + } + + /** diff --git a/queue-3.18/series b/queue-3.18/series index a256c882d1e..3eb91e2d6b6 100644 --- a/queue-3.18/series +++ b/queue-3.18/series @@ -80,3 +80,5 @@ debugfs-fix-debugfs_rename-parameter-checking.patch mips-octeon-don-t-set-octeon_dma_bar_type-if-pci-is-disabled.patch arm-iop32x-n2100-fix-pci-irq-mapping.patch drm-modes-prevent-division-by-zero-htotal.patch +drm-vmwgfx-fix-setting-of-dma-masks.patch +drm-vmwgfx-return-error-code-from-vmw_execbuf_copy_fence_user.patch