From: Greg Kroah-Hartman Date: Sat, 9 Sep 2006 03:26:49 +0000 (-0700) Subject: 2.6.17.13 release X-Git-Tag: v2.6.17.13^0 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=916bc6e36f07b6cf73f342426e3cc3d8bbb50e7e;p=thirdparty%2Fkernel%2Fstable-queue.git 2.6.17.13 release --- 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 index 00000000000..6e5e81150b4 --- /dev/null +++ b/releases/2.6.17.13/lib-add-idr_replace.patch @@ -0,0 +1,96 @@ +From 5806f07cd2c32920d5105e0f9ff3117338f34eec Mon Sep 17 00:00:00 2001 +From: Jeff Mahoney +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 +Signed-off-by: Alasdair G Kergon +Signed-off-by: Andrew Morton +Signed-off-by: Linus Torvalds +--- + 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 + #include + #include + #endif ++#include + #include + #include + +@@ -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 index 00000000000..8334ea6509a --- /dev/null +++ b/releases/2.6.17.13/pci_ids.h-add-some-via-ide-identifiers.patch @@ -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 +To: Greg KH +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 + +pci_ids.h: add some VIA IDE identifiers + +Signed-off-by: Alan Cox +Signed-off-by: Adrian Bunk +Signed-off-by: Greg Kroah-Hartman + +--- 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