]> git.ipfire.org Git - thirdparty/kernel/stable-queue.git/commitdiff
delete rejects/ we just delete them now, no need to keep them around.
authorGreg Kroah-Hartman <gregkh@suse.de>
Mon, 14 Nov 2011 18:02:27 +0000 (10:02 -0800)
committerGreg Kroah-Hartman <gregkh@suse.de>
Mon, 14 Nov 2011 18:02:27 +0000 (10:02 -0800)
34 files changed:
rejects/01-uml-fix-nfsd-syscall-when-nfsd-modular.patch [deleted file]
rejects/06-st-tape_security.patch [deleted file]
rejects/acpi-add-support-for-fadt-p_lvl2_up-flag.patch [deleted file]
rejects/acpi-prefer-_cst-over-fadt-for-c-state-capabilities.patch [deleted file]
rejects/acpi-scheduling-in-atomic-via-acpi_evaluate_integer.patch [deleted file]
rejects/block-do_mounts-accept-root-non-existant-partition.patch [deleted file]
rejects/brd-don-t-show-ramdisks-in-proc-partitions.patch [deleted file]
rejects/bug-in-gdth.c-crashing-machine.patch [deleted file]
rejects/cciss-panic-in-blk_rq_map_sg-from-cciss-driver.patch [deleted file]
rejects/check-connect-status-for-IPv6-UDP-socket.patch [deleted file]
rejects/ext4-fix-file-fragmentation-during-large-file-write.patch [deleted file]
rejects/ext4-implement-range_cyclic-in-ext4_da_writepages-instead-of-write_cache_pages.patch [deleted file]
rejects/fix-ondemand-vs-suspend-deadlock.patch [deleted file]
rejects/fix-roundup_pow_of_two.patch [deleted file]
rejects/i386-x86-64-don-t-ipi-to-offline-cpus-on-shutdown.patch [deleted file]
rejects/i386-x86_64-Force-pci-noacpi-on-HP-XW9300.patch [deleted file]
rejects/input-alps-add-signature-for-thinkpad-r61.patch [deleted file]
rejects/invalidate_complete_page-race-fix.patch [deleted file]
rejects/kbuild-fix-100-initramfs-bloat-in-2.6.17-versus-2.6.16.patch [deleted file]
rejects/missing-acct-mm-calls-in-compat_do_execve.patch [deleted file]
rejects/mm-fix-committed_as-underflow-on-large-nr_cpus-environment.patch [deleted file]
rejects/move-destructor-from-neigh-ops-to.patch [deleted file]
rejects/netfilter-connection-tracking.patch [deleted file]
rejects/pci-quirk-rs780-rs880-work-around-missing-msi-initialization.patch [deleted file]
rejects/process_zones-fix-error-handling.patch [deleted file]
rejects/quicklist-set-tlb-need_flush-if-pages-are-remaining-in-quicklist-0.patch [deleted file]
rejects/splice-fix-problem-introduced-with-inode-diet.patch [deleted file]
rejects/st.patch [deleted file]
rejects/sysfs-store-sysfs-inode-nrs-in-s_ino-to-avoid-readdir-oopses.patch [deleted file]
rejects/timercode-race-AX.25.patch [deleted file]
rejects/tpm-interrupt-clear-fix.patch [deleted file]
rejects/vfs-add-no_nrwrite_index_update-writeback-control-flag.patch [deleted file]
rejects/x86-replace-lock_prefix-in-futex.h.patch [deleted file]
rejects/x86_64-TASK_SIZE-fix.patch [deleted file]

