summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLaura Abbott <labbott@redhat.com>2017-10-23 06:10:11 -0700
committerLaura Abbott <labbott@redhat.com>2017-10-23 06:22:47 -0700
commit3cce24767eb319e44ba4b97bfb874fda546c9609 (patch)
tree404e3765719787c6a9d9fb59a76c3b2f9958df24
parentf613e3264c7f1b2b35c7a99a5014f64e1ae6a655 (diff)
downloadkernel-3cce24767eb319e44ba4b97bfb874fda546c9609.tar.gz
kernel-3cce24767eb319e44ba4b97bfb874fda546c9609.tar.xz
kernel-3cce24767eb319e44ba4b97bfb874fda546c9609.zip
Linux v4.13.9
-rw-r--r--kernel.spec5
-rw-r--r--qxl-fixes.patch48
-rw-r--r--sources2
3 files changed, 29 insertions, 26 deletions
diff --git a/kernel.spec b/kernel.spec
index b75d05a11..058c72f58 100644
--- a/kernel.spec
+++ b/kernel.spec
@@ -54,7 +54,7 @@ Summary: The Linux kernel
%if 0%{?released_kernel}
# Do we have a -stable update to apply?
-%define stable_update 8
+%define stable_update 9
# Set rpm version accordingly
%if 0%{?stable_update}
%define stablerev %{stable_update}
@@ -2259,6 +2259,9 @@ fi
#
#
%changelog
+* Mon Oct 23 2017 Laura Abbott <labbott@redhat.com> - 4.13.9-100
+- Linux v4.13.9
+
* Wed Oct 18 2017 Laura Abbott <labbott@fedoraproject.org> - 4.13.8-100
- Linux v4.13.8
- Fix CVE-2017-12190 (rhbz 1495089 1503580)
diff --git a/qxl-fixes.patch b/qxl-fixes.patch
index 5572266a0..558204ac5 100644
--- a/qxl-fixes.patch
+++ b/qxl-fixes.patch
@@ -156,10 +156,10 @@ Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
4 files changed, 54 insertions(+), 4 deletions(-)
diff --git a/drivers/gpu/drm/qxl/qxl_cmd.c b/drivers/gpu/drm/qxl/qxl_cmd.c
-index 8ec53d5..c0fb52c 100644
+index 74fc936..3eb9208 100644
--- a/drivers/gpu/drm/qxl/qxl_cmd.c
+++ b/drivers/gpu/drm/qxl/qxl_cmd.c
-@@ -387,7 +387,11 @@ void qxl_io_create_primary(struct qxl_device *qdev,
+@@ -388,7 +388,11 @@ void qxl_io_create_primary(struct qxl_device *qdev,
create->width = bo->surf.width;
create->height = bo->surf.height;
create->stride = bo->surf.stride;
@@ -169,11 +169,11 @@ index 8ec53d5..c0fb52c 100644
+ } else {
+ create->mem = qxl_bo_physical_address(qdev, bo, offset);
+ }
-
- DRM_DEBUG_DRIVER("mem = %llx, from %p\n", create->mem, bo->kptr);
-
+
+ QXL_INFO(qdev, "%s: mem = %llx, from %p\n", __func__, create->mem,
+ bo->kptr);
diff --git a/drivers/gpu/drm/qxl/qxl_display.c b/drivers/gpu/drm/qxl/qxl_display.c
-index afbf50d..4756b3c 100644
+index afc2272..da6648e 100644
--- a/drivers/gpu/drm/qxl/qxl_display.c
+++ b/drivers/gpu/drm/qxl/qxl_display.c
@@ -305,7 +305,9 @@ static const struct drm_crtc_funcs qxl_crtc_funcs = {
@@ -181,23 +181,23 @@ index afbf50d..4756b3c 100644
{
struct qxl_framebuffer *qxl_fb = to_qxl_framebuffer(fb);
+ struct qxl_bo *bo = gem_to_qxl_bo(qxl_fb->obj);
-
+
+ WARN_ON(bo->shadow);
drm_gem_object_unreference_unlocked(qxl_fb->obj);
drm_framebuffer_cleanup(fb);
kfree(qxl_fb);
-@@ -508,6 +510,7 @@ static void qxl_primary_atomic_update(struct drm_plane *plane,
+@@ -511,6 +513,7 @@ static void qxl_primary_atomic_update(struct drm_plane *plane,
.x2 = qfb->base.width,
.y2 = qfb->base.height
};
+ bool same_shadow = false;
-
+
if (old_state->fb) {
qfb_old = to_qxl_framebuffer(old_state->fb);
-@@ -519,15 +522,23 @@ static void qxl_primary_atomic_update(struct drm_plane *plane,
+@@ -522,15 +525,23 @@ static void qxl_primary_atomic_update(struct drm_plane *plane,
if (bo == bo_old)
return;
-
+
+ if (bo_old && bo_old->shadow && bo->shadow &&
+ bo_old->shadow == bo->shadow) {
+ same_shadow = true;
@@ -209,7 +209,7 @@ index afbf50d..4756b3c 100644
+ qxl_io_destroy_primary(qdev);
bo_old->is_primary = false;
}
-
+
if (!bo->is_primary) {
- qxl_io_create_primary(qdev, 0, bo);
+ if (!same_shadow)
@@ -219,22 +219,22 @@ index afbf50d..4756b3c 100644
+
qxl_draw_dirty_fb(qdev, qfb, bo, 0, 0, &norect, 1, 1);
}
-
-@@ -679,8 +690,9 @@ static void qxl_cursor_atomic_disable(struct drm_plane *plane,
- static int qxl_plane_prepare_fb(struct drm_plane *plane,
- struct drm_plane_state *new_state)
+
+@@ -682,8 +693,9 @@ void qxl_cursor_atomic_disable(struct drm_plane *plane,
+ int qxl_plane_prepare_fb(struct drm_plane *plane,
+ struct drm_plane_state *new_state)
{
+ struct qxl_device *qdev = plane->dev->dev_private;
struct drm_gem_object *obj;
- struct qxl_bo *user_bo;
+ struct qxl_bo *user_bo, *old_bo = NULL;
int ret;
-
+
if (!new_state->fb)
-@@ -689,6 +701,32 @@ static int qxl_plane_prepare_fb(struct drm_plane *plane,
+@@ -692,6 +704,32 @@ int qxl_plane_prepare_fb(struct drm_plane *plane,
obj = to_qxl_framebuffer(new_state->fb)->obj;
user_bo = gem_to_qxl_bo(obj);
-
+
+ if (plane->type == DRM_PLANE_TYPE_PRIMARY &&
+ user_bo->is_dumb && !user_bo->shadow) {
+ if (plane->state->fb) {
@@ -264,7 +264,7 @@ index afbf50d..4756b3c 100644
ret = qxl_bo_pin(user_bo, QXL_GEM_DOMAIN_CPU, NULL);
if (ret)
return ret;
-@@ -713,6 +751,11 @@ static void qxl_plane_cleanup_fb(struct drm_plane *plane,
+@@ -716,6 +754,11 @@ static void qxl_plane_cleanup_fb(struct drm_plane *plane,
obj = to_qxl_framebuffer(old_state->fb)->obj;
user_bo = gem_to_qxl_bo(obj);
qxl_bo_unpin(user_bo);
@@ -274,13 +274,13 @@ index afbf50d..4756b3c 100644
+ user_bo->shadow = NULL;
+ }
}
-
+
static const uint32_t qxl_cursor_plane_formats[] = {
diff --git a/drivers/gpu/drm/qxl/qxl_drv.h b/drivers/gpu/drm/qxl/qxl_drv.h
-index d707b35..08752c0 100644
+index 3591d23..b5e9dc6 100644
--- a/drivers/gpu/drm/qxl/qxl_drv.h
+++ b/drivers/gpu/drm/qxl/qxl_drv.h
-@@ -89,6 +89,8 @@ struct qxl_bo {
+@@ -112,6 +112,8 @@ struct qxl_bo {
/* Constant after initialization */
struct drm_gem_object gem_base;
bool is_primary; /* is this now a primary surface */
@@ -302,5 +302,5 @@ index 5e65d5d..11085ab 100644
args->handle = handle;
return 0;
--
-cgit v0.12
+2.13.5
diff --git a/sources b/sources
index 5b7a5c0aa..8fbe1f0e9 100644
--- a/sources
+++ b/sources
@@ -1,3 +1,3 @@
SHA512 (linux-4.13.tar.xz) = a557c2f0303ae618910b7106ff63d9978afddf470f03cb72aa748213e099a0ecd5f3119aea6cbd7b61df30ca6ef3ec57044d524b7babbaabddf8b08b8bafa7d2
SHA512 (perf-man-4.13.tar.gz) = 9bcc2cd8e56ec583ed2d8e0b0c88e7a94035a1915e40b3177bb02d6c0f10ddd4df9b097b1f5af59efc624226b613e240ddba8ddc2156f3682f992d5455fc5c03
-SHA512 (patch-4.13.8.xz) = b70b1a081155fa9a7082ad2771aa0a43a9f6458aa5f7f312729aaa3a71db71d28bcd1d1cac6ffaee134797359f37ee86de70537c1190ca60c016a8779268e880
+SHA512 (patch-4.13.9.xz) = 3046ee2ef416e0f75908063192eae076d9018cba3f87b9eb1734df6a0f0d12fe79b6bda5d7713c3d663c8f418d3db1bdb64fb88f76660345911dcb2d857f41f7