From: Phillip Lougher <plougher@redhat.com> Date: Thu, 19 May 2011 03:20:34 -0000 Subject: [block] cciss: reading a write only register causes a hang Message-id: <20110519032035.045043FF0C@plougher.csb> Patchwork-id: 35945 O-Subject: [RHEL5.[46].z PATCH] hpsa: reading a write only register causes a hang Bugzilla: 696502 696503 RH-Acked-by: Tomas Henzl <thenzl@redhat.com> RH-Acked-by: Jiri Pirko <jpirko@redhat.com> RH-Acked-by: Don Howard <dhoward@redhat.com> BZ#696502 (5.4.z) BZ#696503 (5.6.z) This is a trivial fix-up of the following patch to allow it to be applied to 5.4.z and 5.6.z streams. Thanks Phillip >From 8c22ab5f97541f804a1309a57f4007f30975dadf Mon Sep 17 00:00:00 2001 From: Tomas Henzl <thenzl@redhat.com> Date: Mon, 16 May 2011 14:31:50 +0000 Subject: [PATCH] cciss: reading a write only register causes a hang bz#696153 Jarod: The same bug number^ is used again, this is a incremental patch. From: Mike Miller <mike.miller@hp.com> We change the readl to read from a readable register. Other controllers don't seem to care but Gen8 controllers lockup. brew - taskID=3325305 Tomas --- drivers/block/cciss.h | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-) diff --git a/drivers/block/cciss.h b/drivers/block/cciss.h index ec3cda1..d1f6670 100644 --- a/drivers/block/cciss.h +++ b/drivers/block/cciss.h @@ -169,7 +169,7 @@ static void SA5_submit_command( ctlr_info_t *h, CommandList_struct *c) printk("Sending %x - down to controller\n", c->busaddr ); #endif /* CCISS_DEBUG */ writel(c->busaddr, h->vaddr + SA5_REQUEST_PORT_OFFSET); - readl(h->vaddr + SA5_REQUEST_PORT_OFFSET); + (void) readl(h->vaddr + SA5_SCRATCHPAD_OFFSET); h->commands_outstanding++; if ( h->commands_outstanding > h->max_outstanding) h->max_outstanding = h->commands_outstanding;