2005-09-08 15:15:46

by Tom Rini

[permalink] [raw]
Subject: [PATCH 2.6.13] ide: ide-dma.c should always check hwif->cds before hwif->cds->foo

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/


Subject: Re: [PATCH 2.6.13] ide: ide-dma.c should always check hwif->cds before hwif->cds->foo

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/

2005-09-08 15:56:36

by Tom Rini

[permalink] [raw]
Subject: Re: [PATCH 2.6.13] ide: ide-dma.c should always check hwif->cds before hwif->cds->foo

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/