]> git.ipfire.org Git - thirdparty/kernel/stable-queue.git/commitdiff
3.4-stable patches
authorGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Mon, 14 Jan 2013 17:52:24 +0000 (09:52 -0800)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Mon, 14 Jan 2013 17:52:24 +0000 (09:52 -0800)
added patches:
drm-i915-make-the-panel-fitter-work-on-pipes-b-and-c-on-ivb.patch
drm-radeon-add-wait_until-to-evergreen-vm-safe-reg-list.patch
drm-radeon-fix-edp-clk-and-lane-setup-for-scaled-modes.patch
drm-radeon-properly-handle-ddc-probe-for-dp-bridges.patch
i2400m-add-intel-6150-device-ids.patch
intel-iommu-free-old-page-tables-before-creating-superpage.patch
jffs2-hold-erase_completion_lock-on-exit.patch

queue-3.4/drm-i915-make-the-panel-fitter-work-on-pipes-b-and-c-on-ivb.patch [new file with mode: 0644]
queue-3.4/drm-radeon-add-wait_until-to-evergreen-vm-safe-reg-list.patch [new file with mode: 0644]
queue-3.4/drm-radeon-fix-edp-clk-and-lane-setup-for-scaled-modes.patch [new file with mode: 0644]
queue-3.4/drm-radeon-properly-handle-ddc-probe-for-dp-bridges.patch [new file with mode: 0644]
queue-3.4/i2400m-add-intel-6150-device-ids.patch [new file with mode: 0644]
queue-3.4/intel-iommu-free-old-page-tables-before-creating-superpage.patch [new file with mode: 0644]
queue-3.4/jffs2-hold-erase_completion_lock-on-exit.patch [new file with mode: 0644]
queue-3.4/series

