[PATCH] pata_platform struct resource signness fix
Wang Jian
lark at linux.net.cn
Thu Sep 25 18:54:27 EST 2008
The alternative fix can be.
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 at linux.net.cn>
> ---
> 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;
> }
More information about the Linuxppc-dev
mailing list