]> git.ipfire.org Git - thirdparty/kernel/stable-queue.git/commitdiff
2.6.17.13 release v2.6.17.13
authorGreg Kroah-Hartman <gregkh@suse.de>
Sat, 9 Sep 2006 03:26:49 +0000 (20:26 -0700)
committerGreg Kroah-Hartman <gregkh@suse.de>
Sat, 9 Sep 2006 03:26:49 +0000 (20:26 -0700)
releases/2.6.17.13/lib-add-idr_replace.patch [new file with mode: 0644]
releases/2.6.17.13/pci_ids.h-add-some-via-ide-identifiers.patch [new file with mode: 0644]

diff --git a/releases/2.6.17.13/lib-add-idr_replace.patch b/releases/2.6.17.13/lib-add-idr_replace.patch
new file mode 100644 (file)
index 0000000..6e5e811
--- /dev/null
@@ -0,0 +1,96 @@
+From 5806f07cd2c32920d5105e0f9ff3117338f34eec Mon Sep 17 00:00:00 2001
+From: Jeff Mahoney <jeffm@suse.com>
+Date: Mon, 26 Jun 2006 00:27:19 -0700
+Subject: [PATCH 1/1] [PATCH] lib: add idr_replace
+
+This patch adds idr_replace() to replace an existing pointer in a single
+operation.
+
+Device-mapper will use this to update the pointer it stored against a given
+id.
+
+Signed-off-by: Jeff Mahoney <jeffm@suse.com>
+Signed-off-by: Alasdair G Kergon <agk@redhat.com>
+Signed-off-by: Andrew Morton <akpm@osdl.org>
+Signed-off-by: Linus Torvalds <torvalds@osdl.org>
+---
+ include/linux/idr.h |    1 +
+ lib/idr.c           |   43 +++++++++++++++++++++++++++++++++++++++++++
+ 2 files changed, 44 insertions(+), 0 deletions(-)
+
+diff --git a/include/linux/idr.h b/include/linux/idr.h
+index d37c8d8..f559a71 100644
+--- a/include/linux/idr.h
++++ b/include/linux/idr.h
+@@ -78,6 +78,7 @@ void *idr_find(struct idr *idp, int id);
+ int idr_pre_get(struct idr *idp, gfp_t gfp_mask);
+ int idr_get_new(struct idr *idp, void *ptr, int *id);
+ int idr_get_new_above(struct idr *idp, void *ptr, int starting_id, int *id);
++void *idr_replace(struct idr *idp, void *ptr, int id);
+ void idr_remove(struct idr *idp, int id);
+ void idr_destroy(struct idr *idp);
+ void idr_init(struct idr *idp);
+diff --git a/lib/idr.c b/lib/idr.c
+index de19030..4d09681 100644
+--- a/lib/idr.c
++++ b/lib/idr.c
+@@ -29,6 +29,7 @@ #include <linux/slab.h>
+ #include <linux/init.h>
+ #include <linux/module.h>
+ #endif
++#include <linux/err.h>
+ #include <linux/string.h>
+ #include <linux/idr.h>
+@@ -398,6 +399,48 @@ void *idr_find(struct idr *idp, int id)
+ }
+ EXPORT_SYMBOL(idr_find);
++/**
++ * idr_replace - replace pointer for given id
++ * @idp: idr handle
++ * @ptr: pointer you want associated with the id
++ * @id: lookup key
++ *
++ * Replace the pointer registered with an id and return the old value.
++ * A -ENOENT return indicates that @id was not found.
++ * A -EINVAL return indicates that @id was not within valid constraints.
++ *
++ * The caller must serialize vs idr_find(), idr_get_new(), and idr_remove().
++ */
++void *idr_replace(struct idr *idp, void *ptr, int id)
++{
++      int n;
++      struct idr_layer *p, *old_p;
++
++      n = idp->layers * IDR_BITS;
++      p = idp->top;
++
++      id &= MAX_ID_MASK;
++
++      if (id >= (1 << n))
++              return ERR_PTR(-EINVAL);
++
++      n -= IDR_BITS;
++      while ((n > 0) && p) {
++              p = p->ary[(id >> n) & IDR_MASK];
++              n -= IDR_BITS;
++      }
++
++      n = id & IDR_MASK;
++      if (unlikely(p == NULL || !test_bit(n, &p->bitmap)))
++              return ERR_PTR(-ENOENT);
++
++      old_p = p->ary[n];
++      p->ary[n] = ptr;
++
++      return old_p;
++}
++EXPORT_SYMBOL(idr_replace);
++
+ static void idr_cache_ctor(void * idr_layer, kmem_cache_t *idr_layer_cache,
+               unsigned long flags)
+ {
+-- 
+1.4.2
+
diff --git a/releases/2.6.17.13/pci_ids.h-add-some-via-ide-identifiers.patch b/releases/2.6.17.13/pci_ids.h-add-some-via-ide-identifiers.patch
new file mode 100644 (file)
index 0000000..8334ea6
--- /dev/null
@@ -0,0 +1,47 @@
+From stable-bounces@linux.kernel.org Fri Sep  8 17:13:17 2006
+Date: Thu, 7 Sep 2006 01:33:03 +0200
+From: Adrian Bunk <bunk@stusta.de>
+To: Greg KH <gregkh@suse.de>
+Cc: linux-kernel@vger.kernel.org, stable@kernel.org
+Subject: pci_ids.h: add some VIA IDE identifiers
+Message-ID: <20060906233303.GA25473@stusta.de>
+
+From: Alan Cox <alan@redhat.com>
+
+pci_ids.h: add some VIA IDE identifiers
+
+Signed-off-by: Alan Cox <alan@redhat.com>
+Signed-off-by: Adrian Bunk <bunk@stusta.de>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+
+--- a/include/linux/pci_ids.h
++++ b/include/linux/pci_ids.h
+@@ -1235,6 +1235,7 @@ #define PCI_DEVICE_ID_VIA_PT880ULTRA     0x0
+ #define PCI_DEVICE_ID_VIA_PX8X0_0     0x0259
+ #define PCI_DEVICE_ID_VIA_3269_0      0x0269
+ #define PCI_DEVICE_ID_VIA_K8T800PRO_0 0x0282
++#define PCI_DEVICE_ID_VIA_3296_0      0x0296
+ #define PCI_DEVICE_ID_VIA_8363_0      0x0305
+ #define PCI_DEVICE_ID_VIA_P4M800CE    0x0314
+ #define PCI_DEVICE_ID_VIA_8371_0      0x0391
+@@ -1242,6 +1243,7 @@ #define PCI_DEVICE_ID_VIA_8501_0 0x0501
+ #define PCI_DEVICE_ID_VIA_82C561      0x0561
+ #define PCI_DEVICE_ID_VIA_82C586_1    0x0571
+ #define PCI_DEVICE_ID_VIA_82C576      0x0576
++#define PCI_DEVICE_ID_VIA_SATA_EIDE   0x0581
+ #define PCI_DEVICE_ID_VIA_82C586_0    0x0586
+ #define PCI_DEVICE_ID_VIA_82C596      0x0596
+ #define PCI_DEVICE_ID_VIA_82C597_0    0x0597
+@@ -1282,10 +1284,11 @@ #define PCI_DEVICE_ID_VIA_8378_0       0x3205
+ #define PCI_DEVICE_ID_VIA_8783_0      0x3208
+ #define PCI_DEVICE_ID_VIA_8237                0x3227
+ #define PCI_DEVICE_ID_VIA_8251                0x3287
+-#define PCI_DEVICE_ID_VIA_3296_0      0x0296
++#define PCI_DEVICE_ID_VIA_8237A               0x3337
+ #define PCI_DEVICE_ID_VIA_8231                0x8231
+ #define PCI_DEVICE_ID_VIA_8231_4      0x8235
+ #define PCI_DEVICE_ID_VIA_8365_1      0x8305
++#define PCI_DEVICE_ID_VIA_CX700               0x8324
+ #define PCI_DEVICE_ID_VIA_8371_1      0x8391
+ #define PCI_DEVICE_ID_VIA_82C598_1    0x8598
+ #define PCI_DEVICE_ID_VIA_838X_1      0xB188