From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1757396Ab1GKUzt (ORCPT ); Mon, 11 Jul 2011 16:55:49 -0400 Received: from g1t0028.austin.hp.com ([15.216.28.35]:18381 "EHLO g1t0028.austin.hp.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1750901Ab1GKUzs (ORCPT ); Mon, 11 Jul 2011 16:55:48 -0400 Date: Mon, 11 Jul 2011 15:51:24 -0500 From: scameron@beardog.cce.hp.com To: Andrew Morton Cc: james.bottomley@hansenpartnership.com, linux-scsi@vger.kernel.org, linux-kernel@vger.kernel.org, stephenmcameron@gmail.com, thenzl@redhat.com, mikem@beardog.cce.hp.com Subject: Re: [PATCH] hpsa: do not attempt to read from a write-only register Message-ID: <20110711205124.GB25366@beardog.cce.hp.com> References: <20110708195926.3623.30375.stgit@beardog.cce.hp.com> <20110711131911.31789ee0.akpm@linux-foundation.org> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20110711131911.31789ee0.akpm@linux-foundation.org> User-Agent: Mutt/1.4.2.2i Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Mon, Jul 11, 2011 at 01:19:11PM -0700, Andrew Morton wrote: > On Fri, 08 Jul 2011 14:59:26 -0500 > "Stephen M. Cameron" wrote: > > > From: Stephen M. Cameron > > > > Most smartarrays tolerate it, but a few new ones don't. > > > > Signed-off-by: Stephen M. Cameron > > --- > > drivers/scsi/hpsa.h | 2 +- > > 1 files changed, 1 insertions(+), 1 deletions(-) > > > > diff --git a/drivers/scsi/hpsa.h b/drivers/scsi/hpsa.h > > index 6d8dcd4..7f53cea 100644 > > --- a/drivers/scsi/hpsa.h > > +++ b/drivers/scsi/hpsa.h > > @@ -214,7 +214,7 @@ static void SA5_submit_command(struct ctlr_info *h, > > dev_dbg(&h->pdev->dev, "Sending %x, tag = %x\n", c->busaddr, > > c->Header.Tag.lower); > > writel(c->busaddr, h->vaddr + SA5_REQUEST_PORT_OFFSET); > > - (void) 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; > > The changelog forgot to tell us the user-visible effects of the bug. > That was really really bad of it. Bad changelog. No bone for you. Oh, sorry. When the controller doesn't tolerate the bug, the firmware on it locks up. No interrupts are received, no commands complete. I/o on that controller grinds to a halt. I can resubmit if you like. -- steve