Re: [PATCH 5/8] resend cciss: disable DMA prefetch on P600

From: Christoph Hellwig
Date: Fri Nov 03 2006 - 11:59:29 EST


On Fri, Nov 03, 2006 at 05:42:15PM +0100, Arjan van de Ven wrote:
> On Fri, 2006-11-03 at 09:54 -0600, Mike Miller (OS Dev) wrote:
> > PATCH 5 of 8 resend
> >
> > This patch unconditionally disables DMA prefetch on the P600 controller. A
> > bug in the ASIC may result in prefetching either beyond the end of memory
> > or to fall off into a memory hole.
> > Please consider this for inclusion.
> >
> > Thanks,
> > mikem
> >
> > Signed-off-by: Mike Miller <mike.miller@xxxxxx>
> >
> > cciss.c | 13 +++++++++++++
> > cciss_cmd.h | 1 +
> > 2 files changed, 14 insertions(+)
> > --------------------------------------------------------------------------------
> > diff -urNp linux-2.6-p00004/drivers/block/cciss.c linux-2.6-p00005/drivers/block/cciss.c
> > --- linux-2.6-p00004/drivers/block/cciss.c 2006-10-31 15:20:25.000000000 -0600
> > +++ linux-2.6-p00005/drivers/block/cciss.c 2006-11-03 09:43:55.000000000 -0600
> > @@ -2997,6 +2997,19 @@ static int cciss_pci_init(ctlr_info_t *c
> > }
> > #endif
> >
> > + {
> > + /* Disabling DMA prefetch for the P600
> > + * An ASIC bug may result in a prefetch beyond
> > + * physical memory.
> > + */
> > + __u32 dma_prefetch
> > + if(board_id == 0x3225103C) {
> > + dma_prefetch = readl(c->vaddr + I2O_DMA1_CFG);
> > + dma_prefetch |= 0x8000;
> > + writel(dma_prefetch, c->vaddr + I2O_DMA1_CFG);
> > + }
> > + }
> > +
>
> if you remove the if() you might as well also remove the {}'s ;)

And fix the spaces around the if() while we're at it, aka:

/*
* Disable DMA prefetch for the P600.
* An ASIC bug may result in a prefetch beyond
* physical memory.
*/
if (board_id == 0x3225103C) {
u32 dma_prefetch = readl(c->vaddr + I2O_DMA1_CFG);
writel(dma_prefetch | 0x8000, c->vaddr + I2O_DMA1_CFG);
}
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/