]> git.ipfire.org Git - thirdparty/kernel/stable-queue.git/commitdiff
add some patches for 2.6.16 review cycle
authorGreg Kroah-Hartman <gregkh@suse.de>
Thu, 20 Apr 2006 22:25:11 +0000 (15:25 -0700)
committerGreg Kroah-Hartman <gregkh@suse.de>
Thu, 20 Apr 2006 22:25:11 +0000 (15:25 -0700)
13 files changed:
queue-2.6.16/3ware-9000-disable-local-irqs-during-kmap_atomic.patch [new file with mode: 0644]
queue-2.6.16/3ware-kmap_atomic-fix.patch [new file with mode: 0644]
queue-2.6.16/efficeon-agp-add-missing-memory-mask.patch [new file with mode: 0644]
queue-2.6.16/fix-bug.patch [new file with mode: 0644]
queue-2.6.16/fix-hotplug-race-during-device-registration.patch [new file with mode: 0644]
queue-2.6.16/i2c-i801-fix-resume-when-pec-is-used.patch [new file with mode: 0644]
queue-2.6.16/ipv6-ensure-to-have-hop-by-hop-options-in-our-header-of-sk_buff.patch [new file with mode: 0644]
queue-2.6.16/ipv6-xfrm-don-t-use-old-copy-of-pointer-after-pskb_may_pull.patch [new file with mode: 0644]
queue-2.6.16/ipv6-xfrm-fix-decoding-session-with-preceding-extension-header.patch [new file with mode: 0644]
queue-2.6.16/mtd_nand_sharpsl-and-mtd_nand_nandsim-should-be-tristate-s.patch [new file with mode: 0644]
queue-2.6.16/re-ppc-fix-oops-in-alsa-powermac-driver.patch [new file with mode: 0644]
queue-2.6.16/selinux-fix-mls-compatibility-off-by-one-bug.patch [new file with mode: 0644]
queue-2.6.16/series [new file with mode: 0644]

