]> git.ipfire.org Git - thirdparty/kernel/stable-queue.git/commitdiff
kick off next patch queue for 2.6.25
authorChris Wright <chrisw@sous-sol.org>
Mon, 9 Jun 2008 21:05:36 +0000 (14:05 -0700)
committerChris Wright <chrisw@sous-sol.org>
Mon, 9 Jun 2008 21:05:36 +0000 (14:05 -0700)
14 files changed:
queue-2.6.25/add-rd-alias-to-new-brd-ramdisk-driver.patch [new file with mode: 0644]
queue-2.6.25/alsa-hda-fix-resume-of-auto-config-mode-with-realtek-codecs.patch [new file with mode: 0644]
queue-2.6.25/b43-fix-controller-restart-crash.patch [new file with mode: 0644]
queue-2.6.25/double-free-of-inode-on-alloc_file-failure-exit-in-create_write_pipe.patch [new file with mode: 0644]
queue-2.6.25/ecryptfs-add-missing-lock-around-notify_change.patch [new file with mode: 0644]
queue-2.6.25/ecryptfs-clean-up-lock_parent.patch [new file with mode: 0644]
queue-2.6.25/ecryptfs-fix-missed-mutex_unlock.patch [new file with mode: 0644]
queue-2.6.25/ecryptfs-protect-crypt_stat-flags-in-ecryptfs_open.patch [new file with mode: 0644]
queue-2.6.25/ipwireless-fix-blocked-sending.patch [new file with mode: 0644]
queue-2.6.25/ps3-fix-frame-buffer-build-error.patch [new file with mode: 0644]
queue-2.6.25/series [new file with mode: 0644]
queue-2.6.25/sound-emu10k1-fix-system-hang-with-audigy2-zs-notebook-pcmcia-card.patch [new file with mode: 0644]
queue-2.6.25/ssb-fix-context-assertion-in-ssb_pcicore_dev_irqvecs_enable.patch [new file with mode: 0644]
queue-2.6.25/sunhv-fix-locking-in-non-paged-i-o-case.patch [new file with mode: 0644]

