In some cases (such as the mips Toshiba TX4939 w/ onboard IDE, not PCI
IDE), hwif->cds can be NULL, so test that prior to testing
hwif->cds->foo
Signed-off-by: Hiroshi DOYU <[email protected]>
Signed-off-by: Tom Rini <[email protected]>
Index: linux-2.6/drivers/ide/ide-dma.c
===================================================================
--- linux-2.6.orig/drivers/ide/ide-dma.c
+++ linux-2.6/drivers/ide/ide-dma.c
@@ -846,7 +846,7 @@ static int ide_mapped_mmio_dma(ide_hwif_
printk(KERN_INFO " %s: MMIO-DMA ", hwif->name);
hwif->dma_base = base;
- if (hwif->cds->extra && hwif->channel == 0)
+ if (hwif->cds && hwif->cds->extra && hwif->channel == 0)
hwif->dma_extra = hwif->cds->extra;
if(hwif->mate)
@@ -865,7 +865,7 @@ static int ide_iomio_dma(ide_hwif_t *hwi
return 1;
}
hwif->dma_base = base;
- if ((hwif->cds->extra) && (hwif->channel == 0)) {
+ if (hwif->cds && hwif->cds->extra && (hwif->channel == 0)) {
request_region(base+16, hwif->cds->extra, hwif->cds->name);
hwif->dma_extra = hwif->cds->extra;
}
--
Tom Rini
http://gate.crashing.org/~trini/
Hi,
On 9/8/05, Tom Rini <[email protected]> wrote:
> In some cases (such as the mips Toshiba TX4939 w/ onboard IDE, not PCI
> IDE), hwif->cds can be NULL, so test that prior to testing
> hwif->cds->foo
Both ide_iomio_dma() and ide_mapped_mmio_dma() are only called from
ide_dma_iobase(). ide_setup_dma() is the only user of ide_dma_iobase()
and it is supposed to be used only by IDE PCI drivers.
What is the reason for this change?
Bartlomiej
> Signed-off-by: Hiroshi DOYU <[email protected]>
> Signed-off-by: Tom Rini <[email protected]>
>
> Index: linux-2.6/drivers/ide/ide-dma.c
> ===================================================================
> --- linux-2.6.orig/drivers/ide/ide-dma.c
> +++ linux-2.6/drivers/ide/ide-dma.c
> @@ -846,7 +846,7 @@ static int ide_mapped_mmio_dma(ide_hwif_
> printk(KERN_INFO " %s: MMIO-DMA ", hwif->name);
>
> hwif->dma_base = base;
> - if (hwif->cds->extra && hwif->channel == 0)
> + if (hwif->cds && hwif->cds->extra && hwif->channel == 0)
> hwif->dma_extra = hwif->cds->extra;
>
> if(hwif->mate)
> @@ -865,7 +865,7 @@ static int ide_iomio_dma(ide_hwif_t *hwi
> return 1;
> }
> hwif->dma_base = base;
> - if ((hwif->cds->extra) && (hwif->channel == 0)) {
> + if (hwif->cds && hwif->cds->extra && (hwif->channel == 0)) {
> request_region(base+16, hwif->cds->extra, hwif->cds->name);
> hwif->dma_extra = hwif->cds->extra;
> }
>
> --
> Tom Rini
> http://gate.crashing.org/~trini/
On Thu, Sep 08, 2005 at 05:47:38PM +0200, Bartlomiej Zolnierkiewicz wrote:
> On 9/8/05, Tom Rini <[email protected]> wrote:
> > In some cases (such as the mips Toshiba TX4939 w/ onboard IDE, not PCI
> > IDE), hwif->cds can be NULL, so test that prior to testing
> > hwif->cds->foo
>
> Both ide_iomio_dma() and ide_mapped_mmio_dma() are only called from
> ide_dma_iobase(). ide_setup_dma() is the only user of ide_dma_iobase()
> and it is supposed to be used only by IDE PCI drivers.
>
> What is the reason for this change?
I'll try and explain for Hiroshi DOYU, but the IDE driver for the tx4939
(overall port still need a little bit more review before being sent to
linux-mips, so the ide driver hasn't been submitted yet either) calls
ide_setup_dma(), and has hwif->cds == NULL.
--
Tom Rini
http://gate.crashing.org/~trini/