diff --git a/queue-2.6.16/3ware-9000-disable-local-irqs-during-kmap_atomic.patch b/queue-2.6.16/3ware-9000-disable-local-irqs-during-kmap_atomic.patch
new file mode 100644 (file)
index 0000000..8a3d202
--- /dev/null
@@ -0,0 +1,46 @@
+From aradford@gmail.com Tue Apr 11 11:25:12 2006
+Message-ID: <b1bc6a000604111125s74a95319m39e23598ed4755a5@mail.gmail.com>
+Date: Tue, 11 Apr 2006 11:25:09 -0700
+From: "adam radford" <aradford@gmail.com>
+To: "James Bottomley" <James.Bottomley@steeleye.com>,
+       "SCSI Mailing List" <linux-scsi@vger.kernel.org>
+Subject: 3ware 9000 disable local irqs during kmap_atomic
+
+
+The attached patch for 2.6.17-rc2 updates the 3ware 9000 driver:
+
+- Disable local interrupts during kmap/unmap_atomic().
+
+Signed-off-by: Adam Radford <linuxraid@amcc.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+
+---
+ drivers/scsi/3w-9xxx.c |    8 ++++++--
+ 1 file changed, 6 insertions(+), 2 deletions(-)
+
+--- linux-2.6.16.9.orig/drivers/scsi/3w-9xxx.c
++++ linux-2.6.16.9/drivers/scsi/3w-9xxx.c
+@@ -85,7 +85,7 @@
+ #include "3w-9xxx.h"
+ /* Globals */
+-#define TW_DRIVER_VERSION "2.26.02.005"
++#define TW_DRIVER_VERSION "2.26.02.007"
+ static TW_Device_Extension *twa_device_extension_list[TW_MAX_SLOT];
+ static unsigned int twa_device_extension_count;
+ static int twa_major = -1;
+@@ -1944,9 +1944,13 @@ static void twa_scsiop_execute_scsi_comp
+               }
+               if (tw_dev->srb[request_id]->use_sg == 1) {
+                       struct scatterlist *sg = (struct scatterlist *)tw_dev->srb[request_id]->request_buffer;
+-                      char *buf = kmap_atomic(sg->page, KM_IRQ0) + sg->offset;
++                      char *buf;
++                      unsigned long flags = 0;
++                      local_irq_save(flags);
++                      buf = kmap_atomic(sg->page, KM_IRQ0) + sg->offset;
+                       memcpy(buf, tw_dev->generic_buffer_virt[request_id], sg->length);
+                       kunmap_atomic(buf - sg->offset, KM_IRQ0);
++                      local_irq_restore(flags);
+               }
+       }
+ } /* End twa_scsiop_execute_scsi_complete() */
diff --git a/queue-2.6.16/3ware-kmap_atomic-fix.patch b/queue-2.6.16/3ware-kmap_atomic-fix.patch
new file mode 100644 (file)
index 0000000..1bb5a77
--- /dev/null
@@ -0,0 +1,50 @@
+From stable-bounces@linux.kernel.org Fri Apr 14 14:50:05 2006
+Date: Fri, 14 Apr 2006 14:52:14 -0700
+From: Andrew Morton <akpm@osdl.org>
+To: stable@kernel.org
+Message-Id: <20060414145214.55f1d556.akpm@osdl.org>
+Cc: James Bottomley <James.Bottomley@SteelEye.com>, linuxraid@amcc.com
+Subject: 3ware: kmap_atomic() fix
+
+
+From: Andrew Morton <akpm@osdl.org>
+
+We must disable local IRQs while holding KM_IRQ0 or KM_IRQ1.  Otherwise, an
+IRQ handler could use those kmap slots while this code is using them,
+resulting in memory corruption.
+
+Thanks to Nick Orlov <bugfixer@list.ru> for reporting.
+
+Cc: <linuxraid@amcc.com>
+Cc: James Bottomley <James.Bottomley@SteelEye.com>
+Signed-off-by: Andrew Morton <akpm@osdl.org>
+Signed-off-by: Linus Torvalds <torvalds@osdl.org>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+
+---
+ drivers/scsi/3w-xxxx.c |    3 +++
+ 1 file changed, 3 insertions(+)
+
+--- linux-2.6.16.9.orig/drivers/scsi/3w-xxxx.c
++++ linux-2.6.16.9/drivers/scsi/3w-xxxx.c
+@@ -1508,10 +1508,12 @@ static void tw_transfer_internal(TW_Devi
+       struct scsi_cmnd *cmd = tw_dev->srb[request_id];
+       void *buf;
+       unsigned int transfer_len;
++      unsigned long flags = 0;
+       if (cmd->use_sg) {
+               struct scatterlist *sg =
+                       (struct scatterlist *)cmd->request_buffer;
++              local_irq_save(flags);
+               buf = kmap_atomic(sg->page, KM_IRQ0) + sg->offset;
+               transfer_len = min(sg->length, len);
+       } else {
+@@ -1526,6 +1528,7 @@ static void tw_transfer_internal(TW_Devi
+               sg = (struct scatterlist *)cmd->request_buffer;
+               kunmap_atomic(buf - sg->offset, KM_IRQ0);
++              local_irq_restore(flags);
+       }
+ }
diff --git a/queue-2.6.16/efficeon-agp-add-missing-memory-mask.patch b/queue-2.6.16/efficeon-agp-add-missing-memory-mask.patch
new file mode 100644 (file)
index 0000000..f08622b
--- /dev/null
@@ -0,0 +1,43 @@
+From stable-bounces@linux.kernel.org Fri Apr 14 17:30:59 2006
+Message-ID: <44403EA0.5000006@zytor.com>
+Date: Fri, 14 Apr 2006 17:30:24 -0700
+From: "H. Peter Anvin" <hpa@zytor.com>
+To: stable@kernel.org
+Cc: 
+Subject: efficeon-agp: Add missing memory mask
+
+Original patch by Benjamin Herrenschmidt after debugging by Brian Hinz.
+
+Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org>
+Cc: Brian Hinz <bphinz@hotmail.com>
+Signed-off-by: H. Peter Anvin <hpa@zytor.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+
+---
+ drivers/char/agp/efficeon-agp.c |    8 +++++++-
+ 1 file changed, 7 insertions(+), 1 deletion(-)
+
+--- linux-2.6.16.9.orig/drivers/char/agp/efficeon-agp.c
++++ linux-2.6.16.9/drivers/char/agp/efficeon-agp.c
+@@ -64,6 +64,12 @@ static struct gatt_mask efficeon_generic
+       {.mask = 0x00000001, .type = 0}
+ };
++/* This function does the same thing as mask_memory() for this chipset... */
++static inline unsigned long efficeon_mask_memory(unsigned long addr)
++{
++      return addr | 0x00000001;
++}
++
+ static struct aper_size_info_lvl2 efficeon_generic_sizes[4] =
+ {
+       {256, 65536, 0},
+@@ -251,7 +257,7 @@ static int efficeon_insert_memory(struct
+       last_page = NULL;
+       for (i = 0; i < count; i++) {
+               int index = pg_start + i;
+-              unsigned long insert = mem->memory[i];
++              unsigned long insert = efficeon_mask_memory(mem->memory[i]);
+               page = (unsigned int *) efficeon_private.l1_table[index >> 10];
diff --git a/queue-2.6.16/fix-bug.patch b/queue-2.6.16/fix-bug.patch
new file mode 100644 (file)
index 0000000..1304498
--- /dev/null
@@ -0,0 +1,47 @@
+From stable-bounces@linux.kernel.org Tue Apr 18 21:43:55 2006
+Date: Tue, 18 Apr 2006 21:43:31 -0700 (PDT)
+Message-Id: <20060418.214331.80577176.davem@davemloft.net>
+To: stable@kernel.org
+From: "David S. Miller" <davem@davemloft.net>
+Cc: 
+Subject: [TCP]: Fix truesize underflow
+
+
+From: Herbert Xu <herbert@gondor.apana.org.au>
+
+[TCP]: Fix truesize underflow
+
+There is a problem with the TSO packet trimming code.  The cause of
+this lies in the tcp_fragment() function.
+
+When we allocate a fragment for a completely non-linear packet the
+truesize is calculated for a payload length of zero.  This means that
+truesize could in fact be less than the real payload length.
+
+When that happens the TSO packet trimming can cause truesize to become
+negative.  This in turn can cause sk_forward_alloc to be -n * PAGE_SIZE
+which would trigger the warning.
+
+I've copied the code DaveM used in tso_fragment which should work here.
+
+Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
+Signed-off-by: David S. Miller <davem@davemloft.net>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+
+---
+ net/ipv4/tcp_output.c |    4 +++-
+ 1 file changed, 3 insertions(+), 1 deletion(-)
+
+--- linux-2.6.16.9.orig/net/ipv4/tcp_output.c
++++ linux-2.6.16.9/net/ipv4/tcp_output.c
+@@ -537,7 +537,9 @@ int tcp_fragment(struct sock *sk, struct
+       buff = sk_stream_alloc_skb(sk, nsize, GFP_ATOMIC);
+       if (buff == NULL)
+               return -ENOMEM; /* We'll just try again later. */
+-      sk_charge_skb(sk, buff);
++
++      buff->truesize = skb->len - len;
++      skb->truesize -= buff->truesize;
+       /* Correct the sequence numbers. */
+       TCP_SKB_CB(buff)->seq = TCP_SKB_CB(skb)->seq + len;
diff --git a/queue-2.6.16/fix-hotplug-race-during-device-registration.patch b/queue-2.6.16/fix-hotplug-race-during-device-registration.patch
new file mode 100644 (file)
index 0000000..9cc6995
--- /dev/null
@@ -0,0 +1,45 @@
+From stable-bounces@linux.kernel.org Tue Apr 18 21:21:06 2006
+Message-ID: <4445BB0F.6010305@ums.usu.ru>
+Date: Wed, 19 Apr 2006 10:22:39 +0600
+From: "Alexander E. Patrakov" <patrakov@ums.usu.ru>
+To: Greg KH <greg@kroah.com>
+Cc: LKML <linux-kernel@vger.kernel.org>, stable@kernel.org
+Subject: [NET]: Fix hotplug race during device registration
+
+From: Thomas de Grenier de Latour <degrenier@easyconnect.fr>
+
+On Sun, 9 Apr 2006 21:56:59 +0400,
+Sergey Vlasov <vsu@altlinux.ru> wrote:
+> However, show_address() does not output anything unless
+> dev->reg_state == NETREG_REGISTERED - and this state is set by
+> netdev_run_todo() only after netdev_register_sysfs() returns, so in
+> the meantime (while netdev_register_sysfs() is busy adding the
+> "statistics" attribute group) some process may see an empty "address"
+> attribute.
+
+I've tried the attached patch, suggested by Sergey Vlasov on
+hotplug-devel@, and as far as i can test it works just fine.
+
+Signed-off-by: Alexander E. Patrakov <patrakov@ums.usu.ru>
+Signed-off-by: David S. Miller <davem@davemloft.net>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+
+---
+ net/core/dev.c |    2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+--- linux-2.6.16.9.orig/net/core/dev.c
++++ linux-2.6.16.9/net/core/dev.c
+@@ -2932,11 +2932,11 @@ void netdev_run_todo(void)
+               switch(dev->reg_state) {
+               case NETREG_REGISTERING:
++                      dev->reg_state = NETREG_REGISTERED;
+                       err = netdev_register_sysfs(dev);
+                       if (err)
+                               printk(KERN_ERR "%s: failed sysfs registration (%d)\n",
+                                      dev->name, err);
+-                      dev->reg_state = NETREG_REGISTERED;
+                       break;
+               case NETREG_UNREGISTERING:
diff --git a/queue-2.6.16/i2c-i801-fix-resume-when-pec-is-used.patch b/queue-2.6.16/i2c-i801-fix-resume-when-pec-is-used.patch
new file mode 100644 (file)
index 0000000..e826c65
--- /dev/null
@@ -0,0 +1,39 @@
+From stable-bounces@linux.kernel.org Tue Apr 18 07:02:07 2006
+Date: Tue, 18 Apr 2006 14:15:59 +0200
+From: Jean Delvare <khali@linux-fr.org>
+To: stable@kernel.org
+Message-Id: <20060418141559.a76db755.khali@linux-fr.org>
+Cc: 
+Subject: i2c-i801: Fix resume when PEC is used
+
+Fix for bug #6395:
+Fail to resume on Tecra M2 with ADM1032 and Intel 82801DBM
+
+The BIOS of the Tecra M2 doesn't like it when it has to reboot or
+resume after the i2c-i801 driver has left the SMBus in PEC mode.
+I have a more complete fix for 2.6.17 but the simple approach of
+leaving the SMBus in non-PEC mode after every transaction should do
+for -stable. That's what the i2c-i801 driver was doing up to 2.6.15
+(inclusive).
+
+Signed-off-by: Jean Delvare <khali@linux-fr.org>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+
+---
+ drivers/i2c/busses/i2c-i801.c |    5 +++++
+ 1 file changed, 5 insertions(+)
+
+--- linux-2.6.16.9.orig/drivers/i2c/busses/i2c-i801.c
++++ linux-2.6.16.9/drivers/i2c/busses/i2c-i801.c
+@@ -478,6 +478,11 @@ static s32 i801_access(struct i2c_adapte
+               ret = i801_transaction();
+       }
++      /* Some BIOSes don't like it when PEC is enabled at reboot or resume
++         time, so we forcibly disable it after every transaction. */
++      if (hwpec)
++              outb_p(0, SMBAUXCTL);
++
+       if(block)
+               return ret;
+       if(ret)
diff --git a/queue-2.6.16/ipv6-ensure-to-have-hop-by-hop-options-in-our-header-of-sk_buff.patch b/queue-2.6.16/ipv6-ensure-to-have-hop-by-hop-options-in-our-header-of-sk_buff.patch
new file mode 100644 (file)
index 0000000..147b49a
--- /dev/null
@@ -0,0 +1,41 @@
+From stable-bounces@linux.kernel.org Tue Apr 18 19:12:27 2006
+Date: Wed, 19 Apr 2006 11:13:58 +0900 (JST)
+Message-Id: <20060419.111358.56866252.yoshfuji@linux-ipv6.org>
+To: stable@kernel.org
+From: YOSHIFUJI Hideaki / =?iso-2022-jp?B?GyRCNUhGIzFRTEAbKEI=?=
+       <yoshfuji@linux-ipv6.org>
+Cc: netdev-core@vger.kernel.org, yoshfuji@linux-ipv6.org
+Subject: IPV6: Ensure to have hop-by-hop options in our header of &sk_buff.
+
+[IPV6]: Ensure to have hop-by-hop options in our header of &sk_buff.
+
+Signed-off-by: YOSHIFUJI Hideaki <yoshfuji@linux-ipv6.org>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+
+---
+
+---
+ net/ipv6/exthdrs.c |   12 ++++++++++++
+ 1 file changed, 12 insertions(+)
+
+--- linux-2.6.16.9.orig/net/ipv6/exthdrs.c
++++ linux-2.6.16.9/net/ipv6/exthdrs.c
+@@ -489,6 +489,18 @@ int ipv6_parse_hopopts(struct sk_buff *s
+ {
+       struct inet6_skb_parm *opt = IP6CB(skb);
++      /*
++       * skb->nh.raw is equal to skb->data, and
++       * skb->h.raw - skb->nh.raw is always equal to
++       * sizeof(struct ipv6hdr) by definition of
++       * hop-by-hop options.
++       */
++      if (!pskb_may_pull(skb, sizeof(struct ipv6hdr) + 8) ||
++          !pskb_may_pull(skb, sizeof(struct ipv6hdr) + ((skb->h.raw[1] + 1) << 3))) {
++              kfree_skb(skb);
++              return -1;
++      }
++
+       opt->hop = sizeof(struct ipv6hdr);
+       if (ip6_parse_tlv(tlvprochopopt_lst, skb)) {
+               skb->h.raw += (skb->h.raw[1]+1)<<3;
diff --git a/queue-2.6.16/ipv6-xfrm-don-t-use-old-copy-of-pointer-after-pskb_may_pull.patch b/queue-2.6.16/ipv6-xfrm-don-t-use-old-copy-of-pointer-after-pskb_may_pull.patch
new file mode 100644 (file)
index 0000000..55e2f0f
--- /dev/null
@@ -0,0 +1,40 @@
+From stable-bounces@linux.kernel.org Tue Apr 18 19:12:31 2006
+Date: Wed, 19 Apr 2006 11:14:07 +0900 (JST)
+Message-Id: <20060419.111407.100375776.yoshfuji@linux-ipv6.org>
+To: stable@kernel.org
+From: YOSHIFUJI Hideaki / =?iso-2022-jp?B?GyRCNUhGIzFRTEAbKEI=?=
+       <yoshfuji@linux-ipv6.org>
+Cc: netdev-core@vger.kernel.org, yoshfuji@linux-ipv6.org
+Subject: IPV6: XFRM: Don't use old copy of pointer after pskb_may_pull().
+
+[IPV6] XFRM: Don't use old copy of pointer after pskb_may_pull().
+
+Signed-off-by: YOSHIFUJI Hideaki <yoshfuji@linux-ipv6.org>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+
+---
+
+---
+ net/ipv6/xfrm6_policy.c |    4 +++-
+ 1 file changed, 3 insertions(+), 1 deletion(-)
+
+--- linux-2.6.16.9.orig/net/ipv6/xfrm6_policy.c
++++ linux-2.6.16.9/net/ipv6/xfrm6_policy.c
+@@ -193,7 +193,7 @@ _decode_session6(struct sk_buff *skb, st
+ {
+       u16 offset = sizeof(struct ipv6hdr);
+       struct ipv6hdr *hdr = skb->nh.ipv6h;
+-      struct ipv6_opt_hdr *exthdr = (struct ipv6_opt_hdr*)(skb->nh.raw + offset);
++      struct ipv6_opt_hdr *exthdr;
+       u8 nexthdr = skb->nh.ipv6h->nexthdr;
+       memset(fl, 0, sizeof(struct flowi));
+@@ -201,6 +201,8 @@ _decode_session6(struct sk_buff *skb, st
+       ipv6_addr_copy(&fl->fl6_src, &hdr->saddr);
+       while (pskb_may_pull(skb, skb->nh.raw + offset + 1 - skb->data)) {
++              exthdr = (struct ipv6_opt_hdr*)(skb->nh.raw + offset);
++
+               switch (nexthdr) {
+               case NEXTHDR_ROUTING:
+               case NEXTHDR_HOP:
diff --git a/queue-2.6.16/ipv6-xfrm-fix-decoding-session-with-preceding-extension-header.patch b/queue-2.6.16/ipv6-xfrm-fix-decoding-session-with-preceding-extension-header.patch
new file mode 100644 (file)
index 0000000..b6527eb
--- /dev/null
@@ -0,0 +1,46 @@
+From stable-bounces@linux.kernel.org Tue Apr 18 19:12:27 2006
+Date: Wed, 19 Apr 2006 11:14:23 +0900 (JST)
+Message-Id: <20060419.111423.48104035.yoshfuji@linux-ipv6.org>
+To: stable@kernel.org
+From: YOSHIFUJI Hideaki / =?iso-2022-jp?B?GyRCNUhGIzFRTEAbKEI=?=
+       <yoshfuji@linux-ipv6.org>
+Cc: netdev-core@vger.kernel.org, yoshfuji@linux-ipv6.org,
+        kazunori@miyazawa.org, takamiya@po.ntts.co.jp
+Subject: IPV6: XFRM: Fix decoding session with preceding extension header(s).
+
+[IPV6] XFRM: Fix decoding session with preceding extension header(s).
+
+We did not correctly decode session with preceding extension
+header(s).  This was because we had already pulled preceding
+headers, skb->nh.raw + 40 + 1 - skb->data was minus, and
+pskb_may_pull() failed.
+
+We now have IP6CB(skb)->nhoff and skb->h.raw, and we can
+start parsing / decoding upper layer protocol from current
+position.
+
+Tracked down by Noriaki TAKAMIYA <takamiya@po.ntts.co.jp>
+and tested by Kazunori Miyazawa <kazunori@miyazawa.org>.
+
+Signed-off-by: YOSHIFUJI Hideaki <yoshfuji@linux-ipv6.org>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+
+---
+ net/ipv6/xfrm6_policy.c |    4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+--- linux-2.6.16.9.orig/net/ipv6/xfrm6_policy.c
++++ linux-2.6.16.9/net/ipv6/xfrm6_policy.c
+@@ -191,10 +191,10 @@ error:
+ static inline void
+ _decode_session6(struct sk_buff *skb, struct flowi *fl)
+ {
+-      u16 offset = sizeof(struct ipv6hdr);
++      u16 offset = skb->h.raw - skb->nh.raw;
+       struct ipv6hdr *hdr = skb->nh.ipv6h;
+       struct ipv6_opt_hdr *exthdr;
+-      u8 nexthdr = skb->nh.ipv6h->nexthdr;
++      u8 nexthdr = skb->nh.raw[IP6CB(skb)->nhoff];
+       memset(fl, 0, sizeof(struct flowi));
+       ipv6_addr_copy(&fl->fl6_dst, &hdr->daddr);
diff --git a/queue-2.6.16/mtd_nand_sharpsl-and-mtd_nand_nandsim-should-be-tristate-s.patch b/queue-2.6.16/mtd_nand_sharpsl-and-mtd_nand_nandsim-should-be-tristate-s.patch
new file mode 100644 (file)
index 0000000..81e11a3
--- /dev/null
@@ -0,0 +1,57 @@
+From stable-bounces@linux.kernel.org Tue Apr 18 16:49:56 2006
+Date: Wed, 19 Apr 2006 01:49:31 +0200
+From: Adrian Bunk <bunk@stusta.de>
+To: stable@kernel.org
+Message-ID: <20060418234931.GB11582@stusta.de>
+Content-Disposition: inline
+Cc: "Artem B. Bityutskiy" <dedekind@yandex.ru>, dwmw2@infradead.org,
+        Thomas Gleixner <tglx@linutronix.de>,
+        Richard Purdie <rpurdie@rpsys.net>
+Subject: MTD_NAND_SHARPSL and MTD_NAND_NANDSIM should be tristate's
+
+MTD_NAND=m and MTD_NAND_SHARPSL=y or MTD_NAND_NANDSIM=y are illegal
+combinations that mustn't be allowed.
+
+This patch fixes this bug by making MTD_NAND_SHARPSL and MTD_NAND_NANDSIM
+tristate's.
+
+Additionally, it fixes some whitespace damage at these options.
+
+This patch was already included in Linus' tree.
+
+Signed-off-by: Adrian Bunk <bunk@stusta.de>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+
+
+---
+ drivers/mtd/nand/Kconfig |   17 ++++++++---------
+ 1 file changed, 8 insertions(+), 9 deletions(-)
+
+--- linux-2.6.16.9.orig/drivers/mtd/nand/Kconfig
++++ linux-2.6.16.9/drivers/mtd/nand/Kconfig
+@@ -178,17 +178,16 @@ config MTD_NAND_DISKONCHIP_BBTWRITE
+         Even if you leave this disabled, you can enable BBT writes at module
+         load time (assuming you build diskonchip as a module) with the module
+         parameter "inftl_bbt_write=1".
+-        
+- config MTD_NAND_SHARPSL
+-      bool "Support for NAND Flash on Sharp SL Series (C7xx + others)"
+-      depends on MTD_NAND && ARCH_PXA
+- 
+- config MTD_NAND_NANDSIM
+-      bool "Support for NAND Flash Simulator"
+-      depends on MTD_NAND && MTD_PARTITIONS
++config MTD_NAND_SHARPSL
++      tristate "Support for NAND Flash on Sharp SL Series (C7xx + others)"
++      depends on MTD_NAND && ARCH_PXA
++
++config MTD_NAND_NANDSIM
++      tristate "Support for NAND Flash Simulator"
++      depends on MTD_NAND && MTD_PARTITIONS
+       help
+         The simulator may simulate verious NAND flash chips for the
+         MTD nand layer.
+- 
++
+ endmenu
diff --git a/queue-2.6.16/re-ppc-fix-oops-in-alsa-powermac-driver.patch b/queue-2.6.16/re-ppc-fix-oops-in-alsa-powermac-driver.patch
new file mode 100644 (file)
index 0000000..70cdf1e
--- /dev/null
@@ -0,0 +1,72 @@
+From stable-bounces@linux.kernel.org Thu Apr 20 12:01:55 2006
+Date: Thu, 20 Apr 2006 20:59:10 +0200
+From: Guido Guenther <agx@sigxcpu.org>
+To: Greg KH <greg@kroah.com>
+Subject: Re: [stable] PPC: fix oops in alsa powermac driver
+Message-ID: <20060420185909.GA18032@bogon.ms20.nix>
+Content-Disposition: inline
+Cc: benh@kernel.crashing.org, stable@kernel.org
+
+this fixes an oops in 2.6.16.X when loading the snd_powermac module. The
+name of the requested module changed during the 2.6.16 development cycle
+from i2c-keylargo to i2c-powermac:
+
+Signed-off-by: Guido Guenther <agx@sigxcpu.org>
+Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+
+---
+ drivers/macintosh/therm_adt746x.c |    4 ++--
+ sound/oss/dmasound/tas_common.c   |    4 ++--
+ sound/ppc/daca.c                  |    2 +-
+ sound/ppc/tumbler.c               |    2 +-
+ 4 files changed, 6 insertions(+), 6 deletions(-)
+
+--- linux-2.6.16.9.orig/drivers/macintosh/therm_adt746x.c
++++ linux-2.6.16.9/drivers/macintosh/therm_adt746x.c
+@@ -627,8 +627,8 @@ thermostat_init(void)
+       if(therm_type == ADT7460)
+               device_create_file(&of_dev->dev, &dev_attr_sensor2_fan_speed);
+-#ifndef CONFIG_I2C_KEYWEST
+-      request_module("i2c-keywest");
++#ifndef CONFIG_I2C_POWERMAC
++      request_module("i2c-powermac");
+ #endif
+       return i2c_add_driver(&thermostat_driver);
+--- linux-2.6.16.9.orig/sound/oss/dmasound/tas_common.c
++++ linux-2.6.16.9/sound/oss/dmasound/tas_common.c
+@@ -195,8 +195,8 @@ tas_init(int driver_id, const char *driv
+       printk(KERN_INFO "tas driver [%s])\n", driver_name);
+-#ifndef CONFIG_I2C_KEYWEST
+-      request_module("i2c-keywest");
++#ifndef CONFIG_I2C_POWERMAC
++      request_module("i2c-powermac");
+ #endif
+       tas_node = find_devices("deq");
+       if (tas_node == NULL)
+--- linux-2.6.16.9.orig/sound/ppc/daca.c
++++ linux-2.6.16.9/sound/ppc/daca.c
+@@ -256,7 +256,7 @@ int __init snd_pmac_daca_init(struct snd
+ #ifdef CONFIG_KMOD
+       if (current->fs->root)
+-              request_module("i2c-keywest");
++              request_module("i2c-powermac");
+ #endif /* CONFIG_KMOD */      
+       mix = kmalloc(sizeof(*mix), GFP_KERNEL);
+--- linux-2.6.16.9.orig/sound/ppc/tumbler.c
++++ linux-2.6.16.9/sound/ppc/tumbler.c
+@@ -1314,7 +1314,7 @@ int __init snd_pmac_tumbler_init(struct 
+ #ifdef CONFIG_KMOD
+       if (current->fs->root)
+-              request_module("i2c-keywest");
++              request_module("i2c-powermac");
+ #endif /* CONFIG_KMOD */      
+       mix = kmalloc(sizeof(*mix), GFP_KERNEL);
diff --git a/queue-2.6.16/selinux-fix-mls-compatibility-off-by-one-bug.patch b/queue-2.6.16/selinux-fix-mls-compatibility-off-by-one-bug.patch
new file mode 100644 (file)
index 0000000..3ae4d32
--- /dev/null
@@ -0,0 +1,37 @@
+From stable-bounces@linux.kernel.org Tue Apr 18 22:28:05 2006
+Message-Id: <200604190521.k3J5LkTw009748@shell0.pdx.osdl.net>
+To: torvalds@osdl.org
+From: akpm@osdl.org
+Date: Tue, 18 Apr 2006 22:21:04 -0700
+Cc: jmorris@redhat.com, sds@tycho.nsa.gov, stable@kernel.org,
+        rmy@tigress.co.uk
+Subject: selinux: Fix MLS compatibility off-by-one bug
+
+
+From: Ron Yorston <rmy@tigress.co.uk>
+
+Fix an off-by-one error in the MLS compatibility code that was causing
+contexts with a MLS suffix to be rejected, preventing sharing partitions
+between FC4 and FC5.  Bug reported in
+https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=188068
+
+Signed-off-by: Stephen Smalley <sds@tycho.nsa.gov>
+Acked-by: James Morris <jmorris@redhat.com>
+Signed-off-by: Andrew Morton <akpm@osdl.org>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+---
+
+ security/selinux/ss/mls.c |    2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+--- linux-2.6.16.9.orig/security/selinux/ss/mls.c
++++ linux-2.6.16.9/security/selinux/ss/mls.c
+@@ -264,7 +264,7 @@ int mls_context_to_sid(char oldc,
+       if (!selinux_mls_enabled) {
+               if (def_sid != SECSID_NULL && oldc)
+-                      *scontext += strlen(*scontext);
++                      *scontext += strlen(*scontext)+1;
+               return 0;
+       }
diff --git a/queue-2.6.16/series b/queue-2.6.16/series
new file mode 100644 (file)
index 0000000..c13c8b9
--- /dev/null
@@ -0,0 +1,12 @@
+3ware-kmap_atomic-fix.patch
+3ware-9000-disable-local-irqs-during-kmap_atomic.patch
+efficeon-agp-add-missing-memory-mask.patch
+fix-bug.patch
+fix-hotplug-race-during-device-registration.patch
+i2c-i801-fix-resume-when-pec-is-used.patch
+mtd_nand_sharpsl-and-mtd_nand_nandsim-should-be-tristate-s.patch
+re-ppc-fix-oops-in-alsa-powermac-driver.patch
+selinux-fix-mls-compatibility-off-by-one-bug.patch
+ipv6-ensure-to-have-hop-by-hop-options-in-our-header-of-sk_buff.patch
+ipv6-xfrm-don-t-use-old-copy-of-pointer-after-pskb_may_pull.patch
+ipv6-xfrm-fix-decoding-session-with-preceding-extension-header.patch