[kernel] r19788 - in dists/sid/linux/debian: . patches patches/bugfix/all patches/features/all/drm patches/features/x86/efi-stub

Ben Hutchings benh at alioth.debian.org
Wed Feb 6 05:33:01 UTC 2013


Author: benh
Date: Wed Feb  6 05:33:01 2013
New Revision: 19788

Log:
Update to 3.2.38

Modified:
   dists/sid/linux/debian/changelog
   dists/sid/linux/debian/patches/bugfix/all/usb-Add-USB_QUIRK_RESET_RESUME-for-all-Logitech-UVC-.patch
   dists/sid/linux/debian/patches/features/all/drm/drm-3.4.patch
   dists/sid/linux/debian/patches/features/x86/efi-stub/0002-x86-Don-t-use-magic-strings-for-EFI-loader-signature.patch
   dists/sid/linux/debian/patches/series

Modified: dists/sid/linux/debian/changelog
==============================================================================
--- dists/sid/linux/debian/changelog	Wed Feb  6 04:16:13 2013	(r19787)
+++ dists/sid/linux/debian/changelog	Wed Feb  6 05:33:01 2013	(r19788)
@@ -1,4 +1,4 @@
-linux (3.2.37-1) UNRELEASED; urgency=low
+linux (3.2.38-1) UNRELEASED; urgency=low
 
   * New upstream stable update:
     http://www.kernel.org/pub/linux/kernel/v3.x/ChangeLog-3.2.36
@@ -43,6 +43,31 @@
     - tcp: RFC 5961 5.2 Blind Data Injection Attack Mitigation
     - RDMA/nes: Fix for crash when registering zero length MR for CQ
     - ACPI : do not use Lid and Sleep button for S5 wakeup
