summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--0001-staging-vboxvideo-Fix-reporting-invalid-suggested-of.patch118
-rw-r--r--baseconfig/CONFIG_MMC_BLOCK_BOUNCE1
-rw-r--r--drm-i915-Boost-GPU-clocks-if-we-miss-the-pageflip-s-vblank.patch200
-rw-r--r--gitrev2
-rw-r--r--kernel-aarch64-debug.config1
-rw-r--r--kernel-aarch64.config1
-rw-r--r--kernel-armv7hl-debug.config1
-rw-r--r--kernel-armv7hl-lpae-debug.config1
-rw-r--r--kernel-armv7hl-lpae.config1
-rw-r--r--kernel-armv7hl.config1
-rw-r--r--kernel-i686-PAE.config1
-rw-r--r--kernel-i686-PAEdebug.config1
-rw-r--r--kernel-i686-debug.config1
-rw-r--r--kernel-i686.config1
-rw-r--r--kernel-ppc64-debug.config1
-rw-r--r--kernel-ppc64.config1
-rw-r--r--kernel-ppc64le-debug.config1
-rw-r--r--kernel-ppc64le.config1
-rw-r--r--kernel-s390x-debug.config1
-rw-r--r--kernel-s390x.config1
-rw-r--r--kernel-x86_64-debug.config1
-rw-r--r--kernel-x86_64.config1
-rw-r--r--kernel.spec14
-rw-r--r--sources2
24 files changed, 333 insertions, 22 deletions
diff --git a/0001-staging-vboxvideo-Fix-reporting-invalid-suggested-of.patch b/0001-staging-vboxvideo-Fix-reporting-invalid-suggested-of.patch
new file mode 100644
index 000000000..695fcda36
--- /dev/null
+++ b/0001-staging-vboxvideo-Fix-reporting-invalid-suggested-of.patch
@@ -0,0 +1,118 @@
+From 3b40f521aa2f42862203497a94ae77536f41ade2 Mon Sep 17 00:00:00 2001
+From: Hans de Goede <hdegoede@redhat.com>
+Date: Thu, 12 Oct 2017 19:44:48 +0200
+Subject: [PATCH] staging: vboxvideo: Fix reporting invalid
+ suggested-offset-properties
+
+The x and y hints receives from the host are unsigned 32 bit integers and
+they get set to -1 (0xffffffff) when invalid. Before this commit the
+vboxvideo driver was storing them in an u16 causing the -1 to be truncated
+to 65535 which, once reported to userspace, was breaking gnome 3.26+
+in Wayland mode.
+
+This commit stores the host values in 32 bit variables, removing the
+truncation and checks for -1, replacing it with 0 as -1 is not a valid
+suggested-offset-property value. Likewise the properties are now
+initialized to 0 instead of -1, since -1 is not a valid value.
+This fixes gnome 3.26+ in Wayland mode not working with the vboxvideo
+driver.
+
+Reported-by: Gianfranco Costamagna <locutusofborg@debian.org>
+Cc: stable@vger.kernel.org
+Cc: Michael Thayer <michael.thayer@oracle.com>
+Signed-off-by: Hans de Goede <hdegoede@redhat.com>
+---
+ drivers/staging/vboxvideo/vbox_drv.h | 8 ++++----
+ drivers/staging/vboxvideo/vbox_irq.c | 4 ++--
+ drivers/staging/vboxvideo/vbox_mode.c | 26 ++++++++++++++++++--------
+ 3 files changed, 24 insertions(+), 14 deletions(-)
+
+diff --git a/drivers/staging/vboxvideo/vbox_drv.h b/drivers/staging/vboxvideo/vbox_drv.h
+index 4b9302703b36..eeac4f0cb2c6 100644
+--- a/drivers/staging/vboxvideo/vbox_drv.h
++++ b/drivers/staging/vboxvideo/vbox_drv.h
+@@ -137,8 +137,8 @@ struct vbox_connector {
+ char name[32];
+ struct vbox_crtc *vbox_crtc;
+ struct {
+- u16 width;
+- u16 height;
++ u32 width;
++ u32 height;
+ bool disconnected;
+ } mode_hint;
+ };
+@@ -150,8 +150,8 @@ struct vbox_crtc {
+ unsigned int crtc_id;
+ u32 fb_offset;
+ bool cursor_enabled;
+- u16 x_hint;
+- u16 y_hint;
++ u32 x_hint;
++ u32 y_hint;
+ };
+
+ struct vbox_encoder {
+diff --git a/drivers/staging/vboxvideo/vbox_irq.c b/drivers/staging/vboxvideo/vbox_irq.c
+index 3ca8bec62ac4..74abdf02d9fd 100644
+--- a/drivers/staging/vboxvideo/vbox_irq.c
++++ b/drivers/staging/vboxvideo/vbox_irq.c
+@@ -150,8 +150,8 @@ static void vbox_update_mode_hints(struct vbox_private *vbox)
+
+ disconnected = !(hints->enabled);
+ crtc_id = vbox_conn->vbox_crtc->crtc_id;
+- vbox_conn->mode_hint.width = hints->cx & 0x8fff;
+- vbox_conn->mode_hint.height = hints->cy & 0x8fff;
++ vbox_conn->mode_hint.width = hints->cx;
++ vbox_conn->mode_hint.height = hints->cy;
+ vbox_conn->vbox_crtc->x_hint = hints->dx;
+ vbox_conn->vbox_crtc->y_hint = hints->dy;
+ vbox_conn->mode_hint.disconnected = disconnected;
+diff --git a/drivers/staging/vboxvideo/vbox_mode.c b/drivers/staging/vboxvideo/vbox_mode.c
+index 257a77830410..6f08dc966719 100644
+--- a/drivers/staging/vboxvideo/vbox_mode.c
++++ b/drivers/staging/vboxvideo/vbox_mode.c
+@@ -553,12 +553,22 @@ static int vbox_get_modes(struct drm_connector *connector)
+ ++num_modes;
+ }
+ vbox_set_edid(connector, preferred_width, preferred_height);
+- drm_object_property_set_value(
+- &connector->base, vbox->dev->mode_config.suggested_x_property,
+- vbox_connector->vbox_crtc->x_hint);
+- drm_object_property_set_value(
+- &connector->base, vbox->dev->mode_config.suggested_y_property,
+- vbox_connector->vbox_crtc->y_hint);
++
++ if (vbox_connector->vbox_crtc->x_hint != -1)
++ drm_object_property_set_value(&connector->base,
++ vbox->dev->mode_config.suggested_x_property,
++ vbox_connector->vbox_crtc->x_hint);
++ else
++ drm_object_property_set_value(&connector->base,
++ vbox->dev->mode_config.suggested_x_property, 0);
++
++ if (vbox_connector->vbox_crtc->y_hint != -1)
++ drm_object_property_set_value(&connector->base,
++ vbox->dev->mode_config.suggested_y_property,
++ vbox_connector->vbox_crtc->y_hint);
++ else
++ drm_object_property_set_value(&connector->base,
++ vbox->dev->mode_config.suggested_y_property, 0);
+
+ return num_modes;
+ }
+@@ -640,9 +650,9 @@ static int vbox_connector_init(struct drm_device *dev,
+
+ drm_mode_create_suggested_offset_properties(dev);
+ drm_object_attach_property(&connector->base,
+- dev->mode_config.suggested_x_property, -1);
++ dev->mode_config.suggested_x_property, 0);
+ drm_object_attach_property(&connector->base,
+- dev->mode_config.suggested_y_property, -1);
++ dev->mode_config.suggested_y_property, 0);
+ drm_connector_register(connector);
+
+ drm_mode_connector_attach_encoder(connector, encoder);
+--
+2.14.2
+
diff --git a/baseconfig/CONFIG_MMC_BLOCK_BOUNCE b/baseconfig/CONFIG_MMC_BLOCK_BOUNCE
deleted file mode 100644
index 4470e8359..000000000
--- a/baseconfig/CONFIG_MMC_BLOCK_BOUNCE
+++ /dev/null
@@ -1 +0,0 @@
-CONFIG_MMC_BLOCK_BOUNCE=y
diff --git a/drm-i915-Boost-GPU-clocks-if-we-miss-the-pageflip-s-vblank.patch b/drm-i915-Boost-GPU-clocks-if-we-miss-the-pageflip-s-vblank.patch
new file mode 100644
index 000000000..07f81116a
--- /dev/null
+++ b/drm-i915-Boost-GPU-clocks-if-we-miss-the-pageflip-s-vblank.patch
@@ -0,0 +1,200 @@
+From patchwork Thu Aug 17 12:37:06 2017
+Content-Type: text/plain; charset="utf-8"
+MIME-Version: 1.0
+Content-Transfer-Encoding: 8bit
+Subject: drm/i915: Boost GPU clocks if we miss the pageflip's vblank
+From: Chris Wilson <chris@chris-wilson.co.uk>
+X-Patchwork-Id: 172204
+Message-Id: <20170817123706.6777-1-chris@chris-wilson.co.uk>
+To: intel-gfx@lists.freedesktop.org
+Cc: Daniel Vetter <daniel.vetter@intel.com>
+Date: Thu, 17 Aug 2017 13:37:06 +0100
+
+If we miss the current vblank because the gpu was busy, that may cause a
+jitter as the frame rate temporarily drops. We try to limit the impact
+of this by then boosting the GPU clock to deliver the frame as quickly
+as possible. Originally done in commit 6ad790c0f5ac ("drm/i915: Boost GPU
+frequency if we detect outstanding pageflips") but was never forward
+ported to atomic and finally dropped in commit fd3a40242e87 ("drm/i915:
+Rip out legacy page_flip completion/irq handling").
+
+References: https://bugs.freedesktop.org/show_bug.cgi?id=102199
+Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
+Cc: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
+Cc: Ville Syrjälä <ville.syrjala@linux.intel.com>
+Cc: Daniel Vetter <daniel.vetter@intel.com>
+Tested-by: Lyude Paul <lyude@redhat.com>
+Reviewed-by: Radoslaw Szwichtenberg <radoslaw.szwichtenberg@intel.com>
+---
+ drivers/gpu/drm/i915/intel_display.c | 59 ++++++++++++++++++++++++++++++++++++
+ drivers/gpu/drm/i915/intel_drv.h | 1 -
+ drivers/gpu/drm/i915/intel_pm.c | 42 ++-----------------------
+ 3 files changed, 62 insertions(+), 40 deletions(-)
+
+diff --git a/drivers/gpu/drm/i915/intel_display.c b/drivers/gpu/drm/i915/intel_display.c
+index 0e93ec201fe3..7d5b19553637 100644
+--- a/drivers/gpu/drm/i915/intel_display.c
++++ b/drivers/gpu/drm/i915/intel_display.c
+@@ -12636,6 +12636,55 @@ static const struct drm_crtc_funcs intel_crtc_funcs = {
+ .set_crc_source = intel_crtc_set_crc_source,
+ };
+
++struct wait_rps_boost {
++ struct wait_queue_entry wait;
++
++ struct drm_crtc *crtc;
++ struct drm_i915_gem_request *request;
++};
++
++static int do_rps_boost(struct wait_queue_entry *_wait,
++ unsigned mode, int sync, void *key)
++{
++ struct wait_rps_boost *wait = container_of(_wait, typeof(*wait), wait);
++ struct drm_i915_gem_request *rq = wait->request;
++
++ gen6_rps_boost(rq, NULL);
++ i915_gem_request_put(rq);
++
++ drm_crtc_vblank_put(wait->crtc);
++
++ list_del(&wait->wait.entry);
++ kfree(wait);
++ return 1;
++}
++
++static void add_rps_boost_after_vblank(struct drm_crtc *crtc,
++ struct dma_fence *fence)
++{
++ struct wait_rps_boost *wait;
++
++ if (!dma_fence_is_i915(fence))
++ return;
++
++ if (drm_crtc_vblank_get(crtc))
++ return;
++
++ wait = kmalloc(sizeof(*wait), GFP_KERNEL);
++ if (!wait) {
++ drm_crtc_vblank_put(crtc);
++ return;
++ }
++
++ wait->request = to_request(dma_fence_get(fence));
++ wait->crtc = crtc;
++
++ wait->wait.func = do_rps_boost;
++ wait->wait.flags = 0;
++
++ add_wait_queue(drm_crtc_vblank_waitqueue(crtc), &wait->wait);
++}
++
+ /**
+ * intel_prepare_plane_fb - Prepare fb for usage on plane
+ * @plane: drm plane to prepare for
+@@ -12733,12 +12782,22 @@ intel_prepare_plane_fb(struct drm_plane *plane,
+ return ret;
+
+ if (!new_state->fence) { /* implicit fencing */
++ struct dma_fence *fence;
++
+ ret = i915_sw_fence_await_reservation(&intel_state->commit_ready,
+ obj->resv, NULL,
+ false, I915_FENCE_TIMEOUT,
+ GFP_KERNEL);
+ if (ret < 0)
+ return ret;
++
++ fence = reservation_object_get_excl_rcu(obj->resv);
++ if (fence) {
++ add_rps_boost_after_vblank(new_state->crtc, fence);
++ dma_fence_put(fence);
++ }
++ } else {
++ add_rps_boost_after_vblank(new_state->crtc, new_state->fence);
+ }
+
+ return 0;
+diff --git a/drivers/gpu/drm/i915/intel_drv.h b/drivers/gpu/drm/i915/intel_drv.h
+index fa47285918f4..e092354b4d63 100644
+--- a/drivers/gpu/drm/i915/intel_drv.h
++++ b/drivers/gpu/drm/i915/intel_drv.h
+@@ -1844,7 +1844,6 @@ void gen6_rps_reset_ei(struct drm_i915_private *dev_priv);
+ void gen6_rps_idle(struct drm_i915_private *dev_priv);
+ void gen6_rps_boost(struct drm_i915_gem_request *rq,
+ struct intel_rps_client *rps);
+-void intel_queue_rps_boost_for_request(struct drm_i915_gem_request *req);
+ void g4x_wm_get_hw_state(struct drm_device *dev);
+ void vlv_wm_get_hw_state(struct drm_device *dev);
+ void ilk_wm_get_hw_state(struct drm_device *dev);
+diff --git a/drivers/gpu/drm/i915/intel_pm.c b/drivers/gpu/drm/i915/intel_pm.c
+index ed662937ec3c..c9fa2eb1903c 100644
+--- a/drivers/gpu/drm/i915/intel_pm.c
++++ b/drivers/gpu/drm/i915/intel_pm.c
+@@ -6169,6 +6169,7 @@ void gen6_rps_boost(struct drm_i915_gem_request *rq,
+ struct intel_rps_client *rps)
+ {
+ struct drm_i915_private *i915 = rq->i915;
++ unsigned long flags;
+ bool boost;
+
+ /* This is intentionally racy! We peek at the state here, then
+@@ -6178,13 +6179,13 @@ void gen6_rps_boost(struct drm_i915_gem_request *rq,
+ return;
+
+ boost = false;
+- spin_lock_irq(&rq->lock);
++ spin_lock_irqsave(&rq->lock, flags);
+ if (!rq->waitboost && !i915_gem_request_completed(rq)) {
+ atomic_inc(&i915->rps.num_waiters);
+ rq->waitboost = true;
+ boost = true;
+ }
+- spin_unlock_irq(&rq->lock);
++ spin_unlock_irqrestore(&rq->lock, flags);
+ if (!boost)
+ return;
+
+@@ -9132,43 +9133,6 @@ int intel_freq_opcode(struct drm_i915_private *dev_priv, int val)
+ return DIV_ROUND_CLOSEST(val, GT_FREQUENCY_MULTIPLIER);
+ }
+
+-struct request_boost {
+- struct work_struct work;
+- struct drm_i915_gem_request *req;
+-};
+-
+-static void __intel_rps_boost_work(struct work_struct *work)
+-{
+- struct request_boost *boost = container_of(work, struct request_boost, work);
+- struct drm_i915_gem_request *req = boost->req;
+-
+- if (!i915_gem_request_completed(req))
+- gen6_rps_boost(req, NULL);
+-
+- i915_gem_request_put(req);
+- kfree(boost);
+-}
+-
+-void intel_queue_rps_boost_for_request(struct drm_i915_gem_request *req)
+-{
+- struct request_boost *boost;
+-
+- if (req == NULL || INTEL_GEN(req->i915) < 6)
+- return;
+-
+- if (i915_gem_request_completed(req))
+- return;
+-
+- boost = kmalloc(sizeof(*boost), GFP_ATOMIC);
+- if (boost == NULL)
+- return;
+-
+- boost->req = i915_gem_request_get(req);
+-
+- INIT_WORK(&boost->work, __intel_rps_boost_work);
+- queue_work(req->i915->wq, &boost->work);
+-}
+-
+ void intel_pm_setup(struct drm_i915_private *dev_priv)
+ {
+ mutex_init(&dev_priv->rps.hw_lock);
diff --git a/gitrev b/gitrev
index 6711532f4..2dcd7dc3b 100644
--- a/gitrev
+++ b/gitrev
@@ -1 +1 @@
-56ae414e9d2718bcbfda9ba3797c39005e2f90fb
+ff5abbe799e29099695cb8b5b2f198dd8b8bdf26
diff --git a/kernel-aarch64-debug.config b/kernel-aarch64-debug.config
index 8f666e877..2a9a75a85 100644
--- a/kernel-aarch64-debug.config
+++ b/kernel-aarch64-debug.config
@@ -3118,7 +3118,6 @@ CONFIG_MMA7660=m
# CONFIG_MMC35240 is not set
CONFIG_MMC_ARMMMCI=m
CONFIG_MMC_BCM2835=m
-CONFIG_MMC_BLOCK_BOUNCE=y
CONFIG_MMC_BLOCK=m
CONFIG_MMC_BLOCK_MINORS=8
CONFIG_MMC_CAVIUM_THUNDERX=m
diff --git a/kernel-aarch64.config b/kernel-aarch64.config
index 2576f26e5..7cc63e99c 100644
--- a/kernel-aarch64.config
+++ b/kernel-aarch64.config
@@ -3098,7 +3098,6 @@ CONFIG_MMA7660=m
# CONFIG_MMC35240 is not set
CONFIG_MMC_ARMMMCI=m
CONFIG_MMC_BCM2835=m
-CONFIG_MMC_BLOCK_BOUNCE=y
CONFIG_MMC_BLOCK=m
CONFIG_MMC_BLOCK_MINORS=8
CONFIG_MMC_CAVIUM_THUNDERX=m
diff --git a/kernel-armv7hl-debug.config b/kernel-armv7hl-debug.config
index 1d59ea566..2539e2423 100644
--- a/kernel-armv7hl-debug.config
+++ b/kernel-armv7hl-debug.config
@@ -3322,7 +3322,6 @@ CONFIG_MMA8452=m
# CONFIG_MMC35240 is not set
CONFIG_MMC_ARMMMCI=m
CONFIG_MMC_BCM2835=m
-CONFIG_MMC_BLOCK_BOUNCE=y
CONFIG_MMC_BLOCK=m
CONFIG_MMC_BLOCK_MINORS=8
CONFIG_MMC_CB710=m
diff --git a/kernel-armv7hl-lpae-debug.config b/kernel-armv7hl-lpae-debug.config
index ae29ac079..feb02ba3b 100644
--- a/kernel-armv7hl-lpae-debug.config
+++ b/kernel-armv7hl-lpae-debug.config
@@ -3172,7 +3172,6 @@ CONFIG_MMA8452=m
# CONFIG_MMC35240 is not set
CONFIG_MMC_ARMMMCI=m
CONFIG_MMC_BCM2835=m
-CONFIG_MMC_BLOCK_BOUNCE=y
CONFIG_MMC_BLOCK=m
CONFIG_MMC_BLOCK_MINORS=8
CONFIG_MMC_CB710=m
diff --git a/kernel-armv7hl-lpae.config b/kernel-armv7hl-lpae.config
index 640fea8bf..06bb6e6b1 100644
--- a/kernel-armv7hl-lpae.config
+++ b/kernel-armv7hl-lpae.config
@@ -3152,7 +3152,6 @@ CONFIG_MMA8452=m
# CONFIG_MMC35240 is not set
CONFIG_MMC_ARMMMCI=m
CONFIG_MMC_BCM2835=m
-CONFIG_MMC_BLOCK_BOUNCE=y
CONFIG_MMC_BLOCK=m
CONFIG_MMC_BLOCK_MINORS=8
CONFIG_MMC_CB710=m
diff --git a/kernel-armv7hl.config b/kernel-armv7hl.config
index 500782bb0..0554bb20e 100644
--- a/kernel-armv7hl.config
+++ b/kernel-armv7hl.config
@@ -3302,7 +3302,6 @@ CONFIG_MMA8452=m
# CONFIG_MMC35240 is not set
CONFIG_MMC_ARMMMCI=m
CONFIG_MMC_BCM2835=m
-CONFIG_MMC_BLOCK_BOUNCE=y
CONFIG_MMC_BLOCK=m
CONFIG_MMC_BLOCK_MINORS=8
CONFIG_MMC_CB710=m
diff --git a/kernel-i686-PAE.config b/kernel-i686-PAE.config
index f7b7bdf4a..ea6108c66 100644
--- a/kernel-i686-PAE.config
+++ b/kernel-i686-PAE.config
@@ -3005,7 +3005,6 @@ CONFIG_MMA7660=m
# CONFIG_MMA9551 is not set
# CONFIG_MMA9553 is not set
# CONFIG_MMC35240 is not set
-CONFIG_MMC_BLOCK_BOUNCE=y
CONFIG_MMC_BLOCK=m
CONFIG_MMC_BLOCK_MINORS=8
CONFIG_MMC_CB710=m
diff --git a/kernel-i686-PAEdebug.config b/kernel-i686-PAEdebug.config
index a1bf46a3b..c3dd1bfd3 100644
--- a/kernel-i686-PAEdebug.config
+++ b/kernel-i686-PAEdebug.config
@@ -3025,7 +3025,6 @@ CONFIG_MMA7660=m
# CONFIG_MMA9551 is not set
# CONFIG_MMA9553 is not set
# CONFIG_MMC35240 is not set
-CONFIG_MMC_BLOCK_BOUNCE=y
CONFIG_MMC_BLOCK=m
CONFIG_MMC_BLOCK_MINORS=8
CONFIG_MMC_CB710=m
diff --git a/kernel-i686-debug.config b/kernel-i686-debug.config
index 80614d0e4..6df9e7c00 100644
--- a/kernel-i686-debug.config
+++ b/kernel-i686-debug.config
@@ -3025,7 +3025,6 @@ CONFIG_MMA7660=m
# CONFIG_MMA9551 is not set
# CONFIG_MMA9553 is not set
# CONFIG_MMC35240 is not set
-CONFIG_MMC_BLOCK_BOUNCE=y
CONFIG_MMC_BLOCK=m
CONFIG_MMC_BLOCK_MINORS=8
CONFIG_MMC_CB710=m
diff --git a/kernel-i686.config b/kernel-i686.config
index b93db5e74..0ac39cc94 100644
--- a/kernel-i686.config
+++ b/kernel-i686.config
@@ -3005,7 +3005,6 @@ CONFIG_MMA7660=m
# CONFIG_MMA9551 is not set
# CONFIG_MMA9553 is not set
# CONFIG_MMC35240 is not set
-CONFIG_MMC_BLOCK_BOUNCE=y
CONFIG_MMC_BLOCK=m
CONFIG_MMC_BLOCK_MINORS=8
CONFIG_MMC_CB710=m
diff --git a/kernel-ppc64-debug.config b/kernel-ppc64-debug.config
index d7a66a619..f449437b9 100644
--- a/kernel-ppc64-debug.config
+++ b/kernel-ppc64-debug.config
@@ -2864,7 +2864,6 @@ CONFIG_MMA7660=m
# CONFIG_MMA9551 is not set
# CONFIG_MMA9553 is not set
# CONFIG_MMC35240 is not set
-CONFIG_MMC_BLOCK_BOUNCE=y
CONFIG_MMC_BLOCK=m
CONFIG_MMC_BLOCK_MINORS=8
CONFIG_MMC_CB710=m
diff --git a/kernel-ppc64.config b/kernel-ppc64.config
index 3ed5b3b88..5e43c5a96 100644
--- a/kernel-ppc64.config
+++ b/kernel-ppc64.config
@@ -2843,7 +2843,6 @@ CONFIG_MMA7660=m
# CONFIG_MMA9551 is not set
# CONFIG_MMA9553 is not set
# CONFIG_MMC35240 is not set
-CONFIG_MMC_BLOCK_BOUNCE=y
CONFIG_MMC_BLOCK=m
CONFIG_MMC_BLOCK_MINORS=8
CONFIG_MMC_CB710=m
diff --git a/kernel-ppc64le-debug.config b/kernel-ppc64le-debug.config
index 192b520a0..554fd5f1c 100644
--- a/kernel-ppc64le-debug.config
+++ b/kernel-ppc64le-debug.config
@@ -2809,7 +2809,6 @@ CONFIG_MMA7660=m
# CONFIG_MMA9551 is not set
# CONFIG_MMA9553 is not set
# CONFIG_MMC35240 is not set
-CONFIG_MMC_BLOCK_BOUNCE=y
CONFIG_MMC_BLOCK=m
CONFIG_MMC_BLOCK_MINORS=8
CONFIG_MMC_CB710=m
diff --git a/kernel-ppc64le.config b/kernel-ppc64le.config
index 3acc8f7b5..1487e5f3b 100644
--- a/kernel-ppc64le.config
+++ b/kernel-ppc64le.config
@@ -2788,7 +2788,6 @@ CONFIG_MMA7660=m
# CONFIG_MMA9551 is not set
# CONFIG_MMA9553 is not set
# CONFIG_MMC35240 is not set
-CONFIG_MMC_BLOCK_BOUNCE=y
CONFIG_MMC_BLOCK=m
CONFIG_MMC_BLOCK_MINORS=8
CONFIG_MMC_CB710=m
diff --git a/kernel-s390x-debug.config b/kernel-s390x-debug.config
index d706ed853..5cbe42ad1 100644
--- a/kernel-s390x-debug.config
+++ b/kernel-s390x-debug.config
@@ -2750,7 +2750,6 @@ CONFIG_MMA7660=m
# CONFIG_MMA9551 is not set
# CONFIG_MMA9553 is not set
# CONFIG_MMC35240 is not set
-CONFIG_MMC_BLOCK_BOUNCE=y
CONFIG_MMC_BLOCK=m
CONFIG_MMC_BLOCK_MINORS=8
CONFIG_MMC_CB710=m
diff --git a/kernel-s390x.config b/kernel-s390x.config
index 68e167dba..c6c32dc36 100644
--- a/kernel-s390x.config
+++ b/kernel-s390x.config
@@ -2729,7 +2729,6 @@ CONFIG_MMA7660=m
# CONFIG_MMA9551 is not set
# CONFIG_MMA9553 is not set
# CONFIG_MMC35240 is not set
-CONFIG_MMC_BLOCK_BOUNCE=y
CONFIG_MMC_BLOCK=m
CONFIG_MMC_BLOCK_MINORS=8
CONFIG_MMC_CB710=m
diff --git a/kernel-x86_64-debug.config b/kernel-x86_64-debug.config
index 34dd6902c..16540ab31 100644
--- a/kernel-x86_64-debug.config
+++ b/kernel-x86_64-debug.config
@@ -3076,7 +3076,6 @@ CONFIG_MMA7660=m
# CONFIG_MMA9551 is not set
# CONFIG_MMA9553 is not set
# CONFIG_MMC35240 is not set
-CONFIG_MMC_BLOCK_BOUNCE=y
CONFIG_MMC_BLOCK=m
CONFIG_MMC_BLOCK_MINORS=8
CONFIG_MMC_CB710=m
diff --git a/kernel-x86_64.config b/kernel-x86_64.config
index 19f2ea591..819e0248d 100644
--- a/kernel-x86_64.config
+++ b/kernel-x86_64.config
@@ -3056,7 +3056,6 @@ CONFIG_MMA7660=m
# CONFIG_MMA9551 is not set
# CONFIG_MMA9553 is not set
# CONFIG_MMC35240 is not set
-CONFIG_MMC_BLOCK_BOUNCE=y
CONFIG_MMC_BLOCK=m
CONFIG_MMC_BLOCK_MINORS=8
CONFIG_MMC_CB710=m
diff --git a/kernel.spec b/kernel.spec
index 16850c993..3df1f79e3 100644
--- a/kernel.spec
+++ b/kernel.spec
@@ -77,7 +77,7 @@ Summary: The Linux kernel
# The rc snapshot level
%global rcrev 4
# The git snapshot level
-%define gitrev 2
+%define gitrev 3
# Set rpm version accordingly
%define rpmversion 4.%{upstream_sublevel}.0
%endif
@@ -669,6 +669,12 @@ Patch617: Fix-for-module-sig-verification.patch
# rhbz 1431375
Patch619: input-rmi4-remove-the-need-for-artifical-IRQ.patch
+# fix gnome 3.26+ not working under VirtualBox, submitted upstream, Cc: Stable
+Patch620: 0001-staging-vboxvideo-Fix-reporting-invalid-suggested-of.patch
+
+# Headed upstream
+Patch621: drm-i915-Boost-GPU-clocks-if-we-miss-the-pageflip-s-vblank.patch
+
# END OF PATCH DEFINITIONS
%endif
@@ -2226,6 +2232,12 @@ fi
#
#
%changelog
+* Thu Oct 12 2017 Justin M. Forbes <jforbes@fedoraproject.org> - 4.14.0-0.rc4.git3.1
+- Linux v4.14-rc4-84-gff5abbe799e2
+
+* Thu Oct 12 2017 Hans de Goede <jwrdegoede@fedoraproject.org>
+- Fix vboxvideo causing gnome 3.26+ to not work under VirtualBox
+
* Wed Oct 11 2017 Jeremy Cline <jeremy@jcline.org>
- Fix incorrect updates of uninstantiated keys crash the kernel (rhbz 1498016 1498017)
diff --git a/sources b/sources
index 278f82ab2..aa48ad27c 100644
--- a/sources
+++ b/sources
@@ -1,4 +1,4 @@
SHA512 (linux-4.13.tar.xz) = a557c2f0303ae618910b7106ff63d9978afddf470f03cb72aa748213e099a0ecd5f3119aea6cbd7b61df30ca6ef3ec57044d524b7babbaabddf8b08b8bafa7d2
SHA512 (perf-man-4.13.tar.gz) = 9bcc2cd8e56ec583ed2d8e0b0c88e7a94035a1915e40b3177bb02d6c0f10ddd4df9b097b1f5af59efc624226b613e240ddba8ddc2156f3682f992d5455fc5c03
SHA512 (patch-4.14-rc4.xz) = 11edc0714c9b7ff34986d1534c490987f5977940afc5b176a424a23e437d572d83f8d689b4505128371bf6d4c5956a2042c9c4d222eb72363b977b69c819b3e3
-SHA512 (patch-4.14-rc4-git2.xz) = 96a5bbce69897d0a280dd0c86e95e9874c9062770f51b313b5838e690c8019482b8310a0c8614ad3bebf51d54b9ca5916fdc8f2e3527b434c364a023bbbc2719
+SHA512 (patch-4.14-rc4-git3.xz) = f9bbea88ccbc409243205099da8a5d355c97427c642343a8161969ada916e8fee3db1c81de243dedf84cc133d494167570810b493538a7f46c8e0487f6adbe69