Skip to content

Commit

Permalink
[PATCH] cciss: disable DMA prefetch on P600
Browse files Browse the repository at this point in the history
Unconditionally disable DMA prefetch on the P600 controller.  An ASIC bug may
result in prefetching beyond the end of physical memory.

Signed-off-by: Mike Miller <mike.miller@hp.com>
Acked-by: Jens Axboe <jens.axboe@oracle.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
  • Loading branch information
Mike Miller authored and Linus Torvalds committed Dec 7, 2006
1 parent de92391 commit f92e2f5
Show file tree
Hide file tree
Showing 2 changed files with 12 additions and 0 deletions.
11 changes: 11 additions & 0 deletions drivers/block/cciss.c
Original file line number Diff line number Diff line change
Expand Up @@ -3003,6 +3003,17 @@ static int cciss_pci_init(ctlr_info_t *c, struct pci_dev *pdev)
}
#endif

/* Disabling DMA prefetch for the P600
* An ASIC bug may result in a prefetch beyond
* physical memory.
*/
if(board_id == 0x3225103C) {
__u32 dma_prefetch;
dma_prefetch = readl(c->vaddr + I2O_DMA1_CFG);
dma_prefetch |= 0x8000;
writel(dma_prefetch, c->vaddr + I2O_DMA1_CFG);
}

#ifdef CCISS_DEBUG
printk("Trying to put board into Simple mode\n");
#endif /* CCISS_DEBUG */
Expand Down
1 change: 1 addition & 0 deletions drivers/block/cciss_cmd.h
Original file line number Diff line number Diff line change
Expand Up @@ -55,6 +55,7 @@
#define I2O_INT_MASK 0x34
#define I2O_IBPOST_Q 0x40
#define I2O_OBPOST_Q 0x44
#define I2O_DMA1_CFG 0x214

//Configuration Table
#define CFGTBL_ChangeReq 0x00000001l
Expand Down

0 comments on commit f92e2f5

Please sign in to comment.