+++ /dev/null
-From: Dave Kleikamp <shaggy@linux.vnet.ibm.com>
-Date: Wed Jan 17 21:18:35 2007 -0600
-Subject: JFS: call io_schedule() instead of schedule() to avoid deadlock
-
-From: Dave Kleikamp <shaggy@linux.vnet.ibm.com>
-
-JFS: call io_schedule() instead of schedule() to avoid deadlock
-
-The introduction of Jens Axboe's explicit i/o plugging patches introduced a
-deadlock in jfs. This was caused by the process initiating I/O not
-unplugging the queue before waiting on the commit thread. The commit
-thread itself was waiting for that I/O to complete. Calling io_schedule()
-rather than schedule() unplugs the I/O queue avoiding the deadlock, and it
-appears to be the right function to call in any case.
-
-Signed-off-by: Dave Kleikamp <shaggy@austin.ibm.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
-
-
----
- fs/jfs/jfs_lock.h | 2 +-
- fs/jfs/jfs_metapage.c | 2 +-
- fs/jfs/jfs_txnmgr.c | 2 +-
- 3 files changed, 3 insertions(+), 3 deletions(-)
-
---- linux-2.6.20.1.orig/fs/jfs/jfs_lock.h
-+++ linux-2.6.20.1/fs/jfs/jfs_lock.h
-@@ -42,7 +42,7 @@ do { \
- if (cond) \
- break; \
- unlock_cmd; \
-- schedule(); \
-+ io_schedule(); \
- lock_cmd; \
- } \
- current->state = TASK_RUNNING; \
---- linux-2.6.20.1.orig/fs/jfs/jfs_metapage.c
-+++ linux-2.6.20.1/fs/jfs/jfs_metapage.c
-@@ -56,7 +56,7 @@ static inline void __lock_metapage(struc
- set_current_state(TASK_UNINTERRUPTIBLE);
- if (metapage_locked(mp)) {
- unlock_page(mp->page);
-- schedule();
-+ io_schedule();
- lock_page(mp->page);
- }
- } while (trylock_metapage(mp));
---- linux-2.6.20.1.orig/fs/jfs/jfs_txnmgr.c
-+++ linux-2.6.20.1/fs/jfs/jfs_txnmgr.c
-@@ -135,7 +135,7 @@ static inline void TXN_SLEEP_DROP_LOCK(w
- add_wait_queue(event, &wait);
- set_current_state(TASK_UNINTERRUPTIBLE);
- TXN_UNLOCK();
-- schedule();
-+ io_schedule();
- current->state = TASK_RUNNING;
- remove_wait_queue(event, &wait);
- }
From stable-bounces@linux.kernel.org Sun Feb 4 12:37:49 2007
-From: Stefan Richter <stefanr@s5r6.in-berlin.de>
-Date: Sun, 04 Feb 2007 21:36:15 +0100
+From: David Moore <dcm@acm.org>
+Date: Sun, 04 Feb 2007 13:39:40 -0500
Subject: Missing critical phys_to_virt in lib/swiotlb.c
To: stable@kernel.org
Cc: discuss@x86-64.org, Jan Beulich <jbeulich@novell.com>, David Moore <dcm@MIT.EDU>, akpm@linux-foundation.org, linux1394-devel <linux1394-devel@lists.sourceforge.net>
Message-ID: <45C643BF.80204@s5r6.in-berlin.de>
-From: Stefan Richter <stefanr@s5r6.in-berlin.de>
+From: David Moore <dcm@acm.org>
-David Moore wrote:
-[...]
-> considering the severity of this one-liner bug, I would like to
-> request that this simplified patch make it into 2.6.20, despite how
-> close we are to the final cut.
+Missing critical phys_to_virt in lib/swiotlb.c
-So we were too close. Maybe the -stable team likes to have it in 2.6.20.1.
+Adds missing call to phys_to_virt() in the
+lib/swiotlb.c:swiotlb_sync_sg() function. Without this change, a kernel
+panic will always occur whenever a SWIOTLB bounce buffer from a
+scatter-gather list gets synced. Affected are especially Intel x86_64
+machines with more than about 3 GB RAM.
-> It fixes real crashes:
-> http://lists.opensuse.org/opensuse-bugs/2006-12/msg02943.html
-> http://qa.mandriva.com/show_bug.cgi?id=28224
-> http://www.pchdtv.com/forum/viewtopic.php?t=2063&sid=a959a14a4c2db0eebaab7b0df56103ce
-
-and FireWire crashes too.
-
-
-From: Stefan Richter <stefanr@s5r6.in-berlin.de>
+Signed-off-by: David Moore <dcm@acm.org>
+Signed-off-by: Stefan Richter <stefanr@s5r6.in-berlin.de>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
---