--- /dev/null
+From 81b2dbcad86732ffc02bad87aa25c4651199fc77 Mon Sep 17 00:00:00 2001
+From: Arjan van de Ven <arjan@linux.intel.com>
+Date: Tue, 20 May 2008 09:53:52 -0700
+Subject: bttv: Fix a deadlock in the bttv driver
+
+From: Arjan van de Ven <arjan@linux.intel.com>
+
+commit 81b2dbcad86732ffc02bad87aa25c4651199fc77 in mainline.
+
+vidiocgmbuf() does this:
+ mutex_lock(&fh->cap.vb_lock);
+ retval = videobuf_mmap_setup(&fh->cap, gbuffers, gbufsize,
+ V4L2_MEMORY_MMAP);
+
+and videobuf_mmap_setup() then just does
+ mutex_lock(&q->vb_lock);
+ ret = __videobuf_mmap_setup(q, bcount, bsize, memory);
+ mutex_unlock(&q->vb_lock);
+
+which is an obvious double-take deadlock.
+
+This patch fixes this by having vidiocgmbuf() just call the
+__videobuf_mmap_setup function instead.
+
+Acked-by: Mauro Carvalho Chehab <mchehab@infradead.org>
+Reported-by: Koos Vriezen <koos.vriezen@gmail.com>
+Signed-off-by: Arjan van de Ven <arjan@linux.intel.com>
+Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+
+---
+ drivers/media/video/bt8xx/bttv-driver.c | 2 +-
+ drivers/media/video/videobuf-core.c | 3 ++-
+ include/media/videobuf-core.h | 3 +++
+ 3 files changed, 6 insertions(+), 2 deletions(-)
+
+--- a/drivers/media/video/bt8xx/bttv-driver.c
++++ b/drivers/media/video/bt8xx/bttv-driver.c
+@@ -2613,7 +2613,7 @@ static int vidiocgmbuf(struct file *file
+ struct bttv_fh *fh = priv;
+
+ mutex_lock(&fh->cap.vb_lock);
+- retval = videobuf_mmap_setup(&fh->cap, gbuffers, gbufsize,
++ retval = __videobuf_mmap_setup(&fh->cap, gbuffers, gbufsize,
+ V4L2_MEMORY_MMAP);
+ if (retval < 0) {
+ mutex_unlock(&fh->cap.vb_lock);
+--- a/drivers/media/video/videobuf-core.c
++++ b/drivers/media/video/videobuf-core.c
+@@ -335,7 +335,7 @@ int videobuf_mmap_free(struct videobuf_q
+ }
+
+ /* Locking: Caller holds q->vb_lock */
+-static int __videobuf_mmap_setup(struct videobuf_queue *q,
++int __videobuf_mmap_setup(struct videobuf_queue *q,
+ unsigned int bcount, unsigned int bsize,
+ enum v4l2_memory memory)
+ {
+@@ -1093,6 +1093,7 @@ EXPORT_SYMBOL_GPL(videobuf_read_stream);
+ EXPORT_SYMBOL_GPL(videobuf_read_one);
+ EXPORT_SYMBOL_GPL(videobuf_poll_stream);
+
++EXPORT_SYMBOL_GPL(__videobuf_mmap_setup);
+ EXPORT_SYMBOL_GPL(videobuf_mmap_setup);
+ EXPORT_SYMBOL_GPL(videobuf_mmap_free);
+ EXPORT_SYMBOL_GPL(videobuf_mmap_mapper);
+--- a/include/media/videobuf-core.h
++++ b/include/media/videobuf-core.h
+@@ -227,6 +227,9 @@ unsigned int videobuf_poll_stream(struct
+ int videobuf_mmap_setup(struct videobuf_queue *q,
+ unsigned int bcount, unsigned int bsize,
+ enum v4l2_memory memory);
++int __videobuf_mmap_setup(struct videobuf_queue *q,
++ unsigned int bcount, unsigned int bsize,
++ enum v4l2_memory memory);
+ int videobuf_mmap_free(struct videobuf_queue *q);
+ int videobuf_mmap_mapper(struct videobuf_queue *q,
+ struct vm_area_struct *vma);
--- /dev/null
+From 79ee9a8b2d328243488fee8b55bfacc822049a2a Mon Sep 17 00:00:00 2001
+From: Marcin Slusarz <marcin.slusarz@gmail.com>
+Date: Tue, 10 Jun 2008 21:37:02 +0000
+Subject: cifs: fix oops on mount when CONFIG_CIFS_DFS_UPCALL is enabled
+Message-ID: <20080607190055.GA5726@joi>
+
+From: Marcin Slusarz <marcin.slusarz@gmail.com>
+
+simple "mount -t cifs //xxx /mnt" oopsed on strlen of options
+http://kerneloops.org/guilty.php?guilty=cifs_get_sb&version=2.6.25-release&start=16711 \
+68&end=1703935&class=oops
+
+Signed-off-by: Marcin Slusarz <marcin.slusarz@gmail.com>
+Acked-by: Jeff Layton <jlayton@redhat.com>
+Signed-off-by: Steve French <sfrench@us.ibm.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+
+---
+ fs/cifs/cifsfs.c | 21 ++++++++++-----------
+ 1 file changed, 10 insertions(+), 11 deletions(-)
+
+--- a/fs/cifs/cifsfs.c
++++ b/fs/cifs/cifsfs.c
+@@ -97,9 +97,6 @@ cifs_read_super(struct super_block *sb,
+ {
+ struct inode *inode;
+ struct cifs_sb_info *cifs_sb;
+-#ifdef CONFIG_CIFS_DFS_UPCALL
+- int len;
+-#endif
+ int rc = 0;
+
+ /* BB should we make this contingent on mount parm? */
+@@ -117,15 +114,17 @@ cifs_read_super(struct super_block *sb,
+ * complex operation (mount), and in case of fail
+ * just exit instead of doing mount and attempting
+ * undo it if this copy fails?*/
+- len = strlen(data);
+- cifs_sb->mountdata = kzalloc(len + 1, GFP_KERNEL);
+- if (cifs_sb->mountdata == NULL) {
+- kfree(sb->s_fs_info);
+- sb->s_fs_info = NULL;
+- return -ENOMEM;
++ if (data) {
++ int len = strlen(data);
++ cifs_sb->mountdata = kzalloc(len + 1, GFP_KERNEL);
++ if (cifs_sb->mountdata == NULL) {
++ kfree(sb->s_fs_info);
++ sb->s_fs_info = NULL;
++ return -ENOMEM;
++ }
++ strncpy(cifs_sb->mountdata, data, len + 1);
++ cifs_sb->mountdata[len] = '\0';
+ }
+- strncpy(cifs_sb->mountdata, data, len + 1);
+- cifs_sb->mountdata[len] = '\0';
+ #endif
+
+ rc = cifs_mount(sb, cifs_sb, data, devname);
--- /dev/null
+From 326f6a5c9c9e1a62aec37bdc0c3f8d53adabe77b Mon Sep 17 00:00:00 2001
+From: Chris Wright <chrisw@sous-sol.org>
+Date: Fri, 6 Jun 2008 21:26:02 -0700
+Subject: CPUFREQ: Fix format string bug.
+
+From: Chris Wright <chrisw@sous-sol.org>
+
+commit 326f6a5c9c9e1a62aec37bdc0c3f8d53adabe77b upstream
+
+Format string bug. Not exploitable, as this is only writable by root,
+but worth fixing all the same.
+
+From: Chris Wright <chrisw@sous-sol.org>
+Spotted-by: Ilja van Sprundel <ilja@netric.org>
+Signed-off-by: Dave Jones <davej@redhat.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+
+---
+ drivers/cpufreq/cpufreq.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+--- a/drivers/cpufreq/cpufreq.c
++++ b/drivers/cpufreq/cpufreq.c
+@@ -410,7 +410,7 @@ static int cpufreq_parse_governor (char
+ int ret;
+
+ mutex_unlock(&cpufreq_governor_mutex);
+- ret = request_module(name);
++ ret = request_module("%s", name);
+ mutex_lock(&cpufreq_governor_mutex);
+
+ if (ret == 0)
--- /dev/null
+From 73531905ed53576d9e8707659a761e7046a60497 Mon Sep 17 00:00:00 2001
+From: Sam Ravnborg <sam@ravnborg.org>
+Date: Sun, 25 May 2008 23:03:18 +0200
+Subject: Kconfig: introduce ARCH_DEFCONFIG to DEFCONFIG_LIST
+
+From: Sam Ravnborg <sam@ravnborg.org>
+
+commit 73531905ed53576d9e8707659a761e7046a60497 in mainline.
+
+init/Kconfig contains a list of configs that are searched
+for if 'make *config' are used with no .config present.
+Extend this list to look at the config identified by
+ARCH_DEFCONFIG.
+
+With this change we now try the defconfig targets last.
+
+This fixes a regression reported
+by: Linus Torvalds <torvalds@linux-foundation.org>
+
+Signed-off-by: Sam Ravnborg <sam@ravnborg.org>
+Cc: Linus Torvalds <torvalds@linux-foundation.org>
+Cc: Thomas Gleixner <tglx@linutronix.de>
+Cc: Ingo Molnar <mingo@redhat.com>
+Cc: "H. Peter Anvin" <hpa@zytor.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+
+---
+ arch/x86/Kconfig | 13 +++----------
+ init/Kconfig | 1 +
+ 2 files changed, 4 insertions(+), 10 deletions(-)
+
+--- a/arch/x86/Kconfig
++++ b/arch/x86/Kconfig
+@@ -24,17 +24,10 @@ config X86
+ select HAVE_KRETPROBES
+ select HAVE_KVM if ((X86_32 && !X86_VOYAGER && !X86_VISWS && !X86_NUMAQ) || X86_64)
+
+-config DEFCONFIG_LIST
++config ARCH_DEFCONFIG
+ string
+- depends on X86_32
+- option defconfig_list
+- default "arch/x86/configs/i386_defconfig"
+-
+-config DEFCONFIG_LIST
+- string
+- depends on X86_64
+- option defconfig_list
+- default "arch/x86/configs/x86_64_defconfig"
++ default "arch/x86/configs/i386_defconfig" if X86_32
++ default "arch/x86/configs/x86_64_defconfig" if X86_64
+
+
+ config GENERIC_LOCKBREAK
+--- a/init/Kconfig
++++ b/init/Kconfig
+@@ -13,6 +13,7 @@ config DEFCONFIG_LIST
+ default "/lib/modules/$UNAME_RELEASE/.config"
+ default "/etc/kernel-config"
+ default "/boot/config-$UNAME_RELEASE"
++ default "$ARCH_DEFCONFIG"
+ default "arch/$ARCH/defconfig"
+
+ menu "General setup"
--- /dev/null
+From stable-bounces@linux.kernel.org Sun Jun 8 14:11:56 2008
+From: Aneesh Kumar K.V <aneesh.kumar@linux.vnet.ibm.com>
+Date: Sun, 8 Jun 2008 22:30:48 +0200 (CEST)
+Subject: m68k: Add ext2_find_{first,next}_bit() for ext4
+To: Linus Torvalds <torvalds@linux-foundation.org>, Andrew Morton <akpm@linux-foundation.org>
+Cc: "Aneesh Kumar K.V" <aneesh.kumar@linux.vnet.ibm.com>
+Message-ID: <Pine.LNX.4.64.0806082229350.25145@anakin>
+
+
+From: Aneesh Kumar K.V <aneesh.kumar@linux.vnet.ibm.com>
+
+commit 69c5ddf58a03da3686691ad2f293bc79fd977c10 upstream
+
+Add ext2_find_{first,next}_bit(), which are needed for ext4.
+They're derived out of the ext2_find_next_zero_bit found in the same file.
+Compile tested with crosstools
+
+[Reworked to preserve all symmetry with ext2_find_{first,next}_zero_bit()]
+
+This fixes http://bugzilla.kernel.org/show_bug.cgi?id=10393
+
+Signed-off-by: Geert Uytterhoeven <geert@linux-m68k.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>
+
+---
+ include/asm-m68k/bitops.h | 46 ++++++++++++++++++++++++++++++++++++++++++++--
+ 1 file changed, 44 insertions(+), 2 deletions(-)
+
+--- a/include/asm-m68k/bitops.h
++++ b/include/asm-m68k/bitops.h
+@@ -410,8 +410,50 @@ static inline int ext2_find_next_zero_bi
+ res = ext2_find_first_zero_bit (p, size - 32 * (p - addr));
+ return (p - addr) * 32 + res;
+ }
+-#define ext2_find_next_bit(addr, size, off) \
+- generic_find_next_le_bit((unsigned long *)(addr), (size), (off))
++
++static inline int ext2_find_first_bit(const void *vaddr, unsigned size)
++{
++ const unsigned long *p = vaddr, *addr = vaddr;
++ int res;
++
++ if (!size)
++ return 0;
++
++ size = (size >> 5) + ((size & 31) > 0);
++ while (*p++ == 0UL)
++ {
++ if (--size == 0)
++ return (p - addr) << 5;
++ }
++
++ --p;
++ for (res = 0; res < 32; res++)
++ if (ext2_test_bit(res, p))
++ break;
++ return (p - addr) * 32 + res;
++}
++
++static inline int ext2_find_next_bit(const void *vaddr, unsigned size,
++ unsigned offset)
++{
++ const unsigned long *addr = vaddr;
++ const unsigned long *p = addr + (offset >> 5);
++ int bit = offset & 31UL, res;
++
++ if (offset >= size)
++ return size;
++
++ if (bit) {
++ /* Look for one in first longword */
++ for (res = bit; res < 32; res++)
++ if (ext2_test_bit(res, p))
++ return (p - addr) * 32 + res;
++ p++;
++ }
++ /* No set bit yet, search remaining full bytes for a set bit */
++ res = ext2_find_first_bit(p, size - 32 * (p - addr));
++ return (p - addr) * 32 + res;
++}
+
+ #endif /* __KERNEL__ */
+
--- /dev/null
+From 03a74dcc7eebe6edd778317e82fafdf71e68488c Mon Sep 17 00:00:00 2001
+From: Arjan van de Ven <arjan@linux.intel.com>
+Date: Fri, 23 May 2008 13:04:49 -0700
+Subject: serial: fix enable_irq_wake/disable_irq_wake imbalance in serial_core.c
+
+From: Arjan van de Ven <arjan@linux.intel.com>
+
+commit 03a74dcc7eebe6edd778317e82fafdf71e68488c in mainline.
+
+enable_irq_wake() and disable_irq_wake() need to be balanced. However,
+serial_core.c calls these for different conditions during the suspend and
+resume functions...
+
+This is causing a regular WARN_ON() as found at
+http://www.kerneloops.org/search.php?search=set_irq_wake
+
+This patch makes the conditions for triggering the _wake enable/disable
+sequence identical.
+
+Signed-off-by: Arjan van de Ven <arjan@linux.intel.com>
+Cc: Alan Cox <alan@lxorguk.ukuu.org.uk>
+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>
+
+---
+ drivers/serial/serial_core.c | 5 ++++-
+ 1 file changed, 4 insertions(+), 1 deletion(-)
+
+--- a/drivers/serial/serial_core.c
++++ b/drivers/serial/serial_core.c
+@@ -2022,6 +2022,8 @@ int uart_suspend_port(struct uart_driver
+ int uart_resume_port(struct uart_driver *drv, struct uart_port *port)
+ {
+ struct uart_state *state = drv->state + port->line;
++ struct device *tty_dev;
++ struct uart_match match = {port, drv};
+
+ mutex_lock(&state->mutex);
+
+@@ -2031,7 +2033,8 @@ int uart_resume_port(struct uart_driver
+ return 0;
+ }
+
+- if (!port->suspended) {
++ tty_dev = device_find_child(port->dev, &match, serial_match_port);
++ if (!port->suspended && device_may_wakeup(tty_dev)) {
+ disable_irq_wake(port->irq);
+ mutex_unlock(&state->mutex);
+ return 0;
forcedeth-msi-interrupts.patch
tcp-fix-inconsistency-source.patch
ib-umem-avoid-sign-problems-when-demoting-npages-to-integer.patch
+m68k-add-ext2_find_-first-next-_bit-for-ext4.patch
+cifs-fix-oops-on-mount-when-config_cifs_dfs_upcall-is-enabled.patch
+cpufreq-fix-format-string-bug.patch
+serial-fix-enable_irq_wake-disable_irq_wake-imbalance-in-serial_core.c.patch
+kconfig-introduce-arch_defconfig-to-defconfig_list.patch
+bttv-fix-a-deadlock-in-the-bttv-driver.patch