diff --git a/queue-3.4/drm-i915-make-the-panel-fitter-work-on-pipes-b-and-c-on-ivb.patch b/queue-3.4/drm-i915-make-the-panel-fitter-work-on-pipes-b-and-c-on-ivb.patch
new file mode 100644 (file)
index 0000000..50ec0eb
--- /dev/null
@@ -0,0 +1,50 @@
+From 13888d78c664a1f61d7b09d282f5916993827a40 Mon Sep 17 00:00:00 2001
+From: Paulo Zanoni <paulo.r.zanoni@intel.com>
+Date: Tue, 20 Nov 2012 13:27:41 -0200
+Subject: drm/i915: make the panel fitter work on pipes B and C on IVB
+
+From: Paulo Zanoni <paulo.r.zanoni@intel.com>
+
+commit 13888d78c664a1f61d7b09d282f5916993827a40 upstream.
+
+I actually found this problem on Haswell, but then discovered Ivy
+Bridge also has it by reading the spec.
+
+I don't have the hardware to test this.
+
+Signed-off-by: Paulo Zanoni <paulo.r.zanoni@intel.com>
+Reviewed-by: Damien Lespiau <damien.lespiau@intel.com>
+Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ drivers/gpu/drm/i915/i915_reg.h      |    2 ++
+ drivers/gpu/drm/i915/intel_display.c |    6 +++++-
+ 2 files changed, 7 insertions(+), 1 deletion(-)
+
+--- a/drivers/gpu/drm/i915/i915_reg.h
++++ b/drivers/gpu/drm/i915/i915_reg.h
+@@ -3015,6 +3015,8 @@
+ #define _PFA_CTL_1               0x68080
+ #define _PFB_CTL_1               0x68880
+ #define  PF_ENABLE              (1<<31)
++#define  PF_PIPE_SEL_MASK_IVB (3<<29)
++#define  PF_PIPE_SEL_IVB(pipe)        ((pipe)<<29)
+ #define  PF_FILTER_MASK               (3<<23)
+ #define  PF_FILTER_PROGRAMMED (0<<23)
+ #define  PF_FILTER_MED_3x3    (1<<23)
+--- a/drivers/gpu/drm/i915/intel_display.c
++++ b/drivers/gpu/drm/i915/intel_display.c
+@@ -3095,7 +3095,11 @@ static void ironlake_crtc_enable(struct
+                * as some pre-programmed values are broken,
+                * e.g. x201.
+                */
+-              I915_WRITE(PF_CTL(pipe), PF_ENABLE | PF_FILTER_MED_3x3);
++              if (IS_IVYBRIDGE(dev))
++                      I915_WRITE(PF_CTL(pipe), PF_ENABLE | PF_FILTER_MED_3x3 |
++                                               PF_PIPE_SEL_IVB(pipe));
++              else
++                      I915_WRITE(PF_CTL(pipe), PF_ENABLE | PF_FILTER_MED_3x3);
+               I915_WRITE(PF_WIN_POS(pipe), dev_priv->pch_pf_pos);
+               I915_WRITE(PF_WIN_SZ(pipe), dev_priv->pch_pf_size);
+       }
diff --git a/queue-3.4/drm-radeon-add-wait_until-to-evergreen-vm-safe-reg-list.patch b/queue-3.4/drm-radeon-add-wait_until-to-evergreen-vm-safe-reg-list.patch
new file mode 100644 (file)
index 0000000..28ffcfb
--- /dev/null
@@ -0,0 +1,31 @@
+From 668bbc81baf0f34df832d8aca5c7d5e19a493c68 Mon Sep 17 00:00:00 2001
+From: Alex Deucher <alexander.deucher@amd.com>
+Date: Thu, 20 Dec 2012 21:19:32 -0500
+Subject: drm/radeon: add WAIT_UNTIL to evergreen VM safe reg list
+
+From: Alex Deucher <alexander.deucher@amd.com>
+
+commit 668bbc81baf0f34df832d8aca5c7d5e19a493c68 upstream.
+
+It's used in a recent mesa commit:
+http://cgit.freedesktop.org/mesa/mesa/commit/?id=24b1206ab2dcd506aaac3ef656aebc8bc20cd27a
+and there may be some other cases in the future where it's required.
+
+Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
+Reviewed-by: Jerome Glisse <jglisse@redhat.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ drivers/gpu/drm/radeon/evergreen_cs.c |    1 +
+ 1 file changed, 1 insertion(+)
+
+--- a/drivers/gpu/drm/radeon/evergreen_cs.c
++++ b/drivers/gpu/drm/radeon/evergreen_cs.c
+@@ -2670,6 +2670,7 @@ static bool evergreen_vm_reg_valid(u32 r
+       /* check config regs */
+       switch (reg) {
++      case WAIT_UNTIL:
+       case GRBM_GFX_INDEX:
+       case CP_STRMOUT_CNTL:
+       case CP_COHER_CNTL:
diff --git a/queue-3.4/drm-radeon-fix-edp-clk-and-lane-setup-for-scaled-modes.patch b/queue-3.4/drm-radeon-fix-edp-clk-and-lane-setup-for-scaled-modes.patch
new file mode 100644 (file)
index 0000000..dd944d2
--- /dev/null
@@ -0,0 +1,31 @@
+From 93927f9c1db5f55085457e820f0631064c7bfa34 Mon Sep 17 00:00:00 2001
+From: Alex Deucher <alexander.deucher@amd.com>
+Date: Tue, 4 Dec 2012 16:50:28 -0500
+Subject: drm/radeon: fix eDP clk and lane setup for scaled modes
+
+From: Alex Deucher <alexander.deucher@amd.com>
+
+commit 93927f9c1db5f55085457e820f0631064c7bfa34 upstream.
+
+Need to use the adjusted mode since we are sending native
+timing and using the scaler for non-native modes.
+
+Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
+Reviewed-by: Jerome Glisse <jglisse@redhat.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ drivers/gpu/drm/radeon/atombios_encoders.c |    2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+--- a/drivers/gpu/drm/radeon/atombios_encoders.c
++++ b/drivers/gpu/drm/radeon/atombios_encoders.c
+@@ -95,7 +95,7 @@ static bool radeon_atom_mode_fixup(struc
+           ((radeon_encoder->active_device & (ATOM_DEVICE_DFP_SUPPORT | ATOM_DEVICE_LCD_SUPPORT)) ||
+            (radeon_encoder_get_dp_bridge_encoder_id(encoder) != ENCODER_OBJECT_ID_NONE))) {
+               struct drm_connector *connector = radeon_get_connector_for_encoder(encoder);
+-              radeon_dp_set_link_config(connector, mode);
++              radeon_dp_set_link_config(connector, adjusted_mode);
+       }
+       return true;
diff --git a/queue-3.4/drm-radeon-properly-handle-ddc-probe-for-dp-bridges.patch b/queue-3.4/drm-radeon-properly-handle-ddc-probe-for-dp-bridges.patch
new file mode 100644 (file)
index 0000000..4393f38
--- /dev/null
@@ -0,0 +1,126 @@
+From 0a9069d34918659bc8a89e21e69e60b2b83291a3 Mon Sep 17 00:00:00 2001
+From: Niels Ole Salscheider <niels_ole@salscheider-online.de>
+Date: Thu, 3 Jan 2013 19:09:28 +0100
+Subject: drm/radeon: Properly handle DDC probe for DP bridges
+
+From: Niels Ole Salscheider <niels_ole@salscheider-online.de>
+
+commit 0a9069d34918659bc8a89e21e69e60b2b83291a3 upstream.
+
+DDC information can be accessed using AUX CH
+
+Fixes failure to probe monitors on some systems with
+DP bridge chips.
+
+agd5f: minor fixes
+
+Signed-off-by: Niels Ole Salscheider <niels_ole@salscheider-online.de>
+Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ drivers/gpu/drm/radeon/radeon_connectors.c |   10 ++++++----
+ drivers/gpu/drm/radeon/radeon_display.c    |   13 +++++++++----
+ drivers/gpu/drm/radeon/radeon_i2c.c        |   10 ++++++++--
+ drivers/gpu/drm/radeon/radeon_mode.h       |    2 +-
+ 4 files changed, 24 insertions(+), 11 deletions(-)
+
+--- a/drivers/gpu/drm/radeon/radeon_connectors.c
++++ b/drivers/gpu/drm/radeon/radeon_connectors.c
+@@ -689,7 +689,7 @@ radeon_vga_detect(struct drm_connector *
+               ret = connector_status_disconnected;
+       if (radeon_connector->ddc_bus)
+-              dret = radeon_ddc_probe(radeon_connector);
++              dret = radeon_ddc_probe(radeon_connector, false);
+       if (dret) {
+               radeon_connector->detected_by_load = false;
+               if (radeon_connector->edid) {
+@@ -895,7 +895,7 @@ radeon_dvi_detect(struct drm_connector *
+               return connector->status;
+       if (radeon_connector->ddc_bus)
+-              dret = radeon_ddc_probe(radeon_connector);
++              dret = radeon_ddc_probe(radeon_connector, false);
+       if (dret) {
+               radeon_connector->detected_by_load = false;
+               if (radeon_connector->edid) {
+@@ -1335,7 +1335,8 @@ radeon_dp_detect(struct drm_connector *c
+               if (encoder) {
+                       /* setup ddc on the bridge */
+                       radeon_atom_ext_encoder_setup_ddc(encoder);
+-                      if (radeon_ddc_probe(radeon_connector)) /* try DDC */
++                      /* bridge chips are always aux */
++                      if (radeon_ddc_probe(radeon_connector, true)) /* try DDC */
+                               ret = connector_status_connected;
+                       else if (radeon_connector->dac_load_detect) { /* try load detection */
+                               struct drm_encoder_helper_funcs *encoder_funcs = encoder->helper_private;
+@@ -1353,7 +1354,8 @@ radeon_dp_detect(struct drm_connector *c
+                               if (radeon_dp_getdpcd(radeon_connector))
+                                       ret = connector_status_connected;
+                       } else {
+-                              if (radeon_ddc_probe(radeon_connector))
++                              /* try non-aux ddc (DP to DVI/HMDI/etc. adapter) */
++                              if (radeon_ddc_probe(radeon_connector, false))
+                                       ret = connector_status_connected;
+                       }
+               }
+--- a/drivers/gpu/drm/radeon/radeon_display.c
++++ b/drivers/gpu/drm/radeon/radeon_display.c
+@@ -713,10 +713,15 @@ int radeon_ddc_get_modes(struct radeon_c
+       if (radeon_connector->router.ddc_valid)
+               radeon_router_select_ddc_port(radeon_connector);
+-      if ((radeon_connector->base.connector_type == DRM_MODE_CONNECTOR_DisplayPort) ||
+-          (radeon_connector->base.connector_type == DRM_MODE_CONNECTOR_eDP) ||
+-          (radeon_connector_encoder_get_dp_bridge_encoder_id(&radeon_connector->base) !=
+-           ENCODER_OBJECT_ID_NONE)) {
++      if (radeon_connector_encoder_get_dp_bridge_encoder_id(&radeon_connector->base) !=
++          ENCODER_OBJECT_ID_NONE) {
++              struct radeon_connector_atom_dig *dig = radeon_connector->con_priv;
++
++              if (dig->dp_i2c_bus)
++                      radeon_connector->edid = drm_get_edid(&radeon_connector->base,
++                                                            &dig->dp_i2c_bus->adapter);
++      } else if ((radeon_connector->base.connector_type == DRM_MODE_CONNECTOR_DisplayPort) ||
++                 (radeon_connector->base.connector_type == DRM_MODE_CONNECTOR_eDP)) {
+               struct radeon_connector_atom_dig *dig = radeon_connector->con_priv;
+               if ((dig->dp_sink_type == CONNECTOR_OBJECT_ID_DISPLAYPORT ||
+--- a/drivers/gpu/drm/radeon/radeon_i2c.c
++++ b/drivers/gpu/drm/radeon/radeon_i2c.c
+@@ -39,7 +39,7 @@ extern u32 radeon_atom_hw_i2c_func(struc
+  * radeon_ddc_probe
+  *
+  */
+-bool radeon_ddc_probe(struct radeon_connector *radeon_connector)
++bool radeon_ddc_probe(struct radeon_connector *radeon_connector, bool use_aux)
+ {
+       u8 out = 0x0;
+       u8 buf[8];
+@@ -63,7 +63,13 @@ bool radeon_ddc_probe(struct radeon_conn
+       if (radeon_connector->router.ddc_valid)
+               radeon_router_select_ddc_port(radeon_connector);
+-      ret = i2c_transfer(&radeon_connector->ddc_bus->adapter, msgs, 2);
++      if (use_aux) {
++              struct radeon_connector_atom_dig *dig = radeon_connector->con_priv;
++              ret = i2c_transfer(&dig->dp_i2c_bus->adapter, msgs, 2);
++      } else {
++              ret = i2c_transfer(&radeon_connector->ddc_bus->adapter, msgs, 2);
++      }
++
+       if (ret != 2)
+               /* Couldn't find an accessible DDC on this connector */
+               return false;
+--- a/drivers/gpu/drm/radeon/radeon_mode.h
++++ b/drivers/gpu/drm/radeon/radeon_mode.h
+@@ -527,7 +527,7 @@ extern void radeon_i2c_put_byte(struct r
+                               u8 val);
+ extern void radeon_router_select_ddc_port(struct radeon_connector *radeon_connector);
+ extern void radeon_router_select_cd_port(struct radeon_connector *radeon_connector);
+-extern bool radeon_ddc_probe(struct radeon_connector *radeon_connector);
++extern bool radeon_ddc_probe(struct radeon_connector *radeon_connector, bool use_aux);
+ extern int radeon_ddc_get_modes(struct radeon_connector *radeon_connector);
+ extern struct drm_encoder *radeon_best_encoder(struct drm_connector *connector);
diff --git a/queue-3.4/i2400m-add-intel-6150-device-ids.patch b/queue-3.4/i2400m-add-intel-6150-device-ids.patch
new file mode 100644 (file)
index 0000000..0531b9a
--- /dev/null
@@ -0,0 +1,54 @@
+From 999a7c5776a0ed2133645fa7e008bec05bda9254 Mon Sep 17 00:00:00 2001
+From: Dan Williams <dcbw@redhat.com>
+Date: Fri, 14 Dec 2012 13:10:50 +0000
+Subject: i2400m: add Intel 6150 device IDs
+
+From: Dan Williams <dcbw@redhat.com>
+
+commit 999a7c5776a0ed2133645fa7e008bec05bda9254 upstream.
+
+Add device IDs for WiMAX function of Intel 6150 cards.
+
+Signed-off-by: Dan Williams <dcbw@redhat.com>
+Signed-off-by: David S. Miller <davem@davemloft.net>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ drivers/net/wimax/i2400m/i2400m-usb.h |    3 +++
+ drivers/net/wimax/i2400m/usb.c        |    6 ++++++
+ 2 files changed, 9 insertions(+)
+
+--- a/drivers/net/wimax/i2400m/i2400m-usb.h
++++ b/drivers/net/wimax/i2400m/i2400m-usb.h
+@@ -152,6 +152,9 @@ enum {
+       /* Device IDs */
+       USB_DEVICE_ID_I6050 = 0x0186,
+       USB_DEVICE_ID_I6050_2 = 0x0188,
++      USB_DEVICE_ID_I6150 = 0x07d6,
++      USB_DEVICE_ID_I6150_2 = 0x07d7,
++      USB_DEVICE_ID_I6150_3 = 0x07d9,
+       USB_DEVICE_ID_I6250 = 0x0187,
+ };
+--- a/drivers/net/wimax/i2400m/usb.c
++++ b/drivers/net/wimax/i2400m/usb.c
+@@ -510,6 +510,9 @@ int i2400mu_probe(struct usb_interface *
+       switch (id->idProduct) {
+       case USB_DEVICE_ID_I6050:
+       case USB_DEVICE_ID_I6050_2:
++      case USB_DEVICE_ID_I6150:
++      case USB_DEVICE_ID_I6150_2:
++      case USB_DEVICE_ID_I6150_3:
+       case USB_DEVICE_ID_I6250:
+               i2400mu->i6050 = 1;
+               break;
+@@ -759,6 +762,9 @@ static
+ struct usb_device_id i2400mu_id_table[] = {
+       { USB_DEVICE(0x8086, USB_DEVICE_ID_I6050) },
+       { USB_DEVICE(0x8086, USB_DEVICE_ID_I6050_2) },
++      { USB_DEVICE(0x8087, USB_DEVICE_ID_I6150) },
++      { USB_DEVICE(0x8087, USB_DEVICE_ID_I6150_2) },
++      { USB_DEVICE(0x8087, USB_DEVICE_ID_I6150_3) },
+       { USB_DEVICE(0x8086, USB_DEVICE_ID_I6250) },
+       { USB_DEVICE(0x8086, 0x0181) },
+       { USB_DEVICE(0x8086, 0x1403) },
diff --git a/queue-3.4/intel-iommu-free-old-page-tables-before-creating-superpage.patch b/queue-3.4/intel-iommu-free-old-page-tables-before-creating-superpage.patch
new file mode 100644 (file)
index 0000000..67a45bd
--- /dev/null
@@ -0,0 +1,57 @@
+From 6491d4d02893d9787ba67279595990217177b351 Mon Sep 17 00:00:00 2001
+From: "Woodhouse, David" <david.woodhouse@intel.com>
+Date: Wed, 19 Dec 2012 13:25:35 +0000
+Subject: intel-iommu: Free old page tables before creating superpage
+
+From: "Woodhouse, David" <david.woodhouse@intel.com>
+
+commit 6491d4d02893d9787ba67279595990217177b351 upstream.
+
+The dma_pte_free_pagetable() function will only free a page table page
+if it is asked to free the *entire* 2MiB range that it covers. So if a
+page table page was used for one or more small mappings, it's likely to
+end up still present in the page tables... but with no valid PTEs.
+
+This was fine when we'd only be repopulating it with 4KiB PTEs anyway
+but the same virtual address range can end up being reused for a
+*large-page* mapping. And in that case were were trying to insert the
+large page into the second-level page table, and getting a complaint
+from the sanity check in __domain_mapping() because there was already a
+corresponding entry. This was *relatively* harmless; it led to a memory
+leak of the old page table page, but no other ill-effects.
+
+Fix it by calling dma_pte_clear_range (hopefully redundant) and
+dma_pte_free_pagetable() before setting up the new large page.
+
+Signed-off-by: David Woodhouse <David.Woodhouse@intel.com>
+Tested-by: Ravi Murty <Ravi.Murty@intel.com>
+Tested-by: Sudeep Dutt <sudeep.dutt@intel.com>
+Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ drivers/iommu/intel-iommu.c |   11 +++++++++--
+ 1 file changed, 9 insertions(+), 2 deletions(-)
+
+--- a/drivers/iommu/intel-iommu.c
++++ b/drivers/iommu/intel-iommu.c
+@@ -1826,10 +1826,17 @@ static int __domain_mapping(struct dmar_
+                       if (!pte)
+                               return -ENOMEM;
+                       /* It is large page*/
+-                      if (largepage_lvl > 1)
++                      if (largepage_lvl > 1) {
+                               pteval |= DMA_PTE_LARGE_PAGE;
+-                      else
++                              /* Ensure that old small page tables are removed to make room
++                                 for superpage, if they exist. */
++                              dma_pte_clear_range(domain, iov_pfn,
++                                                  iov_pfn + lvl_to_nr_pages(largepage_lvl) - 1);
++                              dma_pte_free_pagetable(domain, iov_pfn,
++                                                     iov_pfn + lvl_to_nr_pages(largepage_lvl) - 1);
++                      } else {
+                               pteval &= ~(uint64_t)DMA_PTE_LARGE_PAGE;
++                      }
+               }
+               /* We don't need lock here, nobody else
diff --git a/queue-3.4/jffs2-hold-erase_completion_lock-on-exit.patch b/queue-3.4/jffs2-hold-erase_completion_lock-on-exit.patch
new file mode 100644 (file)
index 0000000..2c57b8e
--- /dev/null
@@ -0,0 +1,45 @@
+From 2cbba75a56ea78e6876b4e2547a882f10b3fe72b Mon Sep 17 00:00:00 2001
+From: Alexey Khoroshilov <khoroshilov@ispras.ru>
+Date: Mon, 5 Nov 2012 22:40:14 +0400
+Subject: jffs2: hold erase_completion_lock on exit
+
+From: Alexey Khoroshilov <khoroshilov@ispras.ru>
+
+commit 2cbba75a56ea78e6876b4e2547a882f10b3fe72b upstream.
+
+Users of jffs2_do_reserve_space() expect they still held
+erase_completion_lock after call to it. But there is a path
+where jffs2_do_reserve_space() leaves erase_completion_lock unlocked.
+The patch fixes it.
+
+Found by Linux Driver Verification project (linuxtesting.org).
+
+Signed-off-by: Alexey Khoroshilov <khoroshilov@ispras.ru>
+Signed-off-by: Artem Bityutskiy <artem.bityutskiy@linux.intel.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ fs/jffs2/nodemgmt.c |    6 ++++--
+ 1 file changed, 4 insertions(+), 2 deletions(-)
+
+--- a/fs/jffs2/nodemgmt.c
++++ b/fs/jffs2/nodemgmt.c
+@@ -375,14 +375,16 @@ static int jffs2_do_reserve_space(struct
+                       spin_unlock(&c->erase_completion_lock);
+                       ret = jffs2_prealloc_raw_node_refs(c, jeb, 1);
+-                      if (ret)
+-                              return ret;
++
+                       /* Just lock it again and continue. Nothing much can change because
+                          we hold c->alloc_sem anyway. In fact, it's not entirely clear why
+                          we hold c->erase_completion_lock in the majority of this function...
+                          but that's a question for another (more caffeine-rich) day. */
+                       spin_lock(&c->erase_completion_lock);
++                      if (ret)
++                              return ret;
++
+                       waste = jeb->free_size;
+                       jffs2_link_node_ref(c, jeb,
+                                           (jeb->offset + c->sector_size - waste) | REF_OBSOLETE,
index bc00d154290d78f6d44993c629fed7c497aa28b7..59cbae1e0150d2b29c6f4b2c4db1fc67aefbfb38 100644 (file)
@@ -32,3 +32,10 @@ mtd-nand-gpmi-reset-bch-earlier-too-to-avoid-nand-startup-problems.patch
 sunrpc-continue-run-over-clients-list-on-pipefs-event-instead-of-break.patch
 sunrpc-ensure-that-we-free-the-rpc_task-after-cleanups-are-done.patch
 sunrpc-ensure-we-release-the-socket-write-lock-if-the-rpc_task-exits-early.patch
+jffs2-hold-erase_completion_lock-on-exit.patch
+i2400m-add-intel-6150-device-ids.patch
+intel-iommu-free-old-page-tables-before-creating-superpage.patch
+drm-radeon-fix-edp-clk-and-lane-setup-for-scaled-modes.patch
+drm-radeon-add-wait_until-to-evergreen-vm-safe-reg-list.patch
+drm-radeon-properly-handle-ddc-probe-for-dp-bridges.patch
+drm-i915-make-the-panel-fitter-work-on-pipes-b-and-c-on-ivb.patch