[<prev] [next>] [day] [month] [year] [list]
Message-ID: <20110323193340.GB18722@beardog.cce.hp.com>
Date: Wed, 23 Mar 2011 14:33:40 -0500
From: Mike Miller <mike.miller@...com>
To: Andrew Morton <akpm@...ux-foundation.org>,
Jens Axboe <axboe@...nel.dk>
Cc: LKML <linux-kernel@...r.kernel.org>,
LKML-scsi <linux-scsi@...r.kernel.org>, bud.brown@...hat.com,
mike.bacco@...com, Tom Coughlan <coughlan@...hat.com>,
alan.ross@...com
Subject: [PATCH 1/1] cciss: fix lost command issue
Patch 1 of 1
cciss: fix lost command problem
From: Bud Brown <bud.brown@...hat.com>
Under certain workloads a command may seem to get lost. IOW, the Smart Array
thinks all commands have been completed but we still have commands in our
completion queue. This may lead to system instability, filesystems going
read-only, or even panics depending on the affected filesystem. We add an
extra read to force the write to complete.
Testing shows this extra read avoids the problem.
Signed-off-by: Mike Miller <mike.miller@...com>
diff -urNp linux-2.6/drivers/block/cciss.h linux-2.6-03212011/drivers/block/cciss.h
--- linux-2.6/drivers/block/cciss.h 2011-03-21 15:41:23.100192400 -0500
+++ linux-2.6-03212011/drivers/block/cciss.h 2011-03-21 15:39:20.472192814 -0500
@@ -222,6 +222,7 @@ static void SA5_submit_command( ctlr_inf
h->ctlr, c->busaddr);
#endif /* CCISS_DEBUG */
writel(c->busaddr, h->vaddr + SA5_REQUEST_PORT_OFFSET);
+ readl(h->vaddr + SA5_REQUEST_PORT_OFFSET);
h->commands_outstanding++;
if ( h->commands_outstanding > h->max_outstanding)
h->max_outstanding = h->commands_outstanding;
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists