* [PATCH] pata_platform struct resource signness fix @ 2008-09-25 8:36 Wang Jian 2008-09-25 8:54 ` Wang Jian 2008-09-25 9:12 ` Leo Li 0 siblings, 2 replies; 10+ messages in thread From: Wang Jian @ 2008-09-25 8:36 UTC (permalink / raw) To: linuxppc-dev 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@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; } -- 1.5.5.4 ^ permalink raw reply related [flat|nested] 10+ messages in thread
* Re: [PATCH] pata_platform struct resource signness fix 2008-09-25 8:36 [PATCH] pata_platform struct resource signness fix Wang Jian @ 2008-09-25 8:54 ` Wang Jian 2008-09-25 10:40 ` Li Yang 2008-09-25 9:12 ` Leo Li 1 sibling, 1 reply; 10+ messages in thread From: Wang Jian @ 2008-09-25 8:54 UTC (permalink / raw) To: linuxppc-dev 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@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; > } ^ permalink raw reply related [flat|nested] 10+ messages in thread
* Re: [PATCH] pata_platform struct resource signness fix 2008-09-25 8:54 ` Wang Jian @ 2008-09-25 10:40 ` Li Yang 2008-09-25 10:48 ` Anton Vorontsov 2008-09-25 15:33 ` [PATCH] pata_platform struct resource signness fix Wang Jian 0 siblings, 2 replies; 10+ messages in thread From: Li Yang @ 2008-09-25 10:40 UTC (permalink / raw) To: Wang Jian; +Cc: linuxppc-dev, linux-ide On Thu, Sep 25, 2008 at 4:54 PM, Wang Jian <lark@linux.net.cn> 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@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; >> } > > _______________________________________________ > Linuxppc-dev mailing list > Linuxppc-dev@ozlabs.org > https://ozlabs.org/mailman/listinfo/linuxppc-dev > ^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [PATCH] pata_platform struct resource signness fix 2008-09-25 10:40 ` Li Yang @ 2008-09-25 10:48 ` Anton Vorontsov 2008-09-29 4:19 ` Jeff Garzik 2008-09-25 15:33 ` [PATCH] pata_platform struct resource signness fix Wang Jian 1 sibling, 1 reply; 10+ messages in thread From: Anton Vorontsov @ 2008-09-25 10:48 UTC (permalink / raw) To: Li Yang, Jeff Garzik; +Cc: linux-ide, linuxppc-dev, Wang Jian On Thu, Sep 25, 2008 at 06:40:59PM +0800, Li Yang wrote: > On Thu, Sep 25, 2008 at 4:54 PM, Wang Jian <lark@linux.net.cn> 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. Thanks for the correct Cc. I've sent a patch to fix the issue more than a month ago. http://www.mail-archive.com/linuxppc-dev@ozlabs.org/msg22851.html Jeff, could you apply the patch? Thanks! -- Anton Vorontsov email: cbouatmailru@gmail.com irc://irc.freenode.net/bd2 ^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [PATCH] pata_platform struct resource signness fix 2008-09-25 10:48 ` Anton Vorontsov @ 2008-09-29 4:19 ` Jeff Garzik 2008-09-29 13:32 ` [PATCH] pata_of_platform: fix no irq handling Anton Vorontsov 0 siblings, 1 reply; 10+ messages in thread From: Jeff Garzik @ 2008-09-29 4:19 UTC (permalink / raw) To: avorontsov; +Cc: linux-ide, linuxppc-dev, Li Yang, Wang Jian Anton Vorontsov wrote: > On Thu, Sep 25, 2008 at 06:40:59PM +0800, Li Yang wrote: >> On Thu, Sep 25, 2008 at 4:54 PM, Wang Jian <lark@linux.net.cn> 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. > > Thanks for the correct Cc. > > I've sent a patch to fix the issue more than a month ago. > > http://www.mail-archive.com/linuxppc-dev@ozlabs.org/msg22851.html > > Jeff, could you apply the patch? Can you resend, I don't seem to have it... ^ permalink raw reply [flat|nested] 10+ messages in thread
* [PATCH] pata_of_platform: fix no irq handling 2008-09-29 4:19 ` Jeff Garzik @ 2008-09-29 13:32 ` Anton Vorontsov 0 siblings, 0 replies; 10+ messages in thread From: Anton Vorontsov @ 2008-09-29 13:32 UTC (permalink / raw) To: Jeff Garzik; +Cc: linux-ide, linuxppc-dev, Li Yang, Wang Jian When no irq specified the pata_of_platform fills the irq_res with -1, which is wrong to do for two reasons: 1. By definition, 'no irq' should be IRQ 0, not some negative integer; 2. pata_platform checks for irq_res.start > 0, but since irq_res.start is unsigned type, the check will be true for `-1'. Reported-by: Steven A. Falco <sfalco@harris.com> Signed-off-by: Anton Vorontsov <avorontsov@ru.mvista.com> --- On Mon, Sep 29, 2008 at 12:19:14AM -0400, Jeff Garzik wrote: > Anton Vorontsov wrote: >> On Thu, Sep 25, 2008 at 06:40:59PM +0800, Li Yang wrote: >>> On Thu, Sep 25, 2008 at 4:54 PM, Wang Jian <lark@linux.net.cn> 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. >> >> Thanks for the correct Cc. >> >> I've sent a patch to fix the issue more than a month ago. >> >> http://www.mail-archive.com/linuxppc-dev@ozlabs.org/msg22851.html >> >> Jeff, could you apply the patch? > > Can you resend, I don't seem to have it... Here it is. Thanks, drivers/ata/pata_of_platform.c | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-) 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; -- 1.5.6.3 ^ permalink raw reply related [flat|nested] 10+ messages in thread
* Re: [PATCH] pata_platform struct resource signness fix 2008-09-25 10:40 ` Li Yang 2008-09-25 10:48 ` Anton Vorontsov @ 2008-09-25 15:33 ` Wang Jian 2008-09-25 15:47 ` Anton Vorontsov 1 sibling, 1 reply; 10+ messages in thread From: Wang Jian @ 2008-09-25 15:33 UTC (permalink / raw) To: Li Yang; +Cc: linuxppc-dev, linux-ide Li Yang wrote: > On Thu, Sep 25, 2008 at 4:54 PM, Wang Jian <lark@linux.net.cn> 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. However, this is not very true. Just git grep "#define NO_IRQ" and see. It seems that the NO_IRQ is in transition from (-1) to (0). I happened to code the same 2 patches as Anton Vorontsov <avorontsov@ru.mvista.com> had done without knowing his earlier work. I think he was also confused by (-1) and (0). > > - 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@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; >>> } >> _______________________________________________ >> Linuxppc-dev mailing list >> Linuxppc-dev@ozlabs.org >> https://ozlabs.org/mailman/listinfo/linuxppc-dev >> > > ^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [PATCH] pata_platform struct resource signness fix 2008-09-25 15:33 ` [PATCH] pata_platform struct resource signness fix Wang Jian @ 2008-09-25 15:47 ` Anton Vorontsov 0 siblings, 0 replies; 10+ messages in thread From: Anton Vorontsov @ 2008-09-25 15:47 UTC (permalink / raw) To: Wang Jian; +Cc: linuxppc-dev, Li Yang, linux-ide On Thu, Sep 25, 2008 at 11:33:35PM +0800, Wang Jian wrote: > Li Yang wrote: >> On Thu, Sep 25, 2008 at 4:54 PM, Wang Jian <lark@linux.net.cn> 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. > > However, this is not very true. Just git grep "#define NO_IRQ" and see. It > seems that the NO_IRQ is in transition from (-1) to (0). Yeah, there is a mess, but it gets better as time goes by. The platforms/drivers should be fixed, since 0 is the only invalid VIRQ. -- Anton Vorontsov email: cbouatmailru@gmail.com irc://irc.freenode.net/bd2 ^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [PATCH] pata_platform struct resource signness fix 2008-09-25 8:36 [PATCH] pata_platform struct resource signness fix Wang Jian 2008-09-25 8:54 ` Wang Jian @ 2008-09-25 9:12 ` Leo Li 2008-09-25 9:30 ` Wang Jian 1 sibling, 1 reply; 10+ messages in thread From: Leo Li @ 2008-09-25 9:12 UTC (permalink / raw) To: Wang Jian; +Cc: linuxppc-dev On Thu, Sep 25, 2008 at 4:36 PM, Wang Jian <lark@linux.net.cn> 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. Powerpc isn't the only arch to use openfirmware. Anyway, you have to cc linux-ide@vger.kernel.org if you want the patch to be merged. - Leo ^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [PATCH] pata_platform struct resource signness fix 2008-09-25 9:12 ` Leo Li @ 2008-09-25 9:30 ` Wang Jian 0 siblings, 0 replies; 10+ messages in thread From: Wang Jian @ 2008-09-25 9:30 UTC (permalink / raw) To: Leo Li; +Cc: linuxppc-dev As I said, I didn't spend much time on the issue, so I don't know which patch is better. (But I do think the patch to pata_of_platform.c is better ATM). AFAIK, powerpc is the only consumer of pata_of_platform.c, so I think this list is better for discussion. I should cc: Anton Vorontsov <avorontsov@ru.mvista.com> but last time I cc: him I got bounced. Leo Li wrote: > On Thu, Sep 25, 2008 at 4:36 PM, Wang Jian <lark@linux.net.cn> 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. > > Powerpc isn't the only arch to use openfirmware. Anyway, you have to > cc linux-ide@vger.kernel.org if you want the patch to be merged. > > - Leo > > ^ permalink raw reply [flat|nested] 10+ messages in thread
end of thread, other threads:[~2008-09-29 13:32 UTC | newest] Thread overview: 10+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2008-09-25 8:36 [PATCH] pata_platform struct resource signness fix Wang Jian 2008-09-25 8:54 ` Wang Jian 2008-09-25 10:40 ` Li Yang 2008-09-25 10:48 ` Anton Vorontsov 2008-09-29 4:19 ` Jeff Garzik 2008-09-29 13:32 ` [PATCH] pata_of_platform: fix no irq handling Anton Vorontsov 2008-09-25 15:33 ` [PATCH] pata_platform struct resource signness fix Wang Jian 2008-09-25 15:47 ` Anton Vorontsov 2008-09-25 9:12 ` Leo Li 2008-09-25 9:30 ` Wang Jian
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for NNTP newsgroup(s).