--- /dev/null
+From stable-bounces@linux.kernel.org Fri Dec 2 13:00:27 2005
+Message-ID: <4390B550.4080900@gentoo.org>
+Date: Fri, 02 Dec 2005 20:57:52 +0000
+From: Daniel Drake <dsd@gentoo.org>
+To: stable@kernel.org
+Cc: green@linuxhacker.ru
+Subject: 32bit integer overflow in invalidate_inode_pages2()
+X-Git-Tag: v2.6.15-rc3
+X-Git-Url: http://www.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commitdiff;h=479ef592f3664dd629417098c8599261c0f689ab
+
+From: Oleg Drokin <green@linuxhacker.ru>
+
+[PATCH] 32bit integer overflow in invalidate_inode_pages2()
+
+Fix a 32 bit integer overflow in invalidate_inode_pages2_range.
+
+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>
+---
+ mm/truncate.c | 6 +++---
+ 1 file changed, 3 insertions(+), 3 deletions(-)
+
+--- linux-2.6.14.3.orig/mm/truncate.c
++++ linux-2.6.14.3/mm/truncate.c
+@@ -291,8 +291,8 @@ int invalidate_inode_pages2_range(struct
+ * Zap the rest of the file in one hit.
+ */
+ unmap_mapping_range(mapping,
+- page_index << PAGE_CACHE_SHIFT,
+- (end - page_index + 1)
++ (loff_t)page_index<<PAGE_CACHE_SHIFT,
++ (loff_t)(end - page_index + 1)
+ << PAGE_CACHE_SHIFT,
+ 0);
+ did_range_unmap = 1;
+@@ -301,7 +301,7 @@ int invalidate_inode_pages2_range(struct
+ * Just zap this page
+ */
+ unmap_mapping_range(mapping,
+- page_index << PAGE_CACHE_SHIFT,
++ (loff_t)page_index<<PAGE_CACHE_SHIFT,
+ PAGE_CACHE_SIZE, 0);
+ }
+ }
--- /dev/null
+From stable-bounces@linux.kernel.org Fri Dec 2 12:44:30 2005
+Message-ID: <4390B11D.4030205@gentoo.org>
+Date: Fri, 02 Dec 2005 20:39:57 +0000
+From: Daniel Drake <dsd@gentoo.org>
+To: stable@kernel.org
+Cc: trenn@suse.de
+Subject: ACPI: fix HP nx8220 boot hang regression
+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=bd7ce5b5ff930c29b1c0405051e9c9388660b785
+
+From: Thomas Renninger <trenn@suse.de>
+
+[ACPI] fix HP nx8220 boot hang regression
+
+This patch reverts the acpi_bus_find_driver() return value check
+that came in via the PCI tree via 3fb02738b0fd36f47710a2bf207129efd2f5daa2
+
+ [PATCH] acpi bridge hotadd: Allow ACPI .add and .start
+ operations to be done independently
+
+This particular change broke booting of some HP/Compaq laptops unless
+acpi=noirq is used.
+
+http://bugzilla.kernel.org/show_bug.cgi?id=5221
+https://bugzilla.novell.com/show_bug.cgi?id=116763
+
+Signed-off-by: Thomas Renninger <trenn@suse.de>
+Cc: Rajesh Shah <rajesh.shah@intel.com>
+Signed-off-by: Len Brown <len.brown@intel.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+---
+ drivers/acpi/scan.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+--- linux-2.6.14.3.orig/drivers/acpi/scan.c
++++ linux-2.6.14.3/drivers/acpi/scan.c
+@@ -1111,7 +1111,7 @@ acpi_add_single_object(struct acpi_devic
+ *
+ * TBD: Assumes LDM provides driver hot-plug capability.
+ */
+- result = acpi_bus_find_driver(device);
++ acpi_bus_find_driver(device);
+
+ end:
+ if (!result)
--- /dev/null
+From stable-bounces@linux.kernel.org Mon Dec 12 12:32:49 2005
+Date: Mon, 12 Dec 2005 10:03:35 -0800
+Message-Id: <200512121803.jBCI3Ze6006729@hera.kernel.org>
+From: Linux Kernel Mailing List <linux-kernel@vger.kernel.org>
+To: git-commits-head@vger.kernel.org
+Cc:
+Subject: Add try_to_freeze to kauditd
+
+From: Pierre Ossman <drzeus@drzeus.cx>
+
+kauditd was causing suspends to fail because it refused to freeze. Adding
+a try_to_freeze() to its sleep loop solves the issue.
+
+Signed-off-by: Pierre Ossman <drzeus@drzeus.cx>
+Acked-by: Pavel Machek <pavel@suse.cz>
+Cc: David Woodhouse <dwmw2@infradead.org>
+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>
+
+---
+ kernel/audit.c | 4 +++-
+ 1 file changed, 3 insertions(+), 1 deletion(-)
+
+--- linux-2.6.14.3.orig/kernel/audit.c
++++ linux-2.6.14.3/kernel/audit.c
+@@ -291,8 +291,10 @@ int kauditd_thread(void *dummy)
+ set_current_state(TASK_INTERRUPTIBLE);
+ add_wait_queue(&kauditd_wait, &wait);
+
+- if (!skb_queue_len(&audit_skb_queue))
++ if (!skb_queue_len(&audit_skb_queue)) {
++ try_to_freeze();
+ schedule();
++ }
+
+ __set_current_state(TASK_RUNNING);
+ remove_wait_queue(&kauditd_wait, &wait);
--- /dev/null
+From stable-bounces@linux.kernel.org Mon Dec 12 12:26:42 2005
+Date: Wed, 9 Nov 2005 10:02:38 -0800
+Message-Id: <200511091802.jA9I2csb003326@hera.kernel.org>
+From: Linux Kernel Mailing List <linux-kernel@vger.kernel.org>
+To: git-commits-head@vger.kernel.org
+Cc:
+Subject: bonding: fix feature consolidation
+
+From: Jay Vosburgh <fubar@us.ibm.com>
+
+[PATCH] bonding: fix feature consolidation
+
+This should resolve http://bugzilla.kernel.org/show_bug.cgi?id=5519
+
+The current feature computation loses bits that it doesn't know about,
+resulting in an inability to add VLANs and possibly other havoc.
+Rewrote function to preserve bits it doesn't know about, remove an
+unneeded state variable, and simplify the code.
+
+Signed-off-by: Jay Vosburgh <fubar@us.ibm.com>
+Signed-off-by: John W. Linville <linville@tuxdriver.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+
+---
+ drivers/net/bonding/bond_main.c | 32 +++++++++++---------------------
+ drivers/net/bonding/bonding.h | 7 ++-----
+ 2 files changed, 13 insertions(+), 26 deletions(-)
+
+--- linux-2.6.14.3.orig/drivers/net/bonding/bond_main.c
++++ linux-2.6.14.3/drivers/net/bonding/bond_main.c
+@@ -1604,35 +1604,27 @@ static int bond_sethwaddr(struct net_dev
+ (NETIF_F_SG|NETIF_F_IP_CSUM|NETIF_F_NO_CSUM|NETIF_F_HW_CSUM)
+
+ /*
+- * Compute the features available to the bonding device by
+- * intersection of all of the slave devices' BOND_INTERSECT_FEATURES.
+- * Call this after attaching or detaching a slave to update the
+- * bond's features.
++ * Compute the common dev->feature set available to all slaves. Some
++ * feature bits are managed elsewhere, so preserve feature bits set on
++ * master device that are not part of the examined set.
+ */
+ static int bond_compute_features(struct bonding *bond)
+ {
+- int i;
++ unsigned long features = BOND_INTERSECT_FEATURES;
+ struct slave *slave;
+ struct net_device *bond_dev = bond->dev;
+- int features = bond->bond_features;
++ int i;
+
+- bond_for_each_slave(bond, slave, i) {
+- struct net_device * slave_dev = slave->dev;
+- if (i == 0) {
+- features |= BOND_INTERSECT_FEATURES;
+- }
+- features &=
+- ~(~slave_dev->features & BOND_INTERSECT_FEATURES);
+- }
++ bond_for_each_slave(bond, slave, i)
++ features &= (slave->dev->features & BOND_INTERSECT_FEATURES);
+
+- /* turn off NETIF_F_SG if we need a csum and h/w can't do it */
+ if ((features & NETIF_F_SG) &&
+- !(features & (NETIF_F_IP_CSUM |
+- NETIF_F_NO_CSUM |
+- NETIF_F_HW_CSUM))) {
++ !(features & (NETIF_F_IP_CSUM |
++ NETIF_F_NO_CSUM |
++ NETIF_F_HW_CSUM)))
+ features &= ~NETIF_F_SG;
+- }
+
++ features |= (bond_dev->features & ~BOND_INTERSECT_FEATURES);
+ bond_dev->features = features;
+
+ return 0;
+@@ -4508,8 +4500,6 @@ static int __init bond_init(struct net_d
+ NETIF_F_HW_VLAN_RX |
+ NETIF_F_HW_VLAN_FILTER);
+
+- bond->bond_features = bond_dev->features;
+-
+ #ifdef CONFIG_PROC_FS
+ bond_create_proc_entry(bond);
+ #endif
+--- linux-2.6.14.3.orig/drivers/net/bonding/bonding.h
++++ linux-2.6.14.3/drivers/net/bonding/bonding.h
+@@ -40,8 +40,8 @@
+ #include "bond_3ad.h"
+ #include "bond_alb.h"
+
+-#define DRV_VERSION "2.6.4"
+-#define DRV_RELDATE "September 26, 2005"
++#define DRV_VERSION "2.6.5"
++#define DRV_RELDATE "November 4, 2005"
+ #define DRV_NAME "bonding"
+ #define DRV_DESCRIPTION "Ethernet Channel Bonding Driver"
+
+@@ -211,9 +211,6 @@ struct bonding {
+ struct bond_params params;
+ struct list_head vlan_list;
+ struct vlan_group *vlgrp;
+- /* the features the bonding device supports, independently
+- * of any slaves */
+- int bond_features;
+ };
+
+ /**
--- /dev/null
+From stable-bounces@linux.kernel.org Mon Dec 12 12:32:44 2005
+Date: Fri, 18 Nov 2005 14:02:54 -0800
+Message-Id: <200511182202.jAIM2sSF008196@hera.kernel.org>
+From: Linux Kernel Mailing List <linux-kernel@vger.kernel.org>
+To: git-commits-head@vger.kernel.org
+Cc:
+Subject: cciss: bug fix for BIG_PASS_THRU
+
+From: Jens Axboe <axboe@suse.de>
+
+Applications using CCISS_BIG_PASSTHRU complained that the data written
+was zeros. The problem is that the buffer is being cleared after the
+user copy, unless the user copy has failed... Correct that logic.
+
+Signed-off-by: Mike Miller <mike.miller@hp.com>
+Signed-off-by: Jens Axboe <axboe@suse.de>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+
+---
+ drivers/block/cciss.c | 7 ++++---
+ 1 file changed, 4 insertions(+), 3 deletions(-)
+
+--- linux-2.6.14.3.orig/drivers/block/cciss.c
++++ linux-2.6.14.3/drivers/block/cciss.c
+@@ -1016,10 +1016,11 @@ static int cciss_ioctl(struct inode *ino
+ status = -ENOMEM;
+ goto cleanup1;
+ }
+- if (ioc->Request.Type.Direction == XFER_WRITE &&
+- copy_from_user(buff[sg_used], data_ptr, sz)) {
++ if (ioc->Request.Type.Direction == XFER_WRITE) {
++ if (copy_from_user(buff[sg_used], data_ptr, sz)) {
+ status = -ENOMEM;
+- goto cleanup1;
++ goto cleanup1;
++ }
+ } else {
+ memset(buff[sg_used], 0, sz);
+ }
--- /dev/null
+From stable-bounces@linux.kernel.org Mon Dec 12 12:32:41 2005
+Date: Fri, 18 Nov 2005 14:02:54 -0800
+Message-Id: <200511182202.jAIM2s8e008191@hera.kernel.org>
+From: Linux Kernel Mailing List <linux-kernel@vger.kernel.org>
+To: git-commits-head@vger.kernel.org
+Cc:
+Subject: cciss: bug fix for hpacucli
+
+From Mike Miller <mikem@beardog.cca.cpqcorp.net>
+
+This patch fixes a bug that breaks hpacucli, a command line interface
+for the HP Array Config Utility. Without this fix the utility will
+not detect any controllers in the system. I thought I had already fixed
+this, but I guess not.
+
+Thanks to all who reported the issue. Please consider this this inclusion.
+
+Signed-off-by: Mike Miller <mikem@beardog.cca.cpqcorp.net>
+Signed-off-by: Jens Axboe <axboe@suse.de>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+
+
+---
+ include/linux/cciss_ioctl.h | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+--- linux-2.6.14.3.orig/include/linux/cciss_ioctl.h
++++ linux-2.6.14.3/include/linux/cciss_ioctl.h
+@@ -10,8 +10,8 @@
+ typedef struct _cciss_pci_info_struct
+ {
+ unsigned char bus;
+- unsigned short domain;
+ unsigned char dev_fn;
++ unsigned short domain;
+ __u32 board_id;
+ } cciss_pci_info_struct;
+
--- /dev/null
+From stable-bounces@linux.kernel.org Mon Nov 28 03:43:56 2005
+Date: Mon, 28 Nov 2005 12:43:41 +0100
+From: Adrian Bunk <bunk@stusta.de>
+To: stable@kernel.org
+Cc:
+Subject: drivers/scsi/dpt_i2o.c: fix a user-after-free
+
+The Coverity checker spotted this obvious use-after-free
+
+Signed-off-by: Adrian Bunk <bunk@stusta.de>
+Acked-by: Mark Salyzyn <mark_salyzyn@adaptec.com>
+Signed-off-by: Chris Wright <chrisw@osdl.org>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+---
+ drivers/scsi/dpt_i2o.c | 9 +++++----
+ 1 file changed, 5 insertions(+), 4 deletions(-)
+
+--- linux-2.6.14.3.orig/drivers/scsi/dpt_i2o.c
++++ linux-2.6.14.3/drivers/scsi/dpt_i2o.c
+@@ -816,7 +816,7 @@ static int adpt_hba_reset(adpt_hba* pHba
+ static void adpt_i2o_sys_shutdown(void)
+ {
+ adpt_hba *pHba, *pNext;
+- struct adpt_i2o_post_wait_data *p1, *p2;
++ struct adpt_i2o_post_wait_data *p1, *old;
+
+ printk(KERN_INFO"Shutting down Adaptec I2O controllers.\n");
+ printk(KERN_INFO" This could take a few minutes if there are many devices attached\n");
+@@ -830,13 +830,14 @@ static void adpt_i2o_sys_shutdown(void)
+ }
+
+ /* Remove any timedout entries from the wait queue. */
+- p2 = NULL;
+ // spin_lock_irqsave(&adpt_post_wait_lock, flags);
+ /* Nothing should be outstanding at this point so just
+ * free them
+ */
+- for(p1 = adpt_post_wait_queue; p1; p2 = p1, p1 = p2->next) {
+- kfree(p1);
++ for(p1 = adpt_post_wait_queue; p1;) {
++ old = p1;
++ p1 = p1->next;
++ kfree(old);
+ }
+ // spin_unlock_irqrestore(&adpt_post_wait_lock, flags);
+ adpt_post_wait_queue = NULL;
--- /dev/null
+From stable-bounces@linux.kernel.org Fri Dec 2 12:55:14 2005
+Message-ID: <4390B3A1.9040801@gentoo.org>
+Date: Fri, 02 Dec 2005 20:50:41 +0000
+From: Daniel Drake <dsd@gentoo.org>
+To: stable@kernel.org
+Cc: r3pek@gentoo.org
+Subject: DVB: BUDGET CI card depends on STV0297 demodulator
+
+From: Carlos Silva <r3pek@gentoo.org>
+
+BUDGET_CI card depends on STV0297 demodulator.
+This patch solves a DVB driver compile error introduced in 2.6.14
+
+Signed-off-by: Johannes Stezenbach <js@linuxtv.org>
+Signed-off-by: Mauro Carvalho Chehab <mchehab@brturbo.com.br>
+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/media/dvb/ttpci/Kconfig | 1 +
+ 1 file changed, 1 insertion(+)
+
+--- linux-2.6.14.3.orig/drivers/media/dvb/ttpci/Kconfig
++++ linux-2.6.14.3/drivers/media/dvb/ttpci/Kconfig
+@@ -81,6 +81,7 @@ config DVB_BUDGET_CI
+ tristate "Budget cards with onboard CI connector"
+ depends on DVB_CORE && PCI
+ select VIDEO_SAA7146
++ select DVB_STV0297
+ select DVB_STV0299
+ select DVB_TDA1004X
+ help
--- /dev/null
+From stable-bounces@linux.kernel.org Tue Nov 29 19:46:57 2005
+Date: Tue, 29 Nov 2005 19:46:37 -0800
+From: akpm@osdl.org
+To: stable@kernel.org
+Cc: wli@holomorphy.com, david@gibson.dropbear.id.au
+Subject: Fix crash when ptrace poking hugepage areas
+
+From: David Gibson <david@gibson.dropbear.id.au>
+
+set_page_dirty() will not cope with being handed a page * which is part of
+a compound page, but not the master page in that compound page. This case
+can occur via access_process_vm() if you attemp to write to another
+process's hugepage memory area using ptrace() (causing an oops or hang).
+
+This patch fixes the bug by only calling set_page_dirty() from
+access_process_vm() if the page is not a compound page. We already use a
+similar fix in bio_set_pages_dirty() for the case of direct io to
+hugepages.
+
+Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
+Acked-by: William Irwin <wli@holomorphy.com>
+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>
+---
+ kernel/ptrace.c | 3 ++-
+ 1 file changed, 2 insertions(+), 1 deletion(-)
+
+--- linux-2.6.14.3.orig/kernel/ptrace.c
++++ linux-2.6.14.3/kernel/ptrace.c
+@@ -238,7 +238,8 @@ int access_process_vm(struct task_struct
+ if (write) {
+ copy_to_user_page(vma, page, addr,
+ maddr + offset, buf, bytes);
+- set_page_dirty_lock(page);
++ if (!PageCompound(page))
++ set_page_dirty_lock(page);
+ } else {
+ copy_from_user_page(vma, page, addr,
+ buf, maddr + offset, bytes);
--- /dev/null
+From stable-bounces@linux.kernel.org Mon Dec 12 09:33:51 2005
+Message-ID: <439DB3FC.6040700@gentoo.org>
+Date: Mon, 12 Dec 2005 17:31:40 +0000
+From: Daniel Drake <dsd@gentoo.org>
+To: stable@kernel.org
+Cc:
+Subject: Fix listxattr() for generic security attributes
+X-Git-Url: http://www.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commitdiff;h=894ec8707ced240b96dc45944790fb35d9a6b03c
+
+From: Daniel Drake <dsd@gentoo.org>
+
+[PATCH] Fix listxattr() for generic security attributes
+
+Commit f549d6c18c0e8e6cf1bf0e7a47acc1daf7e2cec1 introduced a generic
+fallback for security xattrs, but appears to include a subtle bug.
+
+Gentoo users with kernels with selinux compiled in, and coreutils compiled
+with acl support, noticed that they could not copy files on tmpfs using
+'cp'.
+
+cp (compiled with acl support) copies the file, lists the extended
+attributes on the old file, copies them all to the new file, and then
+exits. However the listxattr() calls were failing with this odd behaviour:
+
+llistxattr("a.out", (nil), 0) = 17
+llistxattr("a.out", 0x7fffff8c6cb0, 17) = -1 ERANGE (Numerical result out of
+range)
+
+I believe this is a simple problem in the logic used to check the buffer
+sizes; if the user sends a buffer the exact size of the data, then its ok
+:)
+
+This change solves the problem.
+More info can be found at http://bugs.gentoo.org/113138
+
+Signed-off-by: Daniel Drake <dsd@gentoo.org>
+Acked-by: James Morris <jmorris@namei.org>
+Acked-by: Stephen Smalley <sds@tycho.nsa.gov>
+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>
+---
+ fs/xattr.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+--- linux-2.6.14.3.orig/fs/xattr.c
++++ linux-2.6.14.3/fs/xattr.c
+@@ -243,7 +243,7 @@ listxattr(struct dentry *d, char __user
+ error = d->d_inode->i_op->listxattr(d, klist, size);
+ } else {
+ error = security_inode_listsecurity(d->d_inode, klist, size);
+- if (size && error >= size)
++ if (size && error > size)
+ error = -ERANGE;
+ }
+ if (error > 0) {
--- /dev/null
+From stable-bounces@linux.kernel.org Thu Dec 1 14:08:28 2005
+Date: Thu, 1 Dec 2005 23:05:12 +0100
+From: Thomas Graf <tgraf@suug.ch>
+To: "David S. Miller" <davem@davemloft.net>
+Message-ID: <20051201220512.GT20395@postel.suug.ch>
+Cc: Robert Olsson <Robert.Olsson@data.slu.se>, stable@kernel.org, netdev@vger.kernel.org
+Subject: NETLINK: Fix processing of fib_lookup netlink messages
+
+The receive path for fib_lookup netlink messages is lacking sanity
+checks for header and payload and is thus vulnerable to malformed
+netlink messages causing illegal memory references.
+
+Signed-off-by: Thomas Graf <tgraf@suug.ch>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+
+---
+ net/ipv4/fib_frontend.c | 8 ++++++--
+ 1 file changed, 6 insertions(+), 2 deletions(-)
+
+--- linux-2.6.14.3.orig/net/ipv4/fib_frontend.c
++++ linux-2.6.14.3/net/ipv4/fib_frontend.c
+@@ -545,12 +545,16 @@ static void nl_fib_input(struct sock *sk
+ struct sk_buff *skb = NULL;
+ struct nlmsghdr *nlh = NULL;
+ struct fib_result_nl *frn;
+- int err;
+ u32 pid;
+ struct fib_table *tb;
+
+- skb = skb_recv_datagram(sk, 0, 0, &err);
++ skb = skb_dequeue(&sk->sk_receive_queue);
+ nlh = (struct nlmsghdr *)skb->data;
++ if (skb->len < NLMSG_SPACE(0) || skb->len < nlh->nlmsg_len ||
++ nlh->nlmsg_len < NLMSG_LENGTH(sizeof(*frn))) {
++ kfree_skb(skb);
++ return;
++ }
+
+ frn = (struct fib_result_nl *) NLMSG_DATA(nlh);
+ tb = fib_get_table(frn->tb_id_in);
--- /dev/null
+From stable-bounces@linux.kernel.org Mon Dec 12 12:32:30 2005
+Date: Mon, 7 Nov 2005 14:02:58 -0800
+Message-Id: <200511072202.jA7M2wXl001471@hera.kernel.org>
+From: Linux Kernel Mailing List <linux-kernel@vger.kernel.org>
+To: git-commits-head@vger.kernel.org
+Cc:
+Subject: AGPGART: Fix serverworks TLB flush.
+
+From: Dave Jones <davej@redhat.com>
+
+[AGPGART] Fix serverworks TLB flush.
+Go back to what 2.4 kernels used to do here, as if this hits,
+the kernel just hangs indefinitly.
+
+Actually an improvement over 2.4 - we now break; out of the loop
+instead of just printing messages on timeouts.
+
+Signed-off-by: Dave Jones <davej@redhat.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+
+
+---
+ drivers/char/agp/sworks-agp.c | 18 ++++++++++++++++--
+ 1 file changed, 16 insertions(+), 2 deletions(-)
+
+--- linux-2.6.14.3.orig/drivers/char/agp/sworks-agp.c
++++ linux-2.6.14.3/drivers/char/agp/sworks-agp.c
+@@ -242,13 +242,27 @@ static int serverworks_fetch_size(void)
+ */
+ static void serverworks_tlbflush(struct agp_memory *temp)
+ {
++ unsigned long timeout;
++
+ writeb(1, serverworks_private.registers+SVWRKS_POSTFLUSH);
+- while (readb(serverworks_private.registers+SVWRKS_POSTFLUSH) == 1)
++ timeout = jiffies + 3*HZ;
++ while (readb(serverworks_private.registers+SVWRKS_POSTFLUSH) == 1) {
+ cpu_relax();
++ if (time_after(jiffies, timeout)) {
++ printk(KERN_ERR PFX "TLB post flush took more than 3 seconds\n");
++ break;
++ }
++ }
+
+ writel(1, serverworks_private.registers+SVWRKS_DIRFLUSH);
+- while(readl(serverworks_private.registers+SVWRKS_DIRFLUSH) == 1)
++ timeout = jiffies + 3*HZ;
++ while (readl(serverworks_private.registers+SVWRKS_DIRFLUSH) == 1) {
+ cpu_relax();
++ if (time_after(jiffies, timeout)) {
++ printk(KERN_ERR PFX "TLB Dir flush took more than 3 seconds\n");
++ break;
++ }
++ }
+ }
+
+ static int serverworks_configure(void)
--- /dev/null
+From stable-bounces@linux.kernel.org Tue Dec 6 23:50:21 2005
+Date: Wed, 7 Dec 2005 08:46:33 +0100
+From: Dominik Brodowski <linux@dominikbrodowski.net>
+To: stable@kernel.org
+Message-ID: <20051207074633.GA26768@dominikbrodowski.de>
+Content-Disposition: inline
+Cc:
+Subject: i82365: release all resources if no devices are found
+
+From: Igor Popik <igor.popik@gmail.com>
+
+The i82365 driver does not release all the resources when the device is not
+found. This can cause an oops when reading /proc/ioports after module
+unload (e.g. bug #5657).
+
+Signed-off-by: Igor Popik <igor.popik@gmail.com>
+Signed-off-by: Dominik Brodowski <linux@dominikbrodowski.net>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+---
+ drivers/pcmcia/i82365.c | 1 +
+ 1 file changed, 1 insertion(+)
+
+--- linux-2.6.14.3.orig/drivers/pcmcia/i82365.c
++++ linux-2.6.14.3/drivers/pcmcia/i82365.c
+@@ -1382,6 +1382,7 @@ static int __init init_i82365(void)
+ if (sockets == 0) {
+ printk("not found.\n");
+ platform_device_unregister(&i82365_device);
++ release_region(i365_base, 2);
+ driver_unregister(&i82365_driver);
+ return -ENODEV;
+ }
--- /dev/null
+From stable-bounces@linux.kernel.org Mon Dec 12 12:32:39 2005
+Date: Sat, 12 Nov 2005 11:59:25 -0800
+Message-Id: <200511121959.jACJxPZh004172@hera.kernel.org>
+From: Linux Kernel Mailing List <linux-kernel@vger.kernel.org>
+To: git-commits-head@vger.kernel.org
+Cc:
+Subject: I8K: fix /proc reporting of blank service tags
+
+From: Dmitry Torokhov <dtor_core@ameritech.net>
+
+[PATCH] I8K: fix /proc reporting of blank service tags
+
+Make /proc/i8k display '?' when service tag is blank in BIOS.
+This fixes segfault in i8k gkrellm plugin.
+
+Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
+Signed-off-by: Linus Torvalds <torvalds@osdl.org>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+
+
+---
+ drivers/char/i8k.c | 6 ++++--
+ 1 file changed, 4 insertions(+), 2 deletions(-)
+
+--- linux-2.6.14.3.orig/drivers/char/i8k.c
++++ linux-2.6.14.3/drivers/char/i8k.c
+@@ -99,7 +99,9 @@ struct smm_regs {
+
+ static inline char *i8k_get_dmi_data(int field)
+ {
+- return dmi_get_system_info(field) ? : "N/A";
++ char *dmi_data = dmi_get_system_info(field);
++
++ return dmi_data && *dmi_data ? dmi_data : "?";
+ }
+
+ /*
+@@ -396,7 +398,7 @@ static int i8k_proc_show(struct seq_file
+ return seq_printf(seq, "%s %s %s %d %d %d %d %d %d %d\n",
+ I8K_PROC_FMT,
+ bios_version,
+- dmi_get_system_info(DMI_PRODUCT_SERIAL) ? : "N/A",
++ i8k_get_dmi_data(DMI_PRODUCT_SERIAL),
+ cpu_temp,
+ left_fan, right_fan, left_speed, right_speed,
+ ac_power, fn_key);
--- /dev/null
+From stable-bounces@linux.kernel.org Mon Dec 12 12:32:46 2005
+Date: Wed, 9 Nov 2005 21:02:07 -0800
+Message-Id: <200511100502.jAA527xg006881@hera.kernel.org>
+From: Linux Kernel Mailing List <linux-kernel@vger.kernel.org>
+To: git-commits-head@vger.kernel.org
+Cc:
+Subject: ide-floppy: software eject not working with LS-120 drive
+
+From: Ondrej Zary <linux@rainbow-software.org>
+
+The problem (eject not working on ATAPI LS-120 drive) is caused by
+idefloppy_ioctl() function which *first* tries generic_ide_ioctl()
+and *only* if it fails with -EINVAL, proceeds with the specific ioctls.
+The generic eject command fails with something other than -EINVAL
+and the specific one is never executed.
+
+This patch fixes it by first going through the internal ioctls
+and only trying generic_ide_ioctl() if none of them matches.
+
+Signed-off-by: Ondrej Zary <linux@rainbow-software.org>
+Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+
+---
+ drivers/ide/ide-floppy.c | 6 ++----
+ 1 file changed, 2 insertions(+), 4 deletions(-)
+
+--- linux-2.6.14.3.orig/drivers/ide/ide-floppy.c
++++ linux-2.6.14.3/drivers/ide/ide-floppy.c
+@@ -2038,11 +2038,9 @@ static int idefloppy_ioctl(struct inode
+ struct ide_floppy_obj *floppy = ide_floppy_g(bdev->bd_disk);
+ ide_drive_t *drive = floppy->drive;
+ void __user *argp = (void __user *)arg;
+- int err = generic_ide_ioctl(drive, file, bdev, cmd, arg);
++ int err;
+ int prevent = (arg) ? 1 : 0;
+ idefloppy_pc_t pc;
+- if (err != -EINVAL)
+- return err;
+
+ switch (cmd) {
+ case CDROMEJECT:
+@@ -2094,7 +2092,7 @@ static int idefloppy_ioctl(struct inode
+ case IDEFLOPPY_IOCTL_FORMAT_GET_PROGRESS:
+ return idefloppy_get_format_progress(drive, argp);
+ }
+- return -EINVAL;
++ return generic_ide_ioctl(drive, file, bdev, cmd, arg);
+ }
+
+ static int idefloppy_media_changed(struct gendisk *disk)
--- /dev/null
+From stable-bounces@linux.kernel.org Mon Nov 28 03:46:11 2005
+Date: Mon, 28 Nov 2005 12:46:00 +0100
+From: Adrian Bunk <bunk@stusta.de>
+To: stable@kernel.org
+Cc:
+Subject: drivers/infiniband/core/mad.c: fix a use-after-free
+
+The Coverity checker spotted this obvious use-after-free
+caused by a wrong order of the cleanups.
+
+Signed-off-by: Adrian Bunk <bunk@stusta.de>
+Acked-by: Roland Dreier <rolandd@cisco.com>
+Signed-off-by: Chris Wright <chrisw@osdl.org>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+---
+ drivers/infiniband/core/mad.c | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+--- linux-2.6.14.3.orig/drivers/infiniband/core/mad.c
++++ linux-2.6.14.3/drivers/infiniband/core/mad.c
+@@ -356,9 +356,9 @@ error4:
+ spin_unlock_irqrestore(&port_priv->reg_lock, flags);
+ kfree(reg_req);
+ error3:
+- kfree(mad_agent_priv);
+-error2:
+ ib_dereg_mr(mad_agent_priv->agent.mr);
++error2:
++ kfree(mad_agent_priv);
+ error1:
+ return ret;
+ }
--- /dev/null
+From stable-bounces@linux.kernel.org Mon Dec 12 12:27:15 2005
+Date: Mon, 31 Oct 2005 09:05:36 -0800
+Message-Id: <200510311705.j9VH5aDM031690@hera.kernel.org>
+From: Linux Kernel Mailing List <linux-kernel@vger.kernel.org>
+To: git-commits-head@vger.kernel.org
+Cc:
+Subject: libata: locking rewrite (== fix)
+
+From: Jeff Garzik <jgarzik@pobox.com>
+
+[libata] locking rewrite (== fix)
+
+A lot of power packed into a little patch.
+
+This change eliminates the sharing between our controller-wide spinlock
+and the SCSI core's Scsi_Host lock. As the locking in libata was
+already highly compartmentalized, always referencing our own lock, and
+never scsi_host::host_lock.
+
+As a side effect, this change eliminates a deadlock from calling
+scsi_finish_command() while inside our spinlock.
+
+
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+
+---
+ drivers/scsi/libata-core.c | 2 --
+ drivers/scsi/libata-scsi.c | 9 ++++++++-
+ 2 files changed, 8 insertions(+), 3 deletions(-)
+
+--- linux-2.6.14.3.orig/drivers/scsi/libata-core.c
++++ linux-2.6.14.3/drivers/scsi/libata-core.c
+@@ -3916,8 +3916,6 @@ static void ata_host_init(struct ata_por
+ host->unique_id = ata_unique_id++;
+ host->max_cmd_len = 12;
+
+- scsi_assign_lock(host, &host_set->lock);
+-
+ ap->flags = ATA_FLAG_PORT_DISABLED;
+ ap->id = host->unique_id;
+ ap->host = host;
+--- linux-2.6.14.3.orig/drivers/scsi/libata-scsi.c
++++ linux-2.6.14.3/drivers/scsi/libata-scsi.c
+@@ -39,6 +39,7 @@
+ #include <scsi/scsi.h>
+ #include "scsi.h"
+ #include <scsi/scsi_host.h>
++#include <scsi/scsi_device.h>
+ #include <linux/libata.h>
+ #include <asm/uaccess.h>
+
+@@ -1565,8 +1566,12 @@ int ata_scsi_queuecmd(struct scsi_cmnd *
+ struct ata_port *ap;
+ struct ata_device *dev;
+ struct scsi_device *scsidev = cmd->device;
++ struct Scsi_Host *shost = scsidev->host;
+
+- ap = (struct ata_port *) &scsidev->host->hostdata[0];
++ ap = (struct ata_port *) &shost->hostdata[0];
++
++ spin_unlock(shost->host_lock);
++ spin_lock(&ap->host_set->lock);
+
+ ata_scsi_dump_cdb(ap, cmd);
+
+@@ -1589,6 +1594,8 @@ int ata_scsi_queuecmd(struct scsi_cmnd *
+ ata_scsi_translate(ap, dev, cmd, done, atapi_xlat);
+
+ out_unlock:
++ spin_unlock(&ap->host_set->lock);
++ spin_lock(shost->host_lock);
+ return 0;
+ }
+
--- /dev/null
+From stable-bounces@linux.kernel.org Mon Nov 28 03:44:57 2005
+Date: Mon, 28 Nov 2005 12:44:47 +0100
+From: Adrian Bunk <bunk@stusta.de>
+To: stable@kernel.org
+Cc:
+Subject: drivers/message/i2o/pci.c: fix a use-after-free
+
+The Coverity checker spotted this obvious use-after-free
+
+Signed-off-by: Adrian Bunk <bunk@stusta.de>
+Signed-off-by: Markus Lidel <Markus.Lidel@shadowconnect.com>
+Signed-off-by: Chris Wright <chrisw@osdl.org>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+---
+ drivers/message/i2o/pci.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+--- linux-2.6.14.3.orig/drivers/message/i2o/pci.c
++++ linux-2.6.14.3/drivers/message/i2o/pci.c
+@@ -421,8 +421,8 @@ static int __devinit i2o_pci_probe(struc
+ i2o_pci_free(c);
+
+ free_controller:
+- i2o_iop_free(c);
+ put_device(c->device.parent);
++ i2o_iop_free(c);
+
+ disable:
+ pci_disable_device(pdev);
--- /dev/null
+From stable-bounces@linux.kernel.org Tue Dec 6 18:56:50 2005
+Date: Tue, 6 Dec 2005 21:51:53 -0500
+From: Dave Jones <davej@redhat.com>
+To: stable@kernel.org
+Message-ID: <20051207025153.GA22374@redhat.com>
+Content-Disposition: inline
+Cc:
+Subject: ALSA: nm256: reset workaround for Latitude CSx
+
+From: John W. Linville <linville@tuxdriver.com>
+
+Modules: NM256 driver
+
+The current snd-nm256 driver can cause Dell Latitude CSx laptops to
+lock-up during module (un)load. I have isolated this to the writes to
+the control port register at offset 0x6cc which were not already
+protected by the existing reset_workaround.
+
+I tried grouping these writes with the existing reset_workaround
+clause, but that caused the driver to have (un)load problems on the
+Dell Latitude LS laptops. So, I have implemented a reset_workaround_2
+clause (please feel free to suggest a better name!) to cover this
+situation and added a quirk entry for the CSx laptops.
+
+Signed-off-by: John W. Linville <linville@tuxdriver.com>
+Signed-off-by: Takashi Iwai <tiwai@suse.de>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+
+
+---
+ sound/pci/nm256/nm256.c | 23 ++++++++++++++++++++---
+ 1 file changed, 20 insertions(+), 3 deletions(-)
+
+--- linux-2.6.14.3.orig/sound/pci/nm256/nm256.c
++++ linux-2.6.14.3/sound/pci/nm256/nm256.c
+@@ -62,6 +62,7 @@ static int buffer_top[SNDRV_CARDS] = {[0
+ static int use_cache[SNDRV_CARDS] = {[0 ... (SNDRV_CARDS - 1)] = 0}; /* disabled */
+ static int vaio_hack[SNDRV_CARDS] = {[0 ... (SNDRV_CARDS - 1)] = 0}; /* disabled */
+ static int reset_workaround[SNDRV_CARDS];
++static int reset_workaround_2[SNDRV_CARDS];
+
+ module_param_array(index, int, NULL, 0444);
+ MODULE_PARM_DESC(index, "Index value for " CARD_NAME " soundcard.");
+@@ -83,6 +84,8 @@ module_param_array(vaio_hack, bool, NULL
+ MODULE_PARM_DESC(vaio_hack, "Enable workaround for Sony VAIO notebooks.");
+ module_param_array(reset_workaround, bool, NULL, 0444);
+ MODULE_PARM_DESC(reset_workaround, "Enable AC97 RESET workaround for some laptops.");
++module_param_array(reset_workaround_2, bool, NULL, 0444);
++MODULE_PARM_DESC(reset_workaround_2, "Enable extended AC97 RESET workaround for some other laptops.");
+
+ /*
+ * hw definitions
+@@ -226,6 +229,7 @@ struct snd_nm256 {
+ unsigned int coeffs_current: 1; /* coeff. table is loaded? */
+ unsigned int use_cache: 1; /* use one big coef. table */
+ unsigned int reset_workaround: 1; /* Workaround for some laptops to avoid freeze */
++ unsigned int reset_workaround_2: 1; /* Extended workaround for some other laptops to avoid freeze */
+
+ int mixer_base; /* register offset of ac97 mixer */
+ int mixer_status_offset; /* offset of mixer status reg. */
+@@ -1199,8 +1203,11 @@ snd_nm256_ac97_reset(ac97_t *ac97)
+ /* Dell latitude LS will lock up by this */
+ snd_nm256_writeb(chip, 0x6cc, 0x87);
+ }
+- snd_nm256_writeb(chip, 0x6cc, 0x80);
+- snd_nm256_writeb(chip, 0x6cc, 0x0);
++ if (! chip->reset_workaround_2) {
++ /* Dell latitude CSx will lock up by this */
++ snd_nm256_writeb(chip, 0x6cc, 0x80);
++ snd_nm256_writeb(chip, 0x6cc, 0x0);
++ }
+ }
+
+ /* create an ac97 mixer interface */
+@@ -1542,7 +1549,7 @@ struct nm256_quirk {
+ int type;
+ };
+
+-enum { NM_BLACKLISTED, NM_RESET_WORKAROUND };
++enum { NM_BLACKLISTED, NM_RESET_WORKAROUND, NM_RESET_WORKAROUND_2 };
+
+ static struct nm256_quirk nm256_quirks[] __devinitdata = {
+ /* HP omnibook 4150 has cs4232 codec internally */
+@@ -1551,6 +1558,8 @@ static struct nm256_quirk nm256_quirks[]
+ { .vendor = 0x104d, .device = 0x8041, .type = NM_RESET_WORKAROUND },
+ /* Dell Latitude LS */
+ { .vendor = 0x1028, .device = 0x0080, .type = NM_RESET_WORKAROUND },
++ /* Dell Latitude CSx */
++ { .vendor = 0x1028, .device = 0x0091, .type = NM_RESET_WORKAROUND_2 },
+ { } /* terminator */
+ };
+
+@@ -1582,6 +1591,9 @@ static int __devinit snd_nm256_probe(str
+ case NM_BLACKLISTED:
+ printk(KERN_INFO "nm256: The device is blacklisted. Loading stopped\n");
+ return -ENODEV;
++ case NM_RESET_WORKAROUND_2:
++ reset_workaround_2[dev] = 1;
++ /* Fall-through */
+ case NM_RESET_WORKAROUND:
+ reset_workaround[dev] = 1;
+ break;
+@@ -1638,6 +1650,11 @@ static int __devinit snd_nm256_probe(str
+ chip->reset_workaround = 1;
+ }
+
++ if (reset_workaround_2[dev]) {
++ snd_printdd(KERN_INFO "nm256: reset_workaround_2 activated\n");
++ chip->reset_workaround_2 = 1;
++ }
++
+ if ((err = snd_nm256_pcm(chip, 0)) < 0 ||
+ (err = snd_nm256_mixer(chip)) < 0) {
+ snd_card_free(card);
--- /dev/null
+From stable-bounces@linux.kernel.org Mon Dec 12 12:27:13 2005
+Date: Thu, 24 Nov 2005 00:00:03 -0800
+Message-Id: <200511240800.jAO803jw027240@hera.kernel.org>
+From: Linux Kernel Mailing List <linux-kernel@vger.kernel.org>
+To: git-commits-head@vger.kernel.org
+Cc:
+Subject: BRIDGE: recompute features when adding a new device
+
+From: Olaf Rempel <razzor@kopf-tisch.de>
+
+[BRIDGE]: recompute features when adding a new device
+
+We must recompute bridge features everytime the list of underlying
+devices changes, or we might end up with features that are not supported
+by all devices (eg. NETIF_F_TSO)
+This patch adds the missing recompute when adding a device to the bridge.
+
+Signed-off-by: Olaf Rempel <razzor@kopf-tisch.de>
+Signed-off-by: David S. Miller <davem@davemloft.net>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+
+---
+ net/bridge/br_if.c | 1 +
+ 1 file changed, 1 insertion(+)
+
+--- linux-2.6.14.3.orig/net/bridge/br_if.c
++++ linux-2.6.14.3/net/bridge/br_if.c
+@@ -366,6 +366,7 @@ int br_add_if(struct net_bridge *br, str
+
+ spin_lock_bh(&br->lock);
+ br_stp_recalculate_bridge_id(br);
++ br_features_recompute(br);
+ if ((br->dev->flags & IFF_UP)
+ && (dev->flags & IFF_UP) && netif_carrier_ok(dev))
+ br_stp_enable_port(p);
--- /dev/null
+dpt_i2o-fix-a-null-pointer-deref.patch
+message-i2o-pci-fix-null-pointer-deref.patch
+infiniband-fix-a-null-pointer-deref.patch
+fix-crash-when-ptrace-poking-hugepage-areas.patch
+usb-adapt-microtek-driver-to-new-scsi-features.patch
+setkeys-needs-root.patch
+fix-processing-of-fib_lookup-netlink-messages.patch
+fix-listxattr-for-generic-security-attributes.patch
+dvb-budget-ci-card-depends-on-stv0297-demodulator.patch
+acpi-fix-hp-nx8220-boot-hang-regression.patch
+32bit-integer-overflow-in-invalidate_inode_pages2.patch
+v4l-dvb-fix-tuner-init-for-pinnacle-pctv-stereo.patch
+v4l-dvb-fix-analog-ntsc-for-thomson-dtt-761x-hybrid-tuner.patch
+nm256-reset-workaround-for-latitude-csx.patch
+i82365-release-all-resources-if-no-devices-are-found.patch
+fix-serverworks-tlb-flush..patch
+bonding-fix-feature-consolidation.patch
+recompute-features-when-adding-a-new-device.patch
+locking-rewrite.patch
+i8k-fix-proc-reporting-of-blank-service-tags.patch
+ide-floppy-software-eject-not-working-with-ls-120-drive.patch
+cciss-bug-fix-for-hpacucli.patch
+cciss-bug-fix-for-big_pass_thru.patch
+add-try_to_freeze-to-kauditd.patch
--- /dev/null
+From stable-bounces@linux.kernel.org Fri Dec 2 13:00:25 2005
+Message-ID: <4390B4F5.5000907@gentoo.org>
+Date: Fri, 02 Dec 2005 20:56:21 +0000
+From: Daniel Drake <dsd@gentoo.org>
+To: stable@kernel.org
+Cc: marcelo.tosatti@cyclades.com, mikpe@csd.uu.se
+Subject: setkeys needs root
+
+This patch combines commit 0b360adbdb54d5b98b78d57ba0916bc4b8871968 (make
+setkeys root-only) and commit e3f17f0f6e98f58edb13cb38810d93e6d4808e68 (only
+disallow setting by users)
+
+ Because people can play games reprogramming keys and leaving traps for the
+ next user of the console.
+
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+
+
+---
+ drivers/char/vt_ioctl.c | 6 ++++++
+ 1 file changed, 6 insertions(+)
+
+--- linux-2.6.14.3.orig/drivers/char/vt_ioctl.c
++++ linux-2.6.14.3/drivers/char/vt_ioctl.c
+@@ -80,6 +80,9 @@ do_kdsk_ioctl(int cmd, struct kbentry __
+ if (copy_from_user(&tmp, user_kbe, sizeof(struct kbentry)))
+ return -EFAULT;
+
++ if (!capable(CAP_SYS_TTY_CONFIG))
++ perm = 0;
++
+ switch (cmd) {
+ case KDGKBENT:
+ key_map = key_maps[s];
+@@ -192,6 +195,9 @@ do_kdgkb_ioctl(int cmd, struct kbsentry
+ int i, j, k;
+ int ret;
+
++ if (!capable(CAP_SYS_TTY_CONFIG))
++ perm = 0;
++
+ kbs = kmalloc(sizeof(*kbs), GFP_KERNEL);
+ if (!kbs) {
+ ret = -ENOMEM;
--- /dev/null
+From stable-bounces@linux.kernel.org Fri Dec 2 12:50:00 2005
+Message-ID: <4390B2E1.5010507@gentoo.org>
+Date: Fri, 02 Dec 2005 20:47:29 +0000
+From: Daniel Drake <dsd@gentoo.org>
+To: stable@kernel.org
+Cc: oliver@neukum.org
+Subject: USB: Adapt microtek driver to new scsi features
+X-Git-Tag: v2.6.15-rc2
+X-Git-Url: http://www.kernel.org/git/gitweb.cgi?p=linux/kernel/git/torvalds/linux-2.6.git;a=commitdiff;h=9142d59a451731d23539d218c962418acc93283c
+
+From: Oliver Neukum <oliver@neukum.org>
+
+[PATCH] USB: Adapt microtek driver to new scsi features
+
+the scsi layer now uses very short sg lists. This breaks the microtek
+driver. Here is a patch fixes this and some other issues.
+
+Signed-off-by: Oliver Neukum <oliver@neukum.name>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+Signed-off-by: Linus Torvalds <torvalds@osdl.org>
+---
+ drivers/usb/image/microtek.c | 31 +++++++++++++++++++++++++------
+ drivers/usb/image/microtek.h | 2 +-
+ 2 files changed, 26 insertions(+), 7 deletions(-)
+
+--- linux-2.6.14.3.orig/drivers/usb/image/microtek.c
++++ linux-2.6.14.3/drivers/usb/image/microtek.c
+@@ -327,6 +327,18 @@ static inline void mts_urb_abort(struct
+ usb_kill_urb( desc->urb );
+ }
+
++static int mts_slave_alloc (struct scsi_device *s)
++{
++ s->inquiry_len = 0x24;
++ return 0;
++}
++
++static int mts_slave_configure (struct scsi_device *s)
++{
++ blk_queue_dma_alignment(s->request_queue, (512 - 1));
++ return 0;
++}
++
+ static int mts_scsi_abort (Scsi_Cmnd *srb)
+ {
+ struct mts_desc* desc = (struct mts_desc*)(srb->device->host->hostdata[0]);
+@@ -411,7 +423,7 @@ static void mts_transfer_done( struct ur
+ MTS_INT_INIT();
+
+ context->srb->result &= MTS_SCSI_ERR_MASK;
+- context->srb->result |= (unsigned)context->status<<1;
++ context->srb->result |= (unsigned)(*context->scsi_status)<<1;
+
+ mts_transfer_cleanup(transfer);
+
+@@ -427,7 +439,7 @@ static void mts_get_status( struct urb *
+ mts_int_submit_urb(transfer,
+ usb_rcvbulkpipe(context->instance->usb_dev,
+ context->instance->ep_response),
+- &context->status,
++ context->scsi_status,
+ 1,
+ mts_transfer_done );
+ }
+@@ -481,7 +493,7 @@ static void mts_command_done( struct urb
+ context->data_pipe,
+ context->data,
+ context->data_length,
+- context->srb->use_sg ? mts_do_sg : mts_data_done);
++ context->srb->use_sg > 1 ? mts_do_sg : mts_data_done);
+ } else {
+ mts_get_status(transfer);
+ }
+@@ -627,7 +639,6 @@ int mts_scsi_queuecommand( Scsi_Cmnd *sr
+ callback(srb);
+
+ }
+-
+ out:
+ return err;
+ }
+@@ -645,6 +656,9 @@ static Scsi_Host_Template mts_scsi_host_
+ .cmd_per_lun = 1,
+ .use_clustering = 1,
+ .emulated = 1,
++ .slave_alloc = mts_slave_alloc,
++ .slave_configure = mts_slave_configure,
++ .max_sectors= 256, /* 128 K */
+ };
+
+ struct vendor_product
+@@ -782,6 +796,10 @@ static int mts_usb_probe(struct usb_inte
+ if (!new_desc->urb)
+ goto out_kfree;
+
++ new_desc->context.scsi_status = kmalloc(1, GFP_KERNEL);
++ if (!new_desc->context.scsi_status)
++ goto out_kfree2;
++
+ new_desc->usb_dev = dev;
+ new_desc->usb_intf = intf;
+ init_MUTEX(&new_desc->lock);
+@@ -818,6 +836,8 @@ static int mts_usb_probe(struct usb_inte
+ usb_set_intfdata(intf, new_desc);
+ return 0;
+
++ out_kfree2:
++ kfree(new_desc->context.scsi_status);
+ out_free_urb:
+ usb_free_urb(new_desc->urb);
+ out_kfree:
+@@ -837,6 +857,7 @@ static void mts_usb_disconnect (struct u
+
+ scsi_host_put(desc->host);
+ usb_free_urb(desc->urb);
++ kfree(desc->context.scsi_status);
+ kfree(desc);
+ }
+
+@@ -857,5 +878,3 @@ module_exit(microtek_drv_exit);
+ MODULE_AUTHOR( DRIVER_AUTHOR );
+ MODULE_DESCRIPTION( DRIVER_DESC );
+ MODULE_LICENSE("GPL");
+-
+-
+--- linux-2.6.14.3.orig/drivers/usb/image/microtek.h
++++ linux-2.6.14.3/drivers/usb/image/microtek.h
+@@ -22,7 +22,7 @@ struct mts_transfer_context
+ int data_pipe;
+ int fragment;
+
+- u8 status; /* status returned from ep_response after command completion */
++ u8 *scsi_status; /* status returned from ep_response after command completion */
+ };
+
+
--- /dev/null
+From stable-bounces@linux.kernel.org Thu Dec 8 22:27:06 2005
+Message-ID: <43991E34.60503@gmail.com>
+Date: Fri, 09 Dec 2005 01:03:32 -0500
+From: Michael Krufky <mkrufky@gmail.com>
+To: stable@kernel.org
+Cc: Mauro Carvalho Chehab <mchehab@brturbo.com.br>,
+ lkml <linux-kernel@vger.kernel.org>, mkrufky@gmail.com
+Subject: V4L/DVB: Fix analog NTSC for Thomson DTT 761X hybrid tuner
+
+[PATCH] V4L/DVB: Fix analog NTSC for Thomson DTT 761X hybrid tuner
+
+- Enable tda9887 on the following cx88 boards:
+ pcHDTV 3000
+ FusionHDTV3 Gold-T
+- This ensures that analog NTSC video will function properly, without
+ this patch, the tuner may appear to be broken.
+
+Signed-off-by: Michael Krufky <mkrufky@m1k.net>
+Signed-off-by: Mauro Carvalho Chehab <mchehab@brturbo.com.br>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+---
+ drivers/media/video/cx88/cx88-cards.c | 2 ++
+ 1 file changed, 2 insertions(+)
+
+--- linux-2.6.14.3.orig/drivers/media/video/cx88/cx88-cards.c
++++ linux-2.6.14.3/drivers/media/video/cx88/cx88-cards.c
+@@ -567,6 +567,7 @@ struct cx88_board cx88_boards[] = {
+ .radio_type = UNSET,
+ .tuner_addr = ADDR_UNSET,
+ .radio_addr = ADDR_UNSET,
++ .tda9887_conf = TDA9887_PRESENT,
+ .input = {{
+ .type = CX88_VMUX_TELEVISION,
+ .vmux = 0,
+@@ -711,6 +712,7 @@ struct cx88_board cx88_boards[] = {
+ .radio_type = UNSET,
+ .tuner_addr = ADDR_UNSET,
+ .radio_addr = ADDR_UNSET,
++ .tda9887_conf = TDA9887_PRESENT,
+ .input = {{
+ .type = CX88_VMUX_TELEVISION,
+ .vmux = 0,
--- /dev/null
+From stable-bounces@linux.kernel.org Thu Dec 8 15:26:50 2005
+From: mchehab@brturbo.com.br
+To: akpm@osdl.org
+Date: Thu, 08 Dec 2005 21:18:47 -0200
+Message-Id: <1134083966.7047.160.camel@localhost>
+Cc: js@linuxtv.org, Mauro Carvalho Chehab <mchehab@brturbo.com.br>,
+ linux-kernel@vger.kernel.org, mchehab@infradead.org,
+ linux-dvb-maintainer@linuxtv.org, stable@kernel.org,
+ Ricardo Cerqueira <v4l@cerqueira.org>
+Subject: V4L/DVB (3135) Fix tuner init for Pinnacle PCTV Stereo
+
+From: Ricardo Cerqueira <v4l@cerqueira.org>
+
+- The Pinnacle PCTV Stereo needs tda9887 port2 set to 1
+- Without this patch, mt20xx tuner is not detected and the board
+ doesn't tune.
+
+Signed-off-by: Ricardo Cerqueira <v4l@cerqueira.org>
+Signed-off-by: Mauro Carvalho Chehab <mchehab@brturbo.com.br>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+
+
+---
+ drivers/media/video/saa7134/saa7134-cards.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+--- linux-2.6.14.3.orig/drivers/media/video/saa7134/saa7134-cards.c
++++ linux-2.6.14.3/drivers/media/video/saa7134/saa7134-cards.c
+@@ -972,7 +972,7 @@ struct saa7134_board saa7134_boards[] =
+ .radio_type = UNSET,
+ .tuner_addr = ADDR_UNSET,
+ .radio_addr = ADDR_UNSET,
+- .tda9887_conf = TDA9887_PRESENT | TDA9887_INTERCARRIER,
++ .tda9887_conf = TDA9887_PRESENT | TDA9887_INTERCARRIER | TDA9887_PORT2_ACTIVE,
+ .inputs = {{
+ .name = name_tv,
+ .vmux = 3,