+    http://www.kernel.org/pub/linux/kernel/v3.x/ChangeLog-3.2.38
+    - staging: comedi: comedi_test: fix race when cancelling command
+    - mm: use aligned zone start for pfn_to_bitidx calculation
+    - [s390] s390/time: fix sched_clock() overflow (Closes: #698382) 
+    - [i386] xen: Fix stack corruption in xen_failsafe_callback for 32bit
+      PVOPS guests. (CVE-2013-0190)
+    - KVM: PPC: Emulate dcbf
+    - evm: checking if removexattr is not a NULL
+    - ath9k_htc: Fix memory leak
+    - ath9k: do not link receive buffers during flush
+    - ath9k: fix double-free bug on beacon generate failure
+    - x86/msr: Add capabilities check
+    - can: c_can: fix invalid error codes
+    - can: ti_hecc: fix invalid error codes
+    - can: pch_can: fix invalid error codes
+    - smp: Fix SMP function call empty cpu mask race
+    - xfs: Fix possible use-after-free with AIO
+    - EDAC: Test correct variable in ->store function
+    - samsung-laptop: Disable on EFI hardware, to avoid damaging it
+    - NFS: Don't silently fail setattr() requests on mountpoints
+    - intel-iommu: Prevent devices with RMRRs from being placed into SI Domain
+    - ALSA: usb-audio: Fix regression by disconnection-race-fix patch
+      (Closes: #696321)
+    - printk: fix buffer overflow when calling log_prefix function from
+      call_console_drivers
 
   [ Ben Hutchings ]
   * Input: wacom - fix touch support for Bamboo Fun CTH-461
@@ -79,18 +104,14 @@
     hid-quanta, hid-samsung, hid-speedlink
   * radeon: Firmware is required for DRM and KMS on R600 onward, but not
     for KMS on earlier chips (Closes: #697229)
-  * vt6656: Fix inconsistent structure packing which leads to crash on amd64
   * [!powerpc] radeon: Reenable DRM_RADEON_KMS, as it apparently works on
     most non-PowerMac systems
   * fs: cachefiles: add support for large files in filesystem caching
     (Closes: #698376)
-  * [i386] xen: Fix stack corruption in xen_failsafe_callback for 32bit PVOPS
-    guests. (CVE-2013-0190)
   * [rt] Update to 3.2.37-rt55:
     - sched: Adjust sched_reset_on_fork when nothing else changes
     - sched: Queue RT tasks to head when prio drops
     - sched: Consider pi boosting in setscheduler
-  * [s390] s390/time: fix sched_clock() overflow (Closes: #698382) 
   * bridge: Pull ip header into skb->data before looking into ip header.
     (Closes: #697903)
   * [armel/versatile,armhf/vexpress] i2c: Enable I2C, I2C_VERSATILE as modules

Modified: dists/sid/linux/debian/patches/bugfix/all/usb-Add-USB_QUIRK_RESET_RESUME-for-all-Logitech-UVC-.patch
==============================================================================
--- dists/sid/linux/debian/patches/bugfix/all/usb-Add-USB_QUIRK_RESET_RESUME-for-all-Logitech-UVC-.patch	Wed Feb  6 04:16:13 2013	(r19787)
+++ dists/sid/linux/debian/patches/bugfix/all/usb-Add-USB_QUIRK_RESET_RESUME-for-all-Logitech-UVC-.patch	Wed Feb  6 05:33:01 2013	(r19788)
@@ -12,17 +12,16 @@
 Signed-off-by: Laurent Pinchart <laurent.pinchart at ideasonboard.com>
 Acked-by: Alan Stern <stern at rowland.harvard.edu>
 Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
+[bwh: Adjust context to apply after 3.2.38]
 ---
  drivers/usb/core/quirks.c |   58 +++++++++++++--------------------------------
  1 file changed, 16 insertions(+), 42 deletions(-)
 
-diff --git a/drivers/usb/core/quirks.c b/drivers/usb/core/quirks.c
-index cbd15d1..f15501f4c 100644
 --- a/drivers/usb/core/quirks.c
 +++ b/drivers/usb/core/quirks.c
-@@ -43,53 +43,23 @@ static const struct usb_device_id usb_quirk_list[] = {
- 	/* Creative SB Audigy 2 NX */
- 	{ USB_DEVICE(0x041e, 0x3020), .driver_info = USB_QUIRK_RESET_RESUME },
+@@ -46,53 +46,23 @@ static const struct usb_device_id usb_qu
+ 	/* Microsoft LifeCam-VX700 v2.0 */
+ 	{ USB_DEVICE(0x045e, 0x0770), .driver_info = USB_QUIRK_RESET_RESUME },
  
 -	/* Logitech Webcam C200 */
 -	{ USB_DEVICE(0x046d, 0x0802), .driver_info = USB_QUIRK_RESET_RESUME },
@@ -86,7 +85,7 @@
  
  	/* Logitech Harmony 700-series */
  	{ USB_DEVICE(0x046d, 0xc122), .driver_info = USB_QUIRK_DELAY_INIT },
-@@ -162,6 +132,10 @@ static const struct usb_device_id usb_quirk_list[] = {
+@@ -169,6 +139,10 @@ static const struct usb_device_id usb_qu
  };
  
  static const struct usb_device_id usb_interface_quirk_list[] = {

Modified: dists/sid/linux/debian/patches/features/all/drm/drm-3.4.patch
==============================================================================
--- dists/sid/linux/debian/patches/features/all/drm/drm-3.4.patch	Wed Feb  6 04:16:13 2013	(r19787)
+++ dists/sid/linux/debian/patches/features/all/drm/drm-3.4.patch	Wed Feb  6 05:33:01 2013	(r19788)
@@ -42875,10 +42875,18 @@
  	  dvo_ch7xxx.o \
  	  dvo_ch7017.o \
 diff --git a/drivers/gpu/drm/i915/i915_debugfs.c b/drivers/gpu/drm/i915/i915_debugfs.c
-index d00f905..e6162a1 100644
+index 10fe480..e6162a1 100644
 --- a/drivers/gpu/drm/i915/i915_debugfs.c
 +++ b/drivers/gpu/drm/i915/i915_debugfs.c
-@@ -83,6 +83,7 @@ static int i915_capabilities(struct seq_file *m, void *data)
+@@ -30,7 +30,6 @@
+ #include <linux/debugfs.h>
+ #include <linux/slab.h>
+ #include <linux/export.h>
+-#include <generated/utsrelease.h>
+ #include "drmP.h"
+ #include "drm.h"
+ #include "intel_drv.h"
+@@ -84,6 +83,7 @@ static int i915_capabilities(struct seq_file *m, void *data)
  	B(supports_tv);
  	B(has_bsd_ring);
  	B(has_blt_ring);
@@ -42886,7 +42894,7 @@
  #undef B
  
  	return 0;
-@@ -121,11 +122,11 @@ static const char *cache_level_str(int type)
+@@ -122,11 +122,11 @@ static const char *cache_level_str(int type)
  static void
  describe_obj(struct seq_file *m, struct drm_i915_gem_object *obj)
  {
@@ -42900,7 +42908,7 @@
  		   obj->base.read_domains,
  		   obj->base.write_domain,
  		   obj->last_rendering_seqno,
-@@ -339,7 +340,7 @@ static int i915_gem_pageflip_info(struct seq_file *m, void *data)
+@@ -340,7 +340,7 @@ static int i915_gem_pageflip_info(struct seq_file *m, void *data)
  			seq_printf(m, "No flip due on pipe %c (plane %c)\n",
  				   pipe, plane);
  		} else {
@@ -42909,7 +42917,7 @@
  				seq_printf(m, "Flip queued on pipe %c (plane %c)\n",
  					   pipe, plane);
  			} else {
-@@ -350,7 +351,7 @@ static int i915_gem_pageflip_info(struct seq_file *m, void *data)
+@@ -351,7 +351,7 @@ static int i915_gem_pageflip_info(struct seq_file *m, void *data)
  				seq_printf(m, "Stall check enabled, ");
  			else
  				seq_printf(m, "Stall check waiting for page flip ioctl, ");
@@ -42918,7 +42926,7 @@
  
  			if (work->old_fb_obj) {
  				struct drm_i915_gem_object *obj = work->old_fb_obj;
-@@ -563,45 +564,6 @@ static int i915_hws_info(struct seq_file *m, void *data)
+@@ -564,45 +564,6 @@ static int i915_hws_info(struct seq_file *m, void *data)
  	return 0;
  }
  
@@ -42964,7 +42972,7 @@
  static int i915_ringbuffer_data(struct seq_file *m, void *data)
  {
  	struct drm_info_node *node = (struct drm_info_node *) m->private;
-@@ -653,7 +615,7 @@ static int i915_ringbuffer_info(struct seq_file *m, void *data)
+@@ -654,7 +615,7 @@ static int i915_ringbuffer_info(struct seq_file *m, void *data)
  	seq_printf(m, "  Size :    %08x\n", ring->size);
  	seq_printf(m, "  Active :  %08x\n", intel_ring_get_active_head(ring));
  	seq_printf(m, "  NOPID :   %08x\n", I915_READ_NOPID(ring));
@@ -42973,7 +42981,7 @@
  		seq_printf(m, "  Sync 0 :   %08x\n", I915_READ_SYNC_0(ring));
  		seq_printf(m, "  Sync 1 :   %08x\n", I915_READ_SYNC_1(ring));
  	}
-@@ -668,9 +630,9 @@ static int i915_ringbuffer_info(struct seq_file *m, void *data)
+@@ -669,9 +630,9 @@ static int i915_ringbuffer_info(struct seq_file *m, void *data)
  static const char *ring_str(int ring)
  {
  	switch (ring) {
@@ -42986,7 +42994,7 @@
  	default: return "";
  	}
  }
-@@ -713,7 +675,7 @@ static void print_error_buffers(struct seq_file *m,
+@@ -714,7 +675,7 @@ static void print_error_buffers(struct seq_file *m,
  	seq_printf(m, "%s [%d]:\n", name, count);
  
  	while (count--) {
@@ -42995,7 +43003,7 @@
  			   err->gtt_offset,
  			   err->size,
  			   err->read_domains,
-@@ -723,6 +685,7 @@ static void print_error_buffers(struct seq_file *m,
+@@ -724,6 +685,7 @@ static void print_error_buffers(struct seq_file *m,
  			   tiling_flag(err->tiling),
  			   dirty_flag(err->dirty),
  			   purgeable_flag(err->purgeable),
@@ -43003,7 +43011,7 @@
  			   ring_str(err->ring),
  			   cache_level_str(err->cache_level));
  
-@@ -736,6 +699,38 @@ static void print_error_buffers(struct seq_file *m,
+@@ -737,6 +699,38 @@ static void print_error_buffers(struct seq_file *m,
  	}
  }
  
@@ -43042,7 +43050,7 @@
  static int i915_error_state(struct seq_file *m, void *unused)
  {
  	struct drm_info_node *node = (struct drm_info_node *) m->private;
-@@ -743,7 +738,7 @@ static int i915_error_state(struct seq_file *m, void *unused)
+@@ -744,7 +738,7 @@ static int i915_error_state(struct seq_file *m, void *unused)
  	drm_i915_private_t *dev_priv = dev->dev_private;
  	struct drm_i915_error_state *error;
  	unsigned long flags;
@@ -43051,7 +43059,11 @@
  
  	spin_lock_irqsave(&dev_priv->error_lock, flags);
  	if (!dev_priv->first_error) {
-@@ -758,35 +753,20 @@ static int i915_error_state(struct seq_file *m, void *unused)
+@@ -756,39 +750,23 @@ static int i915_error_state(struct seq_file *m, void *unused)
+ 
+ 	seq_printf(m, "Time: %ld s %ld us\n", error->time.tv_sec,
+ 		   error->time.tv_usec);
+-	seq_printf(m, "Kernel: " UTS_RELEASE);
  	seq_printf(m, "PCI ID: 0x%04x\n", dev->pci_device);
  	seq_printf(m, "EIR: 0x%08x\n", error->eir);
  	seq_printf(m, "PGTBL_ER: 0x%08x\n", error->pgtbl_er);
@@ -43097,7 +43109,7 @@
  
  	if (error->active_bo)
  		print_error_buffers(m, "Active",
-@@ -798,10 +778,10 @@ static int i915_error_state(struct seq_file *m, void *unused)
+@@ -800,10 +778,10 @@ static int i915_error_state(struct seq_file *m, void *unused)
  				    error->pinned_bo,
  				    error->pinned_bo_count);
  
@@ -43111,7 +43123,7 @@
  			seq_printf(m, "%s --- gtt_offset = 0x%08x\n",
  				   dev_priv->ring[i].name,
  				   obj->gtt_offset);
-@@ -813,11 +793,20 @@ static int i915_error_state(struct seq_file *m, void *unused)
+@@ -815,11 +793,20 @@ static int i915_error_state(struct seq_file *m, void *unused)
  				}
  			}
  		}
@@ -43136,7 +43148,7 @@
  			seq_printf(m, "%s --- ringbuffer = 0x%08x\n",
  				   dev_priv->ring[i].name,
  				   obj->gtt_offset);
-@@ -1001,7 +990,7 @@ static int i915_inttoext_table(struct seq_file *m, void *unused)
+@@ -1003,7 +990,7 @@ static int i915_inttoext_table(struct seq_file *m, void *unused)
  	return 0;
  }
  
@@ -43145,7 +43157,7 @@
  {
  	struct drm_info_node *node = (struct drm_info_node *) m->private;
  	struct drm_device *dev = node->minor->dev;
-@@ -1068,6 +1057,95 @@ static int i915_drpc_info(struct seq_file *m, void *unused)
+@@ -1070,6 +1057,95 @@ static int i915_drpc_info(struct seq_file *m, void *unused)
  	return 0;
  }
  
@@ -43241,7 +43253,7 @@
  static int i915_fbc_status(struct seq_file *m, void *unused)
  {
  	struct drm_info_node *node = (struct drm_info_node *) m->private;
-@@ -1146,6 +1224,9 @@ static int i915_emon_status(struct seq_file *m, void *unused)
+@@ -1148,6 +1224,9 @@ static int i915_emon_status(struct seq_file *m, void *unused)
  	unsigned long temp, chipset, gfx;
  	int ret;
  
@@ -43251,7 +43263,7 @@
  	ret = mutex_lock_interruptible(&dev->struct_mutex);
  	if (ret)
  		return ret;
-@@ -1325,11 +1406,102 @@ static int i915_gen6_forcewake_count_info(struct seq_file *m, void *data)
+@@ -1327,11 +1406,102 @@ static int i915_gen6_forcewake_count_info(struct seq_file *m, void *data)
  	return 0;
  }
  
@@ -43358,7 +43370,7 @@
  	return 0;
  }
  
-@@ -1383,20 +1555,12 @@ i915_wedged_write(struct file *filp,
+@@ -1385,20 +1555,12 @@ i915_wedged_write(struct file *filp,
  
  static const struct file_operations i915_wedged_fops = {
  	.owner = THIS_MODULE,
@@ -43380,7 +43392,7 @@
  static ssize_t
  i915_max_freq_read(struct file *filp,
  		   char __user *ubuf,
-@@ -1453,20 +1617,12 @@ i915_max_freq_write(struct file *filp,
+@@ -1455,20 +1617,12 @@ i915_max_freq_write(struct file *filp,
  
  static const struct file_operations i915_max_freq_fops = {
  	.owner = THIS_MODULE,
@@ -43402,7 +43414,7 @@
  static ssize_t
  i915_cache_sharing_read(struct file *filp,
  		   char __user *ubuf,
-@@ -1532,7 +1688,7 @@ i915_cache_sharing_write(struct file *filp,
+@@ -1534,7 +1688,7 @@ i915_cache_sharing_write(struct file *filp,
  
  static const struct file_operations i915_cache_sharing_fops = {
  	.owner = THIS_MODULE,
@@ -43411,7 +43423,7 @@
  	.read = i915_cache_sharing_read,
  	.write = i915_cache_sharing_write,
  	.llseek = default_llseek,
-@@ -1564,28 +1720,13 @@ drm_add_fake_info_node(struct drm_minor *minor,
+@@ -1566,28 +1720,13 @@ drm_add_fake_info_node(struct drm_minor *minor,
  	return 0;
  }
  
@@ -43441,7 +43453,7 @@
  		return 0;
  
  	ret = mutex_lock_interruptible(&dev->struct_mutex);
-@@ -1602,7 +1743,7 @@ int i915_forcewake_release(struct inode *inode, struct file *file)
+@@ -1604,7 +1743,7 @@ int i915_forcewake_release(struct inode *inode, struct file *file)
  	struct drm_device *dev = inode->i_private;
  	struct drm_i915_private *dev_priv = dev->dev_private;
  
@@ -43450,7 +43462,7 @@
  		return 0;
  
  	/*
-@@ -1640,34 +1781,22 @@ static int i915_forcewake_create(struct dentry *root, struct drm_minor *minor)
+@@ -1642,34 +1781,22 @@ static int i915_forcewake_create(struct dentry *root, struct drm_minor *minor)
  	return drm_add_fake_info_node(minor, ent, &i915_forcewake_fops);
  }
  
@@ -43492,7 +43504,7 @@
  }
  
  static struct drm_info_list i915_debugfs_list[] = {
-@@ -1693,7 +1822,6 @@ static struct drm_info_list i915_debugfs_list[] = {
+@@ -1695,7 +1822,6 @@ static struct drm_info_list i915_debugfs_list[] = {
  	{"i915_bsd_ringbuffer_info", i915_ringbuffer_info, 0, (void *)VCS},
  	{"i915_blt_ringbuffer_data", i915_ringbuffer_data, 0, (void *)BCS},
  	{"i915_blt_ringbuffer_info", i915_ringbuffer_info, 0, (void *)BCS},
@@ -43500,7 +43512,7 @@
  	{"i915_error_state", i915_error_state, 0},
  	{"i915_rstdby_delays", i915_rstdby_delays, 0},
  	{"i915_cur_delayinfo", i915_cur_delayinfo, 0},
-@@ -1709,6 +1837,8 @@ static struct drm_info_list i915_debugfs_list[] = {
+@@ -1711,6 +1837,8 @@ static struct drm_info_list i915_debugfs_list[] = {
  	{"i915_gem_framebuffer", i915_gem_framebuffer_info, 0},
  	{"i915_context_status", i915_context_status, 0},
  	{"i915_gen6_forcewake_count", i915_gen6_forcewake_count_info, 0},
@@ -43509,7 +43521,7 @@
  };
  #define I915_DEBUGFS_ENTRIES ARRAY_SIZE(i915_debugfs_list)
  
-@@ -1716,17 +1846,25 @@ int i915_debugfs_init(struct drm_minor *minor)
+@@ -1718,17 +1846,25 @@ int i915_debugfs_init(struct drm_minor *minor)
  {
  	int ret;
  
@@ -44467,7 +44479,7 @@
  #define __i915_read(x, y) \
  	u##x i915_read##x(struct drm_i915_private *dev_priv, u32 reg);
 diff --git a/drivers/gpu/drm/i915/i915_gem.c b/drivers/gpu/drm/i915/i915_gem.c
-index 5950ba3..a230a93 100644
+index b0186b8..a230a93 100644
 --- a/drivers/gpu/drm/i915/i915_gem.c
 +++ b/drivers/gpu/drm/i915/i915_gem.c
 @@ -58,6 +58,7 @@ static void i915_gem_free_object_tail(struct drm_i915_gem_object *obj);
@@ -45246,7 +45258,26 @@
  				    atomic_read(&dev_priv->mm.wedged), 3000)) {
  			ret = -EBUSY;
  		}
-@@ -3657,8 +3607,8 @@ struct drm_i915_gem_object *i915_gem_alloc_object(struct drm_device *dev,
+@@ -3456,15 +3406,14 @@ i915_gem_pin_ioctl(struct drm_device *dev, void *data,
+ 		goto out;
+ 	}
+ 
+-	if (obj->user_pin_count == 0) {
++	obj->user_pin_count++;
++	obj->pin_filp = file;
++	if (obj->user_pin_count == 1) {
+ 		ret = i915_gem_object_pin(obj, args->alignment, true);
+ 		if (ret)
+ 			goto out;
+ 	}
+ 
+-	obj->user_pin_count++;
+-	obj->pin_filp = file;
+-
+ 	/* XXX - flush the CPU caches for pinned objects
+ 	 * as the X server doesn't manage domains yet
+ 	 */
+@@ -3658,8 +3607,8 @@ struct drm_i915_gem_object *i915_gem_alloc_object(struct drm_device *dev,
  	obj->base.write_domain = I915_GEM_DOMAIN_CPU;
  	obj->base.read_domains = I915_GEM_DOMAIN_CPU;
  
@@ -45257,7 +45288,7 @@
  		 * cache) for about a 10% performance improvement
  		 * compared to uncached.  Graphics requests other than
  		 * display scanout are coherent with the CPU in
-@@ -3748,7 +3698,7 @@ i915_gem_idle(struct drm_device *dev)
+@@ -3749,7 +3698,7 @@ i915_gem_idle(struct drm_device *dev)
  		return 0;
  	}
  
@@ -45266,7 +45297,7 @@
  	if (ret) {
  		mutex_unlock(&dev->struct_mutex);
  		return ret;
-@@ -3783,12 +3733,91 @@ i915_gem_idle(struct drm_device *dev)
+@@ -3784,12 +3733,91 @@ i915_gem_idle(struct drm_device *dev)
  	return 0;
  }
  
@@ -45359,7 +45390,7 @@
  	ret = intel_init_render_ring_buffer(dev);
  	if (ret)
  		return ret;
-@@ -3807,6 +3836,8 @@ i915_gem_init_ringbuffer(struct drm_device *dev)
+@@ -3808,6 +3836,8 @@ i915_gem_init_ringbuffer(struct drm_device *dev)
  
  	dev_priv->next_seqno = 1;
  
@@ -45368,7 +45399,7 @@
  	return 0;
  
  cleanup_bsd_ring:
-@@ -3844,7 +3875,7 @@ i915_gem_entervt_ioctl(struct drm_device *dev, void *data,
+@@ -3845,7 +3875,7 @@ i915_gem_entervt_ioctl(struct drm_device *dev, void *data,
  	mutex_lock(&dev->struct_mutex);
  	dev_priv->mm.suspended = 0;
  
@@ -45377,7 +45408,7 @@
  	if (ret != 0) {
  		mutex_unlock(&dev->struct_mutex);
  		return ret;
-@@ -4239,7 +4270,7 @@ rescan:
+@@ -4240,7 +4270,7 @@ rescan:
  		 * This has a dramatic impact to reduce the number of
  		 * OOM-killer events whilst running the GPU aggressively.
  		 */
@@ -45450,7 +45481,7 @@
  		return ret;
  
 diff --git a/drivers/gpu/drm/i915/i915_gem_execbuffer.c b/drivers/gpu/drm/i915/i915_gem_execbuffer.c
-index 1202198..d4417e3 100644
+index 878b989..d4417e3 100644
 --- a/drivers/gpu/drm/i915/i915_gem_execbuffer.c
 +++ b/drivers/gpu/drm/i915/i915_gem_execbuffer.c
 @@ -203,9 +203,9 @@ i915_gem_object_set_to_gpu_domain(struct drm_i915_gem_object *obj,
@@ -45715,42 +45746,7 @@
  	}
  
  	return ret;
-@@ -657,6 +707,8 @@ i915_gem_execbuffer_relocate_slow(struct drm_device *dev,
- 	total = 0;
- 	for (i = 0; i < count; i++) {
- 		struct drm_i915_gem_relocation_entry __user *user_relocs;
-+		u64 invalid_offset = (u64)-1;
-+		int j;
- 
- 		user_relocs = (void __user *)(uintptr_t)exec[i].relocs_ptr;
- 
-@@ -667,6 +719,25 @@ i915_gem_execbuffer_relocate_slow(struct drm_device *dev,
- 			goto err;
- 		}
- 
-+		/* As we do not update the known relocation offsets after
-+		 * relocating (due to the complexities in lock handling),
-+		 * we need to mark them as invalid now so that we force the
-+		 * relocation processing next time. Just in case the target
-+		 * object is evicted and then rebound into its old
-+		 * presumed_offset before the next execbuffer - if that
-+		 * happened we would make the mistake of assuming that the
-+		 * relocations were valid.
-+		 */
-+		for (j = 0; j < exec[i].relocation_count; j++) {
-+			if (copy_to_user(&user_relocs[j].presumed_offset,
-+					 &invalid_offset,
-+					 sizeof(invalid_offset))) {
-+				ret = -EFAULT;
-+				mutex_lock(&dev->struct_mutex);
-+				goto err;
-+			}
-+		}
-+
- 		reloc_offset[i] = total;
- 		total += exec[i].relocation_count;
- 	}
-@@ -683,7 +754,7 @@ i915_gem_execbuffer_relocate_slow(struct drm_device *dev,
+@@ -704,7 +754,7 @@ i915_gem_execbuffer_relocate_slow(struct drm_device *dev,
  		obj = to_intel_bo(drm_gem_object_lookup(dev, file,
  							exec[i].handle));
  		if (&obj->base == NULL) {
@@ -45759,7 +45755,7 @@
  				   exec[i].handle, i);
  			ret = -ENOENT;
  			goto err;
-@@ -972,6 +1043,31 @@ i915_gem_execbuffer_retire_commands(struct drm_device *dev,
+@@ -993,6 +1043,31 @@ i915_gem_execbuffer_retire_commands(struct drm_device *dev,
  }
  
  static int
@@ -45791,7 +45787,7 @@
  i915_gem_do_execbuffer(struct drm_device *dev, void *data,
  		       struct drm_file *file,
  		       struct drm_i915_gem_execbuffer2 *args,
-@@ -989,7 +1085,7 @@ i915_gem_do_execbuffer(struct drm_device *dev, void *data,
+@@ -1010,7 +1085,7 @@ i915_gem_do_execbuffer(struct drm_device *dev, void *data,
  	int ret, mode, i;
  
  	if (!i915_gem_check_execbuffer(args)) {
@@ -45800,7 +45796,7 @@
  		return -EINVAL;
  	}
  
-@@ -1004,20 +1100,20 @@ i915_gem_do_execbuffer(struct drm_device *dev, void *data,
+@@ -1025,20 +1100,20 @@ i915_gem_do_execbuffer(struct drm_device *dev, void *data,
  		break;
  	case I915_EXEC_BSD:
  		if (!HAS_BSD(dev)) {
@@ -45824,7 +45820,7 @@
  			  (int)(args->flags & I915_EXEC_RING_MASK));
  		return -EINVAL;
  	}
-@@ -1043,18 +1139,18 @@ i915_gem_do_execbuffer(struct drm_device *dev, void *data,
+@@ -1064,18 +1139,18 @@ i915_gem_do_execbuffer(struct drm_device *dev, void *data,
  		}
  		break;
  	default:
@@ -45846,7 +45842,7 @@
  			return -EINVAL;
  		}
  
-@@ -1104,7 +1200,7 @@ i915_gem_do_execbuffer(struct drm_device *dev, void *data,
+@@ -1125,7 +1200,7 @@ i915_gem_do_execbuffer(struct drm_device *dev, void *data,
  		obj = to_intel_bo(drm_gem_object_lookup(dev, file,
  							exec[i].handle));
  		if (&obj->base == NULL) {
@@ -45855,7 +45851,7 @@
  				   exec[i].handle, i);
  			/* prevent error path from reading uninitialized data */
  			ret = -ENOENT;
-@@ -1112,7 +1208,7 @@ i915_gem_do_execbuffer(struct drm_device *dev, void *data,
+@@ -1133,7 +1208,7 @@ i915_gem_do_execbuffer(struct drm_device *dev, void *data,
  		}
  
  		if (!list_empty(&obj->exec_list)) {
@@ -45864,7 +45860,7 @@
  				   obj, exec[i].handle, i);
  			ret = -EINVAL;
  			goto err;
-@@ -1150,7 +1246,7 @@ i915_gem_do_execbuffer(struct drm_device *dev, void *data,
+@@ -1171,7 +1246,7 @@ i915_gem_do_execbuffer(struct drm_device *dev, void *data,
  
  	/* Set the pending read domains for the batch buffer to COMMAND */
  	if (batch_obj->base.pending_write_domain) {
@@ -45873,7 +45869,7 @@
  		ret = -EINVAL;
  		goto err;
  	}
-@@ -1167,7 +1263,7 @@ i915_gem_do_execbuffer(struct drm_device *dev, void *data,
+@@ -1188,7 +1263,7 @@ i915_gem_do_execbuffer(struct drm_device *dev, void *data,
  			 * so every billion or so execbuffers, we need to stall
  			 * the GPU in order to reset the counters.
  			 */
@@ -45882,7 +45878,7 @@
  			if (ret)
  				goto err;
  
-@@ -1190,6 +1286,12 @@ i915_gem_do_execbuffer(struct drm_device *dev, void *data,
+@@ -1211,6 +1286,12 @@ i915_gem_do_execbuffer(struct drm_device *dev, void *data,
  		dev_priv->relative_constants_mode = mode;
  	}
  
@@ -45895,7 +45891,7 @@
  	trace_i915_gem_ring_dispatch(ring, seqno);
  
  	exec_start = batch_obj->gtt_offset + args->batch_start_offset;
-@@ -1249,7 +1351,7 @@ i915_gem_execbuffer(struct drm_device *dev, void *data,
+@@ -1270,7 +1351,7 @@ i915_gem_execbuffer(struct drm_device *dev, void *data,
  	int ret, i;
  
  	if (args->buffer_count < 1) {
@@ -45904,7 +45900,7 @@
  		return -EINVAL;
  	}
  
-@@ -1257,7 +1359,7 @@ i915_gem_execbuffer(struct drm_device *dev, void *data,
+@@ -1278,7 +1359,7 @@ i915_gem_execbuffer(struct drm_device *dev, void *data,
  	exec_list = drm_malloc_ab(sizeof(*exec_list), args->buffer_count);
  	exec2_list = drm_malloc_ab(sizeof(*exec2_list), args->buffer_count);
  	if (exec_list == NULL || exec2_list == NULL) {
@@ -45913,7 +45909,7 @@
  			  args->buffer_count);
  		drm_free_large(exec_list);
  		drm_free_large(exec2_list);
-@@ -1268,7 +1370,7 @@ i915_gem_execbuffer(struct drm_device *dev, void *data,
+@@ -1289,7 +1370,7 @@ i915_gem_execbuffer(struct drm_device *dev, void *data,
  			     (uintptr_t) args->buffers_ptr,
  			     sizeof(*exec_list) * args->buffer_count);
  	if (ret != 0) {
@@ -45922,7 +45918,7 @@
  			  args->buffer_count, ret);
  		drm_free_large(exec_list);
  		drm_free_large(exec2_list);
-@@ -1309,7 +1411,7 @@ i915_gem_execbuffer(struct drm_device *dev, void *data,
+@@ -1330,7 +1411,7 @@ i915_gem_execbuffer(struct drm_device *dev, void *data,
  				   sizeof(*exec_list) * args->buffer_count);
  		if (ret) {
  			ret = -EFAULT;
@@ -45931,7 +45927,7 @@
  				  "back to user (%d)\n",
  				  args->buffer_count, ret);
  		}
-@@ -1330,7 +1432,7 @@ i915_gem_execbuffer2(struct drm_device *dev, void *data,
+@@ -1351,7 +1432,7 @@ i915_gem_execbuffer2(struct drm_device *dev, void *data,
  
  	if (args->buffer_count < 1 ||
  	    args->buffer_count > UINT_MAX / sizeof(*exec2_list)) {
@@ -45940,7 +45936,7 @@
  		return -EINVAL;
  	}
  
-@@ -1340,7 +1442,7 @@ i915_gem_execbuffer2(struct drm_device *dev, void *data,
+@@ -1361,7 +1442,7 @@ i915_gem_execbuffer2(struct drm_device *dev, void *data,
  		exec2_list = drm_malloc_ab(sizeof(*exec2_list),
  					   args->buffer_count);
  	if (exec2_list == NULL) {
@@ -45949,7 +45945,7 @@
  			  args->buffer_count);
  		return -ENOMEM;
  	}
-@@ -1349,7 +1451,7 @@ i915_gem_execbuffer2(struct drm_device *dev, void *data,
+@@ -1370,7 +1451,7 @@ i915_gem_execbuffer2(struct drm_device *dev, void *data,
  			     (uintptr_t) args->buffers_ptr,
  			     sizeof(*exec2_list) * args->buffer_count);
  	if (ret != 0) {
@@ -45958,7 +45954,7 @@
  			  args->buffer_count, ret);
  		drm_free_large(exec2_list);
  		return -EFAULT;
-@@ -1364,7 +1466,7 @@ i915_gem_execbuffer2(struct drm_device *dev, void *data,
+@@ -1385,7 +1466,7 @@ i915_gem_execbuffer2(struct drm_device *dev, void *data,
  				   sizeof(*exec2_list) * args->buffer_count);
  		if (ret) {
  			ret = -EFAULT;
@@ -47004,19 +47000,10 @@
 -	return 0;
 -}
 diff --git a/drivers/gpu/drm/i915/i915_reg.h b/drivers/gpu/drm/i915/i915_reg.h
-index 7a10f5f..dde62bf 100644
+index 124dd87..dde62bf 100644
 --- a/drivers/gpu/drm/i915/i915_reg.h
 +++ b/drivers/gpu/drm/i915/i915_reg.h
-@@ -27,6 +27,8 @@
- 
- #define _PIPE(pipe, a, b) ((a) + (pipe)*((b)-(a)))
- 
-+#define _MASKED_BIT_ENABLE(a) (((a) << 16) | (a))
-+
- /*
-  * The Bridge device's PCI config space has information about the
-  * fb aperture size and the amount of pre-reserved memory.
-@@ -86,12 +88,45 @@
+@@ -88,12 +88,45 @@
  #define   GEN6_MBC_SNPCR_LOW	(2<<21)
  #define   GEN6_MBC_SNPCR_MIN	(3<<21) /* only 1/16th of the cache is shared */
  
@@ -47062,7 +47049,7 @@
  /* VGA stuff */
  
  #define VGA_ST01_MDA 0x3ba
-@@ -303,6 +338,12 @@
+@@ -305,6 +338,12 @@
  #define FENCE_REG_SANDYBRIDGE_0		0x100000
  #define   SANDYBRIDGE_FENCE_PITCH_SHIFT	32
  
@@ -47075,7 +47062,7 @@
  /*
   * Instruction and interrupt control regs
   */
-@@ -326,7 +367,14 @@
+@@ -328,7 +367,14 @@
  #define RING_MAX_IDLE(base)	((base)+0x54)
  #define RING_HWS_PGA(base)	((base)+0x80)
  #define RING_HWS_PGA_GEN6(base)	((base)+0x2080)
@@ -47090,7 +47077,7 @@
  #define BSD_HWS_PGA_GEN7	(0x04180)
  #define BLT_HWS_PGA_GEN7	(0x04280)
  #define RING_ACTHD(base)	((base)+0x74)
-@@ -360,6 +408,12 @@
+@@ -362,6 +408,12 @@
  #define IPEIR_I965	0x02064
  #define IPEHR_I965	0x02068
  #define INSTDONE_I965	0x0206c
@@ -47103,7 +47090,7 @@
  #define INSTPS		0x02070 /* 965+ only */
  #define INSTDONE1	0x0207c /* 965+ only */
  #define ACTHD_I965	0x02074
-@@ -373,14 +427,6 @@
+@@ -375,14 +427,6 @@
  #define INSTDONE	0x02090
  #define NOPID		0x02094
  #define HWSTAM		0x02098
@@ -47118,20 +47105,11 @@
  
  #define ERROR_GEN6	0x040a0
  
-@@ -389,6 +435,7 @@
-  * the enables for writing to the corresponding low bit.
-  */
- #define _3D_CHICKEN	0x02084
-+#define _3D_CHICKEN_HIZ_PLANE_DISABLE_MSAA_4X_SNB	(1 << 10)
- #define _3D_CHICKEN2	0x0208c
- /* Disables pipelining of read flushes past the SF-WIZ interface.
-  * Required on all Ironlake steppings according to the B-Spec, but the
-@@ -399,13 +446,14 @@
- 
+@@ -403,13 +447,13 @@
  #define MI_MODE		0x0209c
  # define VS_TIMER_DISPATCH				(1 << 6)
--# define MI_FLUSH_ENABLE				(1 << 11)
-+# define MI_FLUSH_ENABLE				(1 << 12)
+ # define MI_FLUSH_ENABLE				(1 << 12)
+-# define ASYNC_FLIP_PERF_DISABLE			(1 << 14)
  
  #define GEN6_GT_MODE	0x20d0
  #define   GEN6_GT_MODE_HI	(1 << 9)
@@ -47142,7 +47120,7 @@
  #define   GFX_RUN_LIST_ENABLE		(1<<15)
  #define   GFX_TLB_INVALIDATE_ALWAYS	(1<<13)
  #define   GFX_SURFACE_FAULT_ENABLE	(1<<12)
-@@ -1064,6 +1112,29 @@
+@@ -1068,6 +1112,29 @@
  #define C0DRB3			0x10206
  #define C1DRB3			0x10606
  
@@ -47172,7 +47150,7 @@
  /* Clocking configuration register */
  #define CLKCFG			0x10c00
  #define CLKCFG_FSB_400					(5 << 0)	/* hrawclk 100 */
-@@ -1343,6 +1414,7 @@
+@@ -1347,6 +1414,7 @@
  #define _VSYNC_A		0x60014
  #define _PIPEASRC	0x6001c
  #define _BCLRPAT_A	0x60020
@@ -47180,7 +47158,7 @@
  
  /* Pipe B timing regs */
  #define _HTOTAL_B	0x61000
-@@ -1353,6 +1425,8 @@
+@@ -1357,6 +1425,8 @@
  #define _VSYNC_B		0x61014
  #define _PIPEBSRC	0x6101c
  #define _BCLRPAT_B	0x61020
@@ -47189,7 +47167,7 @@
  
  #define HTOTAL(pipe) _PIPE(pipe, _HTOTAL_A, _HTOTAL_B)
  #define HBLANK(pipe) _PIPE(pipe, _HBLANK_A, _HBLANK_B)
-@@ -1361,6 +1435,7 @@
+@@ -1365,6 +1435,7 @@
  #define VBLANK(pipe) _PIPE(pipe, _VBLANK_A, _VBLANK_B)
  #define VSYNC(pipe) _PIPE(pipe, _VSYNC_A, _VSYNC_B)
  #define BCLRPAT(pipe) _PIPE(pipe, _BCLRPAT_A, _BCLRPAT_B)
@@ -47197,7 +47175,7 @@
  
  /* VGA port control */
  #define ADPA			0x61100
-@@ -1560,10 +1635,6 @@
+@@ -1564,10 +1635,6 @@
  
  /* Video Data Island Packet control */
  #define VIDEO_DIP_DATA		0x61178
@@ -47208,7 +47186,7 @@
  #define VIDEO_DIP_CTL		0x61170
  #define   VIDEO_DIP_ENABLE		(1 << 31)
  #define   VIDEO_DIP_PORT_B		(1 << 29)
-@@ -2357,9 +2428,21 @@
+@@ -2361,9 +2428,21 @@
  #define   PIPECONF_PALETTE	0
  #define   PIPECONF_GAMMA		(1<<24)
  #define   PIPECONF_FORCE_BORDER	(1<<25)
@@ -47232,7 +47210,7 @@
  #define   PIPECONF_CXSR_DOWNCLOCK	(1<<16)
  #define   PIPECONF_BPP_MASK	(0x000000e0)
  #define   PIPECONF_BPP_8	(0<<5)
-@@ -2498,6 +2581,8 @@
+@@ -2502,6 +2581,8 @@
  #define WM3_LP_ILK		0x45110
  #define  WM3_LP_EN		(1<<31)
  #define WM1S_LP_ILK		0x45120
@@ -47241,7 +47219,7 @@
  #define  WM1S_LP_EN		(1<<31)
  
  /* Memory latency timer register */
-@@ -2714,6 +2799,140 @@
+@@ -2718,6 +2799,140 @@
  #define _DSPBSURF		0x7119C
  #define _DSPBTILEOFF		0x711A4
  
@@ -47382,7 +47360,7 @@
  /* VBIOS regs */
  #define VGACNTRL		0x71400
  # define VGA_DISP_DISABLE			(1 << 31)
-@@ -2923,6 +3142,10 @@
+@@ -2927,6 +3142,10 @@
  #define   ILK_DPFC_DIS1		(1<<8)
  #define   ILK_DPFC_DIS2		(1<<9)
  
@@ -47393,7 +47371,7 @@
  #define DISP_ARB_CTL	0x45000
  #define  DISP_TILE_SURFACE_SWIZZLING	(1<<13)
  #define  DISP_FBC_WM_DIS		(1<<15)
-@@ -3118,6 +3341,7 @@
+@@ -3122,6 +3341,7 @@
  #define _TRANS_VSYNC_A           0xe0014
  #define  TRANS_VSYNC_END_SHIFT  16
  #define  TRANS_VSYNC_START_SHIFT 0
@@ -47401,7 +47379,7 @@
  
  #define _TRANSA_DATA_M1          0xe0030
  #define _TRANSA_DATA_N1          0xe0034
-@@ -3148,6 +3372,7 @@
+@@ -3152,6 +3372,7 @@
  #define _TRANS_VTOTAL_B          0xe100c
  #define _TRANS_VBLANK_B          0xe1010
  #define _TRANS_VSYNC_B           0xe1014
@@ -47409,7 +47387,7 @@
  
  #define TRANS_HTOTAL(pipe) _PIPE(pipe, _TRANS_HTOTAL_A, _TRANS_HTOTAL_B)
  #define TRANS_HBLANK(pipe) _PIPE(pipe, _TRANS_HBLANK_A, _TRANS_HBLANK_B)
-@@ -3155,6 +3380,8 @@
+@@ -3159,6 +3380,8 @@
  #define TRANS_VTOTAL(pipe) _PIPE(pipe, _TRANS_VTOTAL_A, _TRANS_VTOTAL_B)
  #define TRANS_VBLANK(pipe) _PIPE(pipe, _TRANS_VBLANK_A, _TRANS_VBLANK_B)
  #define TRANS_VSYNC(pipe) _PIPE(pipe, _TRANS_VSYNC_A, _TRANS_VSYNC_B)
@@ -47418,7 +47396,7 @@
  
  #define _TRANSB_DATA_M1          0xe1030
  #define _TRANSB_DATA_N1          0xe1034
-@@ -3188,7 +3415,10 @@
+@@ -3192,7 +3415,10 @@
  #define  TRANS_FSYNC_DELAY_HB4  (3<<27)
  #define  TRANS_DP_AUDIO_ONLY    (1<<26)
  #define  TRANS_DP_VIDEO_AUDIO   (0<<26)
@@ -47429,7 +47407,7 @@
  #define  TRANS_8BPC             (0<<5)
  #define  TRANS_10BPC            (1<<5)
  #define  TRANS_6BPC             (2<<5)
-@@ -3527,9 +3757,18 @@
+@@ -3531,9 +3757,18 @@
  #define  ECOBUS					0xa180
  #define    FORCEWAKE_MT_ENABLE			(1<<5)
  
@@ -47448,7 +47426,7 @@
  #define GEN6_UCGCTL2				0x9404
  # define GEN6_RCZUNIT_CLOCK_GATE_DISABLE		(1 << 13)
  # define GEN6_RCPBUNIT_CLOCK_GATE_DISABLE		(1 << 12)
-@@ -3617,6 +3856,14 @@
+@@ -3621,6 +3856,14 @@
  #define GEN6_PCODE_DATA				0x138128
  #define   GEN6_PCODE_FREQ_IA_RATIO_SHIFT	8
  
@@ -47463,7 +47441,7 @@
  #define G4X_AUD_VID_DID			0x62020
  #define INTEL_AUDIO_DEVCL		0x808629FB
  #define INTEL_AUDIO_DEVBLC		0x80862801
-@@ -3629,17 +3876,35 @@
+@@ -3633,17 +3876,35 @@
  #define G4X_ELD_ACK			(1 << 4)
  #define G4X_HDMIW_HDMIEDID		0x6210C
  
@@ -47752,7 +47730,7 @@
  
  	drm_encoder_helper_add(&crt->base.base, &intel_crt_helper_funcs);
 diff --git a/drivers/gpu/drm/i915/intel_display.c b/drivers/gpu/drm/i915/intel_display.c
-index fa9639b..3c9b9c5 100644
+index c05e825..3c9b9c5 100644
 --- a/drivers/gpu/drm/i915/intel_display.c
 +++ b/drivers/gpu/drm/i915/intel_display.c
 @@ -75,7 +75,7 @@ struct intel_limit {
@@ -49284,15 +49262,7 @@
  
  	I915_WRITE(GEN6_RC_CONTROL,
  		   rc6_mask |
-@@ -8279,10 +8592,18 @@ static void gen6_init_clock_gating(struct drm_device *dev)
- 		   I915_READ(ILK_DISPLAY_CHICKEN2) |
- 		   ILK_ELPIN_409_SELECT);
- 
-+	/* WaDisableHiZPlanesWhenMSAAEnabled */
-+	I915_WRITE(_3D_CHICKEN,
-+		   _MASKED_BIT_ENABLE(_3D_CHICKEN_HIZ_PLANE_DISABLE_MSAA_4X_SNB));
-+
- 	I915_WRITE(WM3_LP_ILK, 0);
+@@ -8287,6 +8600,10 @@ static void gen6_init_clock_gating(struct drm_device *dev)
  	I915_WRITE(WM2_LP_ILK, 0);
  	I915_WRITE(WM1_LP_ILK, 0);
  
@@ -49303,7 +49273,7 @@
  	/* According to the BSpec vol1g, bit 12 (RCPBUNIT) clock
  	 * gating disable must be set.  Failure to set it results in
  	 * flickering pixels due to Z write ordering failures after
-@@ -8361,6 +8682,10 @@ static void ivybridge_init_clock_gating(struct drm_device *dev)
+@@ -8365,6 +8682,10 @@ static void ivybridge_init_clock_gating(struct drm_device *dev)
  
  	I915_WRITE(ILK_DSPCLK_GATE, IVB_VRHUNIT_CLK_GATE);
  
@@ -49314,7 +49284,7 @@
  	/* Apply the WaDisableRHWOOptimizationForRenderHang workaround. */
  	I915_WRITE(GEN7_COMMON_SLICE_CHICKEN1,
  		   GEN7_CSC1_RHWO_OPT_DISABLE_IN_RCC);
-@@ -8671,9 +8996,15 @@ static void intel_init_display(struct drm_device *dev)
+@@ -8675,9 +8996,15 @@ static void intel_init_display(struct drm_device *dev)
  		if (IS_IVYBRIDGE(dev)) {
  			u32	ecobus;
  
@@ -49331,7 +49301,7 @@
  			__gen6_gt_force_wake_mt_put(dev_priv);
  			mutex_unlock(&dev->struct_mutex);
  
-@@ -8705,6 +9036,7 @@ static void intel_init_display(struct drm_device *dev)
+@@ -8709,6 +9036,7 @@ static void intel_init_display(struct drm_device *dev)
  		} else if (IS_GEN6(dev)) {
  			if (SNB_READ_WM0_LATENCY()) {
  				dev_priv->display.update_wm = sandybridge_update_wm;
@@ -49339,7 +49309,7 @@
  			} else {
  				DRM_DEBUG_KMS("Failed to read display plane latency. "
  					      "Disable CxSR\n");
-@@ -8718,6 +9050,7 @@ static void intel_init_display(struct drm_device *dev)
+@@ -8722,6 +9050,7 @@ static void intel_init_display(struct drm_device *dev)
  			dev_priv->display.fdi_link_train = ivb_manual_fdi_link_train;
  			if (SNB_READ_WM0_LATENCY()) {
  				dev_priv->display.update_wm = sandybridge_update_wm;
@@ -49347,7 +49317,7 @@
  			} else {
  				DRM_DEBUG_KMS("Failed to read display plane latency. "
  					      "Disable CxSR\n");
-@@ -8830,8 +9163,6 @@ struct intel_quirk {
+@@ -8834,8 +9163,6 @@ struct intel_quirk {
  };
  
  struct intel_quirk intel_quirks[] = {
@@ -49356,7 +49326,7 @@
  	/* HP Mini needs pipe A force quirk (LP: #322104) */
  	{ 0x27ae, 0x103c, 0x361a, quirk_pipea_force },
  
-@@ -8898,33 +9229,19 @@ static void i915_disable_vga(struct drm_device *dev)
+@@ -8902,33 +9229,19 @@ static void i915_disable_vga(struct drm_device *dev)
  	POSTING_READ(vga_reg);
  }
  
@@ -49394,7 +49364,7 @@
  	dev->mode_config.funcs = (void *)&intel_mode_funcs;
  
  	intel_init_quirks(dev);
-@@ -8948,6 +9265,9 @@ void intel_modeset_init(struct drm_device *dev)
+@@ -8952,6 +9265,9 @@ void intel_modeset_init(struct drm_device *dev)
  
  	for (i = 0; i < dev_priv->num_pipe; i++) {
  		intel_crtc_init(dev, i);
@@ -50164,7 +50134,7 @@
  	}
  
 diff --git a/drivers/gpu/drm/i915/intel_lvds.c b/drivers/gpu/drm/i915/intel_lvds.c
-index c6d0966..a8b28c4 100644
+index 6601d21..a8b28c4 100644
 --- a/drivers/gpu/drm/i915/intel_lvds.c
 +++ b/drivers/gpu/drm/i915/intel_lvds.c
 @@ -187,6 +187,8 @@ centre_horizontally(struct drm_display_mode *mode,
@@ -50202,22 +50172,7 @@
  	mutex_unlock(&dev->mode_config.mutex);
  
  	return NOTIFY_OK;
-@@ -774,14 +779,6 @@ static const struct dmi_system_id intel_no_lvds[] = {
- 	},
- 	{
- 		.callback = intel_no_lvds_dmi_callback,
--		.ident = "ZOTAC ZBOXSD-ID12/ID13",
--		.matches = {
--			DMI_MATCH(DMI_BOARD_VENDOR, "ZOTAC"),
--			DMI_MATCH(DMI_BOARD_NAME, "ZBOXSD-ID12/ID13"),
--		},
--	},
--	{
--		.callback = intel_no_lvds_dmi_callback,
- 		.ident = "Gigabyte GA-D525TUD",
- 		.matches = {
- 			DMI_MATCH(DMI_BOARD_VENDOR, "Gigabyte Technology Co., Ltd."),
-@@ -901,6 +898,18 @@ static bool lvds_is_present_in_vbt(struct drm_device *dev,
+@@ -893,6 +898,18 @@ static bool lvds_is_present_in_vbt(struct drm_device *dev,
  	return false;
  }
  
@@ -50236,7 +50191,7 @@
  /**
   * intel_lvds_init - setup LVDS connectors on this device
   * @dev: drm device
-@@ -922,6 +931,9 @@ bool intel_lvds_init(struct drm_device *dev)
+@@ -914,6 +931,9 @@ bool intel_lvds_init(struct drm_device *dev)
  	int pipe;
  	u8 pin;
  
@@ -50470,7 +50425,7 @@
  	} else {
  		val = I915_READ(BLC_PWM_CTL);
 diff --git a/drivers/gpu/drm/i915/intel_ringbuffer.c b/drivers/gpu/drm/i915/intel_ringbuffer.c
-index 19085c0..c17325c 100644
+index 4fddd21..c17325c 100644
 --- a/drivers/gpu/drm/i915/intel_ringbuffer.c
 +++ b/drivers/gpu/drm/i915/intel_ringbuffer.c
 @@ -263,6 +263,8 @@ static int init_ring_common(struct intel_ring_buffer *ring)
@@ -50502,16 +50457,37 @@
  	}
  
  out:
-@@ -398,8 +396,6 @@ static int init_render_ring(struct intel_ring_buffer *ring)
- 
+@@ -399,25 +397,12 @@ static int init_render_ring(struct intel_ring_buffer *ring)
  	if (INTEL_INFO(dev)->gen > 3) {
  		int mode = VS_TIMER_DISPATCH << 16 | VS_TIMER_DISPATCH;
--		if (IS_GEN6(dev) || IS_GEN7(dev))
--			mode |= MI_FLUSH_ENABLE << 16 | MI_FLUSH_ENABLE;
  		I915_WRITE(MI_MODE, mode);
- 		if (IS_GEN7(dev))
- 			I915_WRITE(GFX_MODE_GEN7,
-@@ -609,6 +605,7 @@ pc_render_add_request(struct intel_ring_buffer *ring,
++		if (IS_GEN7(dev))
++			I915_WRITE(GFX_MODE_GEN7,
++				   GFX_MODE_DISABLE(GFX_TLB_INVALIDATE_ALWAYS) |
++				   GFX_MODE_ENABLE(GFX_REPLAY_MODE));
+ 	}
+ 
+-	/* We need to disable the AsyncFlip performance optimisations in order
+-	 * to use MI_WAIT_FOR_EVENT within the CS. It should already be
+-	 * programmed to '1' on all products.
+-	 */
+-	if (INTEL_INFO(dev)->gen >= 6)
+-		I915_WRITE(MI_MODE, GFX_MODE_ENABLE(ASYNC_FLIP_PERF_DISABLE));
+-
+-	/* Required for the hardware to program scanline values for waiting */
+-	if (INTEL_INFO(dev)->gen == 6)
+-		I915_WRITE(GFX_MODE,
+-			   GFX_MODE_ENABLE(GFX_TLB_INVALIDATE_ALWAYS));
+-
+-	if (IS_GEN7(dev))
+-		I915_WRITE(GFX_MODE_GEN7,
+-			   GFX_MODE_DISABLE(GFX_TLB_INVALIDATE_ALWAYS) |
+-			   GFX_MODE_ENABLE(GFX_REPLAY_MODE));
+-
+ 	if (INTEL_INFO(dev)->gen >= 5) {
+ 		ret = init_pipe_control(ring);
+ 		if (ret)
+@@ -620,6 +605,7 @@ pc_render_add_request(struct intel_ring_buffer *ring,
  	PIPE_CONTROL_FLUSH(ring, scratch_addr);
  	scratch_addr += 128;
  	PIPE_CONTROL_FLUSH(ring, scratch_addr);
@@ -50519,7 +50495,7 @@
  	intel_ring_emit(ring, GFX_OP_PIPE_CONTROL(4) | PIPE_CONTROL_QW_WRITE |
  			PIPE_CONTROL_WRITE_FLUSH |
  			PIPE_CONTROL_TEXTURE_CACHE_INVALIDATE |
-@@ -651,7 +648,7 @@ gen6_ring_get_seqno(struct intel_ring_buffer *ring)
+@@ -662,7 +648,7 @@ gen6_ring_get_seqno(struct intel_ring_buffer *ring)
  	/* Workaround to force correct ordering between irq and seqno writes on
  	 * ivb (and maybe also on snb) by reading from a CS register (like
  	 * ACTHD) before reading the status page. */
@@ -50528,7 +50504,7 @@
  		intel_ring_get_active_head(ring);
  	return intel_read_status_page(ring, I915_GEM_HWS_INDEX);
  }
-@@ -752,13 +749,13 @@ void intel_ring_setup_status_page(struct intel_ring_buffer *ring)
+@@ -763,13 +749,13 @@ void intel_ring_setup_status_page(struct intel_ring_buffer *ring)
  	 */
  	if (IS_GEN7(dev)) {
  		switch (ring->id) {
@@ -50545,7 +50521,7 @@
  			mmio = BSD_HWS_PGA_GEN7;
  			break;
  		}
-@@ -824,8 +821,7 @@ gen6_ring_get_irq(struct intel_ring_buffer *ring, u32 gflag, u32 rflag)
+@@ -835,8 +821,7 @@ gen6_ring_get_irq(struct intel_ring_buffer *ring, u32 gflag, u32 rflag)
  	/* It looks like we need to prevent the gt from suspending while waiting
  	 * for an notifiy irq, otherwise irqs seem to get lost on at least the
  	 * blt/bsd rings on ivb. */
@@ -50555,7 +50531,7 @@
  
  	spin_lock(&ring->irq_lock);
  	if (ring->irq_refcount++ == 0) {
-@@ -852,8 +848,7 @@ gen6_ring_put_irq(struct intel_ring_buffer *ring, u32 gflag, u32 rflag)
+@@ -863,8 +848,7 @@ gen6_ring_put_irq(struct intel_ring_buffer *ring, u32 gflag, u32 rflag)
  	}
  	spin_unlock(&ring->irq_lock);
  
@@ -50565,7 +50541,7 @@
  }
  
  static bool
-@@ -1139,14 +1134,105 @@ static int intel_wrap_ring_buffer(struct intel_ring_buffer *ring)
+@@ -1150,14 +1134,105 @@ static int intel_wrap_ring_buffer(struct intel_ring_buffer *ring)
  	return 0;
  }
  
@@ -50672,7 +50648,7 @@
  	do {
  		ring->head = I915_READ_HEAD(ring);
  		ring->space = ring_space(ring);
-@@ -1203,7 +1289,7 @@ void intel_ring_advance(struct intel_ring_buffer *ring)
+@@ -1214,7 +1289,7 @@ void intel_ring_advance(struct intel_ring_buffer *ring)
  
  static const struct intel_ring_buffer render_ring = {
  	.name			= "render ring",
@@ -50681,7 +50657,7 @@
  	.mmio_base		= RENDER_RING_BASE,
  	.size			= 32 * PAGE_SIZE,
  	.init			= init_render_ring,
-@@ -1226,7 +1312,7 @@ static const struct intel_ring_buffer render_ring = {
+@@ -1237,7 +1312,7 @@ static const struct intel_ring_buffer render_ring = {
  
  static const struct intel_ring_buffer bsd_ring = {
  	.name                   = "bsd ring",
@@ -50690,7 +50666,7 @@
  	.mmio_base		= BSD_RING_BASE,
  	.size			= 32 * PAGE_SIZE,
  	.init			= init_ring_common,
-@@ -1336,7 +1422,7 @@ gen6_bsd_ring_put_irq(struct intel_ring_buffer *ring)
+@@ -1347,7 +1422,7 @@ gen6_bsd_ring_put_irq(struct intel_ring_buffer *ring)
  /* ring buffer for Video Codec for Gen6+ */
  static const struct intel_ring_buffer gen6_bsd_ring = {
  	.name			= "gen6 bsd ring",
@@ -50699,7 +50675,7 @@
  	.mmio_base		= GEN6_BSD_RING_BASE,
  	.size			= 32 * PAGE_SIZE,
  	.init			= init_ring_common,
-@@ -1372,79 +1458,13 @@ blt_ring_put_irq(struct intel_ring_buffer *ring)
+@@ -1383,79 +1458,13 @@ blt_ring_put_irq(struct intel_ring_buffer *ring)
  			  GEN6_BLITTER_USER_INTERRUPT);
  }
  
@@ -50780,7 +50756,7 @@
  	if (ret)
  		return ret;
  
-@@ -1459,22 +1479,12 @@ static int blt_ring_flush(struct intel_ring_buffer *ring,
+@@ -1470,22 +1479,12 @@ static int blt_ring_flush(struct intel_ring_buffer *ring,
  	return 0;
  }
  
@@ -50805,7 +50781,7 @@
  	.write_tail		= ring_write_tail,
  	.flush			= blt_ring_flush,
  	.add_request		= gen6_add_request,
-@@ -1482,7 +1492,6 @@ static const struct intel_ring_buffer gen6_blt_ring = {
+@@ -1493,7 +1492,6 @@ static const struct intel_ring_buffer gen6_blt_ring = {
  	.irq_get		= blt_ring_get_irq,
  	.irq_put		= blt_ring_put_irq,
  	.dispatch_execbuffer	= gen6_ring_dispatch_execbuffer,
@@ -86026,7 +86002,7 @@
  		dev_priv->flags |= RADEON_IS_AGP;
  	else if (pci_is_pcie(dev->pdev))
 diff --git a/drivers/gpu/drm/radeon/radeon_cs.c b/drivers/gpu/drm/radeon/radeon_cs.c
-index 29afd71..cf723c4 100644
+index 1f32557..cf723c4 100644
 --- a/drivers/gpu/drm/radeon/radeon_cs.c
 +++ b/drivers/gpu/drm/radeon/radeon_cs.c
 @@ -58,7 +58,7 @@ int radeon_cs_parser_relocs(struct radeon_cs_parser *p)
@@ -86176,7 +86152,7 @@
  			size = p->chunks[i].length_dw * sizeof(uint32_t);
  			p->chunks[i].kdata = kmalloc(size, GFP_KERNEL);
  			if (p->chunks[i].kdata == NULL) {
-@@ -160,29 +244,55 @@ int radeon_cs_parser_init(struct radeon_cs_parser *p, void *data)
+@@ -160,31 +244,55 @@ int radeon_cs_parser_init(struct radeon_cs_parser *p, void *data)
  				return -EFAULT;
  			}
  			if (p->chunks[i].chunk_id == RADEON_CHUNK_ID_FLAGS) {
@@ -86188,6 +86164,8 @@
 -			if (p->chunks[i].kpage[0] == NULL || p->chunks[i].kpage[1] == NULL) {
 -				kfree(p->chunks[i].kpage[0]);
 -				kfree(p->chunks[i].kpage[1]);
+-				p->chunks[i].kpage[0] = NULL;
+-				p->chunks[i].kpage[1] = NULL;
 -				return -ENOMEM;
 +				p->cs_flags = p->chunks[i].kdata[0];
 +				if (p->chunks[i].length_dw > 1)
@@ -86250,7 +86228,7 @@
  	return 0;
  }
  
-@@ -224,14 +334,186 @@ static void radeon_cs_parser_fini(struct radeon_cs_parser *parser, int error)
+@@ -226,14 +334,186 @@ static void radeon_cs_parser_fini(struct radeon_cs_parser *parser, int error)
  	radeon_ib_free(parser->rdev, &parser->ib);
  }
  
@@ -86438,7 +86416,7 @@
  	/* initialize parser */
  	memset(&parser, 0, sizeof(struct radeon_cs_parser));
  	parser.filp = filp;
-@@ -245,13 +527,6 @@ int radeon_cs_ioctl(struct drm_device *dev, void *data, struct drm_file *filp)
+@@ -247,13 +527,6 @@ int radeon_cs_ioctl(struct drm_device *dev, void *data, struct drm_file *filp)
  		radeon_mutex_unlock(&rdev->cs_mutex);
  		return r;
  	}
@@ -86452,7 +86430,7 @@
  	r = radeon_cs_parser_relocs(&parser);
  	if (r) {
  		if (r != -ERESTARTSYS)
-@@ -260,29 +535,15 @@ int radeon_cs_ioctl(struct drm_device *dev, void *data, struct drm_file *filp)
+@@ -262,29 +535,15 @@ int radeon_cs_ioctl(struct drm_device *dev, void *data, struct drm_file *filp)
  		radeon_mutex_unlock(&rdev->cs_mutex);
  		return r;
  	}
@@ -86516,7 +86494,7 @@
  		struct drm_crtc *crtc_p;
  
 diff --git a/drivers/gpu/drm/radeon/radeon_device.c b/drivers/gpu/drm/radeon/radeon_device.c
-index c5762e3..de5e0b5 100644
+index bd959c1..de5e0b5 100644
 --- a/drivers/gpu/drm/radeon/radeon_device.c
 +++ b/drivers/gpu/drm/radeon/radeon_device.c
 @@ -89,6 +89,10 @@ static const char radeon_family_name[][16] = {
@@ -86541,7 +86519,17 @@
  		rdev->wb.enabled = true;
  		rdev->wb.use_event = true;
  	}
-@@ -720,18 +724,25 @@ int radeon_device_init(struct radeon_device *rdev,
+@@ -354,8 +358,7 @@ bool radeon_card_posted(struct radeon_device *rdev)
+ {
+ 	uint32_t reg;
+ 
+-	if (efi_enabled(EFI_BOOT) &&
+-	    rdev->pdev->subsystem_vendor == PCI_VENDOR_ID_APPLE)
++	if (efi_enabled && rdev->pdev->subsystem_vendor == PCI_VENDOR_ID_APPLE)
+ 		return false;
+ 
+ 	/* first check CRTCs */
+@@ -721,18 +724,25 @@ int radeon_device_init(struct radeon_device *rdev,
  	/* mutex initialization are all done here so we
  	 * can recall function without having locking issues */
  	radeon_mutex_init(&rdev->cs_mutex);
@@ -86570,7 +86558,7 @@
  
  	/* Set asic functions */
  	r = radeon_asic_init(rdev);
-@@ -768,8 +779,14 @@ int radeon_device_init(struct radeon_device *rdev,
+@@ -769,8 +779,14 @@ int radeon_device_init(struct radeon_device *rdev,
  	r = pci_set_dma_mask(rdev->pdev, DMA_BIT_MASK(dma_bits));
  	if (r) {
  		rdev->need_dma32 = true;
@@ -86585,7 +86573,7 @@
  
  	/* Registers mapping */
  	/* TODO: block userspace mapping of io register */
-@@ -817,15 +834,20 @@ int radeon_device_init(struct radeon_device *rdev,
+@@ -818,15 +834,20 @@ int radeon_device_init(struct radeon_device *rdev,
  		if (r)
  			return r;
  	}
@@ -86607,7 +86595,7 @@
  void radeon_device_fini(struct radeon_device *rdev)
  {
  	DRM_INFO("radeon: finishing device.\n");
-@@ -840,6 +862,7 @@ void radeon_device_fini(struct radeon_device *rdev)
+@@ -841,6 +862,7 @@ void radeon_device_fini(struct radeon_device *rdev)
  	rdev->rio_mem = NULL;
  	iounmap(rdev->rmmio);
  	rdev->rmmio = NULL;
@@ -86615,7 +86603,7 @@
  }
  
  
-@@ -851,7 +874,7 @@ int radeon_suspend_kms(struct drm_device *dev, pm_message_t state)
+@@ -852,7 +874,7 @@ int radeon_suspend_kms(struct drm_device *dev, pm_message_t state)
  	struct radeon_device *rdev;
  	struct drm_crtc *crtc;
  	struct drm_connector *connector;
@@ -86624,7 +86612,7 @@
  
  	if (dev == NULL || dev->dev_private == NULL) {
  		return -ENODEV;
-@@ -892,7 +915,8 @@ int radeon_suspend_kms(struct drm_device *dev, pm_message_t state)
+@@ -893,7 +915,8 @@ int radeon_suspend_kms(struct drm_device *dev, pm_message_t state)
  	/* evict vram memory */
  	radeon_bo_evict_vram(rdev);
  	/* wait for gpu to finish processing current batch */
@@ -86634,7 +86622,7 @@
  
  	radeon_save_bios_scratch_regs(rdev);
  
-@@ -941,9 +965,11 @@ int radeon_resume_kms(struct drm_device *dev)
+@@ -942,9 +965,11 @@ int radeon_resume_kms(struct drm_device *dev)
  	radeon_fbdev_set_suspend(rdev, 0);
  	console_unlock();
  
@@ -86648,7 +86636,7 @@
  	/* reset hpd state */
  	radeon_hpd_init(rdev);
  	/* blat the mode back in */
-@@ -993,36 +1019,29 @@ int radeon_gpu_reset(struct radeon_device *rdev)
+@@ -994,36 +1019,29 @@ int radeon_gpu_reset(struct radeon_device *rdev)
  /*
   * Debugfs
   */
@@ -86691,7 +86679,7 @@
  #if defined(CONFIG_DEBUG_FS)
  	drm_debugfs_create_files(files, nfiles,
  				 rdev->ddev->control->debugfs_root,
-@@ -1034,6 +1053,22 @@ int radeon_debugfs_add_files(struct radeon_device *rdev,
+@@ -1035,6 +1053,22 @@ int radeon_debugfs_add_files(struct radeon_device *rdev,
  	return 0;
  }
  
@@ -86714,7 +86702,7 @@
  #if defined(CONFIG_DEBUG_FS)
  int radeon_debugfs_init(struct drm_minor *minor)
  {
-@@ -1042,11 +1077,5 @@ int radeon_debugfs_init(struct drm_minor *minor)
+@@ -1043,11 +1077,5 @@ int radeon_debugfs_init(struct drm_minor *minor)
  
  void radeon_debugfs_cleanup(struct drm_minor *minor)
  {
@@ -88937,7 +88925,7 @@
  
  static const struct drm_crtc_helper_funcs legacy_helper_funcs = {
 diff --git a/drivers/gpu/drm/radeon/radeon_legacy_encoders.c b/drivers/gpu/drm/radeon/radeon_legacy_encoders.c
-index 8165953..53b07a3 100644
+index a906803..53b07a3 100644
 --- a/drivers/gpu/drm/radeon/radeon_legacy_encoders.c
 +++ b/drivers/gpu/drm/radeon/radeon_legacy_encoders.c
 @@ -88,7 +88,7 @@ static void radeon_legacy_lvds_update(struct drm_encoder *encoder, int mode)
@@ -88971,22 +88959,7 @@
  		break;
  	}
  
-@@ -617,6 +617,14 @@ static enum drm_connector_status radeon_legacy_primary_dac_detect(struct drm_enc
- 	enum drm_connector_status found = connector_status_disconnected;
- 	bool color = true;
- 
-+	/* just don't bother on RN50 those chip are often connected to remoting
-+	 * console hw and often we get failure to load detect those. So to make
-+	 * everyone happy report the encoder as always connected.
-+	 */
-+	if (ASIC_IS_RN50(rdev)) {
-+		return connector_status_connected;
-+	}
-+
- 	/* save the regs we need */
- 	vclk_ecp_cntl = RREG32_PLL(RADEON_VCLK_ECP_CNTL);
- 	crtc_ext_cntl = RREG32(RADEON_CRTC_EXT_CNTL);
-@@ -657,7 +665,7 @@ static enum drm_connector_status radeon_legacy_primary_dac_detect(struct drm_enc
+@@ -665,7 +665,7 @@ static enum drm_connector_status radeon_legacy_primary_dac_detect(struct drm_enc
  
  	WREG32(RADEON_DAC_MACRO_CNTL, tmp);
  
@@ -88995,7 +88968,7 @@
  
  	if (RREG32(RADEON_DAC_CNTL) & RADEON_DAC_CMP_OUTPUT)
  		found = connector_status_connected;
-@@ -1496,7 +1504,7 @@ static enum drm_connector_status radeon_legacy_tv_dac_detect(struct drm_encoder
+@@ -1504,7 +1504,7 @@ static enum drm_connector_status radeon_legacy_tv_dac_detect(struct drm_encoder
  	tmp = dac_cntl2 | RADEON_DAC2_DAC2_CLK_SEL | RADEON_DAC2_CMP_EN;
  	WREG32(RADEON_DAC_CNTL2, tmp);
  

Modified: dists/sid/linux/debian/patches/features/x86/efi-stub/0002-x86-Don-t-use-magic-strings-for-EFI-loader-signature.patch
==============================================================================
--- dists/sid/linux/debian/patches/features/x86/efi-stub/0002-x86-Don-t-use-magic-strings-for-EFI-loader-signature.patch	Wed Feb  6 04:16:13 2013	(r19787)
+++ dists/sid/linux/debian/patches/features/x86/efi-stub/0002-x86-Don-t-use-magic-strings-for-EFI-loader-signature.patch	Wed Feb  6 05:33:01 2013	(r19788)
@@ -11,13 +11,13 @@
 Signed-off-by: Matt Fleming <matt.fleming at intel.com>
 Link: http://lkml.kernel.org/r/1318848017-12301-1-git-send-email-matt@console-pimps.org
 Signed-off-by: H. Peter Anvin <hpa at linux.intel.com>
+[bwh: Drop the hunk in arch/x86/kernel/setup.c which is unnecessary and
+ conflicts with a fix in 3.2.38]
 ---
  arch/x86/include/asm/efi.h |    4 ++++
  arch/x86/kernel/setup.c    |    7 +------
  2 files changed, 5 insertions(+), 6 deletions(-)
 
-diff --git a/arch/x86/include/asm/efi.h b/arch/x86/include/asm/efi.h
-index b8d8bfc..26d8c18 100644
 --- a/arch/x86/include/asm/efi.h
 +++ b/arch/x86/include/asm/efi.h
 @@ -3,6 +3,8 @@
@@ -29,7 +29,7 @@
  extern unsigned long asmlinkage efi_call_phys(void *, ...);
  
  #define efi_call_phys0(f)		efi_call_phys(f)
-@@ -35,6 +37,8 @@ extern unsigned long asmlinkage efi_call_phys(void *, ...);
+@@ -37,6 +39,8 @@ extern unsigned long asmlinkage efi_call
  
  #else /* !CONFIG_X86_32 */
  
@@ -38,24 +38,3 @@
  extern u64 efi_call0(void *fp);
  extern u64 efi_call1(void *fp, u64 arg1);
  extern u64 efi_call2(void *fp, u64 arg1, u64 arg2);
-diff --git a/arch/x86/kernel/setup.c b/arch/x86/kernel/setup.c
-index 9a9e40f..4d5243c 100644
---- a/arch/x86/kernel/setup.c
-+++ b/arch/x86/kernel/setup.c
-@@ -752,12 +752,7 @@ void __init setup_arch(char **cmdline_p)
- #endif
- #ifdef CONFIG_EFI
- 	if (!strncmp((char *)&boot_params.efi_info.efi_loader_signature,
--#ifdef CONFIG_X86_32
--		     "EL32",
--#else
--		     "EL64",
--#endif
--	 4)) {
-+		     EFI_LOADER_SIGNATURE, 4)) {
- 		efi_enabled = 1;
- 		efi_memblock_x86_reserve_range();
- 	}
--- 
-1.7.10
-

Modified: dists/sid/linux/debian/patches/series
==============================================================================
--- dists/sid/linux/debian/patches/series	Wed Feb  6 04:16:13 2013	(r19787)
+++ dists/sid/linux/debian/patches/series	Wed Feb  6 05:33:01 2013	(r19788)
@@ -448,10 +448,7 @@
 features/all/iguanair/0010-media-iguanair-do-not-modify-transmit-buffer.patch
 features/all/iguanair/0011-media-iguanair-cannot-send-data-from-the-stack.patch
 features/all/rt2800-add-chipset-revision-RT5390R-support.patch
-bugfix/all/vt6656-Fix-inconsistent-structure-packing.patch
 bugfix/all/fs-cachefiles-add-support-for-large-files-in-filesys.patch
-bugfix/x86/xen-Fix-stack-corruption-in-xen_failsafe_callback-fo.patch
-bugfix/s390/s390-time-fix-sched_clock-overflow.patch
 bugfix/all/bridge-Pull-ip-header-into-skb-data-before-looking-i.patch
 bugfix/all/ext4-rewrite-punch-hole-to-use-ext4_ext_remove_space.patch
 bugfix/all/ext4-fix-hole-punch-failure-when-depth-is-greater-th.patch



More information about the Kernel-svn-changes mailing list