[kernel] r18878 - in dists/squeeze-backports/linux-2.6: . debian debian/bin debian/config debian/config/featureset-rt debian/config/ia64 debian/config/kernelarch-x86 debian/config/mips debian/config/mipsel debian/config/powerpc debian/config/s390 debian/installer debian/lib/python/debian_linux debian/patches/bugfix/all debian/patches/features/all/aufs3 debian/patches/features/all/rt debian/patches/series

Ben Hutchings benh at alioth.debian.org
Thu Mar 22 15:22:01 UTC 2012


Author: benh
Date: Thu Mar 22 15:21:59 2012
New Revision: 18878

Log:
Merge changes from sid up to 3.2.12-1

Drop the ABI reference files and installer changes.

Added:
   dists/squeeze-backports/linux-2.6/debian/patches/bugfix/all/CIFS-Fix-a-spurious-error-in-cifs_push_posix_locks.patch
      - copied unchanged from r18865, dists/sid/linux-2.6/debian/patches/bugfix/all/CIFS-Fix-a-spurious-error-in-cifs_push_posix_locks.patch
   dists/squeeze-backports/linux-2.6/debian/patches/bugfix/all/Don-t-limit-non-nested-epoll-paths.patch
      - copied unchanged from r18865, dists/sid/linux-2.6/debian/patches/bugfix/all/Don-t-limit-non-nested-epoll-paths.patch
   dists/squeeze-backports/linux-2.6/debian/patches/bugfix/all/ipv6-don-t-dev_hold-dev-in-ip6_mc_find_dev_rcu.patch
      - copied unchanged from r18865, dists/sid/linux-2.6/debian/patches/bugfix/all/ipv6-don-t-dev_hold-dev-in-ip6_mc_find_dev_rcu.patch
   dists/squeeze-backports/linux-2.6/debian/patches/bugfix/all/tcp-fix-syncookie-regression.patch
      - copied unchanged from r18865, dists/sid/linux-2.6/debian/patches/bugfix/all/tcp-fix-syncookie-regression.patch
   dists/squeeze-backports/linux-2.6/debian/patches/features/all/rt/fix-rt+link-creation-restrictions
      - copied unchanged from r18865, dists/sid/linux-2.6/debian/patches/features/all/rt/fix-rt+link-creation-restrictions
   dists/squeeze-backports/linux-2.6/debian/patches/features/all/rt/fs-dcache-use-cpu-chill-in-trylock-loops.patch
      - copied unchanged from r18865, dists/sid/linux-2.6/debian/patches/features/all/rt/fs-dcache-use-cpu-chill-in-trylock-loops.patch
   dists/squeeze-backports/linux-2.6/debian/patches/features/all/rt/fs-more-cpu-chill-fixups.patch
      - copied unchanged from r18865, dists/sid/linux-2.6/debian/patches/features/all/rt/fs-more-cpu-chill-fixups.patch
   dists/squeeze-backports/linux-2.6/debian/patches/features/all/rt/net-use-cpu-chill.patch
      - copied unchanged from r18865, dists/sid/linux-2.6/debian/patches/features/all/rt/net-use-cpu-chill.patch
   dists/squeeze-backports/linux-2.6/debian/patches/features/all/rt/rt-introduce-cpu-chill.patch
      - copied unchanged from r18865, dists/sid/linux-2.6/debian/patches/features/all/rt/rt-introduce-cpu-chill.patch
   dists/squeeze-backports/linux-2.6/debian/patches/features/all/rt/softirq-preempt-fix-3-re.txt
      - copied unchanged from r18865, dists/sid/linux-2.6/debian/patches/features/all/rt/softirq-preempt-fix-3-re.txt
   dists/squeeze-backports/linux-2.6/debian/patches/features/all/rt/staging-pohmelfs-convert-struct-fs-lock-usage-to-.patch
      - copied unchanged from r18865, dists/sid/linux-2.6/debian/patches/features/all/rt/staging-pohmelfs-convert-struct-fs-lock-usage-to-.patch
Deleted:
   dists/squeeze-backports/linux-2.6/debian/patches/bugfix/all/0001-media-staging-lirc_serial-Fix-init-exit-order.patch
   dists/squeeze-backports/linux-2.6/debian/patches/bugfix/all/0002-media-staging-lirc_serial-Free-resources-on-failure-.patch
   dists/squeeze-backports/linux-2.6/debian/patches/bugfix/all/0003-media-staging-lirc_serial-Fix-deadlock-on-resume-fai.patch
   dists/squeeze-backports/linux-2.6/debian/patches/bugfix/all/0005-media-staging-lirc_serial-Do-not-assume-error-codes-.patch
   dists/squeeze-backports/linux-2.6/debian/patches/bugfix/all/ipsec-be-careful-of-non-existing-mac-headers.patch
   dists/squeeze-backports/linux-2.6/debian/patches/bugfix/all/iwlwifi-fix-key-removal.patch
   dists/squeeze-backports/linux-2.6/debian/patches/bugfix/all/pci-rework-aspm-disable-code.patch
Modified:
   dists/squeeze-backports/linux-2.6/   (props changed)
   dists/squeeze-backports/linux-2.6/debian/bin/abiupdate.py
   dists/squeeze-backports/linux-2.6/debian/changelog
   dists/squeeze-backports/linux-2.6/debian/config/config
   dists/squeeze-backports/linux-2.6/debian/config/defines
   dists/squeeze-backports/linux-2.6/debian/config/featureset-rt/config
   dists/squeeze-backports/linux-2.6/debian/config/ia64/config
   dists/squeeze-backports/linux-2.6/debian/config/kernelarch-x86/config
   dists/squeeze-backports/linux-2.6/debian/config/mips/defines
   dists/squeeze-backports/linux-2.6/debian/config/mipsel/defines
   dists/squeeze-backports/linux-2.6/debian/config/powerpc/config
   dists/squeeze-backports/linux-2.6/debian/config/s390/defines
   dists/squeeze-backports/linux-2.6/debian/installer/package-list
   dists/squeeze-backports/linux-2.6/debian/lib/python/debian_linux/config.py
   dists/squeeze-backports/linux-2.6/debian/patches/features/all/aufs3/aufs3-add.patch
   dists/squeeze-backports/linux-2.6/debian/patches/features/all/rt/cpu-rt-make-hotplug-lock-a-sleeping-spinlock-on-rt.patch
   dists/squeeze-backports/linux-2.6/debian/patches/features/all/rt/drivers-net-fix-livelock-issues.patch
   dists/squeeze-backports/linux-2.6/debian/patches/features/all/rt/localversion.patch
   dists/squeeze-backports/linux-2.6/debian/patches/features/all/rt/seqlock-prevent-rt-starvation.patch
   dists/squeeze-backports/linux-2.6/debian/patches/features/all/rt/series
   dists/squeeze-backports/linux-2.6/debian/patches/series/base
   dists/squeeze-backports/linux-2.6/debian/patches/series/base-extra
   dists/squeeze-backports/linux-2.6/debian/rules.real

Modified: dists/squeeze-backports/linux-2.6/debian/bin/abiupdate.py
==============================================================================
--- dists/squeeze-backports/linux-2.6/debian/bin/abiupdate.py	Thu Mar 22 06:16:14 2012	(r18877)
+++ dists/squeeze-backports/linux-2.6/debian/bin/abiupdate.py	Thu Mar 22 15:21:59 2012	(r18878)
@@ -71,7 +71,13 @@
         self.dir = tempfile.mkdtemp(prefix='abiupdate')
         try:
             self.log("Retrieve config\n")
-            config = self.get_config()
+
+            try:
+                config = self.get_config()
+            except urllib2.HTTPError as e:
+                self.log("Failed to retrieve %s: %s\n" % (e.filename, e))
+                sys.exit(1)
+
             if self.override_arch:
                 arches = [self.override_arch]
             else:

Modified: dists/squeeze-backports/linux-2.6/debian/changelog
==============================================================================
--- dists/squeeze-backports/linux-2.6/debian/changelog	Thu Mar 22 06:16:14 2012	(r18877)
+++ dists/squeeze-backports/linux-2.6/debian/changelog	Thu Mar 22 15:21:59 2012	(r18878)
@@ -1,4 +1,4 @@
-linux-2.6 (3.2.9-1~bpo60+1) squeeze-backports; urgency=low
+linux-2.6 (3.2.12-1~bpo60+1) squeeze-backports; urgency=low
 
   * Rebuild for squeeze:
     - Use gcc-4.4 for all architectures
@@ -6,7 +6,69 @@
     - Change ABI number to 0.bpo.2
     - Monkey-patch Python collections module to add OrderedDict if necessary
 
