diff options
author | Greg Kroah-Hartman <gregkh@suse.de> | 2011-02-15 05:55:14 -0800 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@suse.de> | 2011-02-15 05:55:14 -0800 |
commit | 6c9897fdd4670f4a86a870c2f871f9074fb7cb2c (patch) | |
tree | cf44c598115fba949e434ea374887879b333a6cb | |
parent | 365cb646ec708cb5732aa690873ec054b2e2348b (diff) | |
download | longterm-queue-2.6.33-6c9897fdd4670f4a86a870c2f871f9074fb7cb2c.tar.gz |
.33 patch
-rw-r--r-- | queue-2.6.33/rapidio-fix-hang-on-rapidio-doorbell-queue-full-condition.patch | 44 | ||||
-rw-r--r-- | queue-2.6.33/series | 1 |
2 files changed, 45 insertions, 0 deletions
diff --git a/queue-2.6.33/rapidio-fix-hang-on-rapidio-doorbell-queue-full-condition.patch b/queue-2.6.33/rapidio-fix-hang-on-rapidio-doorbell-queue-full-condition.patch new file mode 100644 index 0000000..98b3fbf --- /dev/null +++ b/queue-2.6.33/rapidio-fix-hang-on-rapidio-doorbell-queue-full-condition.patch @@ -0,0 +1,44 @@ +From 12a4dc43911785f51a596f771ae0701b18d436f1 Mon Sep 17 00:00:00 2001 +From: Thomas Taranowski <tom@baringforge.com> +Date: Wed, 12 Jan 2011 17:00:44 -0800 +Subject: rapidio: fix hang on RapidIO doorbell queue full condition + +From: Thomas Taranowski <tom@baringforge.com> + +commit 12a4dc43911785f51a596f771ae0701b18d436f1 upstream. + +In fsl_rio_dbell_handler() the code currently simply acknowledges the QFI +queue full interrupt, but does nothing to resolve the queue full +condition. Instead, it jumps to the end of the isr. When a queue full +condition occurs, the isr is then re-entered immediately and continually, +forever. + +The fix is to just fall through and read out current doorbell entries. + +Signed-off-by: Thomas Taranowski <tom@baringforge.com> +Cc: Alexandre Bounine <alexandre.bounine@idt.com> +Cc: Kumar Gala <galak@kernel.crashing.org> +Cc: Matt Porter <mporter@kernel.crashing.org> +Cc: Li Yang <leoli@freescale.com> +Cc: Thomas Moll <thomas.moll@sysgo.com> +Cc: Micha Nelissen <micha@neli.hopto.org> +Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org> +Cc: Grant Likely <grant.likely@secretlab.ca> +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> + +--- + arch/powerpc/sysdev/fsl_rio.c | 1 - + 1 file changed, 1 deletion(-) + +--- a/arch/powerpc/sysdev/fsl_rio.c ++++ b/arch/powerpc/sysdev/fsl_rio.c +@@ -832,7 +832,6 @@ fsl_rio_dbell_handler(int irq, void *dev + if (dsr & DOORBELL_DSR_QFI) { + pr_info("RIO: doorbell queue full\n"); + out_be32(&priv->msg_regs->dsr, DOORBELL_DSR_QFI); +- goto out; + } + + /* XXX Need to check/dispatch until queue empty */ diff --git a/queue-2.6.33/series b/queue-2.6.33/series index 0d4bf00..5c2283a 100644 --- a/queue-2.6.33/series +++ b/queue-2.6.33/series @@ -293,3 +293,4 @@ asoc-wm8990-msleep-takes-milliseconds-not-jiffies.patch asoc-blackfin-ac97-fix-build-error-after-multi-component-update.patch nfs-fix-kernel-bug-at-fs-aio.c-554.patch rtc-cmos-fix-suspend-resume.patch +rapidio-fix-hang-on-rapidio-doorbell-queue-full-condition.patch |