diff --git a/rejects/01-uml-fix-nfsd-syscall-when-nfsd-modular.patch b/rejects/01-uml-fix-nfsd-syscall-when-nfsd-modular.patch
deleted file mode 100644 (file)
index 2848750..0000000
+++ /dev/null
@@ -1,51 +0,0 @@
-From stable-bounces@linux.kernel.org  Tue Apr 12 10:45:24 2005
-To: akpm@osdl.org
-From: blaisorblade@yahoo.it
-Date: Tue, 12 Apr 2005 19:52:08 +0200
-Cc: blaisorblade@yahoo.it, linux-kernel@vger.kernel.org,
-        user-mode-linux-devel@lists.sourceforge.net, stable@kernel.org
-Subject: [patch] uml: add nfsd syscall when nfsd is modular
-
-CC: <stable@kernel.org>
-
-This trick is useless, because sys_ni.c will handle this problem by itself,
-like it does even on UML for other syscalls.
-Also, it does not provide the NFSD syscall when NFSD is compiled as a module,
-which is a big problem.
-
-This should be merged currently in both 2.6.11-stable and the current tree.
-
-Signed-off-by: Paolo 'Blaisorblade' Giarrusso <blaisorblade@yahoo.it>
-Signed-off-by: Chris Wright <chrisw@osdl.org>
-Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
----
-
- clean-linux-2.6.11-paolo/arch/um/kernel/sys_call_table.c |    8 +-------
- 1 files changed, 1 insertion(+), 7 deletions(-)
-
-diff -puN arch/um/kernel/sys_call_table.c~uml-nfsd-syscall arch/um/kernel/sys_call_table.c
---- clean-linux-2.6.11/arch/um/kernel/sys_call_table.c~uml-nfsd-syscall        2005-04-10 13:50:29.000000000 +0200
-+++ clean-linux-2.6.11-paolo/arch/um/kernel/sys_call_table.c   2005-04-10 13:51:19.000000000 +0200
-@@ -14,12 +14,6 @@
- #include "sysdep/syscalls.h"
- #include "kern_util.h"
--#ifdef CONFIG_NFSD
--#define NFSSERVCTL sys_nfsservctl
--#else
--#define NFSSERVCTL sys_ni_syscall
--#endif
--
- #define LAST_GENERIC_SYSCALL __NR_keyctl
- #if LAST_GENERIC_SYSCALL > LAST_ARCH_SYSCALL
-@@ -190,7 +184,7 @@ syscall_handler_t *sys_call_table[] = {
-       [ __NR_getresuid ] = (syscall_handler_t *) sys_getresuid16,
-       [ __NR_query_module ] = (syscall_handler_t *) sys_ni_syscall,
-       [ __NR_poll ] = (syscall_handler_t *) sys_poll,
--      [ __NR_nfsservctl ] = (syscall_handler_t *) NFSSERVCTL,
-+      [ __NR_nfsservctl ] = (syscall_handler_t *) sys_nfsservctl,
-       [ __NR_setresgid ] = (syscall_handler_t *) sys_setresgid16,
-       [ __NR_getresgid ] = (syscall_handler_t *) sys_getresgid16,
-       [ __NR_prctl ] = (syscall_handler_t *) sys_prctl,
-_
diff --git a/rejects/06-st-tape_security.patch b/rejects/06-st-tape_security.patch
deleted file mode 100644 (file)
index 21fabaa..0000000
+++ /dev/null
@@ -1,49 +0,0 @@
-From stable-bounces@linux.kernel.org  Tue Apr 12 10:45:24 2005
-To: foo.foo.org
-From: Kai.Makisara@kolumbus.fi
-Date: Tue, 12 Apr 2005 19:52:08 +0200
-Cc: James.Bottomley@SteelEye.com
-Subject: [PATCH] SCSI tape security: require CAP_ADMIN for SG_IO etc.
-
-The kernel currently allows any user permitted to access the tape device file
-to send the tape drive commands that may either make the tape drivers internal
-state inconsistent or to change the drive parameters so that other users find
-the drive to be unusable. This patch changes ioctl handling so that SG_IO,
-SCSI_IOCTL_COMMAND, etc. require CAP_ADMIN. This solves the consistency
-problems for SCSI tapes. The st driver provides user-accessible commands to
-change the drive parameters that users may need to access.
-
-The SCSI command permissions were discussed widely on the linux lists but this
-did not result in any useful refinement of the permissions. It may very well
-be that the tape drives are the only devices that users are sometimes given
-permissions to access and that have security problems with the current command
-filtering. This patch solves the problem for tapes and no more elaborate
-patches are needed.
-
-Signed-off-by: Kai Makisara <kai.makisara@kolumbus.fi>
-Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
-
-
-diff -Naru a/drivers/scsi/st.c b/drivers/scsi/st.c
---- a/drivers/scsi/st.c        2005-04-27 09:50:24 -07:00
-+++ b/drivers/scsi/st.c        2005-04-27 09:50:24 -07:00
-@@ -3461,11 +3461,17 @@
-               case SCSI_IOCTL_GET_BUS_NUMBER:
-                       break;
-               default:
--                      i = scsi_cmd_ioctl(file, STp->disk, cmd_in, p);
-+                      if (!capable(CAP_SYS_ADMIN))
-+                              i = -EPERM;
-+                      else
-+                              i = scsi_cmd_ioctl(file, STp->disk, cmd_in, p);
-                       if (i != -ENOTTY)
-                               return i;
-                       break;
-       }
-+      if (!capable(CAP_SYS_ADMIN) &&
-+          (cmd_in == SCSI_IOCTL_START_UNIT || cmd_in == SCSI_IOCTL_STOP_UNIT))
-+              return -EPERM;
-       return scsi_ioctl(STp->device, cmd_in, p);
-  out:
diff --git a/rejects/acpi-add-support-for-fadt-p_lvl2_up-flag.patch b/rejects/acpi-add-support-for-fadt-p_lvl2_up-flag.patch
deleted file mode 100644 (file)
index e814160..0000000
+++ /dev/null
@@ -1,64 +0,0 @@
-From stable-bounces@linux.kernel.org Fri Dec  2 12:44:38 2005
-Message-ID: <4390B210.1010703@gentoo.org>
-Date: Fri, 02 Dec 2005 20:44:00 +0000
-From: Daniel Drake <dsd@gentoo.org>
-To: stable@kernel.org
-Cc: venkatesh.pallipadi@intel.com
-Subject: ACPI: Add support for FADT P_LVL2_UP flag
-X-Git-Tag: v2.6.15-rc4
-X-Git-Url: http://www.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commitdiff;h=4c0335526c95d90a1d958e0059f40a5745fc7c5d
-
-From: Venkatesh Pallipadi <venkatesh.pallipadi@intel.com>
-
-[ACPI] Add support for FADT P_LVL2_UP flag
-which tells us if C2 is valid for UP-only, or SMP.
-
-As there is no separate bit for C3,  use P_LVL2_UP
-bit to cover both C2 and C3.
-
-http://bugzilla.kernel.org/show_bug.cgi?id=5165
-
-(cherry picked from 28b86b368af3944eb383078fc5797caf2dc8ce44 commit)
-
-Signed-off-by: Venkatesh Pallipadi<venkatesh.pallipadi@intel.com>
-Signed-off-by: Len Brown <len.brown@intel.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
----
- drivers/acpi/processor_idle.c |   19 +++++++++++++++++++
- 1 file changed, 19 insertions(+)
-
---- linux-2.6.14.4.orig/drivers/acpi/processor_idle.c
-+++ linux-2.6.14.4/drivers/acpi/processor_idle.c
-@@ -261,6 +261,16 @@ static void acpi_processor_idle(void)
-       cx->usage++;
-+#ifdef CONFIG_HOTPLUG_CPU
-+      /*
-+       * Check for P_LVL2_UP flag before entering C2 and above on
-+       * an SMP system. We do it here instead of doing it at _CST/P_LVL
-+       * detection phase, to work cleanly with logical CPU hotplug.
-+       */
-+      if ((cx->type != ACPI_STATE_C1) && (num_online_cpus() > 1) &&
-+          !pr->flags.has_cst && acpi_fadt.plvl2_up)
-+              cx->type = ACPI_STATE_C1;
-+#endif
-       /*
-        * Sleep:
-        * ------
-@@ -527,6 +537,15 @@ static int acpi_processor_get_power_info
-       pr->power.states[ACPI_STATE_C0].valid = 1;
-       pr->power.states[ACPI_STATE_C1].valid = 1;
-+#ifndef CONFIG_HOTPLUG_CPU
-+      /*
-+       * Check for P_LVL2_UP flag before entering C2 and above on
-+       * an SMP system.
-+       */
-+      if ((num_online_cpus() > 1) && acpi_fadt.plvl2_up)
-+              return_VALUE(-ENODEV);
-+#endif
-+
-       /* determine C2 and C3 address from pblk */
-       pr->power.states[ACPI_STATE_C2].address = pr->pblk + 4;
-       pr->power.states[ACPI_STATE_C3].address = pr->pblk + 5;
diff --git a/rejects/acpi-prefer-_cst-over-fadt-for-c-state-capabilities.patch b/rejects/acpi-prefer-_cst-over-fadt-for-c-state-capabilities.patch
deleted file mode 100644 (file)
index 23ccdf9..0000000
+++ /dev/null
@@ -1,57 +0,0 @@
-From stable-bounces@linux.kernel.org Fri Dec  2 12:49:56 2005
-Message-ID: <4390B271.2080909@gentoo.org>
-Date: Fri, 02 Dec 2005 20:45:37 +0000
-From: Daniel Drake <dsd@gentoo.org>
-To: stable@kernel.org
-Cc: venkatesh.pallipadi@intel.com
-Subject: ACPI: Prefer _CST over FADT for C-state capabilities
-X-Git-Tag: v2.6.15-rc4
-X-Git-Url: http://www.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commitdiff;h=6d93c64803a5fea84839789aae13290419c62d92
-
-From: Venkatesh Pallipadi <venkatesh.pallipadi@intel.com>
-
-[ACPI] Prefer _CST over FADT for C-state capabilities
-
-Note: This ACPI standard compliance may cause regression
-on some system, if they have _CST present, but _CST value
-is bogus. "nocst" module parameter should workaround
-that regression.
-
-http://bugzilla.kernel.org/show_bug.cgi?id=5165
-
-(cherry picked from 883baf7f7e81cca26f4683ae0d25ba48f094cc08 commit)
-
-Signed-off-by: Venkatesh Pallipadi<venkatesh.pallipadi@intel.com>
-Signed-off-by: Len Brown <len.brown@intel.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
----
- drivers/acpi/processor_idle.c |   10 +++++-----
- 1 file changed, 5 insertions(+), 5 deletions(-)
-
---- linux-2.6.14.4.orig/drivers/acpi/processor_idle.c
-+++ linux-2.6.14.4/drivers/acpi/processor_idle.c
-@@ -706,7 +706,7 @@ static int acpi_processor_get_power_info
-       /* Validate number of power states discovered */
-       if (pr->power.count < 2)
--              status = -ENODEV;
-+              status = -EFAULT;
-       end:
-       acpi_os_free(buffer.pointer);
-@@ -857,11 +857,11 @@ static int acpi_processor_get_power_info
-        * this function */
-       result = acpi_processor_get_power_info_cst(pr);
--      if ((result) || (acpi_processor_power_verify(pr) < 2)) {
-+      if (result == -ENODEV)
-               result = acpi_processor_get_power_info_fadt(pr);
--              if ((result) || (acpi_processor_power_verify(pr) < 2))
--                      result = acpi_processor_get_power_info_default_c1(pr);
--      }
-+
-+      if ((result) || (acpi_processor_power_verify(pr) < 2))
-+              result = acpi_processor_get_power_info_default_c1(pr);
-       /*
-        * Set Default Policy
diff --git a/rejects/acpi-scheduling-in-atomic-via-acpi_evaluate_integer.patch b/rejects/acpi-scheduling-in-atomic-via-acpi_evaluate_integer.patch
deleted file mode 100644 (file)
index 5de543f..0000000
+++ /dev/null
@@ -1,69 +0,0 @@
-From 40599072dca3ec7d4c9ff8271978be169f974638 Mon Sep 17 00:00:00 2001
-From: Pavel Machek <pavel@suse.cz>
-Date: Tue, 25 Nov 2008 12:05:08 +0100
-Subject: ACPI: scheduling in atomic via acpi_evaluate_integer ()
-
-From: Pavel Machek <pavel@suse.cz>
-
-commit 40599072dca3ec7d4c9ff8271978be169f974638 upstream.
-
-Now I know why I had strange "scheduling in atomic" problems:
-acpi_evaluate_integer() does malloc(..., irqs_disabled() ? GFP_ATOMIC
-: GFP_KERNEL)... which is (of course) broken.
-
-There's no way to reliably tell if we need GFP_ATOMIC or not from
-code, this one for example fails to detect spinlocks held.
-
-Fortunately, allocation seems small enough to be done on stack.
-
-Signed-off-by: Pavel Machek <pavel@suse.cz>
-Acked-by: Bob Moore <robert.moore@intel.com>
-Signed-off-by: Len Brown <len.brown@intel.com>
-Cc: Rafael J. Wysocki <rjw@sisk.pl>
-Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
-
----
- drivers/acpi/utils.c |   16 ++++------------
- 1 file changed, 4 insertions(+), 12 deletions(-)
-
---- a/drivers/acpi/utils.c
-+++ b/drivers/acpi/utils.c
-@@ -259,34 +259,26 @@ acpi_evaluate_integer(acpi_handle handle
-                     struct acpi_object_list *arguments, unsigned long *data)
- {
-       acpi_status status = AE_OK;
--      union acpi_object *element;
-+      union acpi_object element;
-       struct acpi_buffer buffer = { 0, NULL };
--
-       if (!data)
-               return AE_BAD_PARAMETER;
--      element = kzalloc(sizeof(union acpi_object), irqs_disabled() ? GFP_ATOMIC: GFP_KERNEL);
--      if (!element)
--              return AE_NO_MEMORY;
--
-       buffer.length = sizeof(union acpi_object);
--      buffer.pointer = element;
-+      buffer.pointer = &element;
-       status = acpi_evaluate_object(handle, pathname, arguments, &buffer);
-       if (ACPI_FAILURE(status)) {
-               acpi_util_eval_error(handle, pathname, status);
--              kfree(element);
-               return status;
-       }
--      if (element->type != ACPI_TYPE_INTEGER) {
-+      if (element.type != ACPI_TYPE_INTEGER) {
-               acpi_util_eval_error(handle, pathname, AE_BAD_DATA);
--              kfree(element);
-               return AE_BAD_DATA;
-       }
--      *data = element->integer.value;
--      kfree(element);
-+      *data = element.integer.value;
-       ACPI_DEBUG_PRINT((ACPI_DB_INFO, "Return value [%lu]\n", *data));
diff --git a/rejects/block-do_mounts-accept-root-non-existant-partition.patch b/rejects/block-do_mounts-accept-root-non-existant-partition.patch
deleted file mode 100644 (file)
index 942904c..0000000
+++ /dev/null
@@ -1,125 +0,0 @@
-From stable-bounces@linux.kernel.org  Wed May 14 20:06:08 2008
-From: Kay Sievers <kay.sievers@vrfy.org>
-Date: Wed, 14 May 2008 19:20:21 GMT
-Subject: block: do_mounts - accept root=<non-existant partition>
-To: jejb@kernel.org, stable@kernel.org
-Message-ID: <200805141920.m4EJKL00019620@hera.kernel.org>
-
-From: Kay Sievers <kay.sievers@vrfy.org>
-
-commit 30f2f0eb4bd2c43d10a8b0d872c6e5ad8f31c9a0 upstream
-
-Some devices, like md, may create partitions only at first access,
-so allow root= to be set to a valid non-existant partition of an
-existing disk. This applies only to non-initramfs root mounting.
-
-This fixes a regression from 2.6.24 which did allow this to happen and
-broke some users machines :(
-
-Acked-by: Neil Brown <neilb@suse.de>
-Tested-by: Joao Luis Meloni Assirati <assirati@nonada.if.usp.br>
-Signed-off-by: Kay Sievers <kay.sievers@vrfy.org>
-Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
-Signed-off-by: Chris Wright <chrisw@sous-sol.org>
-
----
- block/genhd.c         |    9 ++++++---
- include/linux/genhd.h |    4 ++--
- init/do_mounts.c      |   27 ++++++++++++++++++++++++++-
- 3 files changed, 34 insertions(+), 6 deletions(-)
-
---- a/block/genhd.c
-+++ b/block/genhd.c
-@@ -645,7 +645,7 @@ void genhd_media_change_notify(struct ge
- EXPORT_SYMBOL_GPL(genhd_media_change_notify);
- #endif  /*  0  */
--dev_t blk_lookup_devt(const char *name)
-+dev_t blk_lookup_devt(const char *name, int part)
- {
-       struct device *dev;
-       dev_t devt = MKDEV(0, 0);
-@@ -653,7 +653,11 @@ dev_t blk_lookup_devt(const char *name)
-       mutex_lock(&block_class_lock);
-       list_for_each_entry(dev, &block_class.devices, node) {
-               if (strcmp(dev->bus_id, name) == 0) {
--                      devt = dev->devt;
-+                      struct gendisk *disk = dev_to_disk(dev);
-+
-+                      if (part < disk->minors)
-+                              devt = MKDEV(MAJOR(dev->devt),
-+                                           MINOR(dev->devt) + part);
-                       break;
-               }
-       }
-@@ -661,7 +665,6 @@ dev_t blk_lookup_devt(const char *name)
-       return devt;
- }
--
- EXPORT_SYMBOL(blk_lookup_devt);
- struct gendisk *alloc_disk(int minors)
---- a/include/linux/genhd.h
-+++ b/include/linux/genhd.h
-@@ -524,7 +524,7 @@ struct unixware_disklabel {
- #define ADDPART_FLAG_RAID     1
- #define ADDPART_FLAG_WHOLEDISK        2
--extern dev_t blk_lookup_devt(const char *name);
-+extern dev_t blk_lookup_devt(const char *name, int part);
- extern char *disk_name (struct gendisk *hd, int part, char *buf);
- extern int rescan_partitions(struct gendisk *disk, struct block_device *bdev);
-@@ -552,7 +552,7 @@ static inline struct block_device *bdget
- static inline void printk_all_partitions(void) { }
--static inline dev_t blk_lookup_devt(const char *name)
-+static inline dev_t blk_lookup_devt(const char *name, int part)
- {
-       dev_t devt = MKDEV(0, 0);
-       return devt;
---- a/init/do_mounts.c
-+++ b/init/do_mounts.c
-@@ -76,6 +76,7 @@ dev_t name_to_dev_t(char *name)
-       char s[32];
-       char *p;
-       dev_t res = 0;
-+      int part;
-       if (strncmp(name, "/dev/", 5) != 0) {
-               unsigned maj, min;
-@@ -106,7 +107,31 @@ dev_t name_to_dev_t(char *name)
-       for (p = s; *p; p++)
-               if (*p == '/')
-                       *p = '!';
--      res = blk_lookup_devt(s);
-+      res = blk_lookup_devt(s, 0);
-+      if (res)
-+              goto done;
-+
-+      /*
-+       * try non-existant, but valid partition, which may only exist
-+       * after revalidating the disk, like partitioned md devices
-+       */
-+      while (p > s && isdigit(p[-1]))
-+              p--;
-+      if (p == s || !*p || *p == '0')
-+              goto fail;
-+
-+      /* try disk name without <part number> */
-+      part = simple_strtoul(p, NULL, 10);
-+      *p = '\0';
-+      res = blk_lookup_devt(s, part);
-+      if (res)
-+              goto done;
-+
-+      /* try disk name without p<part number> */
-+      if (p < s + 2 || !isdigit(p[-2]) || p[-1] != 'p')
-+              goto fail;
-+      p[-1] = '\0';
-+      res = blk_lookup_devt(s, part);
-       if (res)
-               goto done;
diff --git a/rejects/brd-don-t-show-ramdisks-in-proc-partitions.patch b/rejects/brd-don-t-show-ramdisks-in-proc-partitions.patch
deleted file mode 100644 (file)
index 3e0f80b..0000000
+++ /dev/null
@@ -1,55 +0,0 @@
-From stable-bounces@linux.kernel.org  Sat May 24 16:56:28 2008
-Date: Sat, 24 May 2008 17:40:11 GMT
-Message-Id: <200805241740.m4OHeBZZ021298@hera.kernel.org>
-From: jejb@kernel.org
-To: jejb@kernel.org, stable@kernel.org
-Subject: brd: don't show ramdisks in /proc/partitions
-
-From: Marcin Krol <hawk@pld-linux.org>
-
-upstream commit: 53978d0a7a27eb036b9bf33c4caa06257a9dbed7
-
-In 2.6.25, ramdisk devices show up in /proc/partitions, which is a
-behaviour change from the old rd.c.  Add GENHD_FL_SUPPRESS_PARTITION_INFO,
-which was present in rd.c.
-
-All kernels prior to 2.6.25 weren't displaying ramdisks in
-/proc/partitions.  Since there are many userspace tools using information
-from /proc/partitions some of them may now behave incorrectly (I didn't
-tested any though).  For example before 2.6.25 /proc/partitions was empty
-if no block devices like hard disks and such were detected by kernel.  Now
-all 16 ramdisks are always visible there.  Some software may rely on such
-information (I mean, on empty /proc/partitions).
-
-There was quite similar situation back in 2004, and ramdisks were excluded
-back from displaying.  Thats why I called this a regression (maybe a bit
-unfortunate).  See this patch for info:
-http://kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.3-rc2/2.6.3-rc2-mm1/broken-out/nbd-proc-partitions-fix.patch
-
-I also think that someone somewhere (long time ago) excluded ramdisks from
-/proc/partitions for good reasons.  It is possible that now such new
-"feature" is harmless, but I think there are more chances that someone
-will say "hey, /proc/partitions has changed, now my software doesn't work"
-then "hey where did my new 2.6.25 feature go".  nbd devices are also
-excluded, maybe for very same (unknown to me) reasons.
-
-Signed-off-by: Marcin Krol <hawk@pld-linux.org>
-Signed-off-by: Nick Piggin <npiggin@suse.de>
-Cc: <stable@kernel.org>
-Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
-Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
-Signed-off-by: Chris Wright <chrisw@sous-sol.org>
----
- drivers/block/brd.c |    1 +
- 1 file changed, 1 insertion(+)
-
---- a/drivers/block/brd.c
-+++ b/drivers/block/brd.c
-@@ -442,6 +442,7 @@ static struct brd_device *brd_alloc(int 
-       disk->fops              = &brd_fops;
-       disk->private_data      = brd;
-       disk->queue             = brd->brd_queue;
-+      disk->flags |= GENHD_FL_SUPPRESS_PARTITION_INFO;
-       sprintf(disk->disk_name, "ram%d", i);
-       set_capacity(disk, rd_size * 2);
diff --git a/rejects/bug-in-gdth.c-crashing-machine.patch b/rejects/bug-in-gdth.c-crashing-machine.patch
deleted file mode 100644 (file)
index e610891..0000000
+++ /dev/null
@@ -1,41 +0,0 @@
-From stable-bounces@linux.kernel.org Tue Mar  6 02:48:36 2007
-From: Joerg Dorchain <joerg@dorchain.net>
-Date: Tue, 06 Mar 2007 02:46:54 -0800
-Subject: bug in gdth.c crashing machine
-To: James.Bottomley@steeleye.com
-Cc: Achim_Leubner@adaptec.com, akpm@linux-foundation.org, joerg@dorchain.net, linux-scsi@vger.kernel.org, stable@kernel.org
-Message-ID: <200703061046.l26AksTi020093@shell0.pdx.osdl.net>
-
-
-From: Joerg Dorchain <joerg@dorchain.net>
-
-Undocumented...
-
-Signed-off-by: Joerg Dorchain <joerg@dorchain.net>
-Acked-by: Achim Leubner <Achim_Leubner@adaptec.com>
-Cc: James Bottomley <James.Bottomley@steeleye.com>
-Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
-Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
-
----
- drivers/scsi/gdth.c |    2 ++
- 1 file changed, 2 insertions(+)
-
---- linux-2.6.20.1.orig/drivers/scsi/gdth.c
-+++ linux-2.6.20.1/drivers/scsi/gdth.c
-@@ -3092,6 +3092,7 @@ static int gdth_fill_raw_cmd(int hanum,S
-             cmdp->u.raw64.direction  = 
-                 gdth_direction_tab[scp->cmnd[0]]==DOU ? GDTH_DATA_OUT:GDTH_DATA_IN;
-             memcpy(cmdp->u.raw64.cmd,scp->cmnd,16);
-+            cmdp->u.raw64.sg_ranz    = 0;
-         } else {
-             cmdp->u.raw.reserved   = 0;
-             cmdp->u.raw.mdisc_time = 0;
-@@ -3108,6 +3109,7 @@ static int gdth_fill_raw_cmd(int hanum,S
-             cmdp->u.raw.direction  = 
-                 gdth_direction_tab[scp->cmnd[0]]==DOU ? GDTH_DATA_OUT:GDTH_DATA_IN;
-             memcpy(cmdp->u.raw.cmd,scp->cmnd,12);
-+            cmdp->u.raw.sg_ranz    = 0;
-         }
-         if (scp->use_sg) {
diff --git a/rejects/cciss-panic-in-blk_rq_map_sg-from-cciss-driver.patch b/rejects/cciss-panic-in-blk_rq_map_sg-from-cciss-driver.patch
deleted file mode 100644 (file)
index e1be32e..0000000
+++ /dev/null
@@ -1,88 +0,0 @@
-From stable-bounces@linux.kernel.org Thu Feb  7 12:04:11 2008
-From: Lee Schermerhorn <Lee.Schermerhorn@hp.com>
-Date: Thu, 7 Feb 2008 21:03:14 +0100
-Subject: cciss: Panic in blk_rq_map_sg() from CCISS driver
-Message-ID: <6101e8c40802071203t29fcb4fk11ff1e7169bafdbd@mail.gmail.com>
-Content-Disposition: inline
-
-
-From: Lee Schermerhorn <Lee.Schermerhorn@hp.com>
-
-mainline: a683d652d334a546be9175b894f42dbd8e399536
-
-New scatter/gather list chaining [sg_next()] treats 'page' member of
-struct scatterlist with low bit set [0x01] as a chain pointer to
-another struct scatterlist [array].  The CCISS driver request function
-passes an uninitialized, temporary, on-stack scatterlist array to
-blk_rq_map_sq().  sg_next() interprets random data on the stack as a
-chain pointer and eventually tries to de-reference an invalid pointer,
-resulting in:
-
-[<ffffffff8031dd70>] blk_rq_map_sg+0x70/0x170
-PGD 6090c3067 PUD 0
-Oops: 0000 [1] SMP
-last sysfs file: /block/cciss!c0d0/cciss!c0d0p1/dev
-CPU 6
-Modules linked in: ehci_hcd ohci_hcd uhci_hcd
-Pid: 1, comm: init Not tainted 2.6.23-rc6-mm1 #3
-RIP: 0010:[<ffffffff8031dd70>] [<ffffffff8031dd70>] blk_rq_map_sg+0x70/0x170
-RSP: 0018:ffff81060901f768 EFLAGS: 00010206
-RAX: 000000040b161000 RBX: ffff81060901f7d8 RCX: 000000040b162c00
-RDX: 0000000000000000 RSI: ffff81060b13a260 RDI: ffff81060b139600
-RBP: 0000000000001400 R08: 00000000fffffffe R09: 0000000000000400
-R10: 0000000000000000 R11: 000000040b163000 R12: ffff810102fe0000
-R13: 0000000000000001 R14: 0000000000000001 R15: 00001e0000000000
-FS: 00000000026108f0(0063) GS:ffff810409000b80(0000) knlGS:0000000000000000
-CS: 0010 DS: 0000 ES: 0000 CR0: 000000008005003b
-CR2: 000000010000001e CR3: 00000006090c6000 CR4: 00000000000006e0
-DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
-DR3: 0000000000000000 DR6: 00000000ffff0ff0 DR7: 0000000000000400
-Process init (pid: 1, threadinfo ffff81060901e000, task ffff810409020800)
-last branch before last exception/interrupt
-from [<ffffffff8031de0a>] blk_rq_map_sg+0x10a/0x170
-to [<ffffffff8031dd70>] blk_rq_map_sg+0x70/0x170
-Stack: 000000018068ea00 ffff810102fe0000 0000000000000000 ffff810011400000
-0000000000000002 0000000000000000 ffff81040b172000 ffffffff803acd3d
-0000000000003ec1 ffff8106090d5000 ffff8106090d5000 ffff810102fe0000
-Call Trace:
-[<ffffffff803acd3d>] do_cciss_request+0x15d/0x4c0
-[<ffffffff80298968>] new_slab+0x1c8/0x270
-[<ffffffff80298ffd>] __slab_alloc+0x22d/0x470
-[<ffffffff8027327b>] mempool_alloc+0x4b/0x130
-[<ffffffff8032b21e>] cfq_set_request+0xee/0x380
-[<ffffffff8027327b>] mempool_alloc+0x4b/0x130
-[<ffffffff8031ff98>] get_request+0x168/0x360
-[<ffffffff80331b0d>] rb_insert_color+0x8d/0x110
-[<ffffffff8031cfd8>] elv_rb_add+0x58/0x60
-[<ffffffff8032a329>] cfq_add_rq_rb+0x69/0xa0
-[<ffffffff8031c1ab>] elv_merged_request+0x5b/0x60
-[<ffffffff803224fd>] __make_request+0x23d/0x650
-[<ffffffff80298ffd>] __slab_alloc+0x22d/0x470
-[<ffffffff80270000>] generic_write_checks+0x140/0x190
-[<ffffffff8031f012>] generic_make_request+0x1c2/0x3a0
-<etc>
-Kernel panic - not syncing: Attempted to kill init!
-
-This patch initializes the tmp_sg array to zeroes.  Perhaps not the ultimate
-fix, but an effective work-around.  I can now boot 23-rc6-mm1 on an HP
-Proliant x86_64 with CCISS boot disk.
-
-Signed-off-by:  Lee Schermerhorn <lee.schermerhorn@hp.com>
-CC: Oliver Pinter <oliver.pntr@gmail.com>
-Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
-
----
- drivers/block/cciss.c |    1 +
- 1 file changed, 1 insertion(+)
-
---- a/drivers/block/cciss.c
-+++ b/drivers/block/cciss.c
-@@ -2568,6 +2568,7 @@ static void do_cciss_request(request_que
-              (int)creq->nr_sectors);
- #endif                                /* CCISS_DEBUG */
-+      memset(tmp_sg, 0, sizeof(tmp_sg));
-       seg = blk_rq_map_sg(q, creq, tmp_sg);
-       /* get the DMA records for the setup */
diff --git a/rejects/check-connect-status-for-IPv6-UDP-socket.patch b/rejects/check-connect-status-for-IPv6-UDP-socket.patch
deleted file mode 100644 (file)
index 6634f4e..0000000
+++ /dev/null
@@ -1,71 +0,0 @@
-From stable-bounces@linux.kernel.org  Sun Sep 18 00:30:56 2005
-Date: Sun, 18 Sep 2005 00:30:50 -0700 (PDT)
-To: stable@kernel.org
-From: "David S. Miller" <davem@davemloft.net>
-Cc: 
-Subject: [PATCH] check connect(2) status for IPv6 UDP socket
-
-From: Mitsuru KANDA <mk@linux-ipv6.org>
-
-I think we should cache the per-socket route(dst_entry) only when the
-IPv6 UDP socket is connect(2)'ed.
-(which is same as IPv4 UDP send behavior)
-
-Signed-off-by: Mitsuru KANDA <mk@linux-ipv6.org>
-Signed-off-by: Chris Wright <chrisw@osdl.org>
----
- net/ipv6/udp.c |   10 ++++++++--
- 1 files changed, 8 insertions(+), 2 deletions(-)
-
-Index: linux-2.6.13.y/net/ipv6/udp.c
-===================================================================
---- linux-2.6.13.y.orig/net/ipv6/udp.c
-+++ linux-2.6.13.y/net/ipv6/udp.c
-@@ -638,6 +638,7 @@ static int udpv6_sendmsg(struct kiocb *i
-       int hlimit = -1;
-       int corkreq = up->corkflag || msg->msg_flags&MSG_MORE;
-       int err;
-+      int connected = 0;
-       /* destination address check */
-       if (sin6) {
-@@ -747,6 +748,7 @@ do_udp_sendmsg:
-               fl->fl_ip_dport = inet->dport;
-               daddr = &np->daddr;
-               fl->fl6_flowlabel = np->flow_label;
-+              connected = 1;
-       }
-       if (!fl->oif)
-@@ -769,6 +771,7 @@ do_udp_sendmsg:
-               }
-               if (!(opt->opt_nflen|opt->opt_flen))
-                       opt = NULL;
-+              connected = 0;
-       }
-       if (opt == NULL)
-               opt = np->opt;
-@@ -787,10 +790,13 @@ do_udp_sendmsg:
-               ipv6_addr_copy(&final, &fl->fl6_dst);
-               ipv6_addr_copy(&fl->fl6_dst, rt0->addr);
-               final_p = &final;
-+              connected = 0;
-       }
--      if (!fl->oif && ipv6_addr_is_multicast(&fl->fl6_dst))
-+      if (!fl->oif && ipv6_addr_is_multicast(&fl->fl6_dst)) {
-               fl->oif = np->mcast_oif;
-+              connected = 0;
-+      }
-       err = ip6_dst_lookup(sk, &dst, fl);
-       if (err)
-@@ -841,7 +847,7 @@ do_append_data:
-       else if (!corkreq)
-               err = udp_v6_push_pending_frames(sk, up);
--      if (dst)
-+      if (dst&&connected)
-               ip6_dst_store(sk, dst,
-                             ipv6_addr_equal(&fl->fl6_dst, &np->daddr) ?
-                             &np->daddr : NULL);
diff --git a/rejects/ext4-fix-file-fragmentation-during-large-file-write.patch b/rejects/ext4-fix-file-fragmentation-during-large-file-write.patch
deleted file mode 100644 (file)
index 00bd977..0000000
+++ /dev/null
@@ -1,199 +0,0 @@
-From tytso@mit.edu  Mon Apr 19 10:23:42 2010
-From: Aneesh Kumar K.V <aneesh.kumar@linux.vnet.ibm.com>
-Date: Mon, 15 Mar 2010 20:26:04 -0400
-Subject: ext4: Fix file fragmentation during large file write.
-To: stable@kernel.org
-Cc: Ext4 Developers List <linux-ext4@vger.kernel.org>, "Theodore Ts'o" <tytso@mit.edu>, "Jayson R. King" <dev@jaysonking.com>, "Aneesh Kumar K.V" <aneesh.kumar@linux.vnet.ibm.com>
-Message-ID: <1268699165-17461-11-git-send-email-tytso@mit.edu>
-
-
-From: Aneesh Kumar K.V <aneesh.kumar@linux.vnet.ibm.com>
-
-commit 22208dedbd7626e5fc4339c417f8d24cc21f79d7 upstream.
-
-The range_cyclic writeback mode uses the address_space writeback_index
-as the start index for writeback.  With delayed allocation we were
-updating writeback_index wrongly resulting in highly fragmented file.
-This patch reduces the number of extents reduced from 4000 to 27 for a
-3GB file.
-
-Signed-off-by: Aneesh Kumar K.V <aneesh.kumar@linux.vnet.ibm.com>
-Signed-off-by: Theodore Ts'o <tytso@mit.edu>
-[dev@jaysonking.com: Some changed lines from the original version of this patch were dropped, since they were rolled up with another cherry-picked patch applied to 2.6.27.y earlier.]
-Signed-off-by: Jayson R. King <dev@jaysonking.com>
-Signed-off-by: Theodore Ts'o <tytso@mit.edu>
-Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
-
----
- fs/ext4/inode.c |   88 +++++++++++++++++++++++++++++++++++---------------------
- 1 file changed, 55 insertions(+), 33 deletions(-)
-
---- a/fs/ext4/inode.c
-+++ b/fs/ext4/inode.c
-@@ -1721,7 +1721,11 @@ static int mpage_da_submit_io(struct mpa
-                       pages_skipped = mpd->wbc->pages_skipped;
-                       err = mapping->a_ops->writepage(page, mpd->wbc);
--                      if (!err)
-+                      if (!err && (pages_skipped == mpd->wbc->pages_skipped))
-+                              /*
-+                               * have successfully written the page
-+                               * without skipping the same
-+                               */
-                               mpd->pages_written++;
-                       /*
-                        * In error case, we have to continue because
-@@ -2175,7 +2179,6 @@ static int mpage_da_writepages(struct ad
-                              struct writeback_control *wbc,
-                              struct mpage_da_data *mpd)
- {
--      long to_write;
-       int ret;
-       if (!mpd->get_block)
-@@ -2190,19 +2193,18 @@ static int mpage_da_writepages(struct ad
-       mpd->pages_written = 0;
-       mpd->retval = 0;
--      to_write = wbc->nr_to_write;
--
-       ret = write_cache_pages(mapping, wbc, __mpage_da_writepage, mpd);
--
-       /*
-        * Handle last extent of pages
-        */
-       if (!mpd->io_done && mpd->next_page != mpd->first_page) {
-               if (mpage_da_map_blocks(mpd) == 0)
-                       mpage_da_submit_io(mpd);
--      }
--      wbc->nr_to_write = to_write - mpd->pages_written;
-+              mpd->io_done = 1;
-+              ret = MPAGE_DA_EXTENT_TAIL;
-+      }
-+      wbc->nr_to_write -= mpd->pages_written;
-       return ret;
- }
-@@ -2447,11 +2449,14 @@ static int ext4_da_writepages_trans_bloc
- static int ext4_da_writepages(struct address_space *mapping,
-                             struct writeback_control *wbc)
- {
-+      pgoff_t index;
-+      int range_whole = 0;
-       handle_t *handle = NULL;
-       struct mpage_da_data mpd;
-       struct inode *inode = mapping->host;
-+      int no_nrwrite_index_update;
-+      long pages_written = 0, pages_skipped;
-       int needed_blocks, ret = 0, nr_to_writebump = 0;
--      long to_write, pages_skipped = 0;
-       struct ext4_sb_info *sbi = EXT4_SB(mapping->host->i_sb);
-       /*
-@@ -2485,16 +2490,26 @@ static int ext4_da_writepages(struct add
-               nr_to_writebump = sbi->s_mb_stream_request - wbc->nr_to_write;
-               wbc->nr_to_write = sbi->s_mb_stream_request;
-       }
-+      if (wbc->range_start == 0 && wbc->range_end == LLONG_MAX)
-+              range_whole = 1;
--
--      pages_skipped = wbc->pages_skipped;
-+      if (wbc->range_cyclic)
-+              index = mapping->writeback_index;
-+      else
-+              index = wbc->range_start >> PAGE_CACHE_SHIFT;
-       mpd.wbc = wbc;
-       mpd.inode = mapping->host;
--restart_loop:
--      to_write = wbc->nr_to_write;
--      while (!ret && to_write > 0) {
-+      /*
-+       * we don't want write_cache_pages to update
-+       * nr_to_write and writeback_index
-+       */
-+      no_nrwrite_index_update = wbc->no_nrwrite_index_update;
-+      wbc->no_nrwrite_index_update = 1;
-+      pages_skipped = wbc->pages_skipped;
-+
-+      while (!ret && wbc->nr_to_write > 0) {
-               /*
-                * we  insert one extent at a time. So we need
-@@ -2527,46 +2542,53 @@ restart_loop:
-                               goto out_writepages;
-                       }
-               }
--              to_write -= wbc->nr_to_write;
--
-               mpd.get_block = ext4_da_get_block_write;
-               ret = mpage_da_writepages(mapping, wbc, &mpd);
-               ext4_journal_stop(handle);
--              if (mpd.retval == -ENOSPC)
-+              if (mpd.retval == -ENOSPC) {
-+                      /* commit the transaction which would
-+                       * free blocks released in the transaction
-+                       * and try again
-+                       */
-                       jbd2_journal_force_commit_nested(sbi->s_journal);
--
--              /* reset the retry count */
--              if (ret == MPAGE_DA_EXTENT_TAIL) {
-+                      wbc->pages_skipped = pages_skipped;
-+                      ret = 0;
-+              } else if (ret == MPAGE_DA_EXTENT_TAIL) {
-                       /*
-                        * got one extent now try with
-                        * rest of the pages
-                        */
--                      to_write += wbc->nr_to_write;
-+                      pages_written += mpd.pages_written;
-+                      wbc->pages_skipped = pages_skipped;
-                       ret = 0;
--              } else if (wbc->nr_to_write) {
-+              } else if (wbc->nr_to_write)
-                       /*
-                        * There is no more writeout needed
-                        * or we requested for a noblocking writeout
-                        * and we found the device congested
-                        */
--                      to_write += wbc->nr_to_write;
-                       break;
--              }
--              wbc->nr_to_write = to_write;
--      }
--
--      if (!wbc->range_cyclic && (pages_skipped != wbc->pages_skipped)) {
--              /* We skipped pages in this loop */
--              wbc->nr_to_write = to_write +
--                              wbc->pages_skipped - pages_skipped;
--              wbc->pages_skipped = pages_skipped;
--              goto restart_loop;
-       }
-+      if (pages_skipped != wbc->pages_skipped)
-+              printk(KERN_EMERG "This should not happen leaving %s "
-+                              "with nr_to_write = %ld ret = %d\n",
-+                              __func__, wbc->nr_to_write, ret);
-+
-+      /* Update index */
-+      index += pages_written;
-+      if (wbc->range_cyclic || (range_whole && wbc->nr_to_write > 0))
-+              /*
-+               * set the writeback_index so that range_cyclic
-+               * mode will write it back later
-+               */
-+              mapping->writeback_index = index;
- out_writepages:
--      wbc->nr_to_write = to_write - nr_to_writebump;
-+      if (!no_nrwrite_index_update)
-+              wbc->no_nrwrite_index_update = 0;
-+      wbc->nr_to_write -= nr_to_writebump;
-       return ret;
- }
diff --git a/rejects/ext4-implement-range_cyclic-in-ext4_da_writepages-instead-of-write_cache_pages.patch b/rejects/ext4-implement-range_cyclic-in-ext4_da_writepages-instead-of-write_cache_pages.patch
deleted file mode 100644 (file)
index e3e0632..0000000
+++ /dev/null
@@ -1,103 +0,0 @@
-From tytso@mit.edu  Mon Apr 19 10:24:03 2010
-From: Aneesh Kumar K.V <aneesh.kumar@linux.vnet.ibm.com>
-Date: Mon, 15 Mar 2010 20:26:05 -0400
-Subject: ext4: Implement range_cyclic in ext4_da_writepages instead of write_cache_pages
-To: stable@kernel.org
-Cc: Ext4 Developers List <linux-ext4@vger.kernel.org>, "Theodore Ts'o" <tytso@mit.edu>, "Jayson R. King" <dev@jaysonking.com>, "Aneesh Kumar K.V" <aneesh.kumar@linux.vnet.ibm.com>
-Message-ID: <1268699165-17461-12-git-send-email-tytso@mit.edu>
-
-
-From: Aneesh Kumar K.V <aneesh.kumar@linux.vnet.ibm.com>
-
-commit 2acf2c261b823d9d9ed954f348b97620297a36b5 upstream.
-
-With delayed allocation we lock the page in write_cache_pages() and
-try to build an in memory extent of contiguous blocks.  This is needed
-so that we can get large contiguous blocks request.  If range_cyclic
-mode is enabled, write_cache_pages() will loop back to the 0 index if
-no I/O has been done yet, and try to start writing from the beginning
-of the range.  That causes an attempt to take the page lock of lower
-index page while holding the page lock of higher index page, which can
-cause a dead lock with another writeback thread.
-
-The solution is to implement the range_cyclic behavior in
-ext4_da_writepages() instead.
-
-http://bugzilla.kernel.org/show_bug.cgi?id=12579
-
-Signed-off-by: Aneesh Kumar K.V <aneesh.kumar@linux.vnet.ibm.com>
-Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
-Signed-off-by: Jayson R. King <dev@jaysonking.com>
-Signed-off-by: Theodore Ts'o <tytso@mit.edu>
-Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
-
----
- fs/ext4/inode.c |   21 +++++++++++++++++++--
- 1 file changed, 19 insertions(+), 2 deletions(-)
-
---- a/fs/ext4/inode.c
-+++ b/fs/ext4/inode.c
-@@ -2456,6 +2456,7 @@ static int ext4_da_writepages(struct add
-       struct inode *inode = mapping->host;
-       int no_nrwrite_index_update;
-       long pages_written = 0, pages_skipped;
-+      int range_cyclic, cycled = 1, io_done = 0;
-       int needed_blocks, ret = 0, nr_to_writebump = 0;
-       struct ext4_sb_info *sbi = EXT4_SB(mapping->host->i_sb);
-@@ -2493,9 +2494,15 @@ static int ext4_da_writepages(struct add
-       if (wbc->range_start == 0 && wbc->range_end == LLONG_MAX)
-               range_whole = 1;
--      if (wbc->range_cyclic)
-+      range_cyclic = wbc->range_cyclic;
-+      if (wbc->range_cyclic) {
-               index = mapping->writeback_index;
--      else
-+              if (index)
-+                      cycled = 0;
-+              wbc->range_start = index << PAGE_CACHE_SHIFT;
-+              wbc->range_end  = LLONG_MAX;
-+              wbc->range_cyclic = 0;
-+      } else
-               index = wbc->range_start >> PAGE_CACHE_SHIFT;
-       mpd.wbc = wbc;
-@@ -2509,6 +2516,7 @@ static int ext4_da_writepages(struct add
-       wbc->no_nrwrite_index_update = 1;
-       pages_skipped = wbc->pages_skipped;
-+retry:
-       while (!ret && wbc->nr_to_write > 0) {
-               /*
-@@ -2563,6 +2571,7 @@ static int ext4_da_writepages(struct add
-                       pages_written += mpd.pages_written;
-                       wbc->pages_skipped = pages_skipped;
-                       ret = 0;
-+                      io_done = 1;
-               } else if (wbc->nr_to_write)
-                       /*
-                        * There is no more writeout needed
-@@ -2571,6 +2580,13 @@ static int ext4_da_writepages(struct add
-                        */
-                       break;
-       }
-+      if (!io_done && !cycled) {
-+              cycled = 1;
-+              index = 0;
-+              wbc->range_start = index << PAGE_CACHE_SHIFT;
-+              wbc->range_end  = mapping->writeback_index - 1;
-+              goto retry;
-+      }
-       if (pages_skipped != wbc->pages_skipped)
-               printk(KERN_EMERG "This should not happen leaving %s "
-                               "with nr_to_write = %ld ret = %d\n",
-@@ -2578,6 +2594,7 @@ static int ext4_da_writepages(struct add
-       /* Update index */
-       index += pages_written;
-+      wbc->range_cyclic = range_cyclic;
-       if (wbc->range_cyclic || (range_whole && wbc->nr_to_write > 0))
-               /*
-                * set the writeback_index so that range_cyclic
diff --git a/rejects/fix-ondemand-vs-suspend-deadlock.patch b/rejects/fix-ondemand-vs-suspend-deadlock.patch
deleted file mode 100644 (file)
index d312a4e..0000000
+++ /dev/null
@@ -1,142 +0,0 @@
-From stable-bounces@linux.kernel.org Fri Jun 30 19:10:22 2006
-Date: Fri, 23 Jun 2006 06:10:02 GMT
-Message-Id: <200606230610.k5N6A2PQ015237@hera.kernel.org>
-From: Linux Kernel Mailing List <linux-kernel@vger.kernel.org>
-To: git-commits-head@vger.kernel.org
-Cc: 
-Subject: [CPUFREQ] Fix ondemand vs suspend deadlock
-
-From: Venkatesh Pallipadi <venkatesh.pallipadi@intel.com>
-
-[CPUFREQ] Fix ondemand vs suspend deadlock
-
-Rootcaused the bug to a deadlock in cpufreq and ondemand. Due to non-existent
-ordering between cpu_hotplug lock and dbs_mutex. Basically a race condition
-between cpu_down() and do_dbs_timer().
-
-cpu_down() flow:
-* cpu_down() call for CPU 1
-* Takes hot plug lock
-* Calls pre down notifier
-*     cpufreq notifier handler calls cpufreq_driver_target() which takes
-      cpu_hotplug lock again. OK as cpu_hotplug lock is recursive in same
-      process context
-* CPU 1 goes down
-* Calls post down notifier
-*     cpufreq notifier handler calls ondemand event stop which takes dbs_mutex
-
-So, cpu_hotplug lock is taken before dbs_mutex in this flow.
-
-do_dbs_timer is triggerred by a periodic timer event.
-It first takes dbs_mutex and then takes cpu_hotplug lock in
-cpufreq_driver_target().
-Note the reverse order here compared to above. So, if this timer event happens
-at right moment during cpu_down, system will deadlok.
-
-Attached patch fixes the issue for both ondemand and conservative.
-
-Signed-off-by: Venkatesh Pallipadi <venkatesh.pallipadi@intel.com>
-Signed-off-by: Dave Jones <davej@redhat.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
-
----
- drivers/cpufreq/cpufreq_conservative.c |   12 ++++++++++++
- drivers/cpufreq/cpufreq_ondemand.c     |   12 ++++++++++++
- 2 files changed, 24 insertions(+)
-
---- linux-2.6.17.4.orig/drivers/cpufreq/cpufreq_conservative.c
-+++ linux-2.6.17.4/drivers/cpufreq/cpufreq_conservative.c
-@@ -72,6 +72,14 @@ static DEFINE_PER_CPU(struct cpu_dbs_inf
- static unsigned int dbs_enable;       /* number of CPUs using this policy */
-+/*
-+ * DEADLOCK ALERT! There is a ordering requirement between cpu_hotplug
-+ * lock and dbs_mutex. cpu_hotplug lock should always be held before
-+ * dbs_mutex. If any function that can potentially take cpu_hotplug lock
-+ * (like __cpufreq_driver_target()) is being called with dbs_mutex taken, then
-+ * cpu_hotplug lock should be taken before that. Note that cpu_hotplug lock
-+ * is recursive for the same process. -Venki
-+ */
- static DEFINE_MUTEX   (dbs_mutex);
- static DECLARE_WORK   (dbs_work, do_dbs_timer, NULL);
-@@ -414,12 +422,14 @@ static void dbs_check_cpu(int cpu)
- static void do_dbs_timer(void *data)
- { 
-       int i;
-+      lock_cpu_hotplug();
-       mutex_lock(&dbs_mutex);
-       for_each_online_cpu(i)
-               dbs_check_cpu(i);
-       schedule_delayed_work(&dbs_work, 
-                       usecs_to_jiffies(dbs_tuners_ins.sampling_rate));
-       mutex_unlock(&dbs_mutex);
-+      unlock_cpu_hotplug();
- } 
- static inline void dbs_timer_init(void)
-@@ -514,6 +524,7 @@ static int cpufreq_governor_dbs(struct c
-               break;
-       case CPUFREQ_GOV_LIMITS:
-+              lock_cpu_hotplug();
-               mutex_lock(&dbs_mutex);
-               if (policy->max < this_dbs_info->cur_policy->cur)
-                       __cpufreq_driver_target(
-@@ -524,6 +535,7 @@ static int cpufreq_governor_dbs(struct c
-                                       this_dbs_info->cur_policy,
-                                       policy->min, CPUFREQ_RELATION_L);
-               mutex_unlock(&dbs_mutex);
-+              unlock_cpu_hotplug();
-               break;
-       }
-       return 0;
---- linux-2.6.17.4.orig/drivers/cpufreq/cpufreq_ondemand.c
-+++ linux-2.6.17.4/drivers/cpufreq/cpufreq_ondemand.c
-@@ -71,6 +71,14 @@ static DEFINE_PER_CPU(struct cpu_dbs_inf
- static unsigned int dbs_enable;       /* number of CPUs using this policy */
-+/*
-+ * DEADLOCK ALERT! There is a ordering requirement between cpu_hotplug
-+ * lock and dbs_mutex. cpu_hotplug lock should always be held before
-+ * dbs_mutex. If any function that can potentially take cpu_hotplug lock
-+ * (like __cpufreq_driver_target()) is being called with dbs_mutex taken, then
-+ * cpu_hotplug lock should be taken before that. Note that cpu_hotplug lock
-+ * is recursive for the same process. -Venki
-+ */
- static DEFINE_MUTEX (dbs_mutex);
- static DECLARE_WORK   (dbs_work, do_dbs_timer, NULL);
-@@ -363,12 +371,14 @@ static void dbs_check_cpu(int cpu)
- static void do_dbs_timer(void *data)
- {
-       int i;
-+      lock_cpu_hotplug();
-       mutex_lock(&dbs_mutex);
-       for_each_online_cpu(i)
-               dbs_check_cpu(i);
-       queue_delayed_work(dbs_workq, &dbs_work,
-                          usecs_to_jiffies(dbs_tuners_ins.sampling_rate));
-       mutex_unlock(&dbs_mutex);
-+      unlock_cpu_hotplug();
- }
- static inline void dbs_timer_init(void)
-@@ -469,6 +479,7 @@ static int cpufreq_governor_dbs(struct c
-               break;
-       case CPUFREQ_GOV_LIMITS:
-+              lock_cpu_hotplug();
-               mutex_lock(&dbs_mutex);
-               if (policy->max < this_dbs_info->cur_policy->cur)
-                       __cpufreq_driver_target(
-@@ -479,6 +490,7 @@ static int cpufreq_governor_dbs(struct c
-                                       this_dbs_info->cur_policy,
-                                       policy->min, CPUFREQ_RELATION_L);
-               mutex_unlock(&dbs_mutex);
-+              unlock_cpu_hotplug();
-               break;
-       }
-       return 0;
diff --git a/rejects/fix-roundup_pow_of_two.patch b/rejects/fix-roundup_pow_of_two.patch
deleted file mode 100644 (file)
index deebbb2..0000000
+++ /dev/null
@@ -1,33 +0,0 @@
-From stable-bounces@linux.kernel.org  Fri May 18 01:05:40 2007
-From: Rolf Eike Beer <eike-kernel@sf-tec.de>
-To: linux-kernel@vger.kernel.org
-Date: Thu, 17 May 2007 23:56:56 +0200
-Message-Id: <200705172356.57620.eike-kernel@sf-tec.de>
-Cc: akpm@linux-foundation.org, torvalds@linux-foundation.org, stable@kernel.org
-Subject: Fix roundup_pow_of_two(1)
-
-Fix roundup_pow_of_two(1)
-
-1 is a power of two, therefore roundup_pow_of_two(1) should return 1. It does
-in case the argument is a variable but in case it's a constant it behaves
-wrong and returns 0. Probably nobody ever did it so this was never noticed.
-
-Signed-off-by: Rolf Eike Beer <eike-kernel@sf-tec.de>
-Signed-off-by: Chris Wright <chrisw@sous-sol.org>
-Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
----
-
- include/linux/log2.h |    2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
---- linux-2.6.21.4.orig/include/linux/log2.h
-+++ linux-2.6.21.4/include/linux/log2.h
-@@ -159,7 +159,7 @@ unsigned long __roundup_pow_of_two(unsig
- #define roundup_pow_of_two(n)                 \
- (                                             \
-       __builtin_constant_p(n) ? (             \
--              (n == 1) ? 0 :                  \
-+              (n == 1) ? 1 :                  \
-               (1UL << (ilog2((n) - 1) + 1))   \
-                                  ) :          \
-       __roundup_pow_of_two(n)                 \
diff --git a/rejects/i386-x86-64-don-t-ipi-to-offline-cpus-on-shutdown.patch b/rejects/i386-x86-64-don-t-ipi-to-offline-cpus-on-shutdown.patch
deleted file mode 100644 (file)
index a7c3d45..0000000
+++ /dev/null
@@ -1,110 +0,0 @@
-From stable-bounces@linux.kernel.org  Wed Feb 15 15:55:47 2006
-Date: Wed, 15 Feb 2006 15:51:31 -0800
-From: Andrew Morton <akpm@osdl.org>
-To: stable@kernel.org
-Cc: Ashok Raj <ashok.raj@intel.com>
-Subject: [PATCH] i386/x86-64: Don't IPI to offline cpus on shutdown
-
-From: Eric W. Biederman <ebiederm@xmission.com>
-
-So why are we calling smp_send_stop from machine_halt?
-
-We don't.
-
-Looking more closely at the bug report the problem here
-is that halt -p is called which triggers not a halt but
-an attempt to power off.
-
-machine_power_off calls machine_shutdown which calls smp_send_stop.
-
-If pm_power_off is set we should never make it out machine_power_off
-to the call of do_exit.  So pm_power_off must not be set in this case.
-When pm_power_off is not set we expect machine_power_off to devolve
-into machine_halt.
-
-So how do we fix this?
-
-Playing too much with smp_send_stop is dangerous because it
-must also be safe to be called from panic.
-
-It looks like the obviously correct fix is to only call
-machine_shutdown when pm_power_off is defined.  Doing
-that will make Andi's assumption about not scheduling
-true and generally simplify what must be supported.
-
-This turns machine_power_off into a noop like machine_halt
-when pm_power_off is not defined.
-
-If the expected behavior is that sys_reboot(LINUX_REBOOT_CMD_POWER_OFF)
-becomes sys_reboot(LINUX_REBOOT_CMD_HALT) if pm_power_off is NULL
-this is not quite a comprehensive fix as we pass a different parameter
-to the reboot notifier and we set system_state to a different value
-before calling device_shutdown().
-
-Unfortunately any fix more comprehensive I can think of is not
-obviously correct.  The core problem is that there is no architecture
-independent way to detect if machine_power will become a noop, without
-calling it.
-
-Signed-off-by: Andi Kleen <ak@suse.de>
-Signed-off-by: Linus Torvalds <torvalds@osdl.org>
-Signed-off-by: Chris Wright <chrisw@sous-sol.org>
-Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
----
-
- arch/i386/kernel/reboot.c   |    7 ++++---
- arch/x86_64/kernel/reboot.c |   10 ++++++----
- 2 files changed, 10 insertions(+), 7 deletions(-)
-
-diff --git a/arch/i386/kernel/reboot.c b/arch/i386/kernel/reboot.c
-index 2fa5803..d207242 100644
---- linux-2.6.15.4.orig/arch/i386/kernel/reboot.c
-+++ linux-2.6.15.4/arch/i386/kernel/reboot.c
-@@ -12,6 +12,7 @@
- #include <linux/efi.h>
- #include <linux/dmi.h>
- #include <linux/ctype.h>
-+#include <linux/pm.h>
- #include <asm/uaccess.h>
- #include <asm/apic.h>
- #include <asm/desc.h>
-@@ -355,10 +356,10 @@ void machine_halt(void)
- void machine_power_off(void)
- {
--      machine_shutdown();
--
--      if (pm_power_off)
-+      if (pm_power_off) {
-+              machine_shutdown();
-               pm_power_off();
-+      }
- }
---- linux-2.6.15.4.orig/arch/x86_64/kernel/reboot.c
-+++ linux-2.6.15.4/arch/x86_64/kernel/reboot.c
-@@ -6,6 +6,7 @@
- #include <linux/kernel.h>
- #include <linux/ctype.h>
- #include <linux/string.h>
-+#include <linux/pm.h>
- #include <asm/io.h>
- #include <asm/kdebug.h>
- #include <asm/delay.h>
-@@ -154,10 +155,11 @@ void machine_halt(void)
- void machine_power_off(void)
- {
--      if (!reboot_force) {
--              machine_shutdown();
--      }
--      if (pm_power_off)
-+      if (pm_power_off) {
-+              if (!reboot_force) {
-+                      machine_shutdown();
-+              }
-               pm_power_off();
-+      }
- }
diff --git a/rejects/i386-x86_64-Force-pci-noacpi-on-HP-XW9300.patch b/rejects/i386-x86_64-Force-pci-noacpi-on-HP-XW9300.patch
deleted file mode 100644 (file)
index c702be4..0000000
+++ /dev/null
@@ -1,38 +0,0 @@
-From nobody Mon Sep 17 00:00:00 2001
-From: Andi Kleen <ak@suse.de>
-Date: Mon, 15 May 2006 18:19:41 +0200
-Subject: [PATCH] i386/x86_64: Force pci=noacpi on HP XW9300
-
-This is needed to see all devices.
-
-The system has multiple PCI segments and we don't handle that properly
-yet in PCI and ACPI. Short term before this is fixed blacklist it to
-pci=noacpi.
-
-Acked-by: len.brown@intel.com
-Signed-off-by: Andi Kleen <ak@suse.de>
-Signed-off-by: Linus Torvalds <torvalds@osdl.org>
-Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
-Signed-off-by: Chris Wright <chrisw@sous-sol.org>
-
----
- arch/i386/kernel/acpi/boot.c |    8 ++++++++
- 1 file changed, 8 insertions(+)
-
---- linux-2.6.16.16.orig/arch/i386/kernel/acpi/boot.c
-+++ linux-2.6.16.16/arch/i386/kernel/acpi/boot.c
-@@ -1060,6 +1060,14 @@ static struct dmi_system_id __initdata a
-                    DMI_MATCH(DMI_PRODUCT_NAME, "TravelMate 360"),
-                    },
-        },
-+      {
-+       .callback = disable_acpi_pci,
-+       .ident = "HP xw9300",
-+       .matches = {
-+                  DMI_MATCH(DMI_SYS_VENDOR, "Hewlett-Packard"),
-+                  DMI_MATCH(DMI_PRODUCT_NAME, "HP xw9300 Workstation"),
-+                  },
-+      },
-       {}
- };
diff --git a/rejects/input-alps-add-signature-for-thinkpad-r61.patch b/rejects/input-alps-add-signature-for-thinkpad-r61.patch
deleted file mode 100644 (file)
index d60ab1f..0000000
+++ /dev/null
@@ -1,32 +0,0 @@
-From stable-bounces@linux.kernel.org Wed Nov 21 14:12:51 2007
-From: Dmitry Torokhov <dmitry.torokhov@gmail.com>
-Date: Wed, 21 Nov 2007 17:12:26 -0500
-Subject: Input: ALPS - add signature for ThinkPad R61
-To: linux-stable <stable@kernel.org>
-Cc: Dmitry Torokhov <dmitry.torokhov@gmail.com>
-Message-ID: <4744AD4A.7000307@redhat.com>
-
-From: Dmitry Torokhov <dmitry.torokhov@gmail.com>
-
-changeset f493018ebc3f94d64e12bc848db0906700bf73a2 in mainline.
-
-Input: ALPS - add signature for ThinkPad R61
-
-Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
-Cc: Chuck Ebbert <cebbert@redhat.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
-
----
- drivers/input/mouse/alps.c |    1 +
- 1 file changed, 1 insertion(+)
-
---- a/drivers/input/mouse/alps.c
-+++ b/drivers/input/mouse/alps.c
-@@ -48,6 +48,7 @@ static const struct alps_model_info alps
-       { { 0x63, 0x02, 0x50 }, 0xef, 0xef, ALPS_FW_BK_1 },             /* NEC Versa L320 */
-       { { 0x63, 0x02, 0x64 }, 0xf8, 0xf8, 0 },
-       { { 0x63, 0x03, 0xc8 }, 0xf8, 0xf8, ALPS_PASS },                /* Dell Latitude D800 */
-+      { { 0x73, 0x00, 0x0a }, 0xf8, 0xf8, ALPS_DUALPOINT },           /* ThinkPad R61 8918-5QG */
-       { { 0x73, 0x02, 0x0a }, 0xf8, 0xf8, 0 },
-       { { 0x73, 0x02, 0x14 }, 0xf8, 0xf8, ALPS_FW_BK_2 },             /* Ahtec Laptop */
-       { { 0x20, 0x02, 0x0e }, 0xf8, 0xf8, ALPS_PASS | ALPS_DUALPOINT }, /* XXX */
diff --git a/rejects/invalidate_complete_page-race-fix.patch b/rejects/invalidate_complete_page-race-fix.patch
deleted file mode 100644 (file)
index 1cbe8e3..0000000
+++ /dev/null
@@ -1,54 +0,0 @@
-From stable-bounces@linux.kernel.org Fri Sep  8 09:49:41 2006
-Message-Id: <200609081648.k88Gmesc007335@shell0.pdx.osdl.net>
-To: torvalds@osdl.org
-From: Andrew Morton <akpm@osdl.org>
-Date: Fri, 08 Sep 2006 09:48:38 -0700
-Cc: akpm@osdl.org, hugh@veritas.com, stable@kernel.org,
-        nickpiggin@yahoo.com.au
-Subject: invalidate_complete_page() race fix
-
-From: Andrew Morton <akpm@osdl.org>
-
-If a CPU faults this page into pagetables after invalidate_mapping_pages()
-checked page_mapped(), invalidate_complete_page() will still proceed to remove
-the page from pagecache.  This leaves the page-faulting process with a
-detached page.  If it was MAP_SHARED then file data loss will ensue.
-
-Fix that up by checking the page's refcount after taking tree_lock.
-
-Cc: Nick Piggin <nickpiggin@yahoo.com.au>
-Cc: Hugh Dickins <hugh@veritas.com>
-Signed-off-by: Andrew Morton <akpm@osdl.org>
-Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
-
----
- mm/truncate.c |   11 +++++++----
- 1 file changed, 7 insertions(+), 4 deletions(-)
-
---- linux-2.6.17.13.orig/mm/truncate.c
-+++ linux-2.6.17.13/mm/truncate.c
-@@ -68,10 +68,10 @@ invalidate_complete_page(struct address_
-               return 0;
-       write_lock_irq(&mapping->tree_lock);
--      if (PageDirty(page)) {
--              write_unlock_irq(&mapping->tree_lock);
--              return 0;
--      }
-+      if (PageDirty(page))
-+              goto failed;
-+      if (page_count(page) != 2)      /* caller's ref + pagecache ref */
-+              goto failed;
-       BUG_ON(PagePrivate(page));
-       __remove_from_page_cache(page);
-@@ -79,6 +79,9 @@ invalidate_complete_page(struct address_
-       ClearPageUptodate(page);
-       page_cache_release(page);       /* pagecache ref */
-       return 1;
-+failed:
-+      write_unlock_irq(&mapping->tree_lock);
-+      return 0;
- }
- /**
diff --git a/rejects/kbuild-fix-100-initramfs-bloat-in-2.6.17-versus-2.6.16.patch b/rejects/kbuild-fix-100-initramfs-bloat-in-2.6.17-versus-2.6.16.patch
deleted file mode 100644 (file)
index e8c7df9..0000000
+++ /dev/null
@@ -1,43 +0,0 @@
-From stable-bounces@linux.kernel.org  Sun Jun 25 03:05:24 2006
-Date: Sun, 25 Jun 2006 12:04:36 +0200
-From: Sam Ravnborg <sam@ravnborg.org>
-To: stable@kernel.org
-Cc: 
-Subject: kbuild: Fix 100% initramfs bloat in 2.6.17 versus 2.6.16
-
-From: Nix <nix@esperi.org.uk>
-
-When I built 2.6.17 for the first time I was a little surprised to see
-my kernel putting on >500Kb in weight.
-
-It didn't take long to work out that this was because my initramfs's
-contents were being included twice in the cpio image.
-
-A make V=1 makes the problem obvious:
-
-/bin/sh /usr/packages/linux/versions/i686-loki/scripts/gen_initramfs_list.sh -l  "usr/initramfs" > usr/.initramfs_data.cpio.gz.d
-  /bin/sh /usr/packages/linux/versions/i686-loki/scripts/gen_initramfs_list.sh -o usr/initramfs_data.cpio.gz  -u 0  -g 0  "usr/initramfs"  "usr/initramfs"
-
-Note that doubling-up of the "usr/initramfs", which leads to
-gen_initramfs_list.sh dumping the thing into the cpio archive twice.
-
-The cause is an obvious pasto, fixed thusly:
-
-Signed-off-by: Nick Alcock <nix@esperi.org.uk>
-Signed-off-by: Sam Ravnborg <sam@ravnborg.org>
-Signed-off-by: Chris Wright <chrisw@sous-sol.org>
----
- usr/Makefile |    2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
---- linux-2.6.17.1.orig/usr/Makefile
-+++ linux-2.6.17.1/usr/Makefile
-@@ -33,7 +33,7 @@ ifneq ($(wildcard $(obj)/.initramfs_data
- endif
- quiet_cmd_initfs = GEN     $@
--      cmd_initfs = $(initramfs) -o $@ $(ramfs-args) $(ramfs-input)
-+      cmd_initfs = $(initramfs) -o $@ $(ramfs-args)
- targets := initramfs_data.cpio.gz
- $(deps_initramfs): klibcdirs
diff --git a/rejects/missing-acct-mm-calls-in-compat_do_execve.patch b/rejects/missing-acct-mm-calls-in-compat_do_execve.patch
deleted file mode 100644 (file)
index cf96e03..0000000
+++ /dev/null
@@ -1,45 +0,0 @@
-From stable-bounces@linux.kernel.org  Sat Sep 17 14:57:44 2005
-Date: Wed, 14 Sep 2005 11:56:16 -0700 (PDT)
-To: linux-kernel@vger.kernel.org
-CC: akpm@osdl.org, torvalds@osdl.org
-Subject: [PATCH]: Missing acct/mm calls in compat_do_execve()
-From: "David S. Miller" <davem@davemloft.net>
-
-As I do periodically, I checked to see how far out of sync
-compat_do_execve() has gotten from do_execve().  And as usual there
-was some missing stuff in the former.  Perhaps we need some tighter
-consolidation of these two routines to make this less likely to happen
-in the future.
-
-Anyways, on the success path of compat_do_execve() we forget
-to call acct_update_integrals() and update_mem_hiwater(), as
-is done in do_execve().
-
-Signed-off-by: David S. Miller <davem@davemloft.net>
-Signed-off-by: Chris Wright <chrisw@osdl.org>
----
- fs/compat.c |    4 ++++
- 1 files changed, 4 insertions(+)
-
-Index: linux-2.6.13.y/fs/compat.c
-===================================================================
---- linux-2.6.13.y.orig/fs/compat.c
-+++ linux-2.6.13.y/fs/compat.c
-@@ -44,6 +44,8 @@
- #include <linux/nfsd/syscall.h>
- #include <linux/personality.h>
- #include <linux/rwsem.h>
-+#include <linux/acct.h>
-+#include <linux/mm.h>
- #include <net/sock.h>         /* siocdevprivate_ioctl */
-@@ -1567,6 +1569,8 @@ int compat_do_execve(char * filename,
-               /* execve success */
-               security_bprm_free(bprm);
-+              acct_update_integrals(current);
-+              update_mem_hiwater(current);
-               kfree(bprm);
-               return retval;
-       }
diff --git a/rejects/mm-fix-committed_as-underflow-on-large-nr_cpus-environment.patch b/rejects/mm-fix-committed_as-underflow-on-large-nr_cpus-environment.patch
deleted file mode 100644 (file)
index 1a5eb1c..0000000
+++ /dev/null
@@ -1,226 +0,0 @@
-From 00a62ce91e554198ef28234c91c36f850f5a3bc9 Mon Sep 17 00:00:00 2001
-From: KOSAKI Motohiro <kosaki.motohiro@jp.fujitsu.com>
-Date: Thu, 30 Apr 2009 15:08:51 -0700
-Subject: mm: fix Committed_AS underflow on large NR_CPUS environment
-
-From: KOSAKI Motohiro <kosaki.motohiro@jp.fujitsu.com>
-
-commit 00a62ce91e554198ef28234c91c36f850f5a3bc9 upstream.
-
-The Committed_AS field can underflow in certain situations:
-
->         # while true; do cat /proc/meminfo  | grep _AS; sleep 1; done | uniq -c
->               1 Committed_AS: 18446744073709323392 kB
->              11 Committed_AS: 18446744073709455488 kB
->               6 Committed_AS:    35136 kB
->               5 Committed_AS: 18446744073709454400 kB
->               7 Committed_AS:    35904 kB
->               3 Committed_AS: 18446744073709453248 kB
->               2 Committed_AS:    34752 kB
->               9 Committed_AS: 18446744073709453248 kB
->               8 Committed_AS:    34752 kB
->               3 Committed_AS: 18446744073709320960 kB
->               7 Committed_AS: 18446744073709454080 kB
->               3 Committed_AS: 18446744073709320960 kB
->               5 Committed_AS: 18446744073709454080 kB
->               6 Committed_AS: 18446744073709320960 kB
-
-Because NR_CPUS can be greater than 1000 and meminfo_proc_show() does
-not check for underflow.
-
-But NR_CPUS proportional isn't good calculation.  In general,
-possibility of lock contention is proportional to the number of online
-cpus, not theorical maximum cpus (NR_CPUS).
-
-The current kernel has generic percpu-counter stuff.  using it is right
-way.  it makes code simplify and percpu_counter_read_positive() don't
-make underflow issue.
-
-Reported-by: Dave Hansen <dave@linux.vnet.ibm.com>
-Signed-off-by: KOSAKI Motohiro <kosaki.motohiro@jp.fujitsu.com>
-Cc: Eric B Munson <ebmunson@us.ibm.com>
-Cc: Mel Gorman <mel@csn.ul.ie>
-Cc: Christoph Lameter <cl@linux-foundation.org>
-Cc: <stable@kernel.org>
-Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
-Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
-Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
-
----
- fs/proc/meminfo.c    |    2 +-
- include/linux/mman.h |    9 +++------
- mm/mmap.c            |   12 ++++++------
- mm/nommu.c           |   13 +++++++------
- mm/swap.c            |   46 ----------------------------------------------
- 5 files changed, 17 insertions(+), 65 deletions(-)
-
---- a/fs/proc/meminfo.c
-+++ b/fs/proc/meminfo.c
-@@ -35,7 +35,7 @@ static int meminfo_proc_show(struct seq_
- #define K(x) ((x) << (PAGE_SHIFT - 10))
-       si_meminfo(&i);
-       si_swapinfo(&i);
--      committed = atomic_long_read(&vm_committed_space);
-+      committed = percpu_counter_read_positive(&vm_committed_as);
-       allowed = ((totalram_pages - hugetlb_total_pages())
-               * sysctl_overcommit_ratio / 100) + total_swap_pages;
---- a/include/linux/mman.h
-+++ b/include/linux/mman.h
-@@ -12,21 +12,18 @@
- #ifdef __KERNEL__
- #include <linux/mm.h>
-+#include <linux/percpu_counter.h>
- #include <asm/atomic.h>
- extern int sysctl_overcommit_memory;
- extern int sysctl_overcommit_ratio;
--extern atomic_long_t vm_committed_space;
-+extern struct percpu_counter vm_committed_as;
--#ifdef CONFIG_SMP
--extern void vm_acct_memory(long pages);
--#else
- static inline void vm_acct_memory(long pages)
- {
--      atomic_long_add(pages, &vm_committed_space);
-+      percpu_counter_add(&vm_committed_as, pages);
- }
--#endif
- static inline void vm_unacct_memory(long pages)
- {
---- a/mm/mmap.c
-+++ b/mm/mmap.c
-@@ -84,7 +84,7 @@ EXPORT_SYMBOL(vm_get_page_prot);
- int sysctl_overcommit_memory = OVERCOMMIT_GUESS;  /* heuristic overcommit */
- int sysctl_overcommit_ratio = 50;     /* default is 50% */
- int sysctl_max_map_count __read_mostly = DEFAULT_MAX_MAP_COUNT;
--atomic_long_t vm_committed_space = ATOMIC_LONG_INIT(0);
-+struct percpu_counter vm_committed_as;
- /*
-  * Check that a process has enough memory to allocate a new virtual
-@@ -178,11 +178,7 @@ int __vm_enough_memory(struct mm_struct 
-       if (mm)
-               allowed -= mm->total_vm / 32;
--      /*
--       * cast `allowed' as a signed long because vm_committed_space
--       * sometimes has a negative value
--       */
--      if (atomic_long_read(&vm_committed_space) < (long)allowed)
-+      if (percpu_counter_read_positive(&vm_committed_as) < allowed)
-               return 0;
- error:
-       vm_unacct_memory(pages);
-@@ -2262,6 +2258,10 @@ static int special_mapping_fault(struct 
-  */
- static void special_mapping_close(struct vm_area_struct *vma)
- {
-+      int ret;
-+
-+      ret = percpu_counter_init(&vm_committed_as, 0);
-+      VM_BUG_ON(ret);
- }
- static struct vm_operations_struct special_mapping_vmops = {
---- a/mm/nommu.c
-+++ b/mm/nommu.c
-@@ -62,7 +62,7 @@ void *high_memory;
- struct page *mem_map;
- unsigned long max_mapnr;
- unsigned long num_physpages;
--atomic_long_t vm_committed_space = ATOMIC_LONG_INIT(0);
-+struct percpu_counter vm_committed_as;
- int sysctl_overcommit_memory = OVERCOMMIT_GUESS; /* heuristic overcommit */
- int sysctl_overcommit_ratio = 50; /* default is 50% */
- int sysctl_max_map_count = DEFAULT_MAX_MAP_COUNT;
-@@ -463,6 +463,10 @@ SYSCALL_DEFINE1(brk, unsigned long, brk)
-  */
- void __init mmap_init(void)
- {
-+      int ret;
-+
-+      ret = percpu_counter_init(&vm_committed_as, 0);
-+      VM_BUG_ON(ret);
-       vm_region_jar = kmem_cache_create("vm_region_jar",
-                                         sizeof(struct vm_region), 0,
-                                         SLAB_PANIC, NULL);
-@@ -1849,12 +1853,9 @@ int __vm_enough_memory(struct mm_struct 
-       if (mm)
-               allowed -= mm->total_vm / 32;
--      /*
--       * cast `allowed' as a signed long because vm_committed_space
--       * sometimes has a negative value
--       */
--      if (atomic_long_read(&vm_committed_space) < (long)allowed)
-+      if (percpu_counter_read_positive(&vm_committed_as) < allowed)
-               return 0;
-+
- error:
-       vm_unacct_memory(pages);
---- a/mm/swap.c
-+++ b/mm/swap.c
-@@ -514,49 +514,6 @@ unsigned pagevec_lookup_tag(struct pagev
- EXPORT_SYMBOL(pagevec_lookup_tag);
--#ifdef CONFIG_SMP
--/*
-- * We tolerate a little inaccuracy to avoid ping-ponging the counter between
-- * CPUs
-- */
--#define ACCT_THRESHOLD        max(16, NR_CPUS * 2)
--
--static DEFINE_PER_CPU(long, committed_space);
--
--void vm_acct_memory(long pages)
--{
--      long *local;
--
--      preempt_disable();
--      local = &__get_cpu_var(committed_space);
--      *local += pages;
--      if (*local > ACCT_THRESHOLD || *local < -ACCT_THRESHOLD) {
--              atomic_long_add(*local, &vm_committed_space);
--              *local = 0;
--      }
--      preempt_enable();
--}
--
--#ifdef CONFIG_HOTPLUG_CPU
--
--/* Drop the CPU's cached committed space back into the central pool. */
--static int cpu_swap_callback(struct notifier_block *nfb,
--                           unsigned long action,
--                           void *hcpu)
--{
--      long *committed;
--
--      committed = &per_cpu(committed_space, (long)hcpu);
--      if (action == CPU_DEAD || action == CPU_DEAD_FROZEN) {
--              atomic_long_add(*committed, &vm_committed_space);
--              *committed = 0;
--              drain_cpu_pagevecs((long)hcpu);
--      }
--      return NOTIFY_OK;
--}
--#endif /* CONFIG_HOTPLUG_CPU */
--#endif /* CONFIG_SMP */
--
- /*
-  * Perform any setup for the swap system
-  */
-@@ -577,7 +534,4 @@ void __init swap_setup(void)
-        * Right now other parts of the system means that we
-        * _really_ don't want to cluster much more
-        */
--#ifdef CONFIG_HOTPLUG_CPU
--      hotcpu_notifier(cpu_swap_callback, 0);
--#endif
- }
diff --git a/rejects/move-destructor-from-neigh-ops-to.patch b/rejects/move-destructor-from-neigh-ops-to.patch
deleted file mode 100644 (file)
index 3d72452..0000000
+++ /dev/null
@@ -1,136 +0,0 @@
-From stable-bounces@linux.kernel.org Mon Apr  3 08:46:35 2006
-Date: Mon, 3 Apr 2006 18:47:41 +0300
-From: "Michael S. Tsirkin" <mst@mellanox.co.il>
-To: stable@kernel.org, openib-general@openib.org, Adrian Bunk <bunk@stusta.de>
-Message-ID: <20060403154741.GB14808@mellanox.co.il>
-Content-Disposition: inline
-Cc: 
-Subject: IPOB: Move destructor from neigh->ops to neigh_param
-
-From: Michael S. Tsirkin <mst@mellanox.co.il>
-
-struct neigh_ops currently has a destructor field, but not a constructor field.
-The infiniband/ulp/ipoib in-tree driver stashes some info in the neighbour
-structure (the results of the second-stage lookup from ARP results to real
-link-level path), and it uses neigh->ops->destructor to get a callback so it can
-clean up this extra info when a neighbour is freed.  We've run into problems
-with this: since the destructor is in an ops field that is shared between
-neighbours that may belong to different net devices, there's no way to set/clear
-it safely.
-
-The following patch moves this field to neigh_parms where it can be safely set,
-together with its twin neigh_setup, and switches the only two in-kernel users
-(ipoib and clip) to this interface.
-
-Signed-off-by: Michael S. Tsirkin <mst@mellanox.co.il>
-Signed-off-by: Roland Dreier <rolandd@cisco.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
-
----
- drivers/infiniband/ulp/ipoib/ipoib_main.c      |   16 +---------------
- drivers/infiniband/ulp/ipoib/ipoib_multicast.c |    1 -
- include/net/neighbour.h                        |    2 +-
- net/atm/clip.c                                 |    2 +-
- net/core/neighbour.c                           |    4 ++--
- 5 files changed, 5 insertions(+), 20 deletions(-)
-
---- linux-2.6.16.1.orig/drivers/infiniband/ulp/ipoib/ipoib_main.c
-+++ linux-2.6.16.1/drivers/infiniband/ulp/ipoib/ipoib_main.c
-@@ -247,7 +247,6 @@ static void path_free(struct net_device 
-               if (neigh->ah)
-                       ipoib_put_ah(neigh->ah);
-               *to_ipoib_neigh(neigh->neighbour) = NULL;
--              neigh->neighbour->ops->destructor = NULL;
-               kfree(neigh);
-       }
-@@ -530,7 +529,6 @@ static void neigh_add_path(struct sk_buf
- err:
-       *to_ipoib_neigh(skb->dst->neighbour) = NULL;
-       list_del(&neigh->list);
--      neigh->neighbour->ops->destructor = NULL;
-       kfree(neigh);
-       ++priv->stats.tx_dropped;
-@@ -769,21 +767,9 @@ static void ipoib_neigh_destructor(struc
-               ipoib_put_ah(ah);
- }
--static int ipoib_neigh_setup(struct neighbour *neigh)
--{
--      /*
--       * Is this kosher?  I can't find anybody in the kernel that
--       * sets neigh->destructor, so we should be able to set it here
--       * without trouble.
--       */
--      neigh->ops->destructor = ipoib_neigh_destructor;
--
--      return 0;
--}
--
- static int ipoib_neigh_setup_dev(struct net_device *dev, struct neigh_parms *parms)
- {
--      parms->neigh_setup = ipoib_neigh_setup;
-+      parms->neigh_destructor = ipoib_neigh_destructor;
-       return 0;
- }
---- linux-2.6.16.1.orig/drivers/infiniband/ulp/ipoib/ipoib_multicast.c
-+++ linux-2.6.16.1/drivers/infiniband/ulp/ipoib/ipoib_multicast.c
-@@ -115,7 +115,6 @@ static void ipoib_mcast_free(struct ipoi
-               if (neigh->ah)
-                       ipoib_put_ah(neigh->ah);
-               *to_ipoib_neigh(neigh->neighbour) = NULL;
--              neigh->neighbour->ops->destructor = NULL;
-               kfree(neigh);
-       }
---- linux-2.6.16.1.orig/include/net/neighbour.h
-+++ linux-2.6.16.1/include/net/neighbour.h
-@@ -68,6 +68,7 @@ struct neigh_parms
-       struct net_device *dev;
-       struct neigh_parms *next;
-       int     (*neigh_setup)(struct neighbour *);
-+      void    (*neigh_destructor)(struct neighbour *);
-       struct neigh_table *tbl;
-       void    *sysctl_table;
-@@ -145,7 +146,6 @@ struct neighbour
- struct neigh_ops
- {
-       int                     family;
--      void                    (*destructor)(struct neighbour *);
-       void                    (*solicit)(struct neighbour *, struct sk_buff*);
-       void                    (*error_report)(struct neighbour *, struct sk_buff*);
-       int                     (*output)(struct sk_buff*);
---- linux-2.6.16.1.orig/net/atm/clip.c
-+++ linux-2.6.16.1/net/atm/clip.c
-@@ -289,7 +289,6 @@ static void clip_neigh_error(struct neig
- static struct neigh_ops clip_neigh_ops = {
-       .family =               AF_INET,
--      .destructor =           clip_neigh_destroy,
-       .solicit =              clip_neigh_solicit,
-       .error_report =         clip_neigh_error,
-       .output =               dev_queue_xmit,
-@@ -346,6 +345,7 @@ static struct neigh_table clip_tbl = {
-       /* parameters are copied from ARP ... */
-       .parms = {
-+              .neigh_destructor       = clip_neigh_destroy,
-               .tbl                    = &clip_tbl,
-               .base_reachable_time    = 30 * HZ,
-               .retrans_time           = 1 * HZ,
---- linux-2.6.16.1.orig/net/core/neighbour.c
-+++ linux-2.6.16.1/net/core/neighbour.c
-@@ -586,8 +586,8 @@ void neigh_destroy(struct neighbour *nei
-                       kfree(hh);
-       }
--      if (neigh->ops && neigh->ops->destructor)
--              (neigh->ops->destructor)(neigh);
-+      if (neigh->parms->neigh_destructor)
-+              (neigh->parms->neigh_destructor)(neigh);
-       skb_queue_purge(&neigh->arp_queue);
diff --git a/rejects/netfilter-connection-tracking.patch b/rejects/netfilter-connection-tracking.patch
deleted file mode 100644 (file)
index 7784360..0000000
+++ /dev/null
@@ -1,54 +0,0 @@
-From stable-bounces@linux.kernel.org  Tue Jun 28 16:07:25 2005
-Date: Tue, 28 Jun 2005 16:06:39 -0700 (PDT)
-Message-Id: <20050628.160639.130608735.davem@davemloft.net>
-To: stable@kernel.org
-From: "David S. Miller" <davem@davemloft.net>
-Subject: [NETFILTER]: Fix connection tracking bug in 2.6.12
-
-In 2.6.12 we started dropping the conntrack reference when a packet
-leaves the IP layer. This broke connection tracking on a bridge,
-because bridge-netfilter defers calling some NF_IP_* hooks to the bridge
-layer for locally generated packets going out a bridge, where the
-conntrack reference is no longer available. This patch keeps the
-reference in this case as a temporary solution, long term we will
-remove the defered hook calling. No attempt is made to drop the
-reference in the bridge-code when it is no longer needed, tc actions
-could already have sent the packet anywhere.
-
-Signed-off-by: Patrick McHardy <kaber@trash.net>
-Signed-off-by: David S. Miller <davem@davemloft.net>
-Signed-off-by: Chris Wright <chrisw@osdl.org>
----
-
-Index: linux-2.6.12.y/net/bridge/br_netfilter.c
-===================================================================
---- linux-2.6.12.y.orig/net/bridge/br_netfilter.c
-+++ linux-2.6.12.y/net/bridge/br_netfilter.c
-@@ -882,7 +882,7 @@ static unsigned int ip_sabotage_out(unsi
-                * doesn't use the bridge parent of the indev by using
-                * the BRNF_DONT_TAKE_PARENT mask. */
-               if (hook == NF_IP_FORWARD && nf_bridge->physindev == NULL) {
--                      nf_bridge->mask &= BRNF_DONT_TAKE_PARENT;
-+                      nf_bridge->mask |= BRNF_DONT_TAKE_PARENT;
-                       nf_bridge->physindev = (struct net_device *)in;
-               }
- #if defined(CONFIG_VLAN_8021Q) || defined(CONFIG_VLAN_8021Q_MODULE)
-Index: linux-2.6.12.y/net/ipv4/ip_output.c
-===================================================================
---- linux-2.6.12.y.orig/net/ipv4/ip_output.c
-+++ linux-2.6.12.y/net/ipv4/ip_output.c
-@@ -196,7 +196,13 @@ static inline int ip_finish_output2(stru
-       nf_debug_ip_finish_output2(skb);
- #endif /*CONFIG_NETFILTER_DEBUG*/
--      nf_reset(skb);
-+#ifdef CONFIG_BRIDGE_NETFILTER
-+      /* bridge-netfilter defers calling some IP hooks to the bridge layer
-+       * and still needs the conntrack reference.
-+       */
-+      if (skb->nf_bridge == NULL)
-+#endif
-+              nf_reset(skb);
-       if (hh) {
-               int hh_alen;
diff --git a/rejects/pci-quirk-rs780-rs880-work-around-missing-msi-initialization.patch b/rejects/pci-quirk-rs780-rs880-work-around-missing-msi-initialization.patch
deleted file mode 100644 (file)
index 7864bc4..0000000
+++ /dev/null
@@ -1,80 +0,0 @@
-From a5ee4eb75413c145334c30e43f1af9875dad6fd7 Mon Sep 17 00:00:00 2001
-From: Clemens Ladisch <clemens@ladisch.de>
-Date: Mon, 22 Mar 2010 09:52:16 +0100
-Subject: PCI quirk: RS780/RS880: work around missing MSI initialization
-
-From: Clemens Ladisch <clemens@ladisch.de>
-
-commit a5ee4eb75413c145334c30e43f1af9875dad6fd7 upstream.
-
-AMD says in section 2.5.4 (GFX MSI Enable) of #43291 (AMD 780G Family
-Register Programming Requirements):
-
-  The SBIOS must enable internal graphics MSI capability in GCCFG by
-  setting the following: NBCFG.NB_CNTL.STRAP_MSI_ENABLE='1'
-
-Quite a few BIOS writers misinterpret this sentence and think that
-enabling MSI is an optional feature.  However, clearing that bit just
-prevents delivery of MSI messages but does not remove the MSI PCI
-capabilities registers, and so leaves these devices unusable for any
-driver that attempts to use MSI.
-
-Setting that bit is not possible after the BIOS has locked down the
-configuration registers, so we have to manually disable MSI for the
-affected devices.
-
-This fixes the codec communication errors in the HDA driver when
-accessing the HDMI audio device, and allows us to get rid of the
-overcautious quirk in radeon_irq_kms.c.
-
-Signed-off-by: Clemens Ladisch <clemens@ladisch.de>
-Tested-by: Alex Deucher <alexdeucher@gamil.com>
-Signed-off-by: Jesse Barnes <jbarnes@virtuousgeek.org>
-Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
-
----
- drivers/pci/quirks.c |   33 +++++++++++++++++++++++++++++++++
- 1 file changed, 33 insertions(+)
-
---- a/drivers/pci/quirks.c
-+++ b/drivers/pci/quirks.c
-@@ -2463,6 +2463,39 @@ DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_AT
- DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_ATI, 0x4375,
-                       quirk_msi_intx_disable_bug);
-+/*
-+ * MSI does not work with the AMD RS780/RS880 internal graphics and HDMI audio
-+ * devices unless the BIOS has initialized the nb_cntl.strap_msi_enable bit.
-+ */
-+static void __init rs780_int_gfx_disable_msi(struct pci_dev *int_gfx_bridge)
-+{
-+      u32 nb_cntl;
-+
-+      if (!int_gfx_bridge->subordinate)
-+              return;
-+
-+      pci_bus_write_config_dword(int_gfx_bridge->bus, PCI_DEVFN(0, 0),
-+                                 0x60, 0);
-+      pci_bus_read_config_dword(int_gfx_bridge->bus, PCI_DEVFN(0, 0),
-+                                0x64, &nb_cntl);
-+
-+      if (!(nb_cntl & BIT(10))) {
-+              dev_warn(&int_gfx_bridge->dev,
-+                       FW_WARN "RS780: MSI for internal graphics disabled\n");
-+              int_gfx_bridge->subordinate->bus_flags |= PCI_BUS_FLAGS_NO_MSI;
-+      }
-+}
-+
-+#define PCI_DEVICE_ID_AMD_RS780_P2P_INT_GFX   0x9602
-+
-+DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_AMD,
-+                      PCI_DEVICE_ID_AMD_RS780_P2P_INT_GFX,
-+                      rs780_int_gfx_disable_msi);
-+/* wrong vendor ID on M4A785TD motherboard: */
-+DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_ASUSTEK,
-+                      PCI_DEVICE_ID_AMD_RS780_P2P_INT_GFX,
-+                      rs780_int_gfx_disable_msi);
-+
- #endif /* CONFIG_PCI_MSI */
- #ifdef CONFIG_PCI_IOV
diff --git a/rejects/process_zones-fix-error-handling.patch b/rejects/process_zones-fix-error-handling.patch
deleted file mode 100644 (file)
index 77c25ec..0000000
+++ /dev/null
@@ -1,69 +0,0 @@
-From stable-bounces@linux.kernel.org Thu Sep 21 20:11:55 2006
-Message-Id: <200609220310.k8M3AvBe027426@shell0.pdx.osdl.net>
-To: mm-commits@vger.kernel.org
-From: Andrew Morton <akpm@osdl.org>
-Date: Thu, 21 Sep 2006 20:10:57 -0700
-Cc: akpm@osdl.org, kmannth@gmail.com, clameter@engr.sgi.com, stable@kernel.org, kamezawa.hiroyu@jp.fujitsu.com
-Subject: process_zones(): fix error handling
-
-
-From: Andrew Morton <akpm@osdl.org>
-
-If the kmalloc() fails we can leave some of this zone's per-cpu-pages pointers
-holding uninitialised memory.  Later, free_zone_pagesets() will pass that
-uninitialised memory to kfree() as a pointer, with suboptimal results.
-
-Cc: Keith Mannthey <kmannth@gmail.com>
-Cc: KAMEZAWA Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com>
-Cc: Christoph Lameter <clameter@engr.sgi.com>
-Signed-off-by: Andrew Morton <akpm@osdl.org>
-Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
-
-
----
- mm/page_alloc.c |   20 +++++++++++---------
- 1 file changed, 11 insertions(+), 9 deletions(-)
-
---- linux-2.6.18.orig/mm/page_alloc.c
-+++ linux-2.6.18/mm/page_alloc.c
-@@ -1811,11 +1811,14 @@ static struct per_cpu_pageset boot_pages
-  */
- static int __cpuinit process_zones(int cpu)
- {
--      struct zone *zone, *dzone;
-+      struct zone *zone;
--      for_each_zone(zone) {
-+      for_each_zone(zone)
-+              zone_pcp(zone, cpu) = NULL;
--              zone_pcp(zone, cpu) = kmalloc_node(sizeof(struct per_cpu_pageset),
-+      for_each_zone(zone) {
-+              zone_pcp(zone, cpu) =
-+                      kmalloc_node(sizeof(struct per_cpu_pageset),
-                                        GFP_KERNEL, cpu_to_node(cpu));
-               if (!zone_pcp(zone, cpu))
-                       goto bad;
-@@ -1824,17 +1827,16 @@ static int __cpuinit process_zones(int c
-               if (percpu_pagelist_fraction)
-                       setup_pagelist_highmark(zone_pcp(zone, cpu),
--                              (zone->present_pages / percpu_pagelist_fraction));
-+                          (zone->present_pages / percpu_pagelist_fraction));
-       }
-       return 0;
- bad:
--      for_each_zone(dzone) {
--              if (dzone == zone)
--                      break;
--              kfree(zone_pcp(dzone, cpu));
--              zone_pcp(dzone, cpu) = NULL;
-+      for_each_zone(zone) {
-+              kfree(zone_pcp(zone, cpu));
-+              zone_pcp(zone, cpu) = NULL;
-       }
-+      printk(KERN_EMERG "%s: kmalloc() failed\n", __FUNCTION__);
-       return -ENOMEM;
- }
diff --git a/rejects/quicklist-set-tlb-need_flush-if-pages-are-remaining-in-quicklist-0.patch b/rejects/quicklist-set-tlb-need_flush-if-pages-are-remaining-in-quicklist-0.patch
deleted file mode 100644 (file)
index 192b50e..0000000
+++ /dev/null
@@ -1,49 +0,0 @@
-From stable-bounces@linux.kernel.org Mon Dec 17 16:32:25 2007
-From: Christoph Lameter <clameter@sgi.com>
-Date: Mon, 17 Dec 2007 16:20:27 -0800
-Subject: quicklist: Set tlb->need_flush if pages are remaining in quicklist 0
-To: torvalds@linux-foundation.org
-Cc: stable@kernel.org, akpm@linux-foundation.org, dhaval@linux.vnet.ibm.com, clameter@sgi.com
-Message-ID: <200712180020.lBI0KSKF010011@imap1.linux-foundation.org>
-
-
-From: Christoph Lameter <clameter@sgi.com>
-
-patch 421d99193537a6522aac2148286f08792167d5fd in mainline.
-
-This ensures that the quicklists are drained. Otherwise draining may only
-occur when the processor reaches an idle state.
-
-Fixes fatal leakage of pgd_t's on 2.6.22 and later.
-
-Signed-off-by: Christoph Lameter <clameter@sgi.com>
-Reported-by: Dhaval Giani <dhaval@linux.vnet.ibm.com>
-Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
-Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
-Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
-
-
----
- include/asm-generic/tlb.h |    4 ++++
- 1 file changed, 4 insertions(+)
-
---- a/include/asm-generic/tlb.h
-+++ b/include/asm-generic/tlb.h
-@@ -14,6 +14,7 @@
- #define _ASM_GENERIC__TLB_H
- #include <linux/swap.h>
-+#include <linux/quicklist.h>
- #include <asm/pgalloc.h>
- #include <asm/tlbflush.h>
-@@ -85,6 +86,9 @@ tlb_flush_mmu(struct mmu_gather *tlb, un
- static inline void
- tlb_finish_mmu(struct mmu_gather *tlb, unsigned long start, unsigned long end)
- {
-+#ifdef CONFIG_QUICKLIST
-+      tlb->need_flush += &__get_cpu_var(quicklist)[0].nr_pages != 0;
-+#endif
-       tlb_flush_mmu(tlb, start, end);
-       /* keep the page table cache within bounds */
diff --git a/rejects/splice-fix-problem-introduced-with-inode-diet.patch b/rejects/splice-fix-problem-introduced-with-inode-diet.patch
deleted file mode 100644 (file)
index 0a0e9be..0000000
+++ /dev/null
@@ -1,91 +0,0 @@
-From stable-bounces@linux.kernel.org  Sun Nov  5 03:41:17 2006
-Date: Sun, 5 Nov 2006 12:39:51 +0100
-From: Jens Axboe <jens.axboe@oracle.com>
-To: stable@kernel.org
-Subject: splice: fix problem introduced with inode diet
-
-After the inode slimming patch that unionised i_pipe/i_bdev/i_cdev, it's
-no longer enough to check for existance of ->i_pipe to verify that this
-is a pipe.
-
-Original patch from Eric Dumazet <dada1@cosmosbay.com>
-Final solution suggested by Linus.
-
-Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
-Signed-off-by: Linus Torvalds <torvalds@osdl.org>
-Signed-off-by: Chris Wright <chrisw@sous-sol.org>
----
-
- fs/splice.c |   26 ++++++++++++++++++++------
- 1 file changed, 20 insertions(+), 6 deletions(-)
-
---- linux-2.6.18.2.orig/fs/splice.c
-+++ linux-2.6.18.2/fs/splice.c
-@@ -1042,6 +1042,19 @@ out_release:
- EXPORT_SYMBOL(do_splice_direct);
- /*
-+ * After the inode slimming patch, i_pipe/i_bdev/i_cdev share the same
-+ * location, so checking ->i_pipe is not enough to verify that this is a
-+ * pipe.
-+ */
-+static inline struct pipe_inode_info *pipe_info(struct inode *inode)
-+{
-+      if (S_ISFIFO(inode->i_mode))
-+              return inode->i_pipe;
-+
-+      return NULL;
-+}
-+
-+/*
-  * Determine where to splice to/from.
-  */
- static long do_splice(struct file *in, loff_t __user *off_in,
-@@ -1052,7 +1065,7 @@ static long do_splice(struct file *in, l
-       loff_t offset, *off;
-       long ret;
--      pipe = in->f_dentry->d_inode->i_pipe;
-+      pipe = pipe_info(in->f_dentry->d_inode);
-       if (pipe) {
-               if (off_in)
-                       return -ESPIPE;
-@@ -1073,7 +1086,7 @@ static long do_splice(struct file *in, l
-               return ret;
-       }
--      pipe = out->f_dentry->d_inode->i_pipe;
-+      pipe = pipe_info(out->f_dentry->d_inode);
-       if (pipe) {
-               if (off_out)
-                       return -ESPIPE;
-@@ -1231,7 +1244,7 @@ static int get_iovec_page_array(const st
- static long do_vmsplice(struct file *file, const struct iovec __user *iov,
-                       unsigned long nr_segs, unsigned int flags)
- {
--      struct pipe_inode_info *pipe = file->f_dentry->d_inode->i_pipe;
-+      struct pipe_inode_info *pipe;
-       struct page *pages[PIPE_BUFFERS];
-       struct partial_page partial[PIPE_BUFFERS];
-       struct splice_pipe_desc spd = {
-@@ -1241,7 +1254,8 @@ static long do_vmsplice(struct file *fil
-               .ops = &user_page_pipe_buf_ops,
-       };
--      if (unlikely(!pipe))
-+      pipe = pipe_info(file->f_dentry->d_inode);
-+      if (!pipe)
-               return -EBADF;
-       if (unlikely(nr_segs > UIO_MAXIOV))
-               return -EINVAL;
-@@ -1475,8 +1489,8 @@ static int link_pipe(struct pipe_inode_i
- static long do_tee(struct file *in, struct file *out, size_t len,
-                  unsigned int flags)
- {
--      struct pipe_inode_info *ipipe = in->f_dentry->d_inode->i_pipe;
--      struct pipe_inode_info *opipe = out->f_dentry->d_inode->i_pipe;
-+      struct pipe_inode_info *ipipe = pipe_info(in->f_dentry->d_inode);
-+      struct pipe_inode_info *opipe = pipe_info(out->f_dentry->d_inode);
-       int ret = -EINVAL;
-       /*
diff --git a/rejects/st.patch b/rejects/st.patch
deleted file mode 100644 (file)
index 6b7a5c6..0000000
+++ /dev/null
@@ -1,85 +0,0 @@
-Submitted after 2.6.11.2
-Rejected as per Alan Cox and other's comments on lkml.
-
-
-From akpm@osdl.org Fri Mar  4 13:22:11 2005
-Return-Path: <akpm@osdl.org>
-Subject: [patch 5/5] make st seekable again
-To: greg@kroah.com
-Cc: linux-kernel@vger.kernel.org, akpm@osdl.org, kai.makisara@kolumbus.fi
-From: akpm@osdl.org
-Date: Fri, 04 Mar 2005 13:16:58 -0800
-Lines: 71
-
-
-From: Kai Makisara <kai.makisara@kolumbus.fi>
-
-Apparently `tar' errors out if it cannot perform lseek() against a tape.  Work
-around that in-kernel.
-
-Signed-off-by: Kai Makisara <kai.makisara@kolumbus.fi>
-Signed-off-by: Andrew Morton <akpm@osdl.org>
-Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
----
-
- 25-akpm/drivers/ide/ide-tape.c |    8 +++++++-
- 25-akpm/drivers/scsi/osst.c    |    8 +++++++-
- 25-akpm/drivers/scsi/st.c      |    8 +++++++-
- 3 files changed, 21 insertions(+), 3 deletions(-)
-
-diff -puN drivers/ide/ide-tape.c~make-st-seekable-again drivers/ide/ide-tape.c
---- 25/drivers/ide/ide-tape.c~make-st-seekable-again   2005-03-04 13:16:32.000000000 -0800
-+++ 25-akpm/drivers/ide/ide-tape.c     2005-03-04 13:16:32.000000000 -0800
-@@ -4100,7 +4100,13 @@ static int idetape_chrdev_open (struct i
-       idetape_pc_t pc;
-       int retval;
--      nonseekable_open(inode, filp);
-+      /*
-+       * We really want to do nonseekable_open(inode, filp); here, but some
-+       * versions of tar incorrectly call lseek on tapes and bail out if that
-+       * fails.  So we disallow pread() and pwrite(), but permit lseeks.
-+       */
-+      filp->f_mode &= ~(FMODE_PREAD | FMODE_PWRITE);
-+
- #if IDETAPE_DEBUG_LOG
-       printk(KERN_INFO "ide-tape: Reached idetape_chrdev_open\n");
- #endif /* IDETAPE_DEBUG_LOG */
-diff -puN drivers/scsi/st.c~make-st-seekable-again drivers/scsi/st.c
---- 25/drivers/scsi/st.c~make-st-seekable-again        2005-03-04 13:16:32.000000000 -0800
-+++ 25-akpm/drivers/scsi/st.c  2005-03-04 13:16:32.000000000 -0800
-@@ -1004,7 +1004,13 @@ static int st_open(struct inode *inode, 
-       int dev = TAPE_NR(inode);
-       char *name;
--      nonseekable_open(inode, filp);
-+      /*
-+       * We really want to do nonseekable_open(inode, filp); here, but some
-+       * versions of tar incorrectly call lseek on tapes and bail out if that
-+       * fails.  So we disallow pread() and pwrite(), but permit lseeks.
-+       */
-+      filp->f_mode &= ~(FMODE_PREAD | FMODE_PWRITE);
-+
-       write_lock(&st_dev_arr_lock);
-       if (dev >= st_dev_max || scsi_tapes == NULL ||
-           ((STp = scsi_tapes[dev]) == NULL)) {
-diff -puN drivers/scsi/osst.c~make-st-seekable-again drivers/scsi/osst.c
---- 25/drivers/scsi/osst.c~make-st-seekable-again      2005-03-04 13:16:32.000000000 -0800
-+++ 25-akpm/drivers/scsi/osst.c        2005-03-04 13:16:32.000000000 -0800
-@@ -4318,7 +4318,13 @@ static int os_scsi_tape_open(struct inod
-       int                   dev  = TAPE_NR(inode);
-       int                   mode = TAPE_MODE(inode);
--      nonseekable_open(inode, filp);
-+      /*
-+       * We really want to do nonseekable_open(inode, filp); here, but some
-+       * versions of tar incorrectly call lseek on tapes and bail out if that
-+       * fails.  So we disallow pread() and pwrite(), but permit lseeks.
-+       */
-+      filp->f_mode &= ~(FMODE_PREAD | FMODE_PWRITE);
-+
-       write_lock(&os_scsi_tapes_lock);
-       if (dev >= osst_max_dev || os_scsi_tapes == NULL ||
-           (STp = os_scsi_tapes[dev]) == NULL || !STp->device) {
-_
-
diff --git a/rejects/sysfs-store-sysfs-inode-nrs-in-s_ino-to-avoid-readdir-oopses.patch b/rejects/sysfs-store-sysfs-inode-nrs-in-s_ino-to-avoid-readdir-oopses.patch
deleted file mode 100644 (file)
index 6f9d92e..0000000
+++ /dev/null
@@ -1,114 +0,0 @@
-From stable-bounces@linux.kernel.org Mon May 21 19:34:01 2007
-From: Eric Sandeen <sandeen@sandeen.net>
-Date: Mon, 21 May 2007 21:32:40 -0500
-Subject: sysfs: store sysfs inode nrs in s_ino to avoid readdir oopses
-To: Eric Sandeen <sandeen@redhat.com>
-Cc: stable@kernel.org, Andrew Morton <akpm@linux-foundation.org>, Tejun Heo <htejun@gmail.com>, Linux Kernel Mailing List <linux-kernel@vger.kernel.org>, Maneesh Soni <maneesh@in.ibm.com>
-Message-ID: <46525648.8050807@sandeen.net>
-
-
-Backport of
-ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.22-rc1/2.6.22-rc1-mm1/broken-out/gregkh-driver-sysfs-allocate-inode-number-using-ida.patch
-
-For regular files in sysfs, sysfs_readdir wants to traverse
-sysfs_dirent->s_dentry->d_inode->i_ino to get to the inode number.
-But, the dentry can be reclaimed under memory pressure, and there
-is no synchronization with readdir.  This patch follows Tejun's
-scheme of allocating and storing an inode number in the new s_ino
-member of a sysfs_dirent, when dirents are created, and retrieving 
-it from there for readdir, so that the pointer chain doesn't have 
-to be traversed.
-
-Tejun's upstream patch uses a new-ish "ida" allocator which brings along
-some extra complexity; this -stable patch has a brain-dead incrementing
-counter which does not guarantee uniqueness, but because sysfs doesn't 
-hash inodes as iunique expects, uniqueness wasn't guaranteed today anyway.
-
-Signed-off-by: Eric Sandeen <sandeen@redhat.com>
-Cc: Tejun Heo <htejun@gmail.com>
-Cc: Maneesh Soni <maneesh@in.ibm.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
-
----
- fs/sysfs/dir.c   |   16 +++++++++++-----
- fs/sysfs/inode.c |    1 +
- fs/sysfs/mount.c |    1 +
- fs/sysfs/sysfs.h |    1 +
- 4 files changed, 14 insertions(+), 5 deletions(-)
-
---- a/fs/sysfs/dir.c
-+++ b/fs/sysfs/dir.c
-@@ -30,6 +30,14 @@ static struct dentry_operations sysfs_de
-       .d_iput         = sysfs_d_iput,
- };
-+static unsigned int sysfs_inode_counter;
-+ino_t sysfs_get_inum(void)
-+{
-+      if (unlikely(sysfs_inode_counter < 3))
-+              sysfs_inode_counter = 3;
-+      return sysfs_inode_counter++;
-+}
-+
- /*
-  * Allocates a new sysfs_dirent and links it to the parent sysfs_dirent
-  */
-@@ -41,6 +49,7 @@ static struct sysfs_dirent * __sysfs_new
-       if (!sd)
-               return NULL;
-+      sd->s_ino = sysfs_get_inum();
-       atomic_set(&sd->s_count, 1);
-       atomic_set(&sd->s_event, 1);
-       INIT_LIST_HEAD(&sd->s_children);
-@@ -509,7 +518,7 @@ static int sysfs_readdir(struct file * f
-       switch (i) {
-               case 0:
--                      ino = dentry->d_inode->i_ino;
-+                      ino = parent_sd->s_ino;
-                       if (filldir(dirent, ".", 1, i, ino, DT_DIR) < 0)
-                               break;
-                       filp->f_pos++;
-@@ -538,10 +547,7 @@ static int sysfs_readdir(struct file * f
-                               name = sysfs_get_name(next);
-                               len = strlen(name);
--                              if (next->s_dentry)
--                                      ino = next->s_dentry->d_inode->i_ino;
--                              else
--                                      ino = iunique(sysfs_sb, 2);
-+                              ino = next->s_ino;
-                               if (filldir(dirent, name, len, filp->f_pos, ino,
-                                                dt_type(next)) < 0)
---- a/fs/sysfs/inode.c
-+++ b/fs/sysfs/inode.c
-@@ -140,6 +140,7 @@ struct inode * sysfs_new_inode(mode_t mo
-               inode->i_mapping->a_ops = &sysfs_aops;
-               inode->i_mapping->backing_dev_info = &sysfs_backing_dev_info;
-               inode->i_op = &sysfs_inode_operations;
-+              inode->i_ino = sd->s_ino;
-               lockdep_set_class(&inode->i_mutex, &sysfs_inode_imutex_key);
-               if (sd->s_iattr) {
---- a/fs/sysfs/mount.c
-+++ b/fs/sysfs/mount.c
-@@ -33,6 +33,7 @@ static struct sysfs_dirent sysfs_root = 
-       .s_element      = NULL,
-       .s_type         = SYSFS_ROOT,
-       .s_iattr        = NULL,
-+      .s_ino          = 1,
- };
- static void sysfs_clear_inode(struct inode *inode)
---- a/fs/sysfs/sysfs.h
-+++ b/fs/sysfs/sysfs.h
-@@ -5,6 +5,7 @@ struct sysfs_dirent {
-       void                    * s_element;
-       int                     s_type;
-       umode_t                 s_mode;
-+      ino_t                   s_ino;
-       struct dentry           * s_dentry;
-       struct iattr            * s_iattr;
-       atomic_t                s_event;
diff --git a/rejects/timercode-race-AX.25.patch b/rejects/timercode-race-AX.25.patch
deleted file mode 100644 (file)
index e97412b..0000000
+++ /dev/null
@@ -1,31 +0,0 @@
-From foo@baz Tue Apr  9 12:12:43 2002
-Date: Fri, 11 Mar 2005 21:46:29 +0000
-From: Ralf Baechle DL5RB <ralf@linux-mips.org>
-To: stable@kernel.org
-Subject: [PATCH] Timercode race in AX.25
-
-When destroying a socket ax25_destroy_socket tries to stop the protocol's
-T1 timer before freeing the memory.  If things are just right using the
-non-sync variant of del_timer means the timer will continue to run even
-after the del_timer because it's adding itself again which is likely to
-result in a crash when the timer is executed again a few seconds later.
-
-del_timer_sync can be expensive, so I don't want this one to go into 2.6
-mainline where I'll try to cook something that is less intrusive than
-regular calls to del_timer_sync.
-
-Signed-off-by: Ralf Baechle DL5RB <ralf@linux-mips.org>
-Signed-off-by: Chris Wright <chrisw@osdl.org>
-Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
-
---- bk-afu.orig/net/ax25/ax25_timer.c  2005-03-08 13:54:06.000000000 +0000
-+++ bk-afu/net/ax25/ax25_timer.c       2005-03-08 16:43:34.790532976 +0000
-@@ -106,7 +106,7 @@
- void ax25_stop_t1timer(ax25_cb *ax25)
- {
--      del_timer(&ax25->t1timer);
-+      del_timer_sync(&ax25->t1timer);
- }
- void ax25_stop_t2timer(ax25_cb *ax25)
diff --git a/rejects/tpm-interrupt-clear-fix.patch b/rejects/tpm-interrupt-clear-fix.patch
deleted file mode 100644 (file)
index 92db124..0000000
+++ /dev/null
@@ -1,30 +0,0 @@
-From stable-bounces@linux.kernel.org Wed Jul 12 16:39:52 2006
-Date: Wed, 12 Jul 2006 14:33:14 -0700
-From: "Randy.Dunlap" <rdunlap@xenotime.net>
-To: stable@kernel.org
-Message-Id: <20060712143314.48952105.rdunlap@xenotime.net>
-Cc: 
-Subject: tpm: interrupt clear fix
-
-From: Kylene Jo Hall <kjhall@us.ibm.com>
-
-Under stress testing I found that the interrupt is not always cleared.
-This is a bug and this patch should go into 2.6.18 and 2.6.17.x.
-
-Signed-off-by: Kylene Hall <kjhall@us.ibm.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
-
----
- drivers/char/tpm/tpm_tis.c |    1 +
- 1 file changed, 1 insertion(+)
-
---- linux-2.6.17.6.orig/drivers/char/tpm/tpm_tis.c
-+++ linux-2.6.17.6/drivers/char/tpm/tpm_tis.c
-@@ -424,6 +424,7 @@ static irqreturn_t tis_int_handler(int i
-       iowrite32(interrupt,
-                 chip->vendor.iobase +
-                 TPM_INT_STATUS(chip->vendor.locality));
-+      mb();
-       return IRQ_HANDLED;
- }
diff --git a/rejects/vfs-add-no_nrwrite_index_update-writeback-control-flag.patch b/rejects/vfs-add-no_nrwrite_index_update-writeback-control-flag.patch
deleted file mode 100644 (file)
index a6b5286..0000000
+++ /dev/null
@@ -1,87 +0,0 @@
-From tytso@mit.edu  Mon Apr 19 10:23:14 2010
-From: Aneesh Kumar K.V <aneesh.kumar@linux.vnet.ibm.com>
-Date: Mon, 15 Mar 2010 20:26:03 -0400
-Subject: vfs: Add no_nrwrite_index_update writeback control flag
-To: stable@kernel.org
-Cc: linux-fsdevel@vger.kernel.org, Ext4 Developers List <linux-ext4@vger.kernel.org>, "Theodore Ts'o" <tytso@mit.edu>, "Jayson R. King" <dev@jaysonking.com>, "Aneesh Kumar K.V" <aneesh.kumar@linux.vnet.ibm.com>
-Message-ID: <1268699165-17461-10-git-send-email-tytso@mit.edu>
-
-
-From: Aneesh Kumar K.V <aneesh.kumar@linux.vnet.ibm.com>
-
-commit 17bc6c30cf6bfffd816bdc53682dd46fc34a2cf4 upstream.
-
-If no_nrwrite_index_update is set we don't update nr_to_write and
-address space writeback_index in write_cache_pages.  This change
-enables a file system to skip these updates in write_cache_pages and do
-them in the writepages() callback.  This patch will be followed by an
-ext4 patch that make use of these new flags.
-
-Signed-off-by: Aneesh Kumar K.V <aneesh.kumar@linux.vnet.ibm.com>
-Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
-CC: linux-fsdevel@vger.kernel.org
-[dev@jaysonking.com: Modified the patch to account for subsequent changes in mainline being cherry-picked earlier for 2.6.27.y.]
-Signed-off-by: Jayson R. King <dev@jaysonking.com>
-Signed-off-by: Theodore Ts'o <tytso@mit.edu>
-Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
-
----
- include/linux/writeback.h |    9 +++++++++
- mm/page-writeback.c       |   14 +++++++++-----
- 2 files changed, 18 insertions(+), 5 deletions(-)
-
---- a/include/linux/writeback.h
-+++ b/include/linux/writeback.h
-@@ -62,6 +62,15 @@ struct writeback_control {
-       unsigned for_writepages:1;      /* This is a writepages() call */
-       unsigned range_cyclic:1;        /* range_start is cyclic */
-       unsigned more_io:1;             /* more io to be dispatched */
-+      /*
-+       * write_cache_pages() won't update wbc->nr_to_write and
-+       * mapping->writeback_index if no_nrwrite_index_update
-+       * is set.  write_cache_pages() may write more than we
-+       * requested and we want to make sure nr_to_write and
-+       * writeback_index are updated in a consistent manner
-+       * so we use a single control to update them
-+       */
-+      unsigned no_nrwrite_index_update:1;
- };
- /*
---- a/mm/page-writeback.c
-+++ b/mm/page-writeback.c
-@@ -878,6 +878,7 @@ int write_cache_pages(struct address_spa
-       pgoff_t done_index;
-       int cycled;
-       int range_whole = 0;
-+      long nr_to_write = wbc->nr_to_write;
-       if (wbc->nonblocking && bdi_write_congested(bdi)) {
-               wbc->encountered_congestion = 1;
-@@ -985,9 +986,9 @@ continue_unlock:
-                               }
-                       }
--                      if (wbc->nr_to_write > 0) {
--                              wbc->nr_to_write--;
--                              if (wbc->nr_to_write == 0 &&
-+                      if (nr_to_write > 0) {
-+                              nr_to_write--;
-+                              if (nr_to_write == 0 &&
-                                   wbc->sync_mode == WB_SYNC_NONE) {
-                                       /*
-                                        * We stop writing back only if we are
-@@ -1024,8 +1025,11 @@ continue_unlock:
-               end = writeback_index - 1;
-               goto retry;
-       }
--      if (wbc->range_cyclic || (range_whole && wbc->nr_to_write > 0))
--              mapping->writeback_index = done_index;
-+      if (!wbc->no_nrwrite_index_update) {
-+              if (wbc->range_cyclic || (range_whole && nr_to_write > 0))
-+                      mapping->writeback_index = done_index;
-+              wbc->nr_to_write = nr_to_write;
-+      }
-       return ret;
- }
diff --git a/rejects/x86-replace-lock_prefix-in-futex.h.patch b/rejects/x86-replace-lock_prefix-in-futex.h.patch
deleted file mode 100644 (file)
index 2a0e166..0000000
+++ /dev/null
@@ -1,86 +0,0 @@
-Subject: x86: replace LOCK_PREFIX in futex.h
-From: Thomas Gleixner <tglx@linutronix.de>
-Date: Thu, 07 Feb 2008 13:06:02 +0100
-
-From: Thomas Gleixner <tglx@linutronix.de>
-
-The exception fixup for the futex macros __futex_atomic_op1/2 and
-futex_atomic_cmpxchg_inatomic() is missing an entry when the lock
-prefix is replaced by a NOP via SMP alternatives.
-
-Chuck Ebert tracked this down from the information provided in:
-https://bugzilla.redhat.com/show_bug.cgi?id=429412
-
-A possible solution would be to add another fixup after the
-LOCK_PREFIX, so both the LOCK and NOP case have their own entry in the
-exception table, but it's not really worth the trouble.
-
-Simply replace LOCK_PREFIX with lock and keep those untouched by SMP
-alternatives.
-
-Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
-Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
-
----
- include/asm-x86/futex_32.h |    6 +++---
- include/asm-x86/futex_64.h |    6 +++---
- 2 files changed, 6 insertions(+), 6 deletions(-)
-
---- a/include/asm-x86/futex_32.h
-+++ b/include/asm-x86/futex_32.h
-@@ -28,7 +28,7 @@
- "1:   movl    %2, %0\n\
-       movl    %0, %3\n"                                       \
-       insn "\n"                                               \
--"2:   " LOCK_PREFIX "cmpxchgl %3, %2\n\
-+"2:   lock cmpxchgl %3, %2\n\
-       jnz     1b\n\
- 3:    .section .fixup,\"ax\"\n\
- 4:    mov     %5, %1\n\
-@@ -68,7 +68,7 @@ futex_atomic_op_inuser (int encoded_op, 
- #endif
-               switch (op) {
-               case FUTEX_OP_ADD:
--                      __futex_atomic_op1(LOCK_PREFIX "xaddl %0, %2", ret,
-+                      __futex_atomic_op1("lock xaddl %0, %2", ret,
-                                          oldval, uaddr, oparg);
-                       break;
-               case FUTEX_OP_OR:
-@@ -111,7 +111,7 @@ futex_atomic_cmpxchg_inatomic(int __user
-               return -EFAULT;
-       __asm__ __volatile__(
--              "1:     " LOCK_PREFIX "cmpxchgl %3, %1          \n"
-+              "1:     lock cmpxchgl %3, %1                    \n"
-               "2:     .section .fixup, \"ax\"                 \n"
-               "3:     mov     %2, %0                          \n"
---- a/include/asm-x86/futex_64.h
-+++ b/include/asm-x86/futex_64.h
-@@ -27,7 +27,7 @@
- "1:   movl    %2, %0\n\
-       movl    %0, %3\n"                                       \
-       insn "\n"                                               \
--"2:   " LOCK_PREFIX "cmpxchgl %3, %2\n\
-+"2:   "lock cmpxchgl %3, %2\n\
-       jnz     1b\n\
- 3:    .section .fixup,\"ax\"\n\
- 4:    mov     %5, %1\n\
-@@ -62,7 +62,7 @@ futex_atomic_op_inuser (int encoded_op, 
-               __futex_atomic_op1("xchgl %0, %2", ret, oldval, uaddr, oparg);
-               break;
-       case FUTEX_OP_ADD:
--              __futex_atomic_op1(LOCK_PREFIX "xaddl %0, %2", ret, oldval,
-+              __futex_atomic_op1("lock xaddl %0, %2", ret, oldval,
-                                  uaddr, oparg);
-               break;
-       case FUTEX_OP_OR:
-@@ -101,7 +101,7 @@ futex_atomic_cmpxchg_inatomic(int __user
-               return -EFAULT;
-       __asm__ __volatile__(
--              "1:     " LOCK_PREFIX "cmpxchgl %3, %1          \n"
-+              "1:     lock cmpxchgl %3, %1                    \n"
-               "2:     .section .fixup, \"ax\"                 \n"
-               "3:     mov     %2, %0                          \n"
diff --git a/rejects/x86_64-TASK_SIZE-fix.patch b/rejects/x86_64-TASK_SIZE-fix.patch
deleted file mode 100644 (file)
index dce12f0..0000000
+++ /dev/null
@@ -1,235 +0,0 @@
-From stable-bounces@linux.kernel.org  Wed Jun 29 18:12:49 2005
-To: stable@kernel.org
-From: akpm@osdl.org
-Date: Wed, 29 Jun 2005 18:12:01 -0700
-Cc: akpm@osdl.org, ak@muc.de, nanhai.zou@intel.com, suresh.b.siddha@intel.com
-Subject: [patch  x86_64: TASK_SIZE fixes for compatibility mode processes
-
-From: Suresh Siddha <suresh.b.siddha@intel.com>
-
-Appended patch will setup compatibility mode TASK_SIZE properly.  This will
-fix atleast three known bugs that can be encountered while running
-compatibility mode apps.
-
-a) A malicious 32bit app can have an elf section at 0xffffe000.  During
-   exec of this app, we will have a memory leak as insert_vm_struct() is
-   not checking for return value in syscall32_setup_pages() and thus not
-   freeing the vma allocated for the vsyscall page.  And instead of exec
-   failing (as it has addresses > TASK_SIZE), we were allowing it to
-   succeed previously.
-
-b) With a 32bit app, hugetlb_get_unmapped_area/arch_get_unmapped_area
-   may return addresses beyond 32bits, ultimately causing corruption
-   because of wrap-around and resulting in SEGFAULT, instead of returning
-   ENOMEM.
-
-c) 32bit app doing this below mmap will now fail.
-
-  mmap((void *)(0xFFFFE000UL), 0x10000UL, PROT_READ|PROT_WRITE,
-       MAP_FIXED|MAP_PRIVATE|MAP_ANON, 0, 0);
-
-Signed-off-by: Zou Nan hai <nanhai.zou@intel.com>
-Signed-off-by: Suresh Siddha <suresh.b.siddha@intel.com>
-Cc: Andi Kleen <ak@muc.de>
-Signed-off-by: Andrew Morton <akpm@osdl.org>
-Signed-off-by: Chris Wright <chrisw@osdl.org>
-Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
----
- arch/x86_64/ia32/ia32_binfmt.c  |    5 +----
- arch/x86_64/kernel/process.c    |    4 ++--
- arch/x86_64/kernel/ptrace.c     |   17 ++++++++++-------
- arch/x86_64/kernel/sys_x86_64.c |   14 ++++----------
- arch/x86_64/mm/fault.c          |    2 +-
- include/asm-x86_64/a.out.h      |    2 +-
- include/asm-x86_64/processor.h  |   11 ++++++-----
- 7 files changed, 25 insertions(+), 30 deletions(-)
-
---- linux-2.6.12.2.orig/arch/x86_64/ia32/ia32_binfmt.c 2005-06-17 12:48:29.000000000 -0700
-+++ linux-2.6.12.2/arch/x86_64/ia32/ia32_binfmt.c      2005-07-13 10:56:37.000000000 -0700
-@@ -46,7 +46,7 @@
- #define IA32_EMULATOR 1
--#define ELF_ET_DYN_BASE               (TASK_UNMAPPED_32 + 0x1000000)
-+#define ELF_ET_DYN_BASE               (TASK_UNMAPPED_BASE + 0x1000000)
- #undef ELF_ARCH
- #define ELF_ARCH EM_386
-@@ -307,9 +307,6 @@
- #define elf_addr_t __u32
--#undef TASK_SIZE
--#define TASK_SIZE 0xffffffff
--
- static void elf32_init(struct pt_regs *);
- #define ARCH_HAS_SETUP_ADDITIONAL_PAGES 1
---- linux-2.6.12.2.orig/arch/x86_64/kernel/process.c   2005-06-17 12:48:29.000000000 -0700
-+++ linux-2.6.12.2/arch/x86_64/kernel/process.c        2005-07-13 10:56:37.000000000 -0700
-@@ -656,7 +656,7 @@
-       switch (code) { 
-       case ARCH_SET_GS:
--              if (addr >= TASK_SIZE) 
-+              if (addr >= TASK_SIZE_OF(task))
-                       return -EPERM; 
-               cpu = get_cpu();
-               /* handle small bases via the GDT because that's faster to 
-@@ -682,7 +682,7 @@
-       case ARCH_SET_FS:
-               /* Not strictly needed for fs, but do it for symmetry
-                  with gs */
--              if (addr >= TASK_SIZE)
-+              if (addr >= TASK_SIZE_OF(task))
-                       return -EPERM; 
-               cpu = get_cpu();
-               /* handle small bases via the GDT because that's faster to 
---- linux-2.6.12.2.orig/arch/x86_64/kernel/ptrace.c    2005-06-17 12:48:29.000000000 -0700
-+++ linux-2.6.12.2/arch/x86_64/kernel/ptrace.c 2005-07-13 10:56:37.000000000 -0700
-@@ -257,12 +257,12 @@
-                       value &= 0xffff;
-                       return 0;
-               case offsetof(struct user_regs_struct,fs_base):
--                      if (value >= TASK_SIZE)
-+                      if (value >= TASK_SIZE_OF(child))
-                               return -EIO;
-                       child->thread.fs = value;
-                       return 0;
-               case offsetof(struct user_regs_struct,gs_base):
--                      if (value >= TASK_SIZE)
-+                      if (value >= TASK_SIZE_OF(child))
-                               return -EIO;
-                       child->thread.gs = value;
-                       return 0;
-@@ -279,7 +279,7 @@
-                       break;
-               case offsetof(struct user_regs_struct, rip):
-                       /* Check if the new RIP address is canonical */
--                      if (value >= TASK_SIZE)
-+                      if (value >= TASK_SIZE_OF(child))
-                               return -EIO;
-                       break;
-       }
-@@ -419,6 +419,8 @@
-               break;
-       case PTRACE_POKEUSR: /* write the word at location addr in the USER area */
-+      {
-+              int dsize = test_tsk_thread_flag(child, TIF_IA32) ? 3 : 7;
-               ret = -EIO;
-               if ((addr & 7) ||
-                   addr > sizeof(struct user) - 7)
-@@ -430,22 +432,22 @@
-                       break;
-               /* Disallows to set a breakpoint into the vsyscall */
-               case offsetof(struct user, u_debugreg[0]):
--                      if (data >= TASK_SIZE-7) break;
-+                      if (data >= TASK_SIZE_OF(child) - dsize) break;
-                       child->thread.debugreg0 = data;
-                       ret = 0;
-                       break;
-               case offsetof(struct user, u_debugreg[1]):
--                      if (data >= TASK_SIZE-7) break;
-+                      if (data >= TASK_SIZE_OF(child) - dsize) break;
-                       child->thread.debugreg1 = data;
-                       ret = 0;
-                       break;
-               case offsetof(struct user, u_debugreg[2]):
--                      if (data >= TASK_SIZE-7) break;
-+                      if (data >= TASK_SIZE_OF(child) - dsize) break;
-                       child->thread.debugreg2 = data;
-                       ret = 0;
-                       break;
-               case offsetof(struct user, u_debugreg[3]):
--                      if (data >= TASK_SIZE-7) break;
-+                      if (data >= TASK_SIZE_OF(child) - dsize) break;
-                       child->thread.debugreg3 = data;
-                       ret = 0;
-                       break;
-@@ -469,6 +471,7 @@
-                 break;
-               }
-               break;
-+      }
-       case PTRACE_SYSCALL: /* continue and stop at next (return from) syscall */
-       case PTRACE_CONT:    /* restart after signal. */
---- linux-2.6.12.2.orig/arch/x86_64/kernel/sys_x86_64.c        2005-06-17 12:48:29.000000000 -0700
-+++ linux-2.6.12.2/arch/x86_64/kernel/sys_x86_64.c     2005-07-13 10:56:37.000000000 -0700
-@@ -68,13 +68,7 @@
- static void find_start_end(unsigned long flags, unsigned long *begin,
-                          unsigned long *end)
- {
--#ifdef CONFIG_IA32_EMULATION
--      if (test_thread_flag(TIF_IA32)) { 
--              *begin = TASK_UNMAPPED_32;
--              *end = IA32_PAGE_OFFSET; 
--      } else 
--#endif
--      if (flags & MAP_32BIT) { 
-+      if (!test_thread_flag(TIF_IA32) && (flags & MAP_32BIT)) {
-               /* This is usually used needed to map code in small
-                  model, so it needs to be in the first 31bit. Limit
-                  it to that.  This means we need to move the
-@@ -84,10 +78,10 @@
-                  of playground for now. -AK */ 
-               *begin = 0x40000000; 
-               *end = 0x80000000;              
--      } else { 
--              *begin = TASK_UNMAPPED_64; 
-+      } else {
-+              *begin = TASK_UNMAPPED_BASE;
-               *end = TASK_SIZE; 
--              }
-+      }
- } 
- unsigned long
---- linux-2.6.12.2.orig/arch/x86_64/mm/fault.c 2005-06-17 12:48:29.000000000 -0700
-+++ linux-2.6.12.2/arch/x86_64/mm/fault.c      2005-07-13 10:56:37.000000000 -0700
-@@ -350,7 +350,7 @@
-        * (error_code & 4) == 0, and that the fault was not a
-        * protection error (error_code & 1) == 0.
-        */
--      if (unlikely(address >= TASK_SIZE)) {
-+      if (unlikely(address >= TASK_SIZE64)) {
-               if (!(error_code & 5) &&
-                     ((address >= VMALLOC_START && address < VMALLOC_END) ||
-                      (address >= MODULES_VADDR && address < MODULES_END))) {
---- linux-2.6.12.2.orig/include/asm-x86_64/a.out.h     2005-06-17 12:48:29.000000000 -0700
-+++ linux-2.6.12.2/include/asm-x86_64/a.out.h  2005-07-13 10:56:37.000000000 -0700
-@@ -21,7 +21,7 @@
- #ifdef __KERNEL__
- #include <linux/thread_info.h>
--#define STACK_TOP (test_thread_flag(TIF_IA32) ? IA32_PAGE_OFFSET : TASK_SIZE)
-+#define STACK_TOP TASK_SIZE
- #endif
- #endif /* __A_OUT_GNU_H__ */
---- linux-2.6.12.2.orig/include/asm-x86_64/processor.h 2005-06-17 12:48:29.000000000 -0700
-+++ linux-2.6.12.2/include/asm-x86_64/processor.h      2005-07-13 10:56:37.000000000 -0700
-@@ -160,16 +160,17 @@
- /*
-  * User space process size. 47bits minus one guard page.
-  */
--#define TASK_SIZE     (0x800000000000UL - 4096)
-+#define TASK_SIZE64   (0x800000000000UL - 4096)
- /* This decides where the kernel will search for a free chunk of vm
-  * space during mmap's.
-  */
- #define IA32_PAGE_OFFSET ((current->personality & ADDR_LIMIT_3GB) ? 0xc0000000 : 0xFFFFe000)
--#define TASK_UNMAPPED_32 PAGE_ALIGN(IA32_PAGE_OFFSET/3)
--#define TASK_UNMAPPED_64 PAGE_ALIGN(TASK_SIZE/3) 
--#define TASK_UNMAPPED_BASE    \
--      (test_thread_flag(TIF_IA32) ? TASK_UNMAPPED_32 : TASK_UNMAPPED_64)  
-+
-+#define TASK_SIZE             (test_thread_flag(TIF_IA32) ? IA32_PAGE_OFFSET : TASK_SIZE64)
-+#define TASK_SIZE_OF(child)   ((test_tsk_thread_flag(child, TIF_IA32)) ? IA32_PAGE_OFFSET : TASK_SIZE64)
-+
-+#define TASK_UNMAPPED_BASE    PAGE_ALIGN(TASK_SIZE/3)
- /*
-  * Size of io_bitmap.