- -- Ben Hutchings <ben at decadent.org.uk>  Sat, 10 Mar 2012 16:35:35 +0000
+ -- Ben Hutchings <ben at decadent.org.uk>  Thu, 22 Mar 2012 15:19:06 +0000
+
+linux-2.6 (3.2.12-1) unstable; urgency=high
+
+  * New upstream stable update:
+    http://www.kernel.org/pub/linux/kernel/v3.x/ChangeLog-3.2.11
+    http://www.kernel.org/pub/linux/kernel/v3.x/ChangeLog-3.2.12
+    - aio: fix io_setup/io_destroy race
+    - aio: fix the "too late munmap()" race
+    - vfs: fix double put after complete_walk()
+    - acer-wmi: No wifi rfkill on Lenovo machines (Closes: #655941)
+    - tcp: fix false reordering signal in tcp_shifted_skb
+    - r8169: corrupted IP fragments fix for large mtu
+    - tcp: don't fragment SACKed skbs in tcp_mark_head_lost()
+    - tcp: fix tcp_shift_skb_data() to not shift SACKed data below snd_una
+    - block: Fix NULL pointer dereference in sd_revalidate_disk
+      (Closes: #649735)
+    - block: fix __blkdev_get and add_disk race condition
+
+  [ Ben Hutchings ]
+  * [powerpc] Enable KVM_GUEST
+  * [s390] Ignore arch_pick_mmap_layout version change; it should not be
+    needed by modules (fixes FTBFS)
+  * [x86] Disable POHMELFS; this version is obsolete
+  * epoll: Don't limit non-nested epoll paths
+  * CIFS: Fix a spurious error in cifs_push_posix_locks
+  * [rt] bump rt patch to version 3.2.11-rt20
+  * aufs: Update to aufs3.2-20120312
+  * tcp: fix syncookie regression
+  * ipv6: Don't dev_hold(dev) in ip6_mc_find_dev_rcu
+
+  [ Jonathan Nieder ]
+  * [x86] Enable RTS5139 as module (Closes: #663912)
+
+ -- Ben Hutchings <ben at decadent.org.uk>  Tue, 20 Mar 2012 04:32:51 +0000
+
+linux-2.6 (3.2.10-1) unstable; urgency=high
+
+  * New upstream stable update:
+    http://www.kernel.org/pub/linux/kernel/v3.x/ChangeLog-3.2.10
+    - regset: Prevent null pointer reference on readonly regsets
+      (CVE-2012-1097)
+
+  [ Uwe Kleine-König ]
+  * [rt] bump rt patch to version 3.2.9-rt17
+  * [rt] fix conflict between the security restrictions on links introduced in
+    3.2.9-1 and rt (Closes: #663269)
+
+  [ Aurelien Jarno ]
+  * [mips,mipsel] Mark ext4-modules as provided by the kernel-image udeb, remove
+    ide-core-modules provide.
+
+  [ Ben Hutchings ]
+  * [x86,ia64] PCI/hotplug: Build-in common hotplug drivers:
+    - Change HOTPLUG_PCI, HOTPLUG_PCI_PCIE to built-in
+    - [x86] Change HOTPLUG_PCI_ACPI to built-in (Closes: #663433)
+    - [ia64] Enable HOTPLUG_PCI_SGI as built-in
+  * linux-headers: Remove unused, broken symlinks to Kbuild (Closes: #663597)
+  * udeb: Remove dependency of {pcmcia,usb}-storage-modules on ide-core-modules
+  * [mips,mipsel] Mark ata-modules as provided by the kernel-image udeb
+    for most flavours
+
+ -- Bastian Blank <waldi at debian.org>  Tue, 13 Mar 2012 17:19:32 +0100
 
 linux-2.6 (3.2.9-1) unstable; urgency=high
 

Modified: dists/squeeze-backports/linux-2.6/debian/config/config
==============================================================================
--- dists/squeeze-backports/linux-2.6/debian/config/config	Thu Mar 22 06:16:14 2012	(r18877)
+++ dists/squeeze-backports/linux-2.6/debian/config/config	Thu Mar 22 15:21:59 2012	(r18878)
@@ -1827,7 +1827,7 @@
 CONFIG_E1000=m
 CONFIG_E1000E=m
 CONFIG_IGB=m
-CONFIG_IGB_DCA=m
+CONFIG_IGB_DCA=y
 CONFIG_IGBVF=m
 CONFIG_IXGB=m
 CONFIG_IXGBE=m
@@ -2395,7 +2395,7 @@
 ## file: drivers/pci/pcie/Kconfig
 ##
 CONFIG_PCIEPORTBUS=y
-CONFIG_HOTPLUG_PCI_PCIE=m
+CONFIG_HOTPLUG_PCI_PCIE=y
 CONFIG_PCIEASPM=y
 # CONFIG_PCIEASPM_DEBUG is not set
 

Modified: dists/squeeze-backports/linux-2.6/debian/config/defines
==============================================================================
--- dists/squeeze-backports/linux-2.6/debian/config/defines	Thu Mar 22 06:16:14 2012	(r18877)
+++ dists/squeeze-backports/linux-2.6/debian/config/defines	Thu Mar 22 15:21:59 2012	(r18878)
@@ -1,5 +1,6 @@
 [abi]
 abiname: 0.bpo.2
+ignore-changes: module:drivers/net/wireless/ath/ath9k/*
 
 [base]
 arches:
@@ -25,6 +26,9 @@
  none
  rt
 
+[featureset-rt_base]
+enabled: true
+
 [description]
 part-long-up: This kernel is not suitable for SMP (multi-processor,
  multi-core or hyper-threaded) systems.
@@ -49,6 +53,3 @@
 elilo: elilo (>= 3.12-3.1~)
 lilo: lilo (>= 22.8-8.2~)
 s390-tools: s390-tools (>= 1.8.3-2~)
-
-[featureset-rt]
-enabled: true

Modified: dists/squeeze-backports/linux-2.6/debian/config/featureset-rt/config
==============================================================================
--- dists/squeeze-backports/linux-2.6/debian/config/featureset-rt/config	Thu Mar 22 06:16:14 2012	(r18877)
+++ dists/squeeze-backports/linux-2.6/debian/config/featureset-rt/config	Thu Mar 22 15:21:59 2012	(r18878)
@@ -3,3 +3,6 @@
 CONFIG_SCHED_TRACER=y
 CONFIG_MISSED_TIMER_OFFSETS_HIST=y
 CONFIG_WAKEUP_LATENCY_HIST=y
+
+## disable aufs as it's not needed on rt and conflicts with fs-dentry-use-seqlock.patch
+# CONFIG_AUFS_FS is not set

Modified: dists/squeeze-backports/linux-2.6/debian/config/ia64/config
==============================================================================
--- dists/squeeze-backports/linux-2.6/debian/config/ia64/config	Thu Mar 22 06:16:14 2012	(r18877)
+++ dists/squeeze-backports/linux-2.6/debian/config/ia64/config	Thu Mar 22 15:21:59 2012	(r18878)
@@ -590,7 +590,8 @@
 ##
 ## file: drivers/pci/hotplug/Kconfig
 ##
-CONFIG_HOTPLUG_PCI=m
+CONFIG_HOTPLUG_PCI=y
+CONFIG_HOTPLUG_PCI_SGI=y
 
 ##
 ## file: drivers/pcmcia/Kconfig

Modified: dists/squeeze-backports/linux-2.6/debian/config/kernelarch-x86/config
==============================================================================
--- dists/squeeze-backports/linux-2.6/debian/config/kernelarch-x86/config	Thu Mar 22 06:16:14 2012	(r18877)
+++ dists/squeeze-backports/linux-2.6/debian/config/kernelarch-x86/config	Thu Mar 22 15:21:59 2012	(r18878)
@@ -1039,9 +1039,9 @@
 ##
 ## file: drivers/pci/hotplug/Kconfig
 ##
-CONFIG_HOTPLUG_PCI=m
+CONFIG_HOTPLUG_PCI=y
 CONFIG_HOTPLUG_PCI_FAKE=m
-CONFIG_HOTPLUG_PCI_ACPI=m
+CONFIG_HOTPLUG_PCI_ACPI=y
 CONFIG_HOTPLUG_PCI_ACPI_IBM=m
 CONFIG_HOTPLUG_PCI_CPCI_ZT5550=m
 CONFIG_HOTPLUG_PCI_CPCI_GENERIC=m
@@ -1307,12 +1307,6 @@
 CONFIG_LIRC_ZILOG=m
 
 ##
-## file: drivers/staging/pohmelfs/Kconfig
-##
-CONFIG_POHMELFS=m
-# CONFIG_POHMELFS_DEBUG is not set
-
-##
 ## file: drivers/staging/rtl8187se/Kconfig
 ##
 CONFIG_R8187SE=m
@@ -1333,6 +1327,12 @@
 CONFIG_R8712U=m
 
 ##
+## file: drivers/staging/rts5139/Kconfig
+##
+CONFIG_RTS5139=m
+# CONFIG_RTS5139_DEBUG is not set
+
+##
 ## file: drivers/staging/rts_pstor/Kconfig
 ##
 CONFIG_RTS_PSTOR=m

Modified: dists/squeeze-backports/linux-2.6/debian/config/mips/defines
==============================================================================
--- dists/squeeze-backports/linux-2.6/debian/config/mips/defines	Thu Mar 22 06:16:14 2012	(r18877)
+++ dists/squeeze-backports/linux-2.6/debian/config/mips/defines	Thu Mar 22 15:21:59 2012	(r18878)
@@ -9,11 +9,6 @@
  octeon
 kernel-arch: mips
 
-[abi]
-ignore-changes:
-# Removal of EXT3_FS
- journal_* log_start_commit log_wait_commit
-
 [image]
 configs:
  kernelarch-mips/config

Modified: dists/squeeze-backports/linux-2.6/debian/config/mipsel/defines
==============================================================================
--- dists/squeeze-backports/linux-2.6/debian/config/mipsel/defines	Thu Mar 22 06:16:14 2012	(r18877)
+++ dists/squeeze-backports/linux-2.6/debian/config/mipsel/defines	Thu Mar 22 15:21:59 2012	(r18878)
@@ -8,11 +8,6 @@
  loongson-2f
 kernel-arch: mips
 
-[abi]
-ignore-changes:
-# Removal of EXT3_FS
- journal_* log_start_commit log_wait_commit
-
 [image]
 configs:
  kernelarch-mips/config

Modified: dists/squeeze-backports/linux-2.6/debian/config/powerpc/config
==============================================================================
--- dists/squeeze-backports/linux-2.6/debian/config/powerpc/config	Thu Mar 22 06:16:14 2012	(r18877)
+++ dists/squeeze-backports/linux-2.6/debian/config/powerpc/config	Thu Mar 22 15:21:59 2012	(r18878)
@@ -38,6 +38,7 @@
 ##
 ## file: arch/powerpc/platforms/Kconfig
 ##
+CONFIG_KVM_GUEST=y
 CONFIG_RTAS_PROC=y
 CONFIG_CPU_FREQ_PMAC=y
 CONFIG_PPC601_SYNC_FIX=y

Modified: dists/squeeze-backports/linux-2.6/debian/config/s390/defines
==============================================================================
--- dists/squeeze-backports/linux-2.6/debian/config/s390/defines	Thu Mar 22 06:16:14 2012	(r18877)
+++ dists/squeeze-backports/linux-2.6/debian/config/s390/defines	Thu Mar 22 15:21:59 2012	(r18878)
@@ -1,3 +1,8 @@
+[abi]
+ignore-changes:
+# Seems to be exported by mistake; no other architecture does
+ arch_pick_mmap_layout
+
 [base]
 flavours:
  s390x

Modified: dists/squeeze-backports/linux-2.6/debian/installer/package-list
==============================================================================
--- dists/squeeze-backports/linux-2.6/debian/installer/package-list	Thu Mar 22 06:16:14 2012	(r18877)
+++ dists/squeeze-backports/linux-2.6/debian/installer/package-list	Thu Mar 22 15:21:59 2012	(r18878)
@@ -278,13 +278,13 @@
  This package contains core USB drivers for the kernel.
 
 Package: usb-storage-modules
-Depends: kernel-image, ide-core-modules, scsi-core-modules, usb-modules
+Depends: kernel-image, scsi-core-modules, usb-modules
 Priority: standard
 Description: USB storage support
  This package contains the USB storage driver for the kernel.
 
 Package: pcmcia-storage-modules
-Depends: kernel-image, ide-core-modules, cdrom-core-modules, pcmcia-modules, ata-modules
+Depends: kernel-image, cdrom-core-modules, pcmcia-modules, ata-modules
 Priority: standard
 Description: PCMCIA storage drivers
  This package contains PCMCIA storage drivers for the kernel.

Modified: dists/squeeze-backports/linux-2.6/debian/lib/python/debian_linux/config.py
==============================================================================
--- dists/squeeze-backports/linux-2.6/debian/lib/python/debian_linux/config.py	Thu Mar 22 06:16:14 2012	(r18877)
+++ dists/squeeze-backports/linux-2.6/debian/lib/python/debian_linux/config.py	Thu Mar 22 15:21:59 2012	(r18878)
@@ -168,7 +168,7 @@
 
             for section in iter(config):
                 if section[0].startswith('featureset-'):
-                    real = (section[-1], None, section[0].lstrip('featureset-'))
+                    real = (section[-1], None, section[0][11:])
                 else:
                     real = (section[-1],) + section[1:]
                 ret[real] = config[section]

Copied: dists/squeeze-backports/linux-2.6/debian/patches/bugfix/all/CIFS-Fix-a-spurious-error-in-cifs_push_posix_locks.patch (from r18865, dists/sid/linux-2.6/debian/patches/bugfix/all/CIFS-Fix-a-spurious-error-in-cifs_push_posix_locks.patch)
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ dists/squeeze-backports/linux-2.6/debian/patches/bugfix/all/CIFS-Fix-a-spurious-error-in-cifs_push_posix_locks.patch	Thu Mar 22 15:21:59 2012	(r18878, copy of r18865, dists/sid/linux-2.6/debian/patches/bugfix/all/CIFS-Fix-a-spurious-error-in-cifs_push_posix_locks.patch)
@@ -0,0 +1,67 @@
+From ce85852b90a214cf577fc1b4f49d99fd7e98784a Mon Sep 17 00:00:00 2001
+From: Pavel Shilovsky <piastry at etersoft.ru>
+Date: Sat, 17 Mar 2012 09:46:55 +0300
+Subject: [PATCH] CIFS: Fix a spurious error in cifs_push_posix_locks
+
+Signed-off-by: Pavel Shilovsky <piastry at etersoft.ru>
+Reviewed-by: Jeff Layton <jlayton at redhat.com>
+Reported-by: Ben Hutchings <ben at decadent.org.uk>
+Signed-off-by: Steve French <stevef at smf-gateway.(none)>
+---
+ fs/cifs/file.c |   19 ++++++++++---------
+ 1 files changed, 10 insertions(+), 9 deletions(-)
+
+diff --git a/fs/cifs/file.c b/fs/cifs/file.c
+index 5e64748..8e02dbd 100644
+--- a/fs/cifs/file.c
++++ b/fs/cifs/file.c
+@@ -960,9 +960,9 @@ cifs_push_posix_locks(struct cifsFileInfo *cfile)
+ 	INIT_LIST_HEAD(&locks_to_send);
+ 
+ 	/*
+-	 * Allocating count locks is enough because no locks can be added to
+-	 * the list while we are holding cinode->lock_mutex that protects
+-	 * locking operations of this inode.
++	 * Allocating count locks is enough because no FL_POSIX locks can be
++	 * added to the list while we are holding cinode->lock_mutex that
++	 * protects locking operations of this inode.
+ 	 */
+ 	for (; i < count; i++) {
+ 		lck = kmalloc(sizeof(struct lock_to_push), GFP_KERNEL);
+@@ -973,18 +973,20 @@ cifs_push_posix_locks(struct cifsFileInfo *cfile)
+ 		list_add_tail(&lck->llist, &locks_to_send);
+ 	}
+ 
+-	i = 0;
+ 	el = locks_to_send.next;
+ 	lock_flocks();
+ 	cifs_for_each_lock(cfile->dentry->d_inode, before) {
++		flock = *before;
++		if ((flock->fl_flags & FL_POSIX) == 0)
++			continue;
+ 		if (el == &locks_to_send) {
+-			/* something is really wrong */
++			/*
++			 * The list ended. We don't have enough allocated
++			 * structures - something is really wrong.
++			 */
+ 			cERROR(1, "Can't push all brlocks!");
+ 			break;
+ 		}
+-		flock = *before;
+-		if ((flock->fl_flags & FL_POSIX) == 0)
+-			continue;
+ 		length = 1 + flock->fl_end - flock->fl_start;
+ 		if (flock->fl_type == F_RDLCK || flock->fl_type == F_SHLCK)
+ 			type = CIFS_RDLCK;
+@@ -996,7 +998,6 @@ cifs_push_posix_locks(struct cifsFileInfo *cfile)
+ 		lck->length = length;
+ 		lck->type = type;
+ 		lck->offset = flock->fl_start;
+-		i++;
+ 		el = el->next;
+ 	}
+ 	unlock_flocks();
+-- 
+1.7.0.4
+

Copied: dists/squeeze-backports/linux-2.6/debian/patches/bugfix/all/Don-t-limit-non-nested-epoll-paths.patch (from r18865, dists/sid/linux-2.6/debian/patches/bugfix/all/Don-t-limit-non-nested-epoll-paths.patch)
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ dists/squeeze-backports/linux-2.6/debian/patches/bugfix/all/Don-t-limit-non-nested-epoll-paths.patch	Thu Mar 22 15:21:59 2012	(r18878, copy of r18865, dists/sid/linux-2.6/debian/patches/bugfix/all/Don-t-limit-non-nested-epoll-paths.patch)
@@ -0,0 +1,42 @@
+From: Jason Baron <jbaron at redhat.com>
+Date: Fri, 16 Mar 2012 16:34:03 -0400
+Subject: [PATCH] Don't limit non-nested epoll paths
+
+commit 93dc6107a76daed81c07f50215fa6ae77691634f upstream.
+
+Commit 28d82dc1c4ed ("epoll: limit paths") that I did to limit the
+number of possible wakeup paths in epoll is causing a few applications
+to longer work (dovecot for one).
+
+The original patch is really about limiting the amount of epoll nesting
+(since epoll fds can be attached to other fds). Thus, we probably can
+allow an unlimited number of paths of depth 1. My current patch limits
+it at 1000. And enforce the limits on paths that have a greater depth.
+
+This is captured in: https://bugzilla.redhat.com/show_bug.cgi?id=681578
+
+Signed-off-by: Jason Baron <jbaron at redhat.com>
+Cc: Andrew Morton <akpm at linux-foundation.org>
+Signed-off-by: Linus Torvalds <torvalds at linux-foundation.org>
+---
+ fs/eventpoll.c |    4 ++++
+ 1 files changed, 4 insertions(+), 0 deletions(-)
+
+diff --git a/fs/eventpoll.c b/fs/eventpoll.c
+index ea54cde..4d9d3a4 100644
+--- a/fs/eventpoll.c
++++ b/fs/eventpoll.c
+@@ -988,6 +988,10 @@ static int path_count[PATH_ARR_SIZE];
+ 
+ static int path_count_inc(int nests)
+ {
++	/* Allow an arbitrary number of depth 1 paths */
++	if (nests == 0)
++		return 0;
++
+ 	if (++path_count[nests] > path_limits[nests])
+ 		return -1;
+ 	return 0;
+-- 
+1.7.9.1
+

Copied: dists/squeeze-backports/linux-2.6/debian/patches/bugfix/all/ipv6-don-t-dev_hold-dev-in-ip6_mc_find_dev_rcu.patch (from r18865, dists/sid/linux-2.6/debian/patches/bugfix/all/ipv6-don-t-dev_hold-dev-in-ip6_mc_find_dev_rcu.patch)
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ dists/squeeze-backports/linux-2.6/debian/patches/bugfix/all/ipv6-don-t-dev_hold-dev-in-ip6_mc_find_dev_rcu.patch	Thu Mar 22 15:21:59 2012	(r18878, copy of r18865, dists/sid/linux-2.6/debian/patches/bugfix/all/ipv6-don-t-dev_hold-dev-in-ip6_mc_find_dev_rcu.patch)
@@ -0,0 +1,34 @@
+From 83a87eb0683a5166845b7ea0cb236eab039f693b Mon Sep 17 00:00:00 2001
+From: "RongQing.Li" <roy.qing.li at gmail.com>
+Date: Thu, 15 Mar 2012 22:54:14 +0000
+Subject: ipv6: Don't dev_hold(dev) in ip6_mc_find_dev_rcu.
+
+
+From: RongQing.Li <roy.qing.li at gmail.com>
+
+[ Upstream commit c577923756b7fe9071f28a76b66b83b306d1d001 ]
+
+ip6_mc_find_dev_rcu() is called with rcu_read_lock(), so don't
+need to dev_hold().
+With dev_hold(), not corresponding dev_put(), will lead to leak.
+
+[ bug introduced in 96b52e61be1 (ipv6: mcast: RCU conversions) ]
+
+Signed-off-by: RongQing.Li <roy.qing.li at gmail.com>
+Acked-by: Eric Dumazet <eric.dumazet at gmail.com>
+Signed-off-by: David S. Miller <davem at davemloft.net>
+Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
+---
+ net/ipv6/mcast.c |    1 -
+ 1 file changed, 1 deletion(-)
+
+--- a/net/ipv6/mcast.c
++++ b/net/ipv6/mcast.c
+@@ -257,7 +257,6 @@ static struct inet6_dev *ip6_mc_find_dev
+ 
+ 		if (rt) {
+ 			dev = rt->rt6i_dev;
+-			dev_hold(dev);
+ 			dst_release(&rt->dst);
+ 		}
+ 	} else

Copied: dists/squeeze-backports/linux-2.6/debian/patches/bugfix/all/tcp-fix-syncookie-regression.patch (from r18865, dists/sid/linux-2.6/debian/patches/bugfix/all/tcp-fix-syncookie-regression.patch)
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ dists/squeeze-backports/linux-2.6/debian/patches/bugfix/all/tcp-fix-syncookie-regression.patch	Thu Mar 22 15:21:59 2012	(r18878, copy of r18865, dists/sid/linux-2.6/debian/patches/bugfix/all/tcp-fix-syncookie-regression.patch)
@@ -0,0 +1,107 @@
+From 3e9eb20e6f5e649c43be81677248c86a8e7b3961 Mon Sep 17 00:00:00 2001
+From: Eric Dumazet <eric.dumazet at gmail.com>
+Date: Sat, 10 Mar 2012 09:20:21 +0000
+Subject: tcp: fix syncookie regression
+
+
+From: Eric Dumazet <eric.dumazet at gmail.com>
+
+[ Upstream commit dfd25ffffc132c00070eed64200e8950da5d7e9d ]
+
+commit ea4fc0d619 (ipv4: Don't use rt->rt_{src,dst} in ip_queue_xmit())
+added a serious regression on synflood handling.
+
+Simon Kirby discovered a successful connection was delayed by 20 seconds
+before being responsive.
+
+In my tests, I discovered that xmit frames were lost, and needed ~4
+retransmits and a socket dst rebuild before being really sent.
+
+In case of syncookie initiated connection, we use a different path to
+initialize the socket dst, and inet->cork.fl.u.ip4 is left cleared.
+
+As ip_queue_xmit() now depends on inet flow being setup, fix this by
+copying the temp flowi4 we use in cookie_v4_check().
+
+Reported-by: Simon Kirby <sim at netnation.com>
+Bisected-by: Simon Kirby <sim at netnation.com>
+Signed-off-by: Eric Dumazet <eric.dumazet at gmail.com>
+Tested-by: Eric Dumazet <eric.dumazet at gmail.com>
+Signed-off-by: David S. Miller <davem at davemloft.net>
+Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
+---
+ net/ipv4/syncookies.c |   30 ++++++++++++++++--------------
+ net/ipv4/tcp_ipv4.c   |   10 +++++++---
+ 2 files changed, 23 insertions(+), 17 deletions(-)
+
+--- a/net/ipv4/syncookies.c
++++ b/net/ipv4/syncookies.c
+@@ -278,6 +278,7 @@ struct sock *cookie_v4_check(struct sock
+ 	struct rtable *rt;
+ 	__u8 rcv_wscale;
+ 	bool ecn_ok = false;
++	struct flowi4 fl4;
+ 
+ 	if (!sysctl_tcp_syncookies || !th->ack || th->rst)
+ 		goto out;
+@@ -346,20 +347,16 @@ struct sock *cookie_v4_check(struct sock
+ 	 * hasn't changed since we received the original syn, but I see
+ 	 * no easy way to do this.
+ 	 */
+-	{
+-		struct flowi4 fl4;
+-
+-		flowi4_init_output(&fl4, 0, sk->sk_mark, RT_CONN_FLAGS(sk),
+-				   RT_SCOPE_UNIVERSE, IPPROTO_TCP,
+-				   inet_sk_flowi_flags(sk),
+-				   (opt && opt->srr) ? opt->faddr : ireq->rmt_addr,
+-				   ireq->loc_addr, th->source, th->dest);
+-		security_req_classify_flow(req, flowi4_to_flowi(&fl4));
+-		rt = ip_route_output_key(sock_net(sk), &fl4);
+-		if (IS_ERR(rt)) {
+-			reqsk_free(req);
+-			goto out;
+-		}
++	flowi4_init_output(&fl4, 0, sk->sk_mark, RT_CONN_FLAGS(sk),
++			   RT_SCOPE_UNIVERSE, IPPROTO_TCP,
++			   inet_sk_flowi_flags(sk),
++			   (opt && opt->srr) ? opt->faddr : ireq->rmt_addr,
++			   ireq->loc_addr, th->source, th->dest);
++	security_req_classify_flow(req, flowi4_to_flowi(&fl4));
++	rt = ip_route_output_key(sock_net(sk), &fl4);
++	if (IS_ERR(rt)) {
++		reqsk_free(req);
++		goto out;
+ 	}
+ 
+ 	/* Try to redo what tcp_v4_send_synack did. */
+@@ -373,5 +370,10 @@ struct sock *cookie_v4_check(struct sock
+ 	ireq->rcv_wscale  = rcv_wscale;
+ 
+ 	ret = get_cookie_sock(sk, skb, req, &rt->dst);
++	/* ip_queue_xmit() depends on our flow being setup
++	 * Normal sockets get it right from inet_csk_route_child_sock()
++	 */
++	if (ret)
++		inet_sk(ret)->cork.fl.u.ip4 = fl4;
+ out:	return ret;
+ }
+--- a/net/ipv4/tcp_ipv4.c
++++ b/net/ipv4/tcp_ipv4.c
+@@ -1465,9 +1465,13 @@ struct sock *tcp_v4_syn_recv_sock(struct
+ 		inet_csk(newsk)->icsk_ext_hdr_len = inet_opt->opt.optlen;
+ 	newinet->inet_id = newtp->write_seq ^ jiffies;
+ 
+-	if (!dst && (dst = inet_csk_route_child_sock(sk, newsk, req)) == NULL)
+-		goto put_and_exit;
+-
++	if (!dst) {
++		dst = inet_csk_route_child_sock(sk, newsk, req);
++		if (!dst)
++			goto put_and_exit;
++	} else {
++		/* syncookie case : see end of cookie_v4_check() */
++	}
+ 	sk_setup_caps(newsk, dst);
+ 
+ 	tcp_mtup_init(newsk);

Modified: dists/squeeze-backports/linux-2.6/debian/patches/features/all/aufs3/aufs3-add.patch
==============================================================================
--- dists/squeeze-backports/linux-2.6/debian/patches/features/all/aufs3/aufs3-add.patch	Thu Mar 22 06:16:14 2012	(r18877)
+++ dists/squeeze-backports/linux-2.6/debian/patches/features/all/aufs3/aufs3-add.patch	Thu Mar 22 15:21:59 2012	(r18878)
@@ -1759,7 +1759,7 @@
 +
 +-include ${srctree}/${src}/conf_priv.mk
 --- a/fs/aufs/cpup.c	1970-01-01 01:00:00.000000000 +0100
-+++ b/fs/aufs/cpup.c	2012-01-10 02:15:56.545455955 +0000
++++ b/fs/aufs/cpup.c	2012-03-20 03:45:28.417045299 +0000
 @@ -0,0 +1,1079 @@
 +/*
 + * Copyright (C) 2005-2012 Junjiro R. Okajima
@@ -6324,7 +6324,7 @@
 +	return -1;
 +}
 --- a/fs/aufs/dir.c	1970-01-01 01:00:00.000000000 +0100
-+++ b/fs/aufs/dir.c	2012-01-10 02:15:56.549455982 +0000
++++ b/fs/aufs/dir.c	2012-03-20 03:45:28.417045299 +0000
 @@ -0,0 +1,634 @@
 +/*
 + * Copyright (C) 2005-2012 Junjiro R. Okajima
@@ -7560,7 +7560,7 @@
 +#endif /* __KERNEL__ */
 +#endif /* __AUFS_DYNOP_H__ */
 --- a/fs/aufs/export.c	1970-01-01 01:00:00.000000000 +0100
-+++ b/fs/aufs/export.c	2012-01-10 02:15:56.549455982 +0000
++++ b/fs/aufs/export.c	2012-03-20 03:45:28.417045299 +0000
 @@ -0,0 +1,804 @@
 +/*
 + * Copyright (C) 2005-2012 Junjiro R. Okajima
@@ -9400,7 +9400,7 @@
 +	return ret;
 +}
 --- a/fs/aufs/file.c	1970-01-01 01:00:00.000000000 +0100
-+++ b/fs/aufs/file.c	2012-01-10 02:15:56.549455982 +0000
++++ b/fs/aufs/file.c	2012-03-20 03:45:28.417045299 +0000
 @@ -0,0 +1,673 @@
 +/*
 + * Copyright (C) 2005-2012 Junjiro R. Okajima
@@ -11035,8 +11035,8 @@
 +#endif /* __KERNEL__ */
 +#endif /* __AUFS_FSTYPE_H__ */
 --- a/fs/aufs/hfsnotify.c	1970-01-01 01:00:00.000000000 +0100
-+++ b/fs/aufs/hfsnotify.c	2012-01-10 02:15:56.553455997 +0000
-@@ -0,0 +1,247 @@
++++ b/fs/aufs/hfsnotify.c	2012-03-11 05:01:22.570973560 +0000
+@@ -0,0 +1,260 @@
 +/*
 + * Copyright (C) 2005-2012 Junjiro R. Okajima
 + *
@@ -11065,15 +11065,17 @@
 +static const __u32 AuHfsnMask = (FS_MOVED_TO | FS_MOVED_FROM | FS_DELETE
 +				 | FS_CREATE | FS_EVENT_ON_CHILD);
 +static DECLARE_WAIT_QUEUE_HEAD(au_hfsn_wq);
++static __cacheline_aligned_in_smp atomic64_t au_hfsn_ifree = ATOMIC64_INIT(0);
 +
 +static void au_hfsn_free_mark(struct fsnotify_mark *mark)
 +{
 +	struct au_hnotify *hn = container_of(mark, struct au_hnotify,
 +					     hn_mark);
 +	AuDbg("here\n");
-+	hn->hn_mark_dead = 1;
-+	smp_mb();
-+	wake_up_all(&au_hfsn_wq);
++	au_cache_free_hnotify(hn);
++	smp_mb__before_atomic_dec();
++	atomic64_dec(&au_hfsn_ifree);
++	wake_up(&au_hfsn_wq);
 +}
 +
 +static int au_hfsn_alloc(struct au_hinode *hinode)
@@ -11088,7 +11090,6 @@
 +	sb = hn->hn_aufs_inode->i_sb;
 +	bindex = au_br_index(sb, hinode->hi_id);
 +	br = au_sbr(sb, bindex);
-+	hn->hn_mark_dead = 0;
 +	mark = &hn->hn_mark;
 +	fsnotify_init_mark(mark, au_hfsn_free_mark);
 +	mark->mask = AuHfsnMask;
@@ -11100,18 +11101,20 @@
 +				 /*mnt*/NULL, /*allow_dups*/1);
 +}
 +
-+static void au_hfsn_free(struct au_hinode *hinode)
++static int au_hfsn_free(struct au_hinode *hinode, struct au_hnotify *hn)
 +{
-+	struct au_hnotify *hn;
 +	struct fsnotify_mark *mark;
++	unsigned long long ull;
++
++	ull = atomic64_inc_return(&au_hfsn_ifree);
++	BUG_ON(!ull);
 +
-+	hn = hinode->hi_notify;
 +	mark = &hn->hn_mark;
 +	fsnotify_destroy_mark(mark);
 +	fsnotify_put_mark(mark);
 +
-+	/* TODO: bad approach */
-+	wait_event(au_hfsn_wq, hn->hn_mark_dead);
++	/* free hn by myself */
++	return 0;
 +}
 +
 +/* ---------------------------------------------------------------------- */
@@ -11275,11 +11278,21 @@
 +	return err;
 +}
 +
++/* ---------------------------------------------------------------------- */
++
++static void au_hfsn_fin(void)
++{
++	AuDbg("au_hfsn_ifree %lld\n", (long long)atomic64_read(&au_hfsn_ifree));
++	wait_event(au_hfsn_wq, !atomic64_read(&au_hfsn_ifree));
++}
++
 +const struct au_hnotify_op au_hnotify_op = {
 +	.ctl		= au_hfsn_ctl,
 +	.alloc		= au_hfsn_alloc,
 +	.free		= au_hfsn_free,
 +
++	.fin		= au_hfsn_fin,
++
 +	.reset_br	= au_hfsn_reset_br,
 +	.fin_br		= au_hfsn_fin_br,
 +	.init_br	= au_hfsn_init_br
@@ -11345,7 +11358,7 @@
 +	}
 +}
 --- a/fs/aufs/hnotify.c	1970-01-01 01:00:00.000000000 +0100
-+++ b/fs/aufs/hnotify.c	2012-01-10 02:15:56.553455997 +0000
++++ b/fs/aufs/hnotify.c	2012-03-11 05:01:22.570973560 +0000
 @@ -0,0 +1,712 @@
 +/*
 + * Copyright (C) 2005-2012 Junjiro R. Okajima
@@ -11407,9 +11420,9 @@
 +
 +	hn = hinode->hi_notify;
 +	if (hn) {
-+		au_hnotify_op.free(hinode);
-+		au_cache_free_hnotify(hn);
 +		hinode->hi_notify = NULL;
++		if (au_hnotify_op.free(hinode, hn))
++			au_cache_free_hnotify(hn);
 +	}
 +}
 +
@@ -12060,7 +12073,7 @@
 +		au_hn_destroy_cache();
 +}
 --- a/fs/aufs/i_op.c	1970-01-01 01:00:00.000000000 +0100
-+++ b/fs/aufs/i_op.c	2012-01-10 02:15:56.553455997 +0000
++++ b/fs/aufs/i_op.c	2012-03-20 03:45:28.417045299 +0000
 @@ -0,0 +1,992 @@
 +/*
 + * Copyright (C) 2005-2012 Junjiro R. Okajima
@@ -13055,7 +13068,7 @@
 +	.truncate_range	= aufs_truncate_range
 +};
 --- a/fs/aufs/i_op_add.c	1970-01-01 01:00:00.000000000 +0100
-+++ b/fs/aufs/i_op_add.c	2012-01-10 02:15:56.553455997 +0000
++++ b/fs/aufs/i_op_add.c	2012-03-20 03:45:28.425045336 +0000
 @@ -0,0 +1,711 @@
 +/*
 + * Copyright (C) 2005-2012 Junjiro R. Okajima
@@ -14250,8 +14263,8 @@
 +	return err;
 +}
 --- a/fs/aufs/i_op_ren.c	1970-01-01 01:00:00.000000000 +0100
-+++ b/fs/aufs/i_op_ren.c	2012-01-10 02:15:56.557456016 +0000
-@@ -0,0 +1,1017 @@
++++ b/fs/aufs/i_op_ren.c	2012-03-11 05:01:22.570973560 +0000
+@@ -0,0 +1,1026 @@
 +/*
 + * Copyright (C) 2005-2012 Junjiro R. Okajima
 + *
@@ -15161,6 +15174,15 @@
 +	} else if (unlikely(d_unhashed(a->dst_dentry)))
 +		goto out_unlock;
 +
++	/*
++	 * is it possible?
++	 * yes, it happend (in linux-3.3-rcN) but I don't know why.
++	 * there may exist a problem somewhere else.
++	 */
++	err = -EINVAL;
++	if (unlikely(a->dst_parent->d_inode == a->src_dentry->d_inode))
++		goto out_unlock;
++
 +	au_fset_ren(a->flags, ISSAMEDIR); /* temporary */
 +	di_write_lock_parent(a->dst_parent);
 +
@@ -16011,8 +16033,8 @@
 +	return au_test_h_perm(h_inode, mask);
 +}
 --- a/fs/aufs/inode.h	1970-01-01 01:00:00.000000000 +0100
-+++ b/fs/aufs/inode.h	2012-01-10 02:15:56.557456016 +0000
-@@ -0,0 +1,554 @@
++++ b/fs/aufs/inode.h	2012-03-20 03:45:28.425045336 +0000
+@@ -0,0 +1,559 @@
 +/*
 + * Copyright (C) 2005-2012 Junjiro R. Okajima
 + *
@@ -16050,7 +16072,6 @@
 +#ifdef CONFIG_AUFS_HFSNOTIFY
 +	/* never use fsnotify_add_vfsmount_mark() */
 +	struct fsnotify_mark		hn_mark;
-+	int				hn_mark_dead;
 +#endif
 +	struct inode			*hn_aufs_inode;	/* no get/put */
 +#endif
@@ -16470,7 +16491,13 @@
 +struct au_hnotify_op {
 +	void (*ctl)(struct au_hinode *hinode, int do_set);
 +	int (*alloc)(struct au_hinode *hinode);
-+	void (*free)(struct au_hinode *hinode);
++
++	/*
++	 * if it returns true, the the caller should free hinode->hi_notify,
++	 * otherwise ->free() frees it.
++	 */
++	int (*free)(struct au_hinode *hinode,
++		    struct au_hnotify *hn) __must_check;
 +
 +	void (*fin)(void);
 +	int (*init)(void);
@@ -17013,8 +17040,8 @@
 +ccflags-y += -DHFSPLUS_SUPER_MAGIC=0x482b
 +endif
 --- a/fs/aufs/module.c	1970-01-01 01:00:00.000000000 +0100
-+++ b/fs/aufs/module.c	2012-01-10 02:15:56.557456016 +0000
-@@ -0,0 +1,195 @@
++++ b/fs/aufs/module.c	2012-03-11 05:01:22.570973560 +0000
+@@ -0,0 +1,196 @@
 +/*
 + * Copyright (C) 2005-2012 Junjiro R. Okajima
 + *
@@ -17082,8 +17109,9 @@
 +{
 +	int i;
 +
-+	/* including AuCache_HNOTIFY */
-+	for (i = 0; i < AuCache_Last; i++)
++	/* excluding AuCache_HNOTIFY */
++	BUILD_BUG_ON(AuCache_HNOTIFY + 1 != AuCache_Last);
++	for (i = 0; i < AuCache_HNOTIFY; i++)
 +		if (au_cachep[i]) {
 +			kmem_cache_destroy(au_cachep[i]);
 +			au_cachep[i] = NULL;
@@ -17211,8 +17239,8 @@
 +module_init(aufs_init);
 +module_exit(aufs_exit);
 --- a/fs/aufs/module.h	1970-01-01 01:00:00.000000000 +0100
-+++ b/fs/aufs/module.h	2012-01-10 02:15:56.557456016 +0000
-@@ -0,0 +1,107 @@
++++ b/fs/aufs/module.h	2012-03-11 05:01:22.570973560 +0000
+@@ -0,0 +1,105 @@
 +/*
 + * Copyright (C) 2005-2012 Junjiro R. Okajima
 + *
@@ -17289,9 +17317,7 @@
 +	AuCache_FINFO,
 +	AuCache_VDIR,
 +	AuCache_DEHSTR,
-+#ifdef CONFIG_AUFS_HNOTIFY
-+	AuCache_HNOTIFY,
-+#endif
++	AuCache_HNOTIFY, /* must be last */
 +	AuCache_Last
 +};
 +
@@ -20951,7 +20977,7 @@
 +#endif /* __KERNEL__ */
 +#endif /* __AUFS_SPL_H__ */
 --- a/fs/aufs/super.c	1970-01-01 01:00:00.000000000 +0100
-+++ b/fs/aufs/super.c	2012-01-10 02:15:56.569456073 +0000
++++ b/fs/aufs/super.c	2012-03-20 03:45:28.425045336 +0000
 @@ -0,0 +1,938 @@
 +/*
 + * Copyright (C) 2005-2012 Junjiro R. Okajima
@@ -23955,7 +23981,7 @@
 +	return 0;
 +}
 --- a/fs/aufs/vfsub.c	1970-01-01 01:00:00.000000000 +0100
-+++ b/fs/aufs/vfsub.c	2012-01-10 02:15:56.569456073 +0000
++++ b/fs/aufs/vfsub.c	2012-03-20 03:45:28.425045336 +0000
 @@ -0,0 +1,835 @@
 +/*
 + * Copyright (C) 2005-2012 Junjiro R. Okajima
@@ -24793,7 +24819,7 @@
 +	return err;
 +}
 --- a/fs/aufs/vfsub.h	1970-01-01 01:00:00.000000000 +0100
-+++ b/fs/aufs/vfsub.h	2012-01-10 02:15:56.569456073 +0000
++++ b/fs/aufs/vfsub.h	2012-03-20 03:45:28.425045336 +0000
 @@ -0,0 +1,232 @@
 +/*
 + * Copyright (C) 2005-2012 Junjiro R. Okajima
@@ -28453,7 +28479,7 @@
 +	return err;
 +}
 --- a/include/linux/aufs_type.h	1970-01-01 01:00:00.000000000 +0100
-+++ b/include/linux/aufs_type.h	2012-01-10 02:15:56.573456100 +0000
++++ b/include/linux/aufs_type.h	2012-03-20 03:45:28.425045336 +0000
 @@ -0,0 +1,233 @@
 +/*
 + * Copyright (C) 2005-2012 Junjiro R. Okajima
@@ -28496,7 +28522,7 @@
 +
 +#include <linux/limits.h>
 +
-+#define AUFS_VERSION	"3.2-20120109"
++#define AUFS_VERSION	"3.2-20120312"
 +
 +/* todo? move this to linux-2.6.19/include/magic.h */
 +#define AUFS_SUPER_MAGIC	('a' << 24 | 'u' << 16 | 'f' << 8 | 's')

Modified: dists/squeeze-backports/linux-2.6/debian/patches/features/all/rt/cpu-rt-make-hotplug-lock-a-sleeping-spinlock-on-rt.patch
==============================================================================
--- dists/squeeze-backports/linux-2.6/debian/patches/features/all/rt/cpu-rt-make-hotplug-lock-a-sleeping-spinlock-on-rt.patch	Thu Mar 22 06:16:14 2012	(r18877)
+++ dists/squeeze-backports/linux-2.6/debian/patches/features/all/rt/cpu-rt-make-hotplug-lock-a-sleeping-spinlock-on-rt.patch	Thu Mar 22 15:21:59 2012	(r18878)
@@ -18,10 +18,14 @@
 Cc: stable-rt at vger.kernel.org
 Link: http://lkml.kernel.org/r/1330702617.25686.265.camel@gandalf.stny.rr.com
 Signed-off-by: Thomas Gleixner <tglx at linutronix.de>
-diff --git a/kernel/cpu.c b/kernel/cpu.c
-index fa40834..c25b5ff 100644
---- a/kernel/cpu.c
-+++ b/kernel/cpu.c
+---
+ kernel/cpu.c |   35 ++++++++++++++++++++++++++---------
+ 1 file changed, 26 insertions(+), 9 deletions(-)
+
+Index: linux-3.2/kernel/cpu.c
+===================================================================
+--- linux-3.2.orig/kernel/cpu.c
++++ linux-3.2/kernel/cpu.c
 @@ -46,7 +46,12 @@ static int cpu_hotplug_disabled;
  
  static struct {
@@ -35,22 +39,30 @@
  	/*
  	 * Also blocks the new readers during
  	 * an ongoing cpu hotplug operation.
-@@ -58,6 +63,14 @@ static struct {
+@@ -54,10 +59,22 @@ static struct {
+ 	int refcount;
+ } cpu_hotplug = {
+ 	.active_writer = NULL,
++#ifdef CONFIG_PREEMPT_RT_FULL
++	.lock = __SPIN_LOCK_UNLOCKED(cpu_hotplug.lock),
++#else
+ 	.lock = __MUTEX_INITIALIZER(cpu_hotplug.lock),
++#endif
  	.refcount = 0,
  };
  
 +#ifdef CONFIG_PREEMPT_RT_FULL
-+# define hotplug_lock() spin_lock(&cpu_hotplug.lock)
-+# define hotplug_unlock() spin_unlock(&cpu_hotplug.lock)
++# define hotplug_lock() rt_spin_lock(&cpu_hotplug.lock)
++# define hotplug_unlock() rt_spin_unlock(&cpu_hotplug.lock)
 +#else
 +# define hotplug_lock() mutex_lock(&cpu_hotplug.lock)
-+# define hotplug_lock() mutex_unlock(&cpu_hotplug.lock)
++# define hotplug_unlock() mutex_unlock(&cpu_hotplug.lock)
 +#endif
 +
  struct hotplug_pcp {
  	struct task_struct *unplug;
  	int refcount;
-@@ -87,8 +100,8 @@ retry:
+@@ -87,8 +104,8 @@ retry:
  		return;
  	}
  	preempt_enable();
@@ -61,7 +73,7 @@
  	preempt_disable();
  	goto retry;
  }
-@@ -161,9 +174,9 @@ void get_online_cpus(void)
+@@ -161,9 +178,9 @@ void get_online_cpus(void)
  	might_sleep();
  	if (cpu_hotplug.active_writer == current)
  		return;
@@ -73,7 +85,7 @@
  
  }
  EXPORT_SYMBOL_GPL(get_online_cpus);
-@@ -172,10 +185,10 @@ void put_online_cpus(void)
+@@ -172,10 +189,10 @@ void put_online_cpus(void)
  {
  	if (cpu_hotplug.active_writer == current)
  		return;
@@ -86,7 +98,7 @@
  
  }
  EXPORT_SYMBOL_GPL(put_online_cpus);
-@@ -207,11 +220,11 @@ static void cpu_hotplug_begin(void)
+@@ -207,11 +224,11 @@ static void cpu_hotplug_begin(void)
  	cpu_hotplug.active_writer = current;
  
  	for (;;) {
@@ -100,7 +112,7 @@
  		schedule();
  	}
  }
-@@ -219,7 +232,7 @@ static void cpu_hotplug_begin(void)
+@@ -219,7 +236,7 @@ static void cpu_hotplug_begin(void)
  static void cpu_hotplug_done(void)
  {
  	cpu_hotplug.active_writer = NULL;
@@ -109,7 +121,3 @@
  }
  
  #else /* #if CONFIG_HOTPLUG_CPU */
-
-
-
-

Modified: dists/squeeze-backports/linux-2.6/debian/patches/features/all/rt/drivers-net-fix-livelock-issues.patch
==============================================================================
--- dists/squeeze-backports/linux-2.6/debian/patches/features/all/rt/drivers-net-fix-livelock-issues.patch	Thu Mar 22 06:16:14 2012	(r18877)
+++ dists/squeeze-backports/linux-2.6/debian/patches/features/all/rt/drivers-net-fix-livelock-issues.patch	Thu Mar 22 15:21:59 2012	(r18878)
@@ -36,9 +36,9 @@
 -	}
 +	spin_lock_irqsave(&adapter->tx_lock, flags);
 +
- 	if (skb->mark == 0x01)
- 		type = atl1c_trans_high;
- 	else
+ 
+ 	if (atl1c_tpd_avail(adapter, type) < tpd_req) {
+ 		/* no enough descriptor, just stop queue */
 Index: linux-3.2/drivers/net/ethernet/atheros/atl1e/atl1e_main.c
 ===================================================================
 --- linux-3.2.orig/drivers/net/ethernet/atheros/atl1e/atl1e_main.c

Copied: dists/squeeze-backports/linux-2.6/debian/patches/features/all/rt/fix-rt+link-creation-restrictions (from r18865, dists/sid/linux-2.6/debian/patches/features/all/rt/fix-rt+link-creation-restrictions)
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ dists/squeeze-backports/linux-2.6/debian/patches/features/all/rt/fix-rt+link-creation-restrictions	Thu Mar 22 15:21:59 2012	(r18878, copy of r18865, dists/sid/linux-2.6/debian/patches/features/all/rt/fix-rt+link-creation-restrictions)
@@ -0,0 +1,22 @@
+---
+ fs/namei.c |    4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+--- a/fs/namei.c
++++ b/fs/namei.c
+@@ -679,13 +679,13 @@
+ 		return 0;
+ 
+ 	/* Check parent directory mode and owner. */
+-	spin_lock(&dentry->d_lock);
++	seq_spin_lock(&dentry->d_lock);
+ 	parent = dentry->d_parent->d_inode;
+ 	if ((parent->i_mode & (S_ISVTX|S_IWOTH)) == (S_ISVTX|S_IWOTH) &&
+ 	    parent->i_uid != inode->i_uid) {
+ 		error = -EACCES;
+ 	}
+-	spin_unlock(&dentry->d_lock);
++	seq_spin_unlock(&dentry->d_lock);
+ 
+ 	if (error)
+ 		audit_log_link_denied("follow_link", link);

Copied: dists/squeeze-backports/linux-2.6/debian/patches/features/all/rt/fs-dcache-use-cpu-chill-in-trylock-loops.patch (from r18865, dists/sid/linux-2.6/debian/patches/features/all/rt/fs-dcache-use-cpu-chill-in-trylock-loops.patch)
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ dists/squeeze-backports/linux-2.6/debian/patches/features/all/rt/fs-dcache-use-cpu-chill-in-trylock-loops.patch	Thu Mar 22 15:21:59 2012	(r18878, copy of r18865, dists/sid/linux-2.6/debian/patches/features/all/rt/fs-dcache-use-cpu-chill-in-trylock-loops.patch)
@@ -0,0 +1,80 @@
+Subject: fs: dcache: Use cpu_chill() in trylock loops
+From: Thomas Gleixner <tglx at linutronix.de>
+Date: Wed, 07 Mar 2012 21:00:34 +0100
+
+Retry loops on RT might loop forever when the modifying side was
+preempted. Use cpu_chill() instead of cpu_relax() to let the system
+make progress.
+
+Signed-off-by: Thomas Gleixner <tglx at linutronix.de>
+Cc: stable-rt at vger.kernel.org
+---
+ fs/autofs4/autofs_i.h |    1 +
+ fs/autofs4/expire.c   |    2 +-
+ fs/dcache.c           |    7 ++++---
+ 3 files changed, 6 insertions(+), 4 deletions(-)
+
+Index: linux-3.2/fs/autofs4/autofs_i.h
+===================================================================
+--- linux-3.2.orig/fs/autofs4/autofs_i.h
++++ linux-3.2/fs/autofs4/autofs_i.h
+@@ -34,6 +34,7 @@
+ #include <linux/sched.h>
+ #include <linux/mount.h>
+ #include <linux/namei.h>
++#include <linux/delay.h>
+ #include <asm/current.h>
+ #include <asm/uaccess.h>
+ 
+Index: linux-3.2/fs/autofs4/expire.c
+===================================================================
+--- linux-3.2.orig/fs/autofs4/expire.c
++++ linux-3.2/fs/autofs4/expire.c
+@@ -170,7 +170,7 @@ again:
+ 			parent = p->d_parent;
+ 			if (!seq_spin_trylock(&parent->d_lock)) {
+ 				seq_spin_unlock(&p->d_lock);
+-				cpu_relax();
++				cpu_chill();
+ 				goto relock;
+ 			}
+ 			seq_spin_unlock(&p->d_lock);
+Index: linux-3.2/fs/dcache.c
+===================================================================
+--- linux-3.2.orig/fs/dcache.c
++++ linux-3.2/fs/dcache.c
+@@ -37,6 +37,7 @@
+ #include <linux/rculist_bl.h>
+ #include <linux/prefetch.h>
+ #include <linux/ratelimit.h>
++#include <linux/delay.h>
+ #include "internal.h"
+ 
+ /*
+@@ -410,7 +411,7 @@ static inline struct dentry *dentry_kill
+ 	if (inode && !spin_trylock(&inode->i_lock)) {
+ relock:
+ 		seq_spin_unlock(&dentry->d_lock);
+-		cpu_relax();
++		cpu_chill();
+ 		return dentry; /* try again with same dentry */
+ 	}
+ 	if (IS_ROOT(dentry))
+@@ -796,7 +797,7 @@ relock:
+ 
+ 		if (!seq_spin_trylock(&dentry->d_lock)) {
+ 			spin_unlock(&dcache_lru_lock);
+-			cpu_relax();
++			cpu_chill();
+ 			goto relock;
+ 		}
+ 
+@@ -1974,7 +1975,7 @@ again:
+ 	if (dentry->d_count == 1) {
+ 		if (inode && !spin_trylock(&inode->i_lock)) {
+ 			seq_spin_unlock(&dentry->d_lock);
+-			cpu_relax();
++			cpu_chill();
+ 			goto again;
+ 		}
+ 		dentry->d_flags &= ~DCACHE_CANT_MOUNT;

Copied: dists/squeeze-backports/linux-2.6/debian/patches/features/all/rt/fs-more-cpu-chill-fixups.patch (from r18865, dists/sid/linux-2.6/debian/patches/features/all/rt/fs-more-cpu-chill-fixups.patch)
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ dists/squeeze-backports/linux-2.6/debian/patches/features/all/rt/fs-more-cpu-chill-fixups.patch	Thu Mar 22 15:21:59 2012	(r18878, copy of r18865, dists/sid/linux-2.6/debian/patches/features/all/rt/fs-more-cpu-chill-fixups.patch)
@@ -0,0 +1,35 @@
+Subject: fs: namespace: Use cpu_chill() instead of cpu_relax()
+From: Thomas Gleixner <tglx at linutronix.de>
+Date: Wed, 07 Mar 2012 21:05:19 +0100
+
+Retry loops on RT might loop forever when the modifying side was
+preempted. Use cpu_chill() instead of cpu_relax() to let the system
+make progress.
+
+Signed-off-by: Thomas Gleixner <tglx at linutronix.de>
+Cc: stable-rt at vger.kernel.org
+---
+ fs/namespace.c |    3 ++-
+ 1 file changed, 2 insertions(+), 1 deletion(-)
+
+Index: linux-3.2/fs/namespace.c
+===================================================================
+--- linux-3.2.orig/fs/namespace.c
++++ linux-3.2/fs/namespace.c
+@@ -31,6 +31,7 @@
+ #include <linux/idr.h>
+ #include <linux/fs_struct.h>
+ #include <linux/fsnotify.h>
++#include <linux/delay.h>
+ #include <asm/uaccess.h>
+ #include <asm/unistd.h>
+ #include "pnode.h"
+@@ -346,7 +347,7 @@ int mnt_want_write(struct vfsmount *mnt)
+ 	 */
+ 	while (mnt->mnt_flags & MNT_WRITE_HOLD) {
+ 		preempt_enable();
+-		cpu_relax();
++		cpu_chill();
+ 		preempt_disable();
+ 	}
+ 	/*

Modified: dists/squeeze-backports/linux-2.6/debian/patches/features/all/rt/localversion.patch
==============================================================================
--- dists/squeeze-backports/linux-2.6/debian/patches/features/all/rt/localversion.patch	Thu Mar 22 06:16:14 2012	(r18877)
+++ dists/squeeze-backports/linux-2.6/debian/patches/features/all/rt/localversion.patch	Thu Mar 22 15:21:59 2012	(r18878)
@@ -14,4 +14,4 @@
 --- /dev/null
 +++ linux-3.2/localversion-rt
 @@ -0,0 +1 @@
-+-rt15
++-rt20

Copied: dists/squeeze-backports/linux-2.6/debian/patches/features/all/rt/net-use-cpu-chill.patch (from r18865, dists/sid/linux-2.6/debian/patches/features/all/rt/net-use-cpu-chill.patch)
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ dists/squeeze-backports/linux-2.6/debian/patches/features/all/rt/net-use-cpu-chill.patch	Thu Mar 22 15:21:59 2012	(r18878, copy of r18865, dists/sid/linux-2.6/debian/patches/features/all/rt/net-use-cpu-chill.patch)
@@ -0,0 +1,66 @@
+Subject: net: Use cpu_chill() instead of cpu_relax()
+From: Thomas Gleixner <tglx at linutronix.de>
+Date: Wed, 07 Mar 2012 21:10:04 +0100
+
+Retry loops on RT might loop forever when the modifying side was
+preempted. Use cpu_chill() instead of cpu_relax() to let the system
+make progress.
+
+Signed-off-by: Thomas Gleixner <tglx at linutronix.de>
+Cc: stable-rt at vger.kernel.org
+---
+ net/packet/af_packet.c |    5 +++--
+ net/rds/ib_rdma.c      |    3 ++-
+ 2 files changed, 5 insertions(+), 3 deletions(-)
+
+Index: linux-3.2/net/packet/af_packet.c
+===================================================================
+--- linux-3.2.orig/net/packet/af_packet.c
++++ linux-3.2/net/packet/af_packet.c
+@@ -89,6 +89,7 @@
+ #include <linux/virtio_net.h>
+ #include <linux/errqueue.h>
+ #include <linux/net_tstamp.h>
++#include <linux/delay.h>
+ 
+ #ifdef CONFIG_INET
+ #include <net/inet_common.h>
+@@ -673,7 +674,7 @@ static void prb_retire_rx_blk_timer_expi
+ 	if (BLOCK_NUM_PKTS(pbd)) {
+ 		while (atomic_read(&pkc->blk_fill_in_prog)) {
+ 			/* Waiting for skb_copy_bits to finish... */
+-			cpu_relax();
++			cpu_chill();
+ 		}
+ 	}
+ 
+@@ -928,7 +929,7 @@ static void prb_retire_current_block(str
+ 		if (!(status & TP_STATUS_BLK_TMO)) {
+ 			while (atomic_read(&pkc->blk_fill_in_prog)) {
+ 				/* Waiting for skb_copy_bits to finish... */
+-				cpu_relax();
++				cpu_chill();
+ 			}
+ 		}
+ 		prb_close_block(pkc, pbd, po, status);
+Index: linux-3.2/net/rds/ib_rdma.c
+===================================================================
+--- linux-3.2.orig/net/rds/ib_rdma.c
++++ linux-3.2/net/rds/ib_rdma.c
+@@ -34,6 +34,7 @@
+ #include <linux/slab.h>
+ #include <linux/rculist.h>
+ #include <linux/llist.h>
++#include <linux/delay.h>
+ 
+ #include "rds.h"
+ #include "ib.h"
+@@ -286,7 +287,7 @@ static inline void wait_clean_list_grace
+ 	for_each_online_cpu(cpu) {
+ 		flag = &per_cpu(clean_list_grace, cpu);
+ 		while (test_bit(CLEAN_LIST_BUSY_BIT, flag))
+-			cpu_relax();
++			cpu_chill();
+ 	}
+ }
+ 

Copied: dists/squeeze-backports/linux-2.6/debian/patches/features/all/rt/rt-introduce-cpu-chill.patch (from r18865, dists/sid/linux-2.6/debian/patches/features/all/rt/rt-introduce-cpu-chill.patch)
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ dists/squeeze-backports/linux-2.6/debian/patches/features/all/rt/rt-introduce-cpu-chill.patch	Thu Mar 22 15:21:59 2012	(r18878, copy of r18865, dists/sid/linux-2.6/debian/patches/features/all/rt/rt-introduce-cpu-chill.patch)
@@ -0,0 +1,30 @@
+Subject: rt: Introduce cpu_chill()
+From: Thomas Gleixner <tglx at linutronix.de>
+Date: Wed, 07 Mar 2012 20:51:03 +0100
+
+Retry loops on RT might loop forever when the modifying side was
+preempted. Add cpu_chill() to replace cpu_relax(). cpu_chill()
+defaults to cpu_relax() for non RT. On RT it puts the looping task to
+sleep for a tick so the preempted task can make progress.
+
+Signed-off-by: Thomas Gleixner <tglx at linutronix.de>
+Cc: stable-rt at vger.kernel.org
+---
+ include/linux/delay.h |    6 ++++++
+ 1 file changed, 6 insertions(+)
+
+Index: linux-3.2/include/linux/delay.h
+===================================================================
+--- linux-3.2.orig/include/linux/delay.h
++++ linux-3.2/include/linux/delay.h
+@@ -52,4 +52,10 @@ static inline void ssleep(unsigned int s
+ 	msleep(seconds * 1000);
+ }
+ 
++#ifdef CONFIG_PREEMPT_RT_FULL
++# define cpu_chill()	msleep(1)
++#else
++# define cpu_chill()	cpu_relax()
++#endif
++
+ #endif /* defined(_LINUX_DELAY_H) */

Modified: dists/squeeze-backports/linux-2.6/debian/patches/features/all/rt/seqlock-prevent-rt-starvation.patch
==============================================================================
--- dists/squeeze-backports/linux-2.6/debian/patches/features/all/rt/seqlock-prevent-rt-starvation.patch	Thu Mar 22 06:16:14 2012	(r18877)
+++ dists/squeeze-backports/linux-2.6/debian/patches/features/all/rt/seqlock-prevent-rt-starvation.patch	Thu Mar 22 15:21:59 2012	(r18878)
@@ -14,7 +14,8 @@
 
 ---
  include/linux/seqlock.h |   23 +++++++++++++++++++++++
- 1 file changed, 23 insertions(+)
+ include/net/neighbour.h |    2 +-
+ 2 files changed, 24 insertions(+), 1 deletion(-)
 
 Index: linux-3.2/include/linux/seqlock.h
 ===================================================================
@@ -24,7 +25,7 @@
  /*
   * Read side functions for starting and finalizing a read side section.
   */
-+#ifndef CONFIG_PREEMPT_RT
++#ifndef CONFIG_PREEMPT_RT_FULL
  static inline unsigned read_seqbegin(const seqlock_t *sl)
  {
  	return read_seqcount_begin(&sl->seqcount);
@@ -54,3 +55,16 @@
  
  static inline unsigned read_seqretry(const seqlock_t *sl, unsigned start)
  {
+Index: linux-3.2/include/net/neighbour.h
+===================================================================
+--- linux-3.2.orig/include/net/neighbour.h
++++ linux-3.2/include/net/neighbour.h
+@@ -385,7 +385,7 @@ struct neighbour_cb {
+ 
+ #define NEIGH_CB(skb)	((struct neighbour_cb *)(skb)->cb)
+ 
+-static inline void neigh_ha_snapshot(char *dst, const struct neighbour *n,
++static inline void neigh_ha_snapshot(char *dst, struct neighbour *n,
+ 				     const struct net_device *dev)
+ {
+ 	unsigned int seq;

Modified: dists/squeeze-backports/linux-2.6/debian/patches/features/all/rt/series
==============================================================================
--- dists/squeeze-backports/linux-2.6/debian/patches/features/all/rt/series	Thu Mar 22 06:16:14 2012	(r18877)
+++ dists/squeeze-backports/linux-2.6/debian/patches/features/all/rt/series	Thu Mar 22 15:21:59 2012	(r18878)
@@ -5,6 +5,7 @@
 ############################################################
 # UPSTREAM changes queued for 3.3 or 3.2
 ############################################################
+x88-derandom-tsc-delay-64-bit.patch
 x86_64-patch-for-idle-notifiers.patch
 re-possible-slab-deadlock-while-doing-ifenslave-1.patch
 
@@ -585,8 +586,16 @@
 rfc-sched-rt-fix-wait_task_interactive-to-test-rt_spin_lock-state.patch
 rfc-lglock-rt-use-non-rt-for_each_cpu-in-rt-code.patch
 
-# Enable full RT
 cpu-rt-make-hotplug-lock-a-sleeping-spinlock-on-rt.patch
+
+softirq-preempt-fix-3-re.txt
+
+rt-introduce-cpu-chill.patch
+fs-dcache-use-cpu-chill-in-trylock-loops.patch
+fs-more-cpu-chill-fixups.patch
+net-use-cpu-chill.patch
+
+# Enable full RT
 kconfig-disable-a-few-options-rt.patch
 kconfig-preempt-rt-full.patch
 

Copied: dists/squeeze-backports/linux-2.6/debian/patches/features/all/rt/softirq-preempt-fix-3-re.txt (from r18865, dists/sid/linux-2.6/debian/patches/features/all/rt/softirq-preempt-fix-3-re.txt)
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ dists/squeeze-backports/linux-2.6/debian/patches/features/all/rt/softirq-preempt-fix-3-re.txt	Thu Mar 22 15:21:59 2012	(r18878, copy of r18865, dists/sid/linux-2.6/debian/patches/features/all/rt/softirq-preempt-fix-3-re.txt)
@@ -0,0 +1,153 @@
+Subject: softirq: Check preemption after reenabling interrupts
+From: Thomas Gleixner <tglx at linutronix.de>
+Date: Sun, 13 Nov 2011 17:17:09 +0100 (CET)
+
+raise_softirq_irqoff() disables interrupts and wakes the softirq
+daemon, but after reenabling interrupts there is no preemption check,
+so the execution of the softirq thread might be delayed arbitrarily.
+
+In principle we could add that check to local_irq_enable/restore, but
+that's overkill as the rasie_softirq_irqoff() sections are the only
+ones which show this behaviour.
+
+Reported-by: Carsten Emde <cbe at osadl.org>
+Signed-off-by: Thomas Gleixner <tglx at linutronix.de>
+Cc: stable-rt at vger.kernel.org
+---
+ block/blk-iopoll.c      |    3 +++
+ block/blk-softirq.c     |    3 +++
+ include/linux/preempt.h |    3 +++
+ net/core/dev.c          |    6 ++++++
+ 4 files changed, 15 insertions(+)
+
+Index: linux-3.2/block/blk-iopoll.c
+===================================================================
+--- linux-3.2.orig/block/blk-iopoll.c
++++ linux-3.2/block/blk-iopoll.c
+@@ -38,6 +38,7 @@ void blk_iopoll_sched(struct blk_iopoll 
+ 	list_add_tail(&iop->list, &__get_cpu_var(blk_cpu_iopoll));
+ 	__raise_softirq_irqoff(BLOCK_IOPOLL_SOFTIRQ);
+ 	local_irq_restore(flags);
++	preempt_check_resched_rt();
+ }
+ EXPORT_SYMBOL(blk_iopoll_sched);
+ 
+@@ -135,6 +136,7 @@ static void blk_iopoll_softirq(struct so
+ 		__raise_softirq_irqoff(BLOCK_IOPOLL_SOFTIRQ);
+ 
+ 	local_irq_enable();
++	preempt_check_resched_rt();
+ }
+ 
+ /**
+@@ -204,6 +206,7 @@ static int __cpuinit blk_iopoll_cpu_noti
+ 				 &__get_cpu_var(blk_cpu_iopoll));
+ 		__raise_softirq_irqoff(BLOCK_IOPOLL_SOFTIRQ);
+ 		local_irq_enable();
++		preempt_check_resched_rt();
+ 	}
+ 
+ 	return NOTIFY_OK;
+Index: linux-3.2/block/blk-softirq.c
+===================================================================
+--- linux-3.2.orig/block/blk-softirq.c
++++ linux-3.2/block/blk-softirq.c
+@@ -50,6 +50,7 @@ static void trigger_softirq(void *data)
+ 		raise_softirq_irqoff(BLOCK_SOFTIRQ);
+ 
+ 	local_irq_restore(flags);
++	preempt_check_resched_rt();
+ }
+ 
+ /*
+@@ -92,6 +93,7 @@ static int __cpuinit blk_cpu_notify(stru
+ 				 &__get_cpu_var(blk_cpu_done));
+ 		raise_softirq_irqoff(BLOCK_SOFTIRQ);
+ 		local_irq_enable();
++		preempt_check_resched_rt();
+ 	}
+ 
+ 	return NOTIFY_OK;
+@@ -150,6 +152,7 @@ do_local:
+ 		goto do_local;
+ 
+ 	local_irq_restore(flags);
++	preempt_check_resched_rt();
+ }
+ 
+ /**
+Index: linux-3.2/include/linux/preempt.h
+===================================================================
+--- linux-3.2.orig/include/linux/preempt.h
++++ linux-3.2/include/linux/preempt.h
+@@ -56,8 +56,10 @@ do { \
+ 
+ #ifndef CONFIG_PREEMPT_RT_BASE
+ # define preempt_enable_no_resched()	__preempt_enable_no_resched()
++# define preempt_check_resched_rt()	do { } while (0)
+ #else
+ # define preempt_enable_no_resched()	preempt_enable()
++# define preempt_check_resched_rt()	preempt_check_resched()
+ #endif
+ 
+ #define preempt_enable() \
+@@ -105,6 +107,7 @@ do { \
+ #define preempt_disable_notrace()		do { } while (0)
+ #define preempt_enable_no_resched_notrace()	do { } while (0)
+ #define preempt_enable_notrace()		do { } while (0)
++#define preempt_check_resched_rt()	do { } while (0)
+ 
+ #endif /* CONFIG_PREEMPT_COUNT */
+ 
+Index: linux-3.2/net/core/dev.c
+===================================================================
+--- linux-3.2.orig/net/core/dev.c
++++ linux-3.2/net/core/dev.c
+@@ -1779,6 +1779,7 @@ static inline void __netif_reschedule(st
+ 	sd->output_queue_tailp = &q->next_sched;
+ 	raise_softirq_irqoff(NET_TX_SOFTIRQ);
+ 	local_irq_restore(flags);
++	preempt_check_resched_rt();
+ }
+ 
+ void __netif_schedule(struct Qdisc *q)
+@@ -1800,6 +1801,7 @@ void dev_kfree_skb_irq(struct sk_buff *s
+ 		sd->completion_queue = skb;
+ 		raise_softirq_irqoff(NET_TX_SOFTIRQ);
+ 		local_irq_restore(flags);
++		preempt_check_resched_rt();
+ 	}
+ }
+ EXPORT_SYMBOL(dev_kfree_skb_irq);
+@@ -2969,6 +2971,7 @@ enqueue:
+ 	rps_unlock(sd);
+ 
+ 	local_irq_restore(flags);
++	preempt_check_resched_rt();
+ 
+ 	atomic_long_inc(&skb->dev->rx_dropped);
+ 	kfree_skb(skb);
+@@ -3789,6 +3792,7 @@ static void net_rps_action_and_irq_enabl
+ 	} else
+ #endif
+ 		local_irq_enable();
++	preempt_check_resched_rt();
+ }
+ 
+ static int process_backlog(struct napi_struct *napi, int quota)
+@@ -3861,6 +3865,7 @@ void __napi_schedule(struct napi_struct 
+ 	local_irq_save(flags);
+ 	____napi_schedule(&__get_cpu_var(softnet_data), n);
+ 	local_irq_restore(flags);
++	preempt_check_resched_rt();
+ }
+ EXPORT_SYMBOL(__napi_schedule);
+ 
+@@ -6401,6 +6406,7 @@ static int dev_cpu_callback(struct notif
+ 
+ 	raise_softirq_irqoff(NET_TX_SOFTIRQ);
+ 	local_irq_enable();
++	preempt_check_resched_rt();
+ 
+ 	/* Process offline CPU's input_pkt_queue */
+ 	while ((skb = __skb_dequeue(&oldsd->process_queue))) {

Copied: dists/squeeze-backports/linux-2.6/debian/patches/features/all/rt/staging-pohmelfs-convert-struct-fs-lock-usage-to-.patch (from r18865, dists/sid/linux-2.6/debian/patches/features/all/rt/staging-pohmelfs-convert-struct-fs-lock-usage-to-.patch)
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ dists/squeeze-backports/linux-2.6/debian/patches/features/all/rt/staging-pohmelfs-convert-struct-fs-lock-usage-to-.patch	Thu Mar 22 15:21:59 2012	(r18878, copy of r18865, dists/sid/linux-2.6/debian/patches/features/all/rt/staging-pohmelfs-convert-struct-fs-lock-usage-to-.patch)
@@ -0,0 +1,54 @@
+From 0bf0d69e1a358e93e5c9b256bb18cab4041e7d8f Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Uwe=20Kleine-K=C3=B6nig?= <u.kleine-koenig at pengutronix.de>
+Date: Sun, 11 Mar 2012 17:14:22 +0100
+Subject: [PATCH RT] staging/pohmelfs: convert struct fs->lock usage to seq_spin_{,un}lock
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+This fixes:
+
+	drivers/staging/pohmelfs/path_entry.c:47:2: warning: passing argument 1 of ‘rt_spin_lock’ from incompatible pointer type [enabled by default]
+	include/linux/spinlock_rt.h:19:56: note: expected ‘struct spinlock_t *’ but argument is of type ‘struct seqlock_t *’
+	drivers/staging/pohmelfs/path_entry.c:49:2: warning: passing argument 1 of ‘rt_spin_unlock’ from incompatible pointer type [enabled by default]
+	include/linux/spinlock_rt.h:22:56: note: expected ‘struct spinlock_t *’ but argument is of type ‘struct seqlock_t *’
+	drivers/staging/pohmelfs/path_entry.c:95:2: warning: passing argument 1 of ‘rt_spin_lock’ from incompatible pointer type [enabled by default]
+	include/linux/spinlock_rt.h:19:56: note: expected ‘struct spinlock_t *’ but argument is of type ‘struct seqlock_t *’
+	drivers/staging/pohmelfs/path_entry.c:97:2: warning: passing argument 1 of ‘rt_spin_unlock’ from incompatible pointer type [enabled by default]
+	include/linux/spinlock_rt.h:22:56: note: expected ‘struct spinlock_t *’ but argument is of type ‘struct seqlock_t *’
+
+Signed-off-by: Uwe Kleine-König <u.kleine-koenig at pengutronix.de>
+Forwarded: http://mid.gmane.org/1331482999-32252-1-git-send-email-u.kleine-koenig@pengutronix.de
+---
+
+ drivers/staging/pohmelfs/path_entry.c |    8 ++++----
+ 1 files changed, 4 insertions(+), 4 deletions(-)
+
+diff --git a/drivers/staging/pohmelfs/path_entry.c b/drivers/staging/pohmelfs/path_entry.c
+index 400a9fc..fc0c3fe 100644
+--- a/drivers/staging/pohmelfs/path_entry.c
++++ b/drivers/staging/pohmelfs/path_entry.c
+@@ -44,9 +44,9 @@ int pohmelfs_construct_path_string(struct pohmelfs_inode *pi, void *data, int le
+ 		return -ENOENT;
+ 	}
+ 
+-	spin_lock(&current->fs->lock);
++	seq_spin_lock(&current->fs->lock);
+ 	path.mnt = mntget(current->fs->root.mnt);
+-	spin_unlock(&current->fs->lock);
++	seq_spin_unlock(&current->fs->lock);
+ 
+ 	path.dentry = d;
+ 
+@@ -92,9 +92,9 @@ int pohmelfs_path_length(struct pohmelfs_inode *pi)
+ 		return -ENOENT;
+ 	}
+ 
+-	spin_lock(&current->fs->lock);
++	seq_spin_lock(&current->fs->lock);
+ 	root = dget(current->fs->root.dentry);
+-	spin_unlock(&current->fs->lock);
++	seq_spin_unlock(&current->fs->lock);
+ 
+ rename_retry:
+ 	len = 1; /* Root slash */

Modified: dists/squeeze-backports/linux-2.6/debian/patches/series/base
==============================================================================
--- dists/squeeze-backports/linux-2.6/debian/patches/series/base	Thu Mar 22 06:16:14 2012	(r18877)
+++ dists/squeeze-backports/linux-2.6/debian/patches/series/base	Thu Mar 22 15:21:59 2012	(r18878)
@@ -48,11 +48,7 @@
 
 + debian/bcma-Do-not-claim-PCI-device-IDs-also-claimed-by-brc.patch
 
-+ bugfix/all/0001-media-staging-lirc_serial-Fix-init-exit-order.patch
-+ bugfix/all/0002-media-staging-lirc_serial-Free-resources-on-failure-.patch
-+ bugfix/all/0003-media-staging-lirc_serial-Fix-deadlock-on-resume-fai.patch
 + bugfix/all/0004-media-staging-lirc_serial-Fix-bogus-error-codes.patch
-+ bugfix/all/0005-media-staging-lirc_serial-Do-not-assume-error-codes-.patch
 
 + features/all/topology-Provide-CPU-topology-in-sysfs-in-SMP-configura.patch
 + bugfix/all/cpu-Do-not-return-errors-from-cpu_dev_init-which-wil.patch
@@ -79,11 +75,13 @@
 
 + bugfix/x86/drm-i915-do-not-enable-RC6p-on-Sandy-Bridge.patch
 + bugfix/x86/drm-i915-fix-operator-precedence-when-enabling-RC6p.patch
-+ bugfix/all/ipsec-be-careful-of-non-existing-mac-headers.patch
 
 + features/all/fs-symlink-restrictions-on-sticky-directories.patch
 + features/all/fs-symlink-restrictions-on-sticky-directories-fix-2.patch
 + features/all/fs-hardlink-creation-restrictions.patch
 + features/all/fs-hardlink-creation-restrictions-fix.patch
 + features/all/fs-hardlink-creation-restriction-cleanup.patch
-+ bugfix/all/iwlwifi-fix-key-removal.patch
++ bugfix/all/Don-t-limit-non-nested-epoll-paths.patch
++ bugfix/all/CIFS-Fix-a-spurious-error-in-cifs_push_posix_locks.patch
++ bugfix/all/tcp-fix-syncookie-regression.patch
++ bugfix/all/ipv6-don-t-dev_hold-dev-in-ip6_mc_find_dev_rcu.patch

Modified: dists/squeeze-backports/linux-2.6/debian/patches/series/base-extra
==============================================================================
--- dists/squeeze-backports/linux-2.6/debian/patches/series/base-extra	Thu Mar 22 06:16:14 2012	(r18877)
+++ dists/squeeze-backports/linux-2.6/debian/patches/series/base-extra	Thu Mar 22 15:21:59 2012	(r18878)
@@ -260,5 +260,12 @@
 + features/all/rt/rfc-sched-rt-fix-wait_task_interactive-to-test-rt_spin_lock-state.patch featureset=rt
 + features/all/rt/rfc-lglock-rt-use-non-rt-for_each_cpu-in-rt-code.patch featureset=rt
 + features/all/rt/cpu-rt-make-hotplug-lock-a-sleeping-spinlock-on-rt.patch featureset=rt
++ features/all/rt/softirq-preempt-fix-3-re.txt featureset=rt
++ features/all/rt/rt-introduce-cpu-chill.patch featureset=rt
++ features/all/rt/fs-dcache-use-cpu-chill-in-trylock-loops.patch featureset=rt
++ features/all/rt/fs-more-cpu-chill-fixups.patch featureset=rt
++ features/all/rt/net-use-cpu-chill.patch featureset=rt
 + features/all/rt/kconfig-disable-a-few-options-rt.patch featureset=rt
 + features/all/rt/kconfig-preempt-rt-full.patch featureset=rt
++ features/all/rt/fix-rt+link-creation-restrictions featureset=rt
++ features/all/rt/staging-pohmelfs-convert-struct-fs-lock-usage-to-.patch featureset=rt

Modified: dists/squeeze-backports/linux-2.6/debian/rules.real
==============================================================================
--- dists/squeeze-backports/linux-2.6/debian/rules.real	Thu Mar 22 06:16:14 2012	(r18877)
+++ dists/squeeze-backports/linux-2.6/debian/rules.real	Thu Mar 22 15:21:59 2012	(r18878)
@@ -215,9 +215,7 @@
 	| \
 	cpio -pd --preserve-modification-time '$(CURDIR)/$(DIR)'
 
-	dh_link \
-		/usr/lib/$(PACKAGE_NAME_KBUILD)/Kbuild $(BASE_DIR)/Kbuild \
-		/usr/lib/$(PACKAGE_NAME_KBUILD)/scripts $(BASE_DIR)/scripts
+	dh_link /usr/lib/$(PACKAGE_NAME_KBUILD)/scripts $(BASE_DIR)/scripts
 
 	+$(MAKE_SELF) install-base
 



More information about the Kernel-svn-changes mailing list