diff --git a/queue-2.6.25/add-rd-alias-to-new-brd-ramdisk-driver.patch b/queue-2.6.25/add-rd-alias-to-new-brd-ramdisk-driver.patch
new file mode 100644 (file)
index 0000000..5194fbb
--- /dev/null
@@ -0,0 +1,29 @@
+From efedf51c866130945b5db755cb58670e60205d83 Mon Sep 17 00:00:00 2001
+Message-ID: <20080604151842.GA30484@wotan.suse.de>
+From: Nick Piggin <npiggin@suse.de>
+Date: Wed, 4 Jun 2008 17:18:42 +0200
+Subject: Add 'rd' alias to new brd ramdisk driver
+
+From: Nick Piggin <npiggin@suse.de>
+
+upstream commit: efedf51c866130945b5db755cb58670e60205d83
+
+Alias brd to rd in the hope of helping legacy users. Suggested by Jan.
+
+Signed-off-by: Nick Piggin <npiggin@suse.de>
+Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
+Signed-off-by: Chris Wright <chrisw@sous-sol.org>
+---
+ drivers/block/brd.c |    1 +
+ 1 file changed, 1 insertion(+)
+
+--- a/drivers/block/brd.c
++++ b/drivers/block/brd.c
+@@ -392,6 +392,7 @@ module_param(rd_size, int, 0);
+ MODULE_PARM_DESC(rd_size, "Size of each RAM disk in kbytes.");
+ MODULE_LICENSE("GPL");
+ MODULE_ALIAS_BLOCKDEV_MAJOR(RAMDISK_MAJOR);
++MODULE_ALIAS("rd");
+ #ifndef MODULE
+ /* Legacy boot options - nonmodular */
diff --git a/queue-2.6.25/alsa-hda-fix-resume-of-auto-config-mode-with-realtek-codecs.patch b/queue-2.6.25/alsa-hda-fix-resume-of-auto-config-mode-with-realtek-codecs.patch
new file mode 100644 (file)
index 0000000..db01a5b
--- /dev/null
@@ -0,0 +1,35 @@
+From stable-bounces@linux.kernel.org  Mon Jun  9 13:33:12 2008
+Date: Sun, 08 Jun 2008 09:26:09 +0200
+Message-ID: <s5hve0k2xri.wl%tiwai@suse.de>
+From: Takashi Iwai <tiwai@suse.de>
+To: stable@kernel.org
+Subject: ALSA: hda - Fix resume of auto-config mode with Realtek codecs
+
+From: Takashi Iwai <tiwai@suse.de>
+
+upstream commit: 07bc76dfa19b10017b518dd9aa1b2719e8c863de
+
+The auto-config mode of Realtek ALC codecs has a bug since 2.6.25
+that it cannot resume properly.  The problem was the wrong assignment
+of init_hook that overrides the whole initialization.
+
+Relevant bug reports:
+       http://bugzilla.kernel.org/show_bug.cgi?id=10662
+       https://bugzilla.novell.com/show_bug.cgi?id=385473
+
+Signed-off-by: Takashi Iwai <tiwai@suse.de>
+Signed-off-by: Chris Wright <chrisw@sous-sol.org>
+---
+ sound/pci/hda/patch_realtek.c |    1 -
+ 1 file changed, 1 deletion(-)
+
+--- a/sound/pci/hda/patch_realtek.c
++++ b/sound/pci/hda/patch_realtek.c
+@@ -940,7 +940,6 @@ do_sku:
+                           AC_VERB_SET_UNSOLICITED_ENABLE,
+                           AC_USRSP_EN | ALC880_HP_EVENT);
+       spec->unsol_event = alc_sku_unsol_event;
+-      spec->init_hook = alc_sku_automute;     
+ }
+ /*
diff --git a/queue-2.6.25/b43-fix-controller-restart-crash.patch b/queue-2.6.25/b43-fix-controller-restart-crash.patch
new file mode 100644 (file)
index 0000000..91e9e0a
--- /dev/null
@@ -0,0 +1,57 @@
+From 3bf0a32e22fedc0b46443699db2d61ac2a883ac4 Mon Sep 17 00:00:00 2001
+Message-Id: <200806061558.42998.mb@bu3sch.de>
+From: Michael Buesch <mb@bu3sch.de>
+Date: Thu, 22 May 2008 16:32:16 +0200
+Subject: b43: Fix controller restart crash
+
+From: Michael Buesch <mb@bu3sch.de>
+
+upstream commit: 3bf0a32e22fedc0b46443699db2d61ac2a883ac4
+
+This fixes a kernel crash on rmmod, in the case where the controller
+was restarted before doing the rmmod.
+
+Signed-off-by: Michael Buesch <mb@bu3sch.de>
+Signed-off-by: John W. Linville <linville@tuxdriver.com>
+Signed-off-by: Chris Wright <chrisw@sous-sol.org>
+---
+ drivers/net/wireless/b43/main.c |   12 ++++++++++--
+ 1 file changed, 10 insertions(+), 2 deletions(-)
+
+--- a/drivers/net/wireless/b43/main.c
++++ b/drivers/net/wireless/b43/main.c
+@@ -3818,7 +3818,9 @@ static void b43_chip_reset(struct work_s
+                       goto out;
+               }
+       }
+-      out:
++out:
++      if (err)
++              wl->current_dev = NULL; /* Failed to init the dev. */
+       mutex_unlock(&wl->mutex);
+       if (err)
+               b43err(wl, "Controller restart FAILED\n");
+@@ -3967,9 +3969,11 @@ static void b43_one_core_detach(struct s
+       struct b43_wldev *wldev;
+       struct b43_wl *wl;
++      /* Do not cancel ieee80211-workqueue based work here.
++       * See comment in b43_remove(). */
++
+       wldev = ssb_get_drvdata(dev);
+       wl = wldev->wl;
+-      cancel_work_sync(&wldev->restart_work);
+       b43_debugfs_remove_device(wldev);
+       b43_wireless_core_detach(wldev);
+       list_del(&wldev->list);
+@@ -4152,6 +4156,10 @@ static void b43_remove(struct ssb_device
+       struct b43_wl *wl = ssb_get_devtypedata(dev);
+       struct b43_wldev *wldev = ssb_get_drvdata(dev);
++      /* We must cancel any work here before unregistering from ieee80211,
++       * as the ieee80211 unreg will destroy the workqueue. */
++      cancel_work_sync(&wldev->restart_work);
++
+       B43_WARN_ON(!wl);
+       if (wl->current_dev == wldev)
+               ieee80211_unregister_hw(wl->hw);
diff --git a/queue-2.6.25/double-free-of-inode-on-alloc_file-failure-exit-in-create_write_pipe.patch b/queue-2.6.25/double-free-of-inode-on-alloc_file-failure-exit-in-create_write_pipe.patch
new file mode 100644 (file)
index 0000000..f70fb91
--- /dev/null
@@ -0,0 +1,35 @@
+From ed1524371716466e9c762808b02601d0d0276a92 Mon Sep 17 00:00:00 2001
+Message-ID: <20080607172910.GD17481@vipunen.hut.fi>
+From: Al Viro <viro@zeniv.linux.org.uk>
+Cc: Sami Liedes <sliedes@cc.hut.fi>
+Date: Tue, 22 Apr 2008 19:51:27 -0400
+Subject: double-free of inode on alloc_file() failure exit in create_write_pipe()
+
+From: Al Viro <viro@zeniv.linux.org.uk>
+
+upstream commit: ed1524371716466e9c762808b02601d0d0276a92
+
+Duh...  Fortunately, the bug is quite recent (post-2.6.25) and, embarrassingly,
+mine ;-/
+
+http://bugzilla.kernel.org/show_bug.cgi?id=10878
+
+Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
+Signed-off-by: Chris Wright <chrisw@sous-sol.org>
+---
+ fs/pipe.c |    3 +++
+ 1 file changed, 3 insertions(+)
+
+--- a/fs/pipe.c
++++ b/fs/pipe.c
+@@ -988,7 +988,10 @@ struct file *create_write_pipe(void)
+       return f;
+  err_dentry:
++      free_pipe_info(inode);
+       dput(dentry);
++      return ERR_PTR(err);
++
+  err_inode:
+       free_pipe_info(inode);
+       iput(inode);
diff --git a/queue-2.6.25/ecryptfs-add-missing-lock-around-notify_change.patch b/queue-2.6.25/ecryptfs-add-missing-lock-around-notify_change.patch
new file mode 100644 (file)
index 0000000..155d2b0
--- /dev/null
@@ -0,0 +1,35 @@
+From stable-bounces@linux.kernel.org  Mon Jun  9 13:44:01 2008
+Date: Sun, 8 Jun 2008 10:56:53 +0200
+From: Willy Tarreau <w@1wt.eu>
+To: stable@kernel.org
+Message-ID: <20080608085653.GA6439@1wt.eu>
+Cc: mszeredi@suse.cz, linux-kernel@vger.kernel.org, mhalcrow@us.ibm.com
+Subject: ecryptfs: add missing lock around notify_change
+
+From: Miklos Szeredi <mszeredi@suse.cz>
+
+upstream commit: 9c3580aa52195699065bc2d7242b1c7e3e6903fa
+
+Callers of notify_change() need to hold i_mutex.
+
+Signed-off-by: Miklos Szeredi <mszeredi@suse.cz>
+Cc: Michael Halcrow <mhalcrow@us.ibm.com>
+Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
+Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
+Signed-off-by: Chris Wright <chrisw@sous-sol.org>
+---
+ fs/ecryptfs/inode.c |    2 ++
+ 1 file changed, 2 insertions(+)
+
+--- a/fs/ecryptfs/inode.c
++++ b/fs/ecryptfs/inode.c
+@@ -908,7 +908,9 @@ static int ecryptfs_setattr(struct dentr
+       if (ia->ia_valid & (ATTR_KILL_SUID | ATTR_KILL_SGID))
+               ia->ia_valid &= ~ATTR_MODE;
++      mutex_lock(&lower_dentry->d_inode->i_mutex);
+       rc = notify_change(lower_dentry, ia);
++      mutex_unlock(&lower_dentry->d_inode->i_mutex);
+ out:
+       fsstack_copy_attr_all(inode, lower_inode, NULL);
+       return rc;
diff --git a/queue-2.6.25/ecryptfs-clean-up-lock_parent.patch b/queue-2.6.25/ecryptfs-clean-up-lock_parent.patch
new file mode 100644 (file)
index 0000000..d7d7057
--- /dev/null
@@ -0,0 +1,71 @@
+From stable-bounces@linux.kernel.org  Mon Jun  9 13:46:08 2008
+Date: Sun, 8 Jun 2008 10:59:23 +0200
+From: Willy Tarreau <w@1wt.eu>
+To: stable@kernel.org
+Message-ID: <20080608085923.GC6439@1wt.eu>
+Content-Disposition: inline
+Cc: hch@infradead.org, mszeredi@suse.cz, linux-kernel@vger.kernel.org, mhalcrow@us.ibm.com
+Subject: ecryptfs: clean up (un)lock_parent
+
+From: Miklos Szeredi <mszeredi@suse.cz>
+
+upstream commit: 8dc4e37362a5dc910d704d52ac6542bfd49ddc2f
+
+dget(dentry->d_parent) --> dget_parent(dentry)
+
+unlock_parent() is racy and unnecessary.  Replace single caller with
+unlock_dir().
+
+There are several other suspect uses of ->d_parent in ecryptfs...
+
+Signed-off-by: Miklos Szeredi <mszeredi@suse.cz>
+Cc: Michael Halcrow <mhalcrow@us.ibm.com>
+Cc: Christoph Hellwig <hch@infradead.org>
+Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
+Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
+Signed-off-by: Chris Wright <chrisw@sous-sol.org>
+---
+ fs/ecryptfs/inode.c |   13 ++++---------
+ 1 file changed, 4 insertions(+), 9 deletions(-)
+
+--- a/fs/ecryptfs/inode.c
++++ b/fs/ecryptfs/inode.c
+@@ -37,17 +37,11 @@ static struct dentry *lock_parent(struct
+ {
+       struct dentry *dir;
+-      dir = dget(dentry->d_parent);
++      dir = dget_parent(dentry);
+       mutex_lock_nested(&(dir->d_inode->i_mutex), I_MUTEX_PARENT);
+       return dir;
+ }
+-static void unlock_parent(struct dentry *dentry)
+-{
+-      mutex_unlock(&(dentry->d_parent->d_inode->i_mutex));
+-      dput(dentry->d_parent);
+-}
+-
+ static void unlock_dir(struct dentry *dir)
+ {
+       mutex_unlock(&dir->d_inode->i_mutex);
+@@ -426,8 +420,9 @@ static int ecryptfs_unlink(struct inode 
+       int rc = 0;
+       struct dentry *lower_dentry = ecryptfs_dentry_to_lower(dentry);
+       struct inode *lower_dir_inode = ecryptfs_inode_to_lower(dir);
++      struct dentry *lower_dir_dentry;
+-      lock_parent(lower_dentry);
++      lower_dir_dentry = lock_parent(lower_dentry);
+       rc = vfs_unlink(lower_dir_inode, lower_dentry);
+       if (rc) {
+               printk(KERN_ERR "Error in vfs_unlink; rc = [%d]\n", rc);
+@@ -439,7 +434,7 @@ static int ecryptfs_unlink(struct inode 
+       dentry->d_inode->i_ctime = dir->i_ctime;
+       d_drop(dentry);
+ out_unlock:
+-      unlock_parent(lower_dentry);
++      unlock_dir(lower_dir_dentry);
+       return rc;
+ }
diff --git a/queue-2.6.25/ecryptfs-fix-missed-mutex_unlock.patch b/queue-2.6.25/ecryptfs-fix-missed-mutex_unlock.patch
new file mode 100644 (file)
index 0000000..7b9e5b2
--- /dev/null
@@ -0,0 +1,34 @@
+From stable-bounces@linux.kernel.org  Mon Jun  9 13:47:01 2008
+Date: Sun, 8 Jun 2008 11:00:36 +0200
+From: Willy Tarreau <w@1wt.eu>
+To: stable@kernel.org
+Message-ID: <20080608090036.GD6439@1wt.eu>
+Content-Disposition: inline
+Cc: gorcunov@gmail.com, linux-kernel@vger.kernel.org, mhalcrow@us.ibm.com
+Subject: ecryptfs: fix missed mutex_unlock
+
+From: Cyrill Gorcunov <gorcunov@gmail.com>
+
+upstream commit: 71fd5179e8d1d4d503b517e0c5374f7c49540bfc
+
+Cc: Michael Halcrow <mhalcrow@us.ibm.com>
+Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
+Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
+Signed-off-by: Chris Wright <chrisw@sous-sol.org>
+---
+ fs/ecryptfs/crypto.c |    2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+--- a/fs/ecryptfs/crypto.c
++++ b/fs/ecryptfs/crypto.c
+@@ -1907,9 +1907,9 @@ int ecryptfs_get_tfm_and_mutex_for_ciphe
+                       goto out;
+               }
+       }
+-      mutex_unlock(&key_tfm_list_mutex);
+       (*tfm) = key_tfm->key_tfm;
+       (*tfm_mutex) = &key_tfm->key_tfm_mutex;
+ out:
++      mutex_unlock(&key_tfm_list_mutex);
+       return rc;
+ }
diff --git a/queue-2.6.25/ecryptfs-protect-crypt_stat-flags-in-ecryptfs_open.patch b/queue-2.6.25/ecryptfs-protect-crypt_stat-flags-in-ecryptfs_open.patch
new file mode 100644 (file)
index 0000000..354f847
--- /dev/null
@@ -0,0 +1,36 @@
+From stable-bounces@linux.kernel.org  Mon Jun  9 13:45:12 2008
+Date: Sun, 8 Jun 2008 10:58:02 +0200
+From: Willy Tarreau <w@1wt.eu>
+To: stable@kernel.org
+Message-ID: <20080608085802.GB6439@1wt.eu>
+Content-Disposition: inline
+Cc: linux-kernel@vger.kernel.org, mhalcrow@us.ibm.com, <iro@ZenIV.linux.org.uk
+Subject: eCryptfs: protect crypt_stat->flags in ecryptfs_open()
+
+From: Michael Halcrow <mhalcrow@us.ibm.com>
+
+upstream commit: 2f9b12a31fcb738ea8c9eb0d4ddf906c6f1d696c
+
+Make sure crypt_stat->flags is protected with a lock in ecryptfs_open().
+
+Signed-off-by: Michael Halcrow <mhalcrow@us.ibm.com>
+Cc: Al Viro <viro@ZenIV.linux.org.uk>
+Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
+Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
+Signed-off-by: Chris Wright <chrisw@sous-sol.org>
+---
+ fs/ecryptfs/file.c |    2 ++
+ 1 file changed, 2 insertions(+)
+
+--- a/fs/ecryptfs/file.c
++++ b/fs/ecryptfs/file.c
+@@ -195,7 +195,9 @@ static int ecryptfs_open(struct inode *i
+               file, ecryptfs_inode_to_private(inode)->lower_file);
+       if (S_ISDIR(ecryptfs_dentry->d_inode->i_mode)) {
+               ecryptfs_printk(KERN_DEBUG, "This is a directory\n");
++              mutex_lock(&crypt_stat->cs_mutex);
+               crypt_stat->flags &= ~(ECRYPTFS_ENCRYPTED);
++              mutex_unlock(&crypt_stat->cs_mutex);
+               rc = 0;
+               goto out;
+       }
diff --git a/queue-2.6.25/ipwireless-fix-blocked-sending.patch b/queue-2.6.25/ipwireless-fix-blocked-sending.patch
new file mode 100644 (file)
index 0000000..9e598f6
--- /dev/null
@@ -0,0 +1,125 @@
+From eb4e545d4ac82d9018487edb4419b33b9930c857 Mon Sep 17 00:00:00 2001
+Message-ID: <20080606093225.GA15735@ds.suse.cz>
+From: David Sterba <dsterba@suse.cz>
+Date: Fri, 6 Jun 2008 10:56:35 +0200
+Subject: ipwireless: Fix blocked sending
+
+From: David Sterba <dsterba@suse.cz>
+
+upstream commit: eb4e545d4ac82d9018487edb4419b33b9930c857
+
+Packet sending is driven by two flags, tx_ready and tx_queued.
+It was possible, that there were queued data for sending and
+hardware was flagged as blocked but in fact it was not.
+
+The tx_queued was indicator but should be really a counter else
+first fragmented packet resets tx_queued flag, but there may be
+pending packets which do not get sent.
+
+New semantics:
+tx_ready - set, if hw is ready to send packet, no packet is being
+           transferred right now
+           set the flag right at the place where data are copied
+           into hw memory and not earlier without checking if it
+           was succesful
+tx_queued - count of enqueued packets, including fragments
+
+Tested-by: Michal Rokos <michal.rokos@gmail.com>
+Signed-off-by: David Sterba <dsterba@suse.cz>
+Signed-off-by: Jiri Kosina <jkosina@suse.cz>
+Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
+Signed-off-by: Chris Wright <chrisw@sous-sol.org>
+---
+ drivers/char/pcmcia/ipwireless/hardware.c |   20 ++++++++++++--------
+ 1 file changed, 12 insertions(+), 8 deletions(-)
+
+--- a/drivers/char/pcmcia/ipwireless/hardware.c
++++ b/drivers/char/pcmcia/ipwireless/hardware.c
+@@ -251,10 +251,11 @@ struct ipw_hardware {
+       int init_loops;
+       struct timer_list setup_timer;
++      /* Flag if hw is ready to send next packet */
+       int tx_ready;
+-      struct list_head tx_queue[NL_NUM_OF_PRIORITIES];
+-      /* True if any packets are queued for transmission */
++      /* Count of pending packets to be sent */
+       int tx_queued;
++      struct list_head tx_queue[NL_NUM_OF_PRIORITIES];
+       int rx_bytes_queued;
+       struct list_head rx_queue;
+@@ -430,6 +431,8 @@ static int do_send_fragment(struct ipw_h
+       spin_lock_irqsave(&hw->spinlock, flags);
++      hw->tx_ready = 0;
++
+       if (hw->hw_version == HW_VERSION_1) {
+               outw((unsigned short) length, hw->base_port + IODWR);
+@@ -518,6 +521,7 @@ static int do_send_packet(struct ipw_har
+               spin_lock_irqsave(&hw->spinlock, flags);
+               list_add(&packet->queue, &hw->tx_queue[0]);
++              hw->tx_queued++;
+               spin_unlock_irqrestore(&hw->spinlock, flags);
+       } else {
+               if (packet->packet_callback)
+@@ -975,12 +979,10 @@ static int send_pending_packet(struct ip
+       unsigned long flags;
+       spin_lock_irqsave(&hw->spinlock, flags);
+-      if (hw->tx_queued && hw->tx_ready != 0) {
++      if (hw->tx_queued && hw->tx_ready) {
+               int priority;
+               struct ipw_tx_packet *packet = NULL;
+-              hw->tx_ready--;
+-
+               /* Pick a packet */
+               for (priority = 0; priority < priority_limit; priority++) {
+                       if (!list_empty(&hw->tx_queue[priority])) {
+@@ -989,6 +991,7 @@ static int send_pending_packet(struct ip
+                                               struct ipw_tx_packet,
+                                               queue);
++                              hw->tx_queued--;
+                               list_del(&packet->queue);
+                               break;
+@@ -999,6 +1002,7 @@ static int send_pending_packet(struct ip
+                       spin_unlock_irqrestore(&hw->spinlock, flags);
+                       return 0;
+               }
++
+               spin_unlock_irqrestore(&hw->spinlock, flags);
+               /* Send */
+@@ -1089,7 +1093,7 @@ static irqreturn_t ipwireless_handle_v1_
+               if (irqn & IR_TXINTR) {
+                       ack |= IR_TXINTR;
+                       spin_lock_irqsave(&hw->spinlock, flags);
+-                      hw->tx_ready++;
++                      hw->tx_ready = 1;
+                       spin_unlock_irqrestore(&hw->spinlock, flags);
+               }
+               /* Received data */
+@@ -1196,7 +1200,7 @@ static irqreturn_t ipwireless_handle_v2_
+       if (memrxdone & MEMRX_RX_DONE) {
+               writew(0, &hw->memory_info_regs->memreg_rx_done);
+               spin_lock_irqsave(&hw->spinlock, flags);
+-              hw->tx_ready++;
++              hw->tx_ready = 1;
+               spin_unlock_irqrestore(&hw->spinlock, flags);
+               tx = 1;
+       }
+@@ -1260,7 +1264,7 @@ static void send_packet(struct ipw_hardw
+       spin_lock_irqsave(&hw->spinlock, flags);
+       list_add_tail(&packet->queue, &hw->tx_queue[priority]);
+-      hw->tx_queued = 1;
++      hw->tx_queued++;
+       spin_unlock_irqrestore(&hw->spinlock, flags);
+       flush_packets_to_hw(hw);
diff --git a/queue-2.6.25/ps3-fix-frame-buffer-build-error.patch b/queue-2.6.25/ps3-fix-frame-buffer-build-error.patch
new file mode 100644 (file)
index 0000000..58ee44f
--- /dev/null
@@ -0,0 +1,39 @@
+From stable-bounces@linux.kernel.org  Mon Jun  9 13:53:35 2008
+Message-ID: <484AD2DA.50704@am.sony.com>
+Date: Sat, 7 Jun 2008 11:26:34 -0700
+From: Geoff Levand <geoffrey.levand@am.sony.com>
+To: stable@kernel.org
+Cc: Chris Wright <chrisw@sous-sol.org>, Geert Uytterhoeven <Geert.Uytterhoeven@sonycom.com>
+Subject: fbdev: export symbol fb_mode_option
+
+From: Geoff Levand <geoffrey.levand@am.sony.com>
+
+upstream commit: 659179b28f15ab1b1db5f8767090f5e728f115a1
+
+Frame buffer and mode setting drivers can be built as modules,
+so fb_mode_option needs to be exported to support these.
+
+Prevents this error:
+
+  ERROR: "fb_mode_option" [drivers/ps3/ps3av_mod.ko] undefined!
+
+Signed-off-by: Geoff Levand <geoffrey.levand@am.sony.com>
+Acked-by: Geert Uytterhoeven <Geert.Uytterhoeven@sonycom.com>
+Cc: Krzysztof Helt <krzysztof.h1@poczta.fm>
+Signed-off-by: Andrew Morton <akpm@linux-foundation.org>SC
+Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
+Signed-off-by: Chris Wright <chrisw@sous-sol.org>
+---
+ drivers/video/modedb.c |    1 +
+ 1 file changed, 1 insertion(+)
+
+--- a/drivers/video/modedb.c
++++ b/drivers/video/modedb.c
+@@ -28,6 +28,7 @@
+ #endif
+ const char *fb_mode_option;
++EXPORT_SYMBOL_GPL(fb_mode_option);
+     /*
+      *  Standard video mode definitions (taken from XFree86)
diff --git a/queue-2.6.25/series b/queue-2.6.25/series
new file mode 100644 (file)
index 0000000..58213d7
--- /dev/null
@@ -0,0 +1,13 @@
+b43-fix-controller-restart-crash.patch
+ipwireless-fix-blocked-sending.patch
+add-rd-alias-to-new-brd-ramdisk-driver.patch
+ssb-fix-context-assertion-in-ssb_pcicore_dev_irqvecs_enable.patch
+double-free-of-inode-on-alloc_file-failure-exit-in-create_write_pipe.patch
+alsa-hda-fix-resume-of-auto-config-mode-with-realtek-codecs.patch
+sound-emu10k1-fix-system-hang-with-audigy2-zs-notebook-pcmcia-card.patch
+ecryptfs-add-missing-lock-around-notify_change.patch
+ecryptfs-protect-crypt_stat-flags-in-ecryptfs_open.patch
+ecryptfs-clean-up-lock_parent.patch
+ecryptfs-fix-missed-mutex_unlock.patch
+ps3-fix-frame-buffer-build-error.patch
+sunhv-fix-locking-in-non-paged-i-o-case.patch
diff --git a/queue-2.6.25/sound-emu10k1-fix-system-hang-with-audigy2-zs-notebook-pcmcia-card.patch b/queue-2.6.25/sound-emu10k1-fix-system-hang-with-audigy2-zs-notebook-pcmcia-card.patch
new file mode 100644 (file)
index 0000000..245a960
--- /dev/null
@@ -0,0 +1,83 @@
+From stable-bounces@linux.kernel.org  Mon Jun  9 13:34:21 2008
+Date: Sun, 08 Jun 2008 09:27:26 +0200
+Message-ID: <s5htzg42xpd.wl%tiwai@suse.de>
+From: Takashi Iwai <tiwai@suse.de>
+To: stable@kernel.org
+Subject: sound: emu10k1 - fix system hang with Audigy2 ZS Notebook PCMCIA card
+
+From: Jaroslav Franek <jarin.franek@post.cz>
+
+upstream commit: 868e15dbd2940f9453b4399117686f408dc77299
+
+When the Linux kernel is compiled with CONFIG_DEBUG_SHIRQ=y,
+the Soundblaster Audigy2 ZS Notebook PCMCIA card causes the
+system hang during boot (udev stage) or when the card is hot-plug.
+The CONFIG_DEBUG_SHIRQ flag is by default 'y' with all Fedora
+kernels since 2.6.23. The problem was reported as
+https://bugzilla.redhat.com/show_bug.cgi?id=326411
+
+The issue was hunted down to the snd_emu10k1_create() routine:
+
+/* pseudo-code */
+snd_emu10k1_create(...) {
+       ...
+       request_irq(... IRQF_SHARED ...) {
+               register the irq handler
+               #ifdef CONFIG_DEBUG_SHIRQ
+               call the irq handler: snd_emu10k1_interrupt() {
+                       poll I/O port   // <---- !! system hangs
+                       ...
+               }
+               #endif
+       }
+       ...
+       snd_emu10k1_cardbus_init(...) {
+               initialize I/O ports
+       }
+       ...
+}
+
+The early access to I/O port in the interrupt handler causes
+the freeze. Obviously it is necessary to init the I/O ports
+before accessing them. This patch moves the registration of
+the irq handler after the initialization of the I/O ports.
+
+Signed-off-by: Jaroslav Franek <jarin.franek@post.cz>
+Acked-by: James Courtier-Dutton <James@superbug.co.uk>
+Signed-off-by: Takashi Iwai <tiwai@suse.de>
+Signed-off-by: Chris Wright <chrisw@sous-sol.org>
+---
+ sound/pci/emu10k1/emu10k1_main.c |   15 ++++++++-------
+ 1 file changed, 8 insertions(+), 7 deletions(-)
+
+--- a/sound/pci/emu10k1/emu10k1_main.c
++++ b/sound/pci/emu10k1/emu10k1_main.c
+@@ -1817,13 +1817,6 @@ int __devinit snd_emu10k1_create(struct 
+       }
+       emu->port = pci_resource_start(pci, 0);
+-      if (request_irq(pci->irq, snd_emu10k1_interrupt, IRQF_SHARED,
+-                      "EMU10K1", emu)) {
+-              err = -EBUSY;
+-              goto error;
+-      }
+-      emu->irq = pci->irq;
+-
+       emu->max_cache_pages = max_cache_bytes >> PAGE_SHIFT;
+       if (snd_dma_alloc_pages(SNDRV_DMA_TYPE_DEV, snd_dma_pci_data(pci),
+                               32 * 1024, &emu->ptb_pages) < 0) {
+@@ -1886,6 +1879,14 @@ int __devinit snd_emu10k1_create(struct 
+       emu->fx8010.etram_pages.area = NULL;
+       emu->fx8010.etram_pages.bytes = 0;
++      /* irq handler must be registered after I/O ports are activated */
++      if (request_irq(pci->irq, snd_emu10k1_interrupt, IRQF_SHARED,
++                      "EMU10K1", emu)) {
++              err = -EBUSY;
++              goto error;
++      }
++      emu->irq = pci->irq;
++
+       /*
+        *  Init to 0x02109204 :
+        *  Clock accuracy    = 0     (1000ppm)
diff --git a/queue-2.6.25/ssb-fix-context-assertion-in-ssb_pcicore_dev_irqvecs_enable.patch b/queue-2.6.25/ssb-fix-context-assertion-in-ssb_pcicore_dev_irqvecs_enable.patch
new file mode 100644 (file)
index 0000000..cd6a23b
--- /dev/null
@@ -0,0 +1,45 @@
+From stable-bounces@linux.kernel.org  Mon Jun  9 13:26:37 2008
+From: Michael Buesch <mb@bu3sch.de>
+To: stable@kernel.org
+Date: Sat, 7 Jun 2008 17:57:37 +0200
+Content-Disposition: inline
+Message-Id: <200806071757.38139.mb@bu3sch.de>
+Cc: netdev@vger.kernel.org, linux-kernel@vger.kernel.org
+Subject: ssb: Fix context assertion in ssb_pcicore_dev_irqvecs_enable
+
+From: Michael Buesch <mb@bu3sch.de>
+
+upstream commit: a3bafeedfff2ac5fa0a316bea4570e27900b6fcc
+
+This fixes a context assertion in ssb that makes b44 print
+out warnings on resume.
+
+This fixes the following kernel oops:
+http://www.kerneloops.org/oops.php?number=12732
+http://www.kerneloops.org/oops.php?number=11410
+
+Signed-off-by: Michael Buesch <mb@bu3sch.de>
+Signed-off-by: John W. Linville <linville@tuxdriver.com>
+Signed-off-by: Chris Wright <chrisw@sous-sol.org>
+
+---
+ drivers/ssb/driver_pcicore.c |    4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+--- a/drivers/ssb/driver_pcicore.c
++++ b/drivers/ssb/driver_pcicore.c
+@@ -519,12 +519,12 @@ int ssb_pcicore_dev_irqvecs_enable(struc
+       int err = 0;
+       u32 tmp;
+-      might_sleep();
+-
+       if (!pdev)
+               goto out;
+       bus = pdev->bus;
++      might_sleep_if(pdev->id.coreid != SSB_DEV_PCI);
++
+       /* Enable interrupts for this device. */
+       if (bus->host_pci &&
+           ((pdev->id.revision >= 6) || (pdev->id.coreid == SSB_DEV_PCIE))) {
diff --git a/queue-2.6.25/sunhv-fix-locking-in-non-paged-i-o-case.patch b/queue-2.6.25/sunhv-fix-locking-in-non-paged-i-o-case.patch
new file mode 100644 (file)
index 0000000..0ca012d
--- /dev/null
@@ -0,0 +1,30 @@
+From stable-bounces@linux.kernel.org  Mon Jun  9 13:54:47 2008
+Date: Mon, 09 Jun 2008 13:49:22 -0700 (PDT)
+Message-Id: <20080609.134922.94280325.davem@davemloft.net>
+To: stable@kernel.org
+From: David Miller <davem@davemloft.net>
+Subject: sunhv: Fix locking in non-paged I/O case.
+
+From: David S. Miller <davem@davemloft.net>
+
+[ upstream commit: 3651751fff44ede58f65cbb1e39242139ead251b ]
+
+This causes the lock to be taken twice, thus resulting in
+a deadlock.
+
+Signed-off-by: David S. Miller <davem@davemloft.net>
+Signed-off-by: Chris Wright <chrisw@sous-sol.org>
+---
+ drivers/serial/sunhv.c |    1 -
+ 1 file changed, 1 deletion(-)
+
+--- a/drivers/serial/sunhv.c
++++ b/drivers/serial/sunhv.c
+@@ -499,7 +499,6 @@ static void sunhv_console_write_bychar(s
+       } else
+               spin_lock(&port->lock);
+-      spin_lock_irqsave(&port->lock, flags);
+       for (i = 0; i < n; i++) {
+               if (*s == '\n')
+                       sunhv_console_putchar(port, '\r');