On Thu, Sep 25, 2008 at 4:54 PM, Wang Jian <lark@xxxxxxxxxxxx> wrote: > The alternative fix can be. This one is better as 0 is defined as 'invalid irq' for all architectures. Added linux-ide and Anton to cc. - Leo > > diff --git a/drivers/ata/pata_of_platform.c b/drivers/ata/pata_of_platform.c > index 408da30..1f18ad9 100644 > --- a/drivers/ata/pata_of_platform.c > +++ b/drivers/ata/pata_of_platform.c > @@ -52,7 +52,7 @@ static int __devinit pata_of_platform_probe(struct > of_device *ofdev, > > ret = of_irq_to_resource(dn, 0, &irq_res); > if (ret == NO_IRQ) > - irq_res.start = irq_res.end = -1; > + irq_res.start = irq_res.end = 0; > else > irq_res.flags = 0; > > I just didn't spend much time to see which is better. > > Wang Jian wrote: >> >> Hi, >> >> This patch is to pata_platform.c but at this time, it's powerpc specific >> because it can only be triggerred using openfirmware, so I post the patch >> here. The patch is against 2.6.26-rc8. >> >> The problem is triggerred when ata device is populated using >> pata_of_platform.c, and no irq is assigned (poll mode, such as CF card). >> >> pata_of_platform_probe() parse device tree and >> >> if (ret == NO_IRQ) >> irq_res.start = irq_res.end = -1; >> >> Then irq is 0xffffffff, not NULL. Probe will fail coz irq can't be >> requested. >> >> >> --- >> (irq_res->start > 0) will be true even when it is (-1). When the device >> has no irq, irq_res->start is assigned (-1). >> >> Signed-off-by: Wang Jian <lark@xxxxxxxxxxxx> >> --- >> drivers/ata/pata_platform.c | 2 +- >> 1 files changed, 1 insertions(+), 1 deletions(-) >> >> diff --git a/drivers/ata/pata_platform.c b/drivers/ata/pata_platform.c >> index 8f65ad6..b12cd0c 100644 >> --- a/drivers/ata/pata_platform.c >> +++ b/drivers/ata/pata_platform.c >> @@ -123,7 +123,7 @@ int __devinit __pata_platform_probe(struct device >> *dev, >> /* >> * And the IRQ >> */ >> - if (irq_res && irq_res->start > 0) { >> + if (irq_res && irq_res->start != -1) { >> irq = irq_res->start; >> irq_flags = irq_res->flags; >> } > > _______________________________________________ > Linuxppc-dev mailing list > Linuxppc-dev@xxxxxxxxxx > https://ozlabs.org/mailman/listinfo/linuxppc-dev > -- To unsubscribe from this list: send the line "unsubscribe linux-ide" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html