[kernel] r22417 - in dists/wheezy/linux/debian: . config patches patches/bugfix/all patches/bugfix/s390 patches/bugfix/x86 patches/debian patches/features/all/drm

Ben Hutchings benh at moszumanska.debian.org
Tue Feb 24 00:12:40 UTC 2015


Author: benh
Date: Tue Feb 24 00:12:40 2015
New Revision: 22417

Log:
Update to 3.2.67

- Drop/refresh patches as necessary
- drm, agp: Update to 3.4.106
- PCI: quirks: Fix backport of quirk_io()

Added:
   dists/wheezy/linux/debian/patches/bugfix/all/pci-quirks-fix-backport-of-quirk_io.patch
   dists/wheezy/linux/debian/patches/debian/rmap-fix-abi-change-in-3.2.67.patch
   dists/wheezy/linux/debian/patches/debian/sock-fix-abi-change-in-3.2.67.patch
Deleted:
   dists/wheezy/linux/debian/patches/bugfix/all/crypto-add-missing-crypto-module-aliases.patch
   dists/wheezy/linux/debian/patches/bugfix/all/crypto-include-crypto-module-prefix-in-template.patch
   dists/wheezy/linux/debian/patches/bugfix/all/crypto-prefix-module-autoloading-with-crypto.patch
   dists/wheezy/linux/debian/patches/bugfix/all/dcache-fix-locking-bugs-in-backported-deal-with-deadlock-in-d_walk.patch
   dists/wheezy/linux/debian/patches/bugfix/all/deal-with-deadlock-in-d_walk.patch
   dists/wheezy/linux/debian/patches/bugfix/all/drivers-net-disable-ufo-through-virtio.patch
   dists/wheezy/linux/debian/patches/bugfix/all/drivers-net-ipv6-select-ipv6-fragment-idents-for-vir.patch
   dists/wheezy/linux/debian/patches/bugfix/all/ecryptfs-remove-buggy-and-unnecessary-write-in-file-name-decode.patch
   dists/wheezy/linux/debian/patches/bugfix/all/ext4-make-orphan-functions-be-no-op-in-no-journal-mo.patch
   dists/wheezy/linux/debian/patches/bugfix/all/isofs-fix-infinite-looping-over-ce-entries.patch
   dists/wheezy/linux/debian/patches/bugfix/all/isofs-fix-unchecked-printing-of-er-records.patch
   dists/wheezy/linux/debian/patches/bugfix/all/keys-close-race-between-key-lookup-and-freeing.patch
   dists/wheezy/linux/debian/patches/bugfix/all/media-ttusb-dec-buffer-overflow-in-ioctl.patch
   dists/wheezy/linux/debian/patches/bugfix/all/move-d_rcu-from-overlapping-d_child-to-overlapping-d_alias.patch
   dists/wheezy/linux/debian/patches/bugfix/all/net-sctp-fix-NULL-pointer-dereference-in-af-from_add.patch
   dists/wheezy/linux/debian/patches/bugfix/all/net-sctp-fix-slab-corruption-from-use-after-free-on-init-collisions.patch
   dists/wheezy/linux/debian/patches/bugfix/all/netfilter-conntrack-disable-generic-tracking-for-kno.patch
   dists/wheezy/linux/debian/patches/bugfix/all/revert-drivers-net-disable-ufo-through-virtio-in-macvtap-and-tun.patch
   dists/wheezy/linux/debian/patches/bugfix/all/splice-apply-generic-position-and-size-checks-to-eac.patch
   dists/wheezy/linux/debian/patches/bugfix/all/udf-Avoid-infinite-loop-when-processing-indirect-ICB.patch
   dists/wheezy/linux/debian/patches/bugfix/all/vfs-fix-vfsmount_lock-imbalance-in-path_init.patch
   dists/wheezy/linux/debian/patches/bugfix/s390/s390-revert-clockevent.patch
   dists/wheezy/linux/debian/patches/bugfix/x86/crypto-ghash-clmulni-intel-use-C-implementation-for-.patch
   dists/wheezy/linux/debian/patches/bugfix/x86/kvm-x86-don-t-report-guest-userspace-emulation-error-to-userspace.patch
   dists/wheezy/linux/debian/patches/bugfix/x86/kvm-x86-emulator-reject-sysenter-in-compatibility-mo.patch
   dists/wheezy/linux/debian/patches/bugfix/x86/kvm-x86-sysenter-emulation-is-broken.patch
   dists/wheezy/linux/debian/patches/bugfix/x86/revert-x86-64bit-mm-mark-data-bss-brk-to-nx.patch
   dists/wheezy/linux/debian/patches/bugfix/x86/revert-x86-mm-set-nx-across-entire-pmd-at-boot.patch
   dists/wheezy/linux/debian/patches/bugfix/x86/x86-cpu-amd-add-workaround-for-family-16h-erratum-79.patch
   dists/wheezy/linux/debian/patches/bugfix/x86/x86-kvm-clear-paravirt_enabled-on-kvm-guests-for-espfix32-s-benefit.patch
   dists/wheezy/linux/debian/patches/bugfix/x86/x86-tls-interpret-an-all-zero-struct-user_desc-as-no-segment.patch
   dists/wheezy/linux/debian/patches/bugfix/x86/x86-tls-ldt-stop-checking-lm-in-ldt_empty.patch
   dists/wheezy/linux/debian/patches/bugfix/x86/x86-tls-validate-tls-entries-to-protect-espfix.patch
   dists/wheezy/linux/debian/patches/bugfix/x86/x86_64-switch_to-load-tls-descriptors-before-switchi.patch
   dists/wheezy/linux/debian/patches/bugfix/x86/x86_64-vdso-fix-the-vdso-address-randomization-algor.patch
Modified:
   dists/wheezy/linux/debian/changelog
   dists/wheezy/linux/debian/config/defines
   dists/wheezy/linux/debian/patches/features/all/drm/drm-3.4.patch
   dists/wheezy/linux/debian/patches/series

