pdc202xx_old: add missing ->dma_base check
PATCH 6/12 pdc202xx_old: add missing ->dma_base check
If ->dma_base is not set (== PCI BAR4 cannot be reserved) then DMA hooks shouldn't be initialized or bad things will happen.
Signed-off-by Bartlomiej Zolnierkiewicz <[email protected]>
--- drivers/ide/pci/pdc202xx_old.c | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-)
drivers/ide/pci/pdc202xx_old.c +6 -3
@@ -1,5 +1,5 @@/* -* linux/drivers/ide/pci/pdc202xx_old.c Version 0.50 Mar 3, 2007 +* linux/drivers/ide/pci/pdc202xx_old.c Version 0.51 Jul 27, 2007 * * Copyright (C) 1998-2002 Andre Hedrick <[email protected]> * Copyright (C) 2006-2007 MontaVista Software, Inc.
@@ -335,15 +335,18 @@ static void __devinit init_hwif_pdc202xxif (hwif->pci_dev->device !=PCI_DEVICE_ID_PROMISE_20246 ) hwif->resetproc = &pdc202xx_reset; + hwif->err_stops_fifo =1 ; + hwif->drives[0 ].autotune = hwif->drives[1 ].autotune =1 ; +if (hwif->dma_base ==0 ) +return ; + hwif->ultra_mask = hwif->cds->udma_mask; hwif->mwdma_mask =0x07 ; hwif->swdma_mask =0x07 ; hwif->atapi_dma =1 ; - hwif->err_stops_fifo =1 ; - hwif->ide_dma_check = &pdc202xx_config_drive_xfer_rate; hwif->dma_lost_irq = &pdc202xx_dma_lost_irq; hwif->dma_timeout = &pdc202xx_dma_timeout;
Quoted 4 lines · Bartlomiej Zolnierkiewicz
If ->dma_base is not set (== PCI BAR4 cannot be reserved) then DMA hooks shouldn't be initialized or bad things will happen.
Signed-off-by Bartlomiej Zolnierkiewicz <[email protected]>
Acked-by Sergei Shtylyov <[email protected]>
MBR, Sergei