Modified: dists/wheezy/linux/debian/changelog
==============================================================================
--- dists/wheezy/linux/debian/changelog	Sun Feb 22 17:06:56 2015	(r22416)
+++ dists/wheezy/linux/debian/changelog	Tue Feb 24 00:12:40 2015	(r22417)
@@ -1,3 +1,77 @@
+linux (3.2.67-1) UNRELEASED; urgency=medium
+
+  * New upstream stable update:
+    http://www.kernel.org/pub/linux/kernel/v3.x/ChangeLog-3.2.66
+    - net: sctp: fix memory leak in auth key management
+    - tcp: md5: remove spinlock usage in fast path
+    - tcp: md5: do not use alloc_percpu()
+    - ipv4: dst_entry leak in ip_send_unicast_reply()
+    - net: sctp: use MAX_HEADER for headroom reserve in output path
+    http://www.kernel.org/pub/linux/kernel/v3.x/ChangeLog-3.2.67
+    - eCryptfs: Force RO mount when encrypted view is enabled
+    - ipv4: Remove all uses of LL_ALLOCATED_SPACE
+    - ipv6: Remove all uses of LL_ALLOCATED_SPACE
+    - ipv6: mld: fix add_grhead skb_over_panic for devs with large MTUs
+    - [s390*] KVM: flush CPU on load control
+    - UBI: Fix invalid vfree()
+    - drbd: merge_bvec_fn: properly remap bvm->bi_bdev
+    - PCI: Restore detection of read-only BARs
+    - genhd: check for int overflow in disk_expand_part_tbl()
+    - USB: cdc-acm: check for valid interfaces
+    - dm space map metadata: fix sm_bootstrap_get_nr_blocks()
+    - [x86] iommu/vt-d: Fix an off-by-one bug in __domain_mapping()
+    - KEYS: Fix stale key registration at error path
+    - Btrfs: fix fs corruption on transaction abort if device supports discard
+    - ncpfs: return proper error from NCP_IOC_SETROOT ioctl
+    - mac80211: fix multicast LED blinking and counter (regression in 3.2.65)
+    - genirq: Prevent proc race against freeing of irq descriptors
+    - decompress_bunzip2: off by one in get_next_block()
+    - [x86] tls: Disallow unusual TLS segments
+    - iscsi-target: Fail connection on short sendmsg writes
+    - ceph: introduce global empty snap context
+    - [x86] tls: Don't validate lm in set_thread_area() after all
+    - ocfs2: fix journal commit deadlock
+    - udf: Verify i_size when loading inode
+    - udf: Verify symlink size before loading it
+    - udf: Treat symlink component of type 2 as /
+    - udf: Check path length when reading symlink
+    - udf: Check component length before reading it
+    - crypto: af_alg - fix backlog handling
+    - Revert "tcp: Apply device TSO segment limit earlier"
+      (regression in 3.2.30)
+    - virtio_pci: defer kfree until release callback
+    - mm: propagate error from stack expansion even for guard page
+    - time: settimeofday: Validate the values of tv from user
+    - regulator: core: fix race condition in regulator_put()
+    - mm: prevent endless growth of anon_vma hierarchy
+    - mm: protect set_page_dirty() from ongoing truncation
+    - HID: roccat: potential out of bounds in pyra_sysfs_write_settings()
+    - USB: console: fix potential use after free
+    - mm: Don't count the stack guard page towards RLIMIT_STACK
+    - mm: fix corner case in anon_vma endless growing prevention
+    - can: dev: fix crtlmode_supported check
+    - net: sctp: fix race for one-to-many sockets in sendmsg's auto associate
+    - libata: allow sata_sil24 to opt-out of tag ordered submission
+      (regression in 3.2.62)
+    - nl80211: fix per-station group key get/del and memory leak
+    - vm: add VM_FAULT_SIGSEGV handling support
+    - vm: make stack guard page errors return VM_FAULT_SIGSEGV rather than
+      SIGBUS
+    - ACPI / EC: Fix regression due to conflicting firmware behavior between
+      Samsung and Acer. (regression in 3.2.63)
+    - [s390*] 3215: fix tty output containing tabs (Closes: #758264)
+    - fsnotify: next_i is freed during fsnotify_unmount_inodes.
+    - PCI: Handle read-only BARs on AMD CS553x devices
+
+  [ Ben Hutchings ]
+  * drm, agp: Update to 3.4.106:
+    - [x86] drm/vmwgfx: Filter out modes those cannot be supported by the
+      current VRAM size.
+    - drm/radeon: add missing crtc unlock when setting up the MC
+  * PCI: quirks: Fix backport of quirk_io()
+
+ -- Ben Hutchings <ben at decadent.org.uk>  Mon, 23 Feb 2015 03:42:59 +0000
+
 linux (3.2.65-1+deb7u2) wheezy-security; urgency=medium
 
   * splice: Apply generic position and size checks to each write

Modified: dists/wheezy/linux/debian/config/defines
==============================================================================
--- dists/wheezy/linux/debian/config/defines	Sun Feb 22 17:06:56 2015	(r22416)
+++ dists/wheezy/linux/debian/config/defines	Tue Feb 24 00:12:40 2015	(r22417)
@@ -64,6 +64,11 @@
  g450_mnp2f
  matrox_*
  matroxfb_*
+# Should not be used from OOT
+ tcp_alloc_md5sig_pool
+ tcp_free_md5sig_pool
+ tcp_get_md5sig_pool
+ tcp_put_md5sig_pool
 
 [base]
 arches:

Added: dists/wheezy/linux/debian/patches/bugfix/all/pci-quirks-fix-backport-of-quirk_io.patch
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ dists/wheezy/linux/debian/patches/bugfix/all/pci-quirks-fix-backport-of-quirk_io.patch	Tue Feb 24 00:12:40 2015	(r22417)
@@ -0,0 +1,25 @@
+From: Ben Hutchings <ben at decadent.org.uk>
+Date: Mon, 23 Feb 2015 21:37:52 +0000
+Subject: PCI: quirks: Fix backport of quirk_io()
+
+Commit 06cf35f903aa ('PCI: Handle read-only BARs on AMD CS553x
+devices') added the function quirk_io() which calls
+pcibios_bus_to_resource().
+
+Prior to Linux 3.14, pcibios_bus_to_resource() takes a pointer to
+struct pci_dev and looks up the device's bus itself, so we need
+to pass dev not dev->bus.
+
+Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
+---
+--- a/drivers/pci/quirks.c
++++ b/drivers/pci/quirks.c
+@@ -409,7 +409,7 @@ static void quirk_io(struct pci_dev *dev
+ 	/* Convert from PCI bus to resource space */
+ 	bus_region.start = region;
+ 	bus_region.end = region + size - 1;
+-	pcibios_bus_to_resource(dev->bus, res, &bus_region);
++	pcibios_bus_to_resource(dev, res, &bus_region);
+ 
+ 	dev_info(&dev->dev, FW_BUG "%s quirk: reg 0x%x: %pR\n",
+ 		 name, PCI_BASE_ADDRESS_0 + (pos << 2), res);

Added: dists/wheezy/linux/debian/patches/debian/rmap-fix-abi-change-in-3.2.67.patch
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ dists/wheezy/linux/debian/patches/debian/rmap-fix-abi-change-in-3.2.67.patch	Tue Feb 24 00:12:40 2015	(r22417)
@@ -0,0 +1,49 @@
+From: Ben Hutchings <ben at decadent.org.uk>
+Date: Mon, 23 Feb 2015 05:09:41 +0000
+Subject: rmap: Fix ABI change in 3.2.67
+
+'mm: prevent endless growth of anon_vma hierarchy' in 3.2.67 added
+two new members to struct anon_vma.
+
+This structure is always allocated by anon_vma_alloc() so it is OK to
+add members, but we need to add them at the end and hide them from
+genksyms.
+
+--- a/include/linux/rmap.h
++++ b/include/linux/rmap.h
+@@ -37,16 +37,6 @@ struct anon_vma {
+ 	atomic_t refcount;
+ 
+ 	/*
+-	 * Count of child anon_vmas and VMAs which points to this anon_vma.
+-	 *
+-	 * This counter is used for making decision about reusing anon_vma
+-	 * instead of forking new one. See comments in function anon_vma_clone.
+-	 */
+-	unsigned degree;
+-
+-	struct anon_vma *parent;	/* Parent of this anon_vma */
+-
+-	/*
+ 	 * NOTE: the LSB of the head.next is set by
+ 	 * mm_take_all_locks() _after_ taking the above lock. So the
+ 	 * head must only be read/written after taking the above lock
+@@ -55,6 +45,18 @@ struct anon_vma {
+ 	 * mm_take_all_locks() (mm_all_locks_mutex).
+ 	 */
+ 	struct list_head head;	/* Chain of private "related" vmas */
++
++#ifndef __GENKSYMS__
++	/*
++	 * Count of child anon_vmas and VMAs which points to this anon_vma.
++	 *
++	 * This counter is used for making decision about reusing anon_vma
++	 * instead of forking new one. See comments in function anon_vma_clone.
++	 */
++	unsigned degree;
++
++	struct anon_vma *parent;	/* Parent of this anon_vma */
++#endif
+ };
+ 
+ /*

Added: dists/wheezy/linux/debian/patches/debian/sock-fix-abi-change-in-3.2.67.patch
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ dists/wheezy/linux/debian/patches/debian/sock-fix-abi-change-in-3.2.67.patch	Tue Feb 24 00:12:40 2015	(r22417)
@@ -0,0 +1,17 @@
+From: Ben Hutchings <ben at decadent.org.uk>
+Date: Mon, 23 Feb 2015 03:29:32 +0000
+Subject: sock: Fix ABI change in 3.2.67
+
+'Revert "tcp: Apply device TSO segment limit earlier"' in 3.2.67
+removed sock::sk_gso_max_segs.  Add it back.
+
+--- a/include/net/sock.h
++++ b/include/net/sock.h
+@@ -310,6 +310,7 @@ struct sock {
+ 	int			sk_route_nocaps;
+ 	int			sk_gso_type;
+ 	unsigned int		sk_gso_max_size;
++	u16			sk_gso_max_segs;	/* now unused */
+ 	int			sk_rcvlowat;
+ 	unsigned long	        sk_lingertime;
+ 	struct sk_buff_head	sk_error_queue;

Modified: dists/wheezy/linux/debian/patches/features/all/drm/drm-3.4.patch
==============================================================================
--- dists/wheezy/linux/debian/patches/features/all/drm/drm-3.4.patch	Sun Feb 22 17:06:56 2015	(r22416)
+++ dists/wheezy/linux/debian/patches/features/all/drm/drm-3.4.patch	Tue Feb 24 00:12:40 2015	(r22417)
@@ -351,7 +351,7 @@
  		return -EINVAL;
  
 diff --git a/drivers/gpu/drm/drm_crtc.c b/drivers/gpu/drm/drm_crtc.c
-index 3f1799b..c61e672 100644
+index 09851ce..c61e672 100644
 --- a/drivers/gpu/drm/drm_crtc.c
 +++ b/drivers/gpu/drm/drm_crtc.c
 @@ -36,11 +36,7 @@
@@ -1584,16 +1584,28 @@
   *
   * Lookup the FB given its ID and return info about it.
   *
-@@ -1814,7 +2347,7 @@ int drm_mode_getfb(struct drm_device *dev,
+@@ -1814,18 +2347,8 @@ int drm_mode_getfb(struct drm_device *dev,
  	r->width = fb->width;
  	r->depth = fb->depth;
  	r->bpp = fb->bits_per_pixel;
 -	r->pitch = fb->pitch;
+-	if (file_priv->is_master || capable(CAP_SYS_ADMIN)) {
+-		ret = fb->funcs->create_handle(fb, file_priv, &r->handle);
+-	} else {
+-		/* GET_FB() is an unprivileged ioctl so we must not
+-		 * return a buffer-handle to non-master processes! For
+-		 * backwards-compatibility reasons, we cannot make
+-		 * GET_FB() privileged, so just return an invalid handle
+-		 * for non-masters. */
+-		r->handle = 0;
+-		ret = 0;
+-	}
 +	r->pitch = fb->pitches[0];
- 	fb->funcs->create_handle(fb, file_priv, &r->handle);
++	fb->funcs->create_handle(fb, file_priv, &r->handle);
  
  out:
-@@ -1846,7 +2379,7 @@ int drm_mode_dirtyfb_ioctl(struct drm_device *dev,
+ 	mutex_unlock(&dev->mode_config.mutex);
+@@ -1856,7 +2379,7 @@ int drm_mode_dirtyfb_ioctl(struct drm_device *dev,
  	fb = obj_to_fb(obj);
  
  	num_clips = r->num_clips;
@@ -1602,7 +1614,7 @@
  
  	if (!num_clips != !clips_ptr) {
  		ret = -EINVAL;
-@@ -1931,38 +2464,48 @@ void drm_fb_release(struct drm_file *priv)
+@@ -1941,38 +2464,48 @@ void drm_fb_release(struct drm_file *priv)
   *
   * Add @mode to @connector's user mode list.
   */
@@ -1670,7 +1682,7 @@
  }
  EXPORT_SYMBOL(drm_mode_attachmode_crtc);
  
-@@ -2041,9 +2584,14 @@ int drm_mode_attachmode_ioctl(struct drm_device *dev,
+@@ -2051,9 +2584,14 @@ int drm_mode_attachmode_ioctl(struct drm_device *dev,
  		goto out;
  	}
  
@@ -1687,7 +1699,7 @@
  out:
  	mutex_unlock(&dev->mode_config.mutex);
  	return ret;
-@@ -2084,7 +2632,12 @@ int drm_mode_detachmode_ioctl(struct drm_device *dev,
+@@ -2094,7 +2632,12 @@ int drm_mode_detachmode_ioctl(struct drm_device *dev,
  	}
  	connector = obj_to_connector(obj);
  
@@ -1701,7 +1713,7 @@
  	ret = drm_mode_detachmode(dev, connector, &mode);
  out:
  	mutex_unlock(&dev->mode_config.mutex);
-@@ -2095,6 +2648,7 @@ struct drm_property *drm_property_create(struct drm_device *dev, int flags,
+@@ -2105,6 +2648,7 @@ struct drm_property *drm_property_create(struct drm_device *dev, int flags,
  					 const char *name, int num_values)
  {
  	struct drm_property *property = NULL;
@@ -1709,7 +1721,7 @@
  
  	property = kzalloc(sizeof(struct drm_property), GFP_KERNEL);
  	if (!property)
-@@ -2106,7 +2660,10 @@ struct drm_property *drm_property_create(struct drm_device *dev, int flags,
+@@ -2116,7 +2660,10 @@ struct drm_property *drm_property_create(struct drm_device *dev, int flags,
  			goto fail;
  	}
  
@@ -1721,7 +1733,7 @@
  	property->flags = flags;
  	property->num_values = num_values;
  	INIT_LIST_HEAD(&property->enum_blob_list);
-@@ -2119,11 +2676,59 @@ struct drm_property *drm_property_create(struct drm_device *dev, int flags,
+@@ -2129,11 +2676,59 @@ struct drm_property *drm_property_create(struct drm_device *dev, int flags,
  	list_add_tail(&property->head, &dev->mode_config.property_list);
  	return property;
  fail:
@@ -1781,7 +1793,7 @@
  int drm_property_add_enum(struct drm_property *property, int index,
  			  uint64_t value, const char *name)
  {
-@@ -2242,7 +2847,7 @@ int drm_mode_getproperty_ioctl(struct drm_device *dev,
+@@ -2252,7 +2847,7 @@ int drm_mode_getproperty_ioctl(struct drm_device *dev,
  	struct drm_property_enum *prop_enum;
  	struct drm_mode_property_enum __user *enum_ptr;
  	struct drm_property_blob *prop_blob;
@@ -1790,7 +1802,7 @@
  	uint64_t __user *values_ptr;
  	uint32_t __user *blob_length_ptr;
  
-@@ -2272,7 +2877,7 @@ int drm_mode_getproperty_ioctl(struct drm_device *dev,
+@@ -2282,7 +2877,7 @@ int drm_mode_getproperty_ioctl(struct drm_device *dev,
  	out_resp->flags = property->flags;
  
  	if ((out_resp->count_values >= value_count) && value_count) {
@@ -1799,7 +1811,7 @@
  		for (i = 0; i < value_count; i++) {
  			if (copy_to_user(values_ptr + i, &property->values[i], sizeof(uint64_t))) {
  				ret = -EFAULT;
-@@ -2285,7 +2890,7 @@ int drm_mode_getproperty_ioctl(struct drm_device *dev,
+@@ -2295,7 +2890,7 @@ int drm_mode_getproperty_ioctl(struct drm_device *dev,
  	if (property->flags & DRM_MODE_PROP_ENUM) {
  		if ((out_resp->count_enum_blobs >= enum_count) && enum_count) {
  			copied = 0;
@@ -1808,7 +1820,7 @@
  			list_for_each_entry(prop_enum, &property->enum_blob_list, head) {
  
  				if (copy_to_user(&enum_ptr[copied].value, &prop_enum->value, sizeof(uint64_t))) {
-@@ -2307,8 +2912,8 @@ int drm_mode_getproperty_ioctl(struct drm_device *dev,
+@@ -2317,8 +2912,8 @@ int drm_mode_getproperty_ioctl(struct drm_device *dev,
  	if (property->flags & DRM_MODE_PROP_BLOB) {
  		if ((out_resp->count_enum_blobs >= blob_count) && blob_count) {
  			copied = 0;
@@ -1819,7 +1831,7 @@
  
  			list_for_each_entry(prop_blob, &property->enum_blob_list, head) {
  				if (put_user(prop_blob->base.id, blob_id_ptr + copied)) {
-@@ -2335,6 +2940,7 @@ static struct drm_property_blob *drm_property_create_blob(struct drm_device *dev
+@@ -2345,6 +2940,7 @@ static struct drm_property_blob *drm_property_create_blob(struct drm_device *dev
  							  void *data)
  {
  	struct drm_property_blob *blob;
@@ -1827,7 +1839,7 @@
  
  	if (!length || !data)
  		return NULL;
-@@ -2343,13 +2949,16 @@ static struct drm_property_blob *drm_property_create_blob(struct drm_device *dev
+@@ -2353,13 +2949,16 @@ static struct drm_property_blob *drm_property_create_blob(struct drm_device *dev
  	if (!blob)
  		return NULL;
  
@@ -1847,7 +1859,7 @@
  	list_add_tail(&blob->head, &dev->mode_config.property_blob_list);
  	return blob;
  }
-@@ -2369,7 +2978,7 @@ int drm_mode_getblob_ioctl(struct drm_device *dev,
+@@ -2379,7 +2978,7 @@ int drm_mode_getblob_ioctl(struct drm_device *dev,
  	struct drm_mode_get_blob *out_resp = data;
  	struct drm_property_blob *blob;
  	int ret = 0;
@@ -1856,7 +1868,7 @@
  
  	if (!drm_core_check_feature(dev, DRIVER_MODESET))
  		return -EINVAL;
-@@ -2383,7 +2992,7 @@ int drm_mode_getblob_ioctl(struct drm_device *dev,
+@@ -2393,7 +2992,7 @@ int drm_mode_getblob_ioctl(struct drm_device *dev,
  	blob = obj_to_blob(obj);
  
  	if (out_resp->length == blob->length) {
@@ -1865,7 +1877,7 @@
  		if (copy_to_user(blob_ptr, blob->data, blob->length)){
  			ret = -EFAULT;
  			goto done;
-@@ -2528,7 +3137,7 @@ void drm_mode_connector_detach_encoder(struct drm_connector *connector,
+@@ -2538,7 +3137,7 @@ void drm_mode_connector_detach_encoder(struct drm_connector *connector,
  }
  EXPORT_SYMBOL(drm_mode_connector_detach_encoder);
  
@@ -1874,7 +1886,7 @@
  				  int gamma_size)
  {
  	crtc->gamma_size = gamma_size;
-@@ -2536,10 +3145,10 @@ bool drm_mode_crtc_set_gamma_size(struct drm_crtc *crtc,
+@@ -2546,10 +3145,10 @@ bool drm_mode_crtc_set_gamma_size(struct drm_crtc *crtc,
  	crtc->gamma_store = kzalloc(gamma_size * sizeof(uint16_t) * 3, GFP_KERNEL);
  	if (!crtc->gamma_store) {
  		crtc->gamma_size = 0;
@@ -1887,7 +1899,7 @@
  }
  EXPORT_SYMBOL(drm_mode_crtc_set_gamma_size);
  
-@@ -2685,6 +3294,18 @@ int drm_mode_page_flip_ioctl(struct drm_device *dev,
+@@ -2695,6 +3294,18 @@ int drm_mode_page_flip_ioctl(struct drm_device *dev,
  		goto out;
  	fb = obj_to_fb(obj);
  
@@ -1906,7 +1918,7 @@
  	if (page_flip->flags & DRM_MODE_PAGE_FLIP_EVENT) {
  		ret = -ENOMEM;
  		spin_lock_irqsave(&dev->event_lock, flags);
-@@ -2714,10 +3335,12 @@ int drm_mode_page_flip_ioctl(struct drm_device *dev,
+@@ -2724,10 +3335,12 @@ int drm_mode_page_flip_ioctl(struct drm_device *dev,
  
  	ret = crtc->funcs->page_flip(crtc, fb, e);
  	if (ret) {
@@ -1923,7 +1935,7 @@
  	}
  
  out:
-@@ -2777,3 +3400,72 @@ int drm_mode_destroy_dumb_ioctl(struct drm_device *dev,
+@@ -2787,3 +3400,72 @@ int drm_mode_destroy_dumb_ioctl(struct drm_device *dev,
  
  	return dev->driver->dumb_destroy(file_priv, dev, args->handle);
  }
@@ -44495,7 +44507,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 2865b44..2ac4ded 100644
+index 315a49e..2ac4ded 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);
@@ -45168,7 +45180,35 @@
  		if (ret)
  			return ret;
  	}
-@@ -2434,7 +2379,8 @@ i915_gem_object_flush_fence(struct drm_i915_gem_object *obj,
+@@ -2248,13 +2193,6 @@ static int sandybridge_write_fence_reg(struct drm_i915_gem_object *obj,
+ 	int regnum = obj->fence_reg;
+ 	uint64_t val;
+ 
+-	/* Adjust fence size to match tiled area */
+-	if (obj->tiling_mode != I915_TILING_NONE) {
+-		uint32_t row_size = obj->stride *
+-			(obj->tiling_mode == I915_TILING_Y ? 32 : 8);
+-		size = (size / row_size) * row_size;
+-	}
+-
+ 	val = (uint64_t)((obj->gtt_offset + size - 4096) &
+ 			 0xfffff000) << 32;
+ 	val |= obj->gtt_offset & 0xfffff000;
+@@ -2292,13 +2230,6 @@ static int i965_write_fence_reg(struct drm_i915_gem_object *obj,
+ 	int regnum = obj->fence_reg;
+ 	uint64_t val;
+ 
+-	/* Adjust fence size to match tiled area */
+-	if (obj->tiling_mode != I915_TILING_NONE) {
+-		uint32_t row_size = obj->stride *
+-			(obj->tiling_mode == I915_TILING_Y ? 32 : 8);
+-		size = (size / row_size) * row_size;
+-	}
+-
+ 	val = (uint64_t)((obj->gtt_offset + size - 4096) &
+ 		    0xfffff000) << 32;
+ 	val |= obj->gtt_offset & 0xfffff000;
+@@ -2448,7 +2379,8 @@ i915_gem_object_flush_fence(struct drm_i915_gem_object *obj,
  		if (!ring_passed_seqno(obj->last_fenced_ring,
  				       obj->last_fenced_seqno)) {
  			ret = i915_wait_request(obj->last_fenced_ring,
@@ -45178,7 +45218,7 @@
  			if (ret)
  				return ret;
  		}
-@@ -2466,6 +2412,8 @@ i915_gem_object_put_fence(struct drm_i915_gem_object *obj)
+@@ -2480,6 +2412,8 @@ i915_gem_object_put_fence(struct drm_i915_gem_object *obj)
  
  	if (obj->fence_reg != I915_FENCE_REG_NONE) {
  		struct drm_i915_private *dev_priv = obj->base.dev->dev_private;
@@ -45187,7 +45227,7 @@
  		i915_gem_clear_fence_reg(obj->base.dev,
  					 &dev_priv->fence_regs[obj->fence_reg]);
  
-@@ -2490,7 +2438,7 @@ i915_find_fence_reg(struct drm_device *dev,
+@@ -2504,7 +2438,7 @@ i915_find_fence_reg(struct drm_device *dev,
  		if (!reg->obj)
  			return reg;
  
@@ -45196,7 +45236,7 @@
  			avail = reg;
  	}
  
-@@ -2500,7 +2448,7 @@ i915_find_fence_reg(struct drm_device *dev,
+@@ -2514,7 +2448,7 @@ i915_find_fence_reg(struct drm_device *dev,
  	/* None available, try to steal one or wait for a user to finish */
  	avail = first = NULL;
  	list_for_each_entry(reg, &dev_priv->mm.fence_list, lru_list) {
@@ -45205,7 +45245,7 @@
  			continue;
  
  		if (first == NULL)
-@@ -2580,7 +2528,8 @@ i915_gem_object_get_fence(struct drm_i915_gem_object *obj,
+@@ -2594,7 +2528,8 @@ i915_gem_object_get_fence(struct drm_i915_gem_object *obj,
  				if (!ring_passed_seqno(obj->last_fenced_ring,
  						       reg->setup_seqno)) {
  					ret = i915_wait_request(obj->last_fenced_ring,
@@ -45215,7 +45255,7 @@
  					if (ret)
  						return ret;
  				}
-@@ -2599,7 +2548,7 @@ i915_gem_object_get_fence(struct drm_i915_gem_object *obj,
+@@ -2613,7 +2548,7 @@ i915_gem_object_get_fence(struct drm_i915_gem_object *obj,
  
  	reg = i915_find_fence_reg(dev, pipelined);
  	if (reg == NULL)
@@ -45224,7 +45264,7 @@
  
  	ret = i915_gem_object_flush_fence(obj, pipelined);
  	if (ret)
-@@ -2710,6 +2659,7 @@ i915_gem_clear_fence_reg(struct drm_device *dev,
+@@ -2724,6 +2659,7 @@ i915_gem_clear_fence_reg(struct drm_device *dev,
  	list_del_init(&reg->lru_list);
  	reg->obj = NULL;
  	reg->setup_seqno = 0;
@@ -45232,7 +45272,7 @@
  }
  
  /**
-@@ -2996,6 +2946,8 @@ i915_gem_object_set_to_gtt_domain(struct drm_i915_gem_object *obj, bool write)
+@@ -3010,6 +2946,8 @@ i915_gem_object_set_to_gtt_domain(struct drm_i915_gem_object *obj, bool write)
  int i915_gem_object_set_cache_level(struct drm_i915_gem_object *obj,
  				    enum i915_cache_level cache_level)
  {
@@ -45241,7 +45281,7 @@
  	int ret;
  
  	if (obj->cache_level == cache_level)
-@@ -3024,6 +2976,9 @@ int i915_gem_object_set_cache_level(struct drm_i915_gem_object *obj,
+@@ -3038,6 +2976,9 @@ int i915_gem_object_set_cache_level(struct drm_i915_gem_object *obj,
  		}
  
  		i915_gem_gtt_rebind_object(obj, cache_level);
@@ -45251,7 +45291,7 @@
  	}
  
  	if (cache_level == I915_CACHE_NONE) {
-@@ -3362,8 +3317,8 @@ i915_gem_ring_throttle(struct drm_device *dev, struct drm_file *file)
+@@ -3376,8 +3317,8 @@ i915_gem_ring_throttle(struct drm_device *dev, struct drm_file *file)
  
  			if (ret == 0 && atomic_read(&dev_priv->mm.wedged))
  				ret = -EIO;
@@ -45262,7 +45302,7 @@
  				    atomic_read(&dev_priv->mm.wedged), 3000)) {
  			ret = -EBUSY;
  		}
-@@ -3674,8 +3629,8 @@ struct drm_i915_gem_object *i915_gem_alloc_object(struct drm_device *dev,
+@@ -3688,8 +3629,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;
  
@@ -45273,7 +45313,7 @@
  		 * cache) for about a 10% performance improvement
  		 * compared to uncached.  Graphics requests other than
  		 * display scanout are coherent with the CPU in
-@@ -3765,7 +3720,7 @@ i915_gem_idle(struct drm_device *dev)
+@@ -3779,7 +3720,7 @@ i915_gem_idle(struct drm_device *dev)
  		return 0;
  	}
  
@@ -45282,7 +45322,7 @@
  	if (ret) {
  		mutex_unlock(&dev->struct_mutex);
  		return ret;
-@@ -3800,12 +3755,91 @@ i915_gem_idle(struct drm_device *dev)
+@@ -3814,12 +3755,91 @@ i915_gem_idle(struct drm_device *dev)
  	return 0;
  }
  
@@ -45375,7 +45415,7 @@
  	ret = intel_init_render_ring_buffer(dev);
  	if (ret)
  		return ret;
-@@ -3824,6 +3858,8 @@ i915_gem_init_ringbuffer(struct drm_device *dev)
+@@ -3838,6 +3858,8 @@ i915_gem_init_ringbuffer(struct drm_device *dev)
  
  	dev_priv->next_seqno = 1;
  
@@ -45384,7 +45424,7 @@
  	return 0;
  
  cleanup_bsd_ring:
-@@ -3861,7 +3897,7 @@ i915_gem_entervt_ioctl(struct drm_device *dev, void *data,
+@@ -3875,7 +3897,7 @@ i915_gem_entervt_ioctl(struct drm_device *dev, void *data,
  	mutex_lock(&dev->struct_mutex);
  	dev_priv->mm.suspended = 0;
  
@@ -45393,7 +45433,7 @@
  	if (ret != 0) {
  		mutex_unlock(&dev->struct_mutex);
  		return ret;
-@@ -4256,7 +4292,7 @@ rescan:
+@@ -4270,7 +4292,7 @@ rescan:
  		 * This has a dramatic impact to reduce the number of
  		 * OOM-killer events whilst running the GPU aggressively.
  		 */
@@ -50052,7 +50092,7 @@
  	}
  
 diff --git a/drivers/gpu/drm/i915/intel_lvds.c b/drivers/gpu/drm/i915/intel_lvds.c
-index fadd021..77190cc 100644
+index 4da8182..77190cc 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,
@@ -50101,16 +50141,46 @@
  /**
   * intel_lvds_init - setup LVDS connectors on this device
   * @dev: drm device
-@@ -914,6 +932,9 @@ bool intel_lvds_init(struct drm_device *dev)
+@@ -914,17 +932,8 @@ bool intel_lvds_init(struct drm_device *dev)
  	int pipe;
  	u8 pin;
  
+-	/*
+-	 * Unlock registers and just leave them unlocked. Do this before
+-	 * checking quirk lists to avoid bogus WARNINGs.
+-	 */
+-	if (HAS_PCH_SPLIT(dev)) {
+-		I915_WRITE(PCH_PP_CONTROL,
+-			   I915_READ(PCH_PP_CONTROL) | PANEL_UNLOCK_REGS);
+-	} else {
+-		I915_WRITE(PP_CONTROL,
+-			   I915_READ(PP_CONTROL) | PANEL_UNLOCK_REGS);
+-	}
 +	if (!intel_lvds_supported(dev))
 +		return false;
-+
+ 
  	/* Skip init on machines we know falsely report LVDS */
  	if (dmi_check_system(intel_no_lvds))
- 		return false;
+@@ -1100,6 +1109,19 @@ out:
+ 		pwm = I915_READ(BLC_PWM_PCH_CTL1);
+ 		pwm |= PWM_PCH_ENABLE;
+ 		I915_WRITE(BLC_PWM_PCH_CTL1, pwm);
++		/*
++		 * Unlock registers and just
++		 * leave them unlocked
++		 */
++		I915_WRITE(PCH_PP_CONTROL,
++			   I915_READ(PCH_PP_CONTROL) | PANEL_UNLOCK_REGS);
++	} else {
++		/*
++		 * Unlock registers and just
++		 * leave them unlocked
++		 */
++		I915_WRITE(PP_CONTROL,
++			   I915_READ(PP_CONTROL) | PANEL_UNLOCK_REGS);
+ 	}
+ 	dev_priv->lid_notifier.notifier_call = intel_lid_notify;
+ 	if (acpi_lid_notifier_register(&dev_priv->lid_notifier)) {
 diff --git a/drivers/gpu/drm/i915/intel_modes.c b/drivers/gpu/drm/i915/intel_modes.c
 index be2c6fe..9a2b270 100644
 --- a/drivers/gpu/drm/i915/intel_modes.c
@@ -72934,7 +73004,7 @@
  #include <linux/kernel.h>
  
 diff --git a/drivers/gpu/drm/radeon/evergreen.c b/drivers/gpu/drm/radeon/evergreen.c
-index 9b3f787..df62c39 100644
+index 9b3f787..01434ef 100644
 --- a/drivers/gpu/drm/radeon/evergreen.c
 +++ b/drivers/gpu/drm/radeon/evergreen.c
 @@ -50,6 +50,39 @@ static const u32 crtc_offsets[6] =
@@ -72986,7 +73056,7 @@
  {
  	u32 tmp = RREG32(MC_SHARED_CHMAP);
  
-@@ -1136,11 +1169,23 @@ void evergreen_mc_stop(struct radeon_device *rdev, struct evergreen_mc_save *sav
+@@ -1136,11 +1169,24 @@ void evergreen_mc_stop(struct radeon_device *rdev, struct evergreen_mc_save *sav
  		crtc_enabled = RREG32(EVERGREEN_CRTC_CONTROL + crtc_offsets[i]) & EVERGREEN_CRTC_MASTER_EN;
  		if (crtc_enabled) {
  			save->crtc_enabled[i] = true;
@@ -73002,6 +73072,7 @@
 +					WREG32(EVERGREEN_CRTC_UPDATE_LOCK + crtc_offsets[i], 1);
 +					tmp |= EVERGREEN_CRTC_BLANK_DATA_EN;
 +					WREG32(EVERGREEN_CRTC_BLANK_CONTROL + crtc_offsets[i], tmp);
++					WREG32(EVERGREEN_CRTC_UPDATE_LOCK + crtc_offsets[i], 0);
 +				}
 +			} else {
 +				tmp = RREG32(EVERGREEN_CRTC_CONTROL + crtc_offsets[i]);
@@ -73015,7 +73086,7 @@
  			}
  			/* wait for the next frame */
  			frame_count = radeon_get_vblank_counter(rdev, i);
-@@ -1149,12 +1194,21 @@ void evergreen_mc_stop(struct radeon_device *rdev, struct evergreen_mc_save *sav
+@@ -1149,12 +1195,21 @@ void evergreen_mc_stop(struct radeon_device *rdev, struct evergreen_mc_save *sav
  					break;
  				udelay(1);
  			}
@@ -73038,7 +73109,7 @@
  
  	blackout = RREG32(MC_SHARED_BLACKOUT_CNTL);
  	if ((blackout & BLACKOUT_MODE_MASK) != 1) {
-@@ -1166,6 +1220,22 @@ void evergreen_mc_stop(struct radeon_device *rdev, struct evergreen_mc_save *sav
+@@ -1166,6 +1221,22 @@ void evergreen_mc_stop(struct radeon_device *rdev, struct evergreen_mc_save *sav
  	}
  	/* wait for the MC to settle */
  	udelay(100);
@@ -73061,7 +73132,7 @@
  }
  
  void evergreen_mc_resume(struct radeon_device *rdev, struct evergreen_mc_save *save)
-@@ -1187,6 +1257,33 @@ void evergreen_mc_resume(struct radeon_device *rdev, struct evergreen_mc_save *s
+@@ -1187,6 +1258,33 @@ void evergreen_mc_resume(struct radeon_device *rdev, struct evergreen_mc_save *s
  	WREG32(EVERGREEN_VGA_MEMORY_BASE_ADDRESS_HIGH, upper_32_bits(rdev->mc.vram_start));
  	WREG32(EVERGREEN_VGA_MEMORY_BASE_ADDRESS, (u32)rdev->mc.vram_start);
  
@@ -73095,7 +73166,7 @@
  	/* unblackout the MC */
  	tmp = RREG32(MC_SHARED_BLACKOUT_CNTL);
  	tmp &= ~BLACKOUT_MODE_MASK;
-@@ -1196,9 +1293,19 @@ void evergreen_mc_resume(struct radeon_device *rdev, struct evergreen_mc_save *s
+@@ -1196,9 +1294,19 @@ void evergreen_mc_resume(struct radeon_device *rdev, struct evergreen_mc_save *s
  
  	for (i = 0; i < rdev->num_crtc; i++) {
  		if (save->crtc_enabled[i]) {
@@ -73118,7 +73189,7 @@
  			/* wait for the next frame */
  			frame_count = radeon_get_vblank_counter(rdev, i);
  			for (j = 0; j < rdev->usec_timeout; j++) {
-@@ -1258,7 +1365,10 @@ void evergreen_mc_program(struct radeon_device *rdev)
+@@ -1258,7 +1366,10 @@ void evergreen_mc_program(struct radeon_device *rdev)
  			rdev->mc.vram_end >> 12);
  	}
  	WREG32(MC_VM_SYSTEM_APERTURE_DEFAULT_ADDR, rdev->vram_scratch.gpu_addr >> 12);
@@ -73130,7 +73201,7 @@
  		tmp = RREG32(MC_FUS_VM_FB_OFFSET) & 0x000FFFFF;
  		tmp |= ((rdev->mc.vram_end >> 20) & 0xF) << 24;
  		tmp |= ((rdev->mc.vram_start >> 20) & 0xF) << 20;
-@@ -1293,18 +1403,20 @@ void evergreen_mc_program(struct radeon_device *rdev)
+@@ -1293,18 +1404,20 @@ void evergreen_mc_program(struct radeon_device *rdev)
   */
  void evergreen_ring_ib_execute(struct radeon_device *rdev, struct radeon_ib *ib)
  {
@@ -73157,7 +73228,7 @@
  }
  
  
-@@ -1342,71 +1454,73 @@ static int evergreen_cp_load_microcode(struct radeon_device *rdev)
+@@ -1342,71 +1455,73 @@ static int evergreen_cp_load_microcode(struct radeon_device *rdev)
  
  static int evergreen_cp_start(struct radeon_device *rdev)
  {
@@ -73262,7 +73333,7 @@
  	u32 tmp;
  	u32 rb_bufsz;
  	int r;
-@@ -1424,13 +1538,14 @@ int evergreen_cp_resume(struct radeon_device *rdev)
+@@ -1424,13 +1539,14 @@ int evergreen_cp_resume(struct radeon_device *rdev)
  	RREG32(GRBM_SOFT_RESET);
  
  	/* Set ring buffer size */
@@ -73279,7 +73350,7 @@
  
  	/* Set the write pointer delay */
  	WREG32(CP_RB_WPTR_DELAY, 0);
-@@ -1438,8 +1553,8 @@ int evergreen_cp_resume(struct radeon_device *rdev)
+@@ -1438,8 +1554,8 @@ int evergreen_cp_resume(struct radeon_device *rdev)
  	/* Initialize the ring buffer's read and write pointers */
  	WREG32(CP_RB_CNTL, tmp | RB_RPTR_WR_ENA);
  	WREG32(CP_RB_RPTR_WR, 0);
@@ -73290,7 +73361,7 @@
  
  	/* set the wb address wether it's enabled or not */
  	WREG32(CP_RB_RPTR_ADDR,
-@@ -1457,16 +1572,16 @@ int evergreen_cp_resume(struct radeon_device *rdev)
+@@ -1457,16 +1573,16 @@ int evergreen_cp_resume(struct radeon_device *rdev)
  	mdelay(1);
  	WREG32(CP_RB_CNTL, tmp);
  
@@ -73312,7 +73383,7 @@
  		return r;
  	}
  	return 0;
-@@ -1897,7 +2012,9 @@ static void evergreen_gpu_init(struct radeon_device *rdev)
+@@ -1897,7 +2013,9 @@ static void evergreen_gpu_init(struct radeon_device *rdev)
  
  
  	mc_shared_chmap = RREG32(MC_SHARED_CHMAP);
@@ -73323,7 +73394,7 @@
  		mc_arb_ramcfg = RREG32(FUS_MC_ARB_RAMCFG);
  	else
  		mc_arb_ramcfg = RREG32(MC_ARB_RAMCFG);
-@@ -2301,7 +2418,9 @@ int evergreen_mc_init(struct radeon_device *rdev)
+@@ -2301,7 +2419,9 @@ int evergreen_mc_init(struct radeon_device *rdev)
  
  	/* Get VRAM informations */
  	rdev->mc.vram_is_ddr = true;
@@ -73334,7 +73405,7 @@
  		tmp = RREG32(FUS_MC_ARB_RAMCFG);
  	else
  		tmp = RREG32(MC_ARB_RAMCFG);
-@@ -2333,14 +2452,16 @@ int evergreen_mc_init(struct radeon_device *rdev)
+@@ -2333,14 +2453,16 @@ int evergreen_mc_init(struct radeon_device *rdev)
  	rdev->mc.aper_base = pci_resource_start(rdev->pdev, 0);
  	rdev->mc.aper_size = pci_resource_len(rdev->pdev, 0);
  	/* Setup GPU memory space */
@@ -73355,7 +73426,7 @@
  	}
  	rdev->mc.visible_vram_size = rdev->mc.aper_size;
  	r700_vram_gtt_location(rdev, &rdev->mc);
-@@ -2349,7 +2470,7 @@ int evergreen_mc_init(struct radeon_device *rdev)
+@@ -2349,7 +2471,7 @@ int evergreen_mc_init(struct radeon_device *rdev)
  	return 0;
  }
  
@@ -73364,7 +73435,7 @@
  {
  	u32 srbm_status;
  	u32 grbm_status;
-@@ -2362,19 +2483,19 @@ bool evergreen_gpu_is_lockup(struct radeon_device *rdev)
+@@ -2362,19 +2484,19 @@ bool evergreen_gpu_is_lockup(struct radeon_device *rdev)
  	grbm_status_se0 = RREG32(GRBM_STATUS_SE0);
  	grbm_status_se1 = RREG32(GRBM_STATUS_SE1);
  	if (!(grbm_status & GUI_ACTIVE)) {
@@ -73391,7 +73462,7 @@
  }
  
  static int evergreen_gpu_soft_reset(struct radeon_device *rdev)
-@@ -2466,7 +2587,13 @@ void evergreen_disable_interrupt_state(struct radeon_device *rdev)
+@@ -2466,7 +2588,13 @@ void evergreen_disable_interrupt_state(struct radeon_device *rdev)
  {
  	u32 tmp;
  
@@ -73406,7 +73477,7 @@
  	WREG32(GRBM_INT_CNTL, 0);
  	WREG32(INT_MASK + EVERGREEN_CRTC0_REGISTER_OFFSET, 0);
  	WREG32(INT_MASK + EVERGREEN_CRTC1_REGISTER_OFFSET, 0);
-@@ -2490,7 +2617,9 @@ void evergreen_disable_interrupt_state(struct radeon_device *rdev)
+@@ -2490,7 +2618,9 @@ void evergreen_disable_interrupt_state(struct radeon_device *rdev)
  		WREG32(GRPH_INT_CONTROL + EVERGREEN_CRTC5_REGISTER_OFFSET, 0);
  	}
  
@@ -73417,7 +73488,7 @@
  	WREG32(DACB_AUTODETECT_INT_CONTROL, 0);
  
  	tmp = RREG32(DC_HPD1_INT_CONTROL) & DC_HPDx_INT_POLARITY;
-@@ -2511,6 +2640,7 @@ void evergreen_disable_interrupt_state(struct radeon_device *rdev)
+@@ -2511,6 +2641,7 @@ void evergreen_disable_interrupt_state(struct radeon_device *rdev)
  int evergreen_irq_set(struct radeon_device *rdev)
  {
  	u32 cp_int_cntl = CNTX_BUSY_INT_ENABLE | CNTX_EMPTY_INT_ENABLE;
@@ -73425,7 +73496,7 @@
  	u32 crtc1 = 0, crtc2 = 0, crtc3 = 0, crtc4 = 0, crtc5 = 0, crtc6 = 0;
  	u32 hpd1, hpd2, hpd3, hpd4, hpd5, hpd6;
  	u32 grbm_int_cntl = 0;
-@@ -2535,11 +2665,28 @@ int evergreen_irq_set(struct radeon_device *rdev)
+@@ -2535,11 +2666,28 @@ int evergreen_irq_set(struct radeon_device *rdev)
  	hpd5 = RREG32(DC_HPD5_INT_CONTROL) & ~DC_HPDx_INT_EN;
  	hpd6 = RREG32(DC_HPD6_INT_CONTROL) & ~DC_HPDx_INT_EN;
  
@@ -73458,7 +73529,7 @@
  	if (rdev->irq.crtc_vblank_int[0] ||
  	    rdev->irq.pflip[0]) {
  		DRM_DEBUG("evergreen_irq_set: vblank 0\n");
-@@ -2599,7 +2746,12 @@ int evergreen_irq_set(struct radeon_device *rdev)
+@@ -2599,7 +2747,12 @@ int evergreen_irq_set(struct radeon_device *rdev)
  		grbm_int_cntl |= GUI_IDLE_INT_ENABLE;
  	}
  
@@ -73472,7 +73543,7 @@
  	WREG32(GRBM_INT_CNTL, grbm_int_cntl);
  
  	WREG32(INT_MASK + EVERGREEN_CRTC0_REGISTER_OFFSET, crtc1);
-@@ -2765,7 +2917,6 @@ static u32 evergreen_get_ih_wptr(struct radeon_device *rdev)
+@@ -2765,7 +2918,6 @@ static u32 evergreen_get_ih_wptr(struct radeon_device *rdev)
  		tmp = RREG32(IH_RB_CNTL);
  		tmp |= IH_WPTR_OVERFLOW_CLEAR;
  		WREG32(IH_RB_CNTL, tmp);
@@ -73480,7 +73551,7 @@
  	}
  	return (wptr & rdev->ih.ptr_mask);
  }
-@@ -3015,11 +3166,24 @@ restart_ih:
+@@ -3015,11 +3167,24 @@ restart_ih:
  		case 177: /* CP_INT in IB1 */
  		case 178: /* CP_INT in IB2 */
  			DRM_DEBUG("IH: CP int: 0x%08x\n", src_data);
@@ -73507,7 +73578,7 @@
  			break;
  		case 233: /* GUI IDLE */
  			DRM_DEBUG("IH: GUI idle\n");
-@@ -3049,6 +3213,7 @@ restart_ih:
+@@ -3049,6 +3214,7 @@ restart_ih:
  
  static int evergreen_startup(struct radeon_device *rdev)
  {
@@ -73515,7 +73586,7 @@
  	int r;
  
  	/* enable pcie gen2 link */
-@@ -3095,7 +3260,7 @@ static int evergreen_startup(struct radeon_device *rdev)
+@@ -3095,7 +3261,7 @@ static int evergreen_startup(struct radeon_device *rdev)
  	r = evergreen_blit_init(rdev);
  	if (r) {
  		r600_blit_fini(rdev);
@@ -73524,7 +73595,7 @@
  		dev_warn(rdev->dev, "failed blitter (%d) falling back to memcpy\n", r);
  	}
  
-@@ -3104,6 +3269,12 @@ static int evergreen_startup(struct radeon_device *rdev)
+@@ -3104,6 +3270,12 @@ static int evergreen_startup(struct radeon_device *rdev)
  	if (r)
  		return r;
  
@@ -73537,7 +73608,7 @@
  	/* Enable IRQ */
  	if (!rdev->irq.installed) {
  		r = radeon_irq_kms_init(rdev);
-@@ -3119,7 +3290,9 @@ static int evergreen_startup(struct radeon_device *rdev)
+@@ -3119,7 +3291,9 @@ static int evergreen_startup(struct radeon_device *rdev)
  	}
  	evergreen_irq_set(rdev);
  
@@ -73548,7 +73619,7 @@
  	if (r)
  		return r;
  	r = evergreen_cp_load_microcode(rdev);
-@@ -3129,6 +3302,23 @@ static int evergreen_startup(struct radeon_device *rdev)
+@@ -3129,6 +3303,23 @@ static int evergreen_startup(struct radeon_device *rdev)
  	if (r)
  		return r;
  
@@ -73572,7 +73643,7 @@
  	return 0;
  }
  
-@@ -3148,15 +3338,11 @@ int evergreen_resume(struct radeon_device *rdev)
+@@ -3148,15 +3339,11 @@ int evergreen_resume(struct radeon_device *rdev)
  	/* post card */
  	atom_asic_init(rdev->mode_info.atom_context);
  
@@ -73590,7 +73661,7 @@
  		return r;
  	}
  
-@@ -3166,13 +3352,17 @@ int evergreen_resume(struct radeon_device *rdev)
+@@ -3166,13 +3353,17 @@ int evergreen_resume(struct radeon_device *rdev)
  
  int evergreen_suspend(struct radeon_device *rdev)
  {
@@ -73610,7 +73681,7 @@
  
  	return 0;
  }
-@@ -3243,8 +3433,8 @@ int evergreen_init(struct radeon_device *rdev)
+@@ -3243,8 +3434,8 @@ int evergreen_init(struct radeon_device *rdev)
  	if (r)
  		return r;
  
@@ -73621,7 +73692,7 @@
  
  	rdev->ih.ring_obj = NULL;
  	r600_ih_ring_init(rdev, 64 * 1024);
-@@ -3253,29 +3443,24 @@ int evergreen_init(struct radeon_device *rdev)
+@@ -3253,29 +3444,24 @@ int evergreen_init(struct radeon_device *rdev)
  	if (r)
  		return r;
  
@@ -73658,7 +73729,7 @@
  
  	/* Don't start up if the MC ucode is missing on BTC parts.
  	 * The default clocks and voltages before the MC ucode
-@@ -3293,15 +3478,17 @@ int evergreen_init(struct radeon_device *rdev)
+@@ -3293,15 +3479,17 @@ int evergreen_init(struct radeon_device *rdev)
  
  void evergreen_fini(struct radeon_device *rdev)
  {
@@ -104346,7 +104417,7 @@
  	info->apertures = alloc_apertures(1);
  	if (!info->apertures) {
 diff --git a/drivers/gpu/drm/vmwgfx/vmwgfx_fence.c b/drivers/gpu/drm/vmwgfx/vmwgfx_fence.c
-index 15fb260..7e07433 100644
+index 1ed5a1c..7e07433 100644
 --- a/drivers/gpu/drm/vmwgfx/vmwgfx_fence.c
 +++ b/drivers/gpu/drm/vmwgfx/vmwgfx_fence.c
 @@ -69,12 +69,13 @@ struct vmw_user_fence {
@@ -104366,7 +104437,54 @@
  	uint32_t *tv_sec;
  	uint32_t *tv_usec;
  };
-@@ -784,46 +785,40 @@ int vmw_fence_obj_unref_ioctl(struct drm_device *dev, void *data,
+@@ -484,7 +485,14 @@ void vmw_fence_obj_flush(struct vmw_fence_obj *fence)
+ 
+ static void vmw_fence_destroy(struct vmw_fence_obj *fence)
+ {
++	struct vmw_fence_manager *fman = fence->fman;
++
+ 	kfree(fence);
++	/*
++	 * Free kernel space accounting.
++	 */
++	ttm_mem_global_free(vmw_mem_glob(fman->dev_priv),
++			    fman->fence_size);
+ }
+ 
+ int vmw_fence_create(struct vmw_fence_manager *fman,
+@@ -492,12 +500,20 @@ int vmw_fence_create(struct vmw_fence_manager *fman,
+ 		     uint32_t mask,
+ 		     struct vmw_fence_obj **p_fence)
+ {
++	struct ttm_mem_global *mem_glob = vmw_mem_glob(fman->dev_priv);
+ 	struct vmw_fence_obj *fence;
+ 	int ret;
+ 
++	ret = ttm_mem_global_alloc(mem_glob, fman->fence_size,
++				   false, false);
++	if (unlikely(ret != 0))
++		return ret;
++
+ 	fence = kzalloc(sizeof(*fence), GFP_KERNEL);
+-	if (unlikely(fence == NULL))
+-		return -ENOMEM;
++	if (unlikely(fence == NULL)) {
++		ret = -ENOMEM;
++		goto out_no_object;
++	}
+ 
+ 	ret = vmw_fence_obj_init(fman, fence, seqno, mask,
+ 				 vmw_fence_destroy);
+@@ -509,6 +525,8 @@ int vmw_fence_create(struct vmw_fence_manager *fman,
+ 
+ out_err_init:
+ 	kfree(fence);
++out_no_object:
++	ttm_mem_global_free(mem_glob, fman->fence_size);
+ 	return ret;
+ }
+ 
+@@ -767,46 +785,40 @@ int vmw_fence_obj_unref_ioctl(struct drm_device *dev, void *data,
  }
  
  /**
@@ -104442,7 +104560,7 @@
  }
  
  
-@@ -836,18 +831,21 @@ static void vmw_event_fence_action_delivered(struct drm_pending_event *e)
+@@ -819,18 +831,21 @@ static void vmw_event_fence_action_delivered(struct drm_pending_event *e)
   * This function is called when the seqno of the fence where @action is
   * attached has passed. It queues the event on the submitter's event list.
   * This function is always called from atomic context, and may be called
@@ -104468,7 +104586,7 @@
  	spin_lock_irqsave(&dev->event_lock, irq_flags);
  
  	if (likely(eaction->tv_sec != NULL)) {
-@@ -858,7 +856,9 @@ static void vmw_event_fence_action_seq_passed(struct vmw_fence_action *action)
+@@ -841,7 +856,9 @@ static void vmw_event_fence_action_seq_passed(struct vmw_fence_action *action)
  		*eaction->tv_usec = tv.tv_usec;
  	}
  
@@ -104479,7 +104597,7 @@
  	wake_up_all(&file_priv->event_wait);
  	spin_unlock_irqrestore(&dev->event_lock, irq_flags);
  }
-@@ -876,9 +876,15 @@ static void vmw_event_fence_action_cleanup(struct vmw_fence_action *action)
+@@ -859,9 +876,15 @@ static void vmw_event_fence_action_cleanup(struct vmw_fence_action *action)
  {
  	struct vmw_event_fence_action *eaction =
  		container_of(action, struct vmw_event_fence_action, action);
@@ -104496,7 +104614,7 @@
  }
  
  
-@@ -946,39 +952,23 @@ void vmw_fence_obj_add_action(struct vmw_fence_obj *fence,
+@@ -929,39 +952,23 @@ void vmw_fence_obj_add_action(struct vmw_fence_obj *fence,
   * an error code, the caller needs to free that object.
   */
  
@@ -104546,7 +104664,7 @@
  
  	eaction->action.seq_passed = vmw_event_fence_action_seq_passed;
  	eaction->action.cleanup = vmw_event_fence_action_cleanup;
-@@ -986,16 +976,89 @@ int vmw_event_fence_action_create(struct drm_file *file_priv,
+@@ -969,16 +976,89 @@ int vmw_event_fence_action_create(struct drm_file *file_priv,
  
  	eaction->fence = vmw_fence_obj_reference(fence);
  	eaction->dev = fman->dev_priv->dev;
@@ -104638,7 +104756,7 @@
  int vmw_fence_event_ioctl(struct drm_device *dev, void *data,
  			  struct drm_file *file_priv)
  {
-@@ -1008,8 +1071,6 @@ int vmw_fence_event_ioctl(struct drm_device *dev, void *data,
+@@ -991,8 +1071,6 @@ int vmw_fence_event_ioctl(struct drm_device *dev, void *data,
  		(struct drm_vmw_fence_rep __user *)(unsigned long)
  		arg->fence_rep;
  	uint32_t handle;
@@ -104647,7 +104765,7 @@
  	int ret;
  
  	/*
-@@ -1062,59 +1123,28 @@ int vmw_fence_event_ioctl(struct drm_device *dev, void *data,
+@@ -1045,59 +1123,28 @@ int vmw_fence_event_ioctl(struct drm_device *dev, void *data,
  
  	BUG_ON(fence == NULL);
  
@@ -104758,7 +104876,7 @@
  	return 0;
  out_err:
 diff --git a/drivers/gpu/drm/vmwgfx/vmwgfx_kms.c b/drivers/gpu/drm/vmwgfx/vmwgfx_kms.c
-index eb9735e..00fb5aa 100644
+index eb9735e..7ca1d47 100644
 --- a/drivers/gpu/drm/vmwgfx/vmwgfx_kms.c
 +++ b/drivers/gpu/drm/vmwgfx/vmwgfx_kms.c
 @@ -422,7 +422,8 @@ static int do_surface_dirty_sou(struct vmw_private *dev_priv,
@@ -105038,43 +105156,6 @@
  void vmw_du_crtc_save(struct drm_crtc *crtc)
  {
  }
-@@ -1826,14 +1915,6 @@ int vmw_du_connector_fill_modes(struct drm_connector *connector,
- 		DRM_MODE_FLAG_NHSYNC | DRM_MODE_FLAG_PVSYNC)
- 	};
- 	int i;
--	u32 assumed_bpp = 2;
--
--	/*
--	 * If using screen objects, then assume 32-bpp because that's what the
--	 * SVGA device is assuming
--	 */
--	if (dev_priv->sou_priv)
--		assumed_bpp = 4;
- 
- 	/* Add preferred mode */
- 	{
-@@ -1844,9 +1925,8 @@ int vmw_du_connector_fill_modes(struct drm_connector *connector,
- 		mode->vdisplay = du->pref_height;
- 		vmw_guess_mode_timing(mode);
- 
--		if (vmw_kms_validate_mode_vram(dev_priv,
--						mode->hdisplay * assumed_bpp,
--						mode->vdisplay)) {
-+		if (vmw_kms_validate_mode_vram(dev_priv, mode->hdisplay * 2,
-+					       mode->vdisplay)) {
- 			drm_mode_probed_add(connector, mode);
- 		} else {
- 			drm_mode_destroy(dev, mode);
-@@ -1868,8 +1948,7 @@ int vmw_du_connector_fill_modes(struct drm_connector *connector,
- 		    bmode->vdisplay > max_height)
- 			continue;
- 
--		if (!vmw_kms_validate_mode_vram(dev_priv,
--						bmode->hdisplay * assumed_bpp,
-+		if (!vmw_kms_validate_mode_vram(dev_priv, bmode->hdisplay * 2,
- 						bmode->vdisplay))
- 			continue;
- 
 diff --git a/drivers/gpu/drm/vmwgfx/vmwgfx_kms.h b/drivers/gpu/drm/vmwgfx/vmwgfx_kms.h
 index e1cb855..8184bc5 100644
 --- a/drivers/gpu/drm/vmwgfx/vmwgfx_kms.h
@@ -106337,18 +106418,10 @@
  #define DRM_MODE_FB_DIRTY_ANNOTATE_FILL 0x02
  #define DRM_MODE_FB_DIRTY_FLAGS         0x03
 diff --git a/include/drm/drm_pciids.h b/include/drm/drm_pciids.h
-index 7daeaba..757f980 100644
+index 7daeaba..53baa0d 100644
 --- a/include/drm/drm_pciids.h
 +++ b/include/drm/drm_pciids.h
-@@ -56,6 +56,7 @@
- 	{0x1002, 0x4C64, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_RV250|RADEON_IS_MOBILITY}, \
- 	{0x1002, 0x4C66, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_RV250|RADEON_IS_MOBILITY}, \
- 	{0x1002, 0x4C67, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_RV250|RADEON_IS_MOBILITY}, \
-+	{0x1002, 0x4C6E, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_RV280|RADEON_IS_MOBILITY}, \
- 	{0x1002, 0x4E44, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_R300}, \
- 	{0x1002, 0x4E45, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_R300}, \
- 	{0x1002, 0x4E46, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_R300}, \
-@@ -203,11 +204,60 @@
+@@ -203,11 +203,60 @@
  	{0x1002, 0x6778, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_CAICOS|RADEON_NEW_MEMMAP}, \
  	{0x1002, 0x6779, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_CAICOS|RADEON_NEW_MEMMAP}, \
  	{0x1002, 0x677B, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_CAICOS|RADEON_NEW_MEMMAP}, \
@@ -106409,7 +106482,7 @@
  	{0x1002, 0x6850, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_TURKS|RADEON_NEW_MEMMAP}, \
  	{0x1002, 0x6858, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_TURKS|RADEON_NEW_MEMMAP}, \
  	{0x1002, 0x6859, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_TURKS|RADEON_NEW_MEMMAP}, \
-@@ -515,6 +565,43 @@
+@@ -515,6 +564,43 @@
  	{0x1002, 0x9808, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_PALM|RADEON_NEW_MEMMAP|RADEON_IS_IGP}, \
  	{0x1002, 0x9809, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_PALM|RADEON_NEW_MEMMAP|RADEON_IS_IGP}, \
  	{0x1002, 0x980A, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_PALM|RADEON_NEW_MEMMAP|RADEON_IS_IGP}, \

Modified: dists/wheezy/linux/debian/patches/series
==============================================================================
--- dists/wheezy/linux/debian/patches/series	Sun Feb 22 17:06:56 2015	(r22416)
+++ dists/wheezy/linux/debian/patches/series	Tue Feb 24 00:12:40 2015	(r22417)
@@ -608,7 +608,6 @@
 debian/x86-mm-avoid-abi-change-in-3.2.44.patch
 features/all/cpu-devices/cpufreq-Longhaul-Disable-driver-by-default.patch
 
-bugfix/all/ext4-make-orphan-functions-be-no-op-in-no-journal-mo.patch
 debian/jbd2-avoid-ABI-change-in-3.2.45.patch
 bugfix/all/sctp-Export-sctp_do_peeloff.patch
 bugfix/all/dlm-Do-not-allocate-a-fd-for-peeloff.patch
@@ -626,7 +625,6 @@
 features/arm/mtd-m25p80-modify-info-for-Micron-N25Q128.patch
 debian/perf-avoid-abi-change-in-3.2.49.patch
 
-bugfix/s390/s390-revert-clockevent.patch
 debian/tracing-avoid-abi-change-in-3.2.51.patch
 debian/mm-avoid-abi-change-in-3.2.51.patch
 features/all/mvsas-Recognise-device-subsystem-9485-9485-as-88SE94.patch
@@ -1103,7 +1101,6 @@
 features/all/igb/0178-igb-Fixed-Wake-On-LAN-support.patch
 features/all/igb/0179-igb-Fix-for-issue-where-values-could-be-too-high-for.patch
 features/all/igb/0180-igb-disable-eee.patch
-bugfix/x86/crypto-ghash-clmulni-intel-use-C-implementation-for-.patch
 
 bugfix/x86/revert-perf-x86-amd-ibs-fix-waking-up-from-s3-for-amd-family-10h.patch
 
@@ -1131,45 +1128,16 @@
 debian/ip-ident-avoid-abi-change-in-3.2.63.patch
 debian/scsi-avoid-abi-change-in-3.2.62.patch
 debian/nlattr-avoid-abi-change-in-3.2.61.patch
-bugfix/all/udf-Avoid-infinite-loop-when-processing-indirect-ICB.patch
 debian/sp5100_tco-reject-sb8x0-chips.patch
-bugfix/all/drivers-net-disable-ufo-through-virtio.patch
-bugfix/all/drivers-net-ipv6-select-ipv6-fragment-idents-for-vir.patch
 debian/drivers-net-avoid-abi-change-for-ufo-ipv6-fix.patch
-bugfix/all/revert-drivers-net-disable-ufo-through-virtio-in-macvtap-and-tun.patch
-bugfix/all/net-sctp-fix-NULL-pointer-dereference-in-af-from_add.patch
-bugfix/all/media-ttusb-dec-buffer-overflow-in-ioctl.patch
 debian/regulatory-avoid-abi-change-in-3.2.64.patch
 debian/ceph-avoid-abi-change-in-3.2.64.patch
 debian/perf-avoid-abi-change-in-3.2.65.patch
 debian/mm-truncate-avoid-abi-change-in-3.2.65.patch
-bugfix/x86/kvm-x86-don-t-report-guest-userspace-emulation-error-to-userspace.patch
-bugfix/x86/x86-kvm-clear-paravirt_enabled-on-kvm-guests-for-espfix32-s-benefit.patch
-bugfix/all/isofs-fix-infinite-looping-over-ce-entries.patch
-bugfix/x86/revert-x86-mm-set-nx-across-entire-pmd-at-boot.patch
-bugfix/x86/revert-x86-64bit-mm-mark-data-bss-brk-to-nx.patch
-bugfix/x86/x86-cpu-amd-add-workaround-for-family-16h-erratum-79.patch
-bugfix/x86/x86-tls-validate-tls-entries-to-protect-espfix.patch
-bugfix/x86/x86_64-switch_to-load-tls-descriptors-before-switchi.patch
-bugfix/all/keys-close-race-between-key-lookup-and-freeing.patch
-bugfix/all/isofs-fix-unchecked-printing-of-er-records.patch
-bugfix/all/splice-apply-generic-position-and-size-checks-to-eac.patch
-bugfix/all/crypto-prefix-module-autoloading-with-crypto.patch
-bugfix/all/crypto-include-crypto-module-prefix-in-template.patch
-bugfix/all/crypto-add-missing-crypto-module-aliases.patch
-bugfix/all/netfilter-conntrack-disable-generic-tracking-for-kno.patch
-bugfix/x86/x86_64-vdso-fix-the-vdso-address-randomization-algor.patch
-bugfix/x86/kvm-x86-emulator-reject-sysenter-in-compatibility-mo.patch
-bugfix/x86/kvm-x86-sysenter-emulation-is-broken.patch
-bugfix/all/move-d_rcu-from-overlapping-d_child-to-overlapping-d_alias.patch
 bugfix/all/aufs-move-d_rcu-from-overlapping-d_child-to-overlapping-d.patch
-bugfix/all/deal-with-deadlock-in-d_walk.patch
-bugfix/all/dcache-fix-locking-bugs-in-backported-deal-with-deadlock-in-d_walk.patch
 debian/vfs-avoid-abi-change-for-dentry-union-changes.patch
 bugfix/all/vfs-read-file_handle-only-once-in-handle_to_path.patch
 bugfix/all/aslr-fix-stack-randomization-on-64-bit-systems.patch
-bugfix/all/vfs-fix-vfsmount_lock-imbalance-in-path_init.patch
-bugfix/all/net-sctp-fix-slab-corruption-from-use-after-free-on-init-collisions.patch
-bugfix/x86/x86-tls-ldt-stop-checking-lm-in-ldt_empty.patch
-bugfix/x86/x86-tls-interpret-an-all-zero-struct-user_desc-as-no-segment.patch
-bugfix/all/ecryptfs-remove-buggy-and-unnecessary-write-in-file-name-decode.patch
+debian/sock-fix-abi-change-in-3.2.67.patch
+debian/rmap-fix-abi-change-in-3.2.67.patch
+bugfix/all/pci-quirks-fix-backport-of-quirk_io.patch



More information about the Kernel-svn-changes mailing list