Re: [PATCH] Revert powerpc: 52xx: provide a default in mpc52xx_irqhost_map()
On 10/01/2013 09:03 PM, Wolfram Sang wrote: Yup. But I just remembered a better solution: From: Wolfram Sang w...@the-dreams.de Subject: [PATCH] ppc: mpc52xx: silence false positive from old GCC So people can compile with -Werror. Signed-off-by: Wolfram Sang w...@the-dreams.de --- arch/powerpc/platforms/52xx/mpc52xx_pic.c |2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/arch/powerpc/platforms/52xx/mpc52xx_pic.c b/arch/powerpc/platforms/52xx/mpc52xx_pic.c index b89ef65..2898b73 100644 --- a/arch/powerpc/platforms/52xx/mpc52xx_pic.c +++ b/arch/powerpc/platforms/52xx/mpc52xx_pic.c @@ -340,7 +340,7 @@ static int mpc52xx_irqhost_map(struct irq_domain *h, unsigned int virq, { int l1irq; int l2irq; - struct irq_chip *irqchip; + struct irq_chip *uninitialized_var(irqchip); void *hndlr; int type; u32 reg; uninitialized_var was created for exactly that purpose IIRC. Yup, looks good, thanks. Thanks, Wolfram Sebastian ___ Linuxppc-dev mailing list Linuxppc-dev@lists.ozlabs.org https://lists.ozlabs.org/listinfo/linuxppc-dev
[PATCH] Revert powerpc: 52xx: provide a default in mpc52xx_irqhost_map()
This reverts commit 6391f697d4892a6f233501beea553e13f7745a23. The compiler warning it wants to fix does not appear with my gcc 4.6.2. IMO we don't need superfluous (and here even misleading) code to make old compilers happy. Fixing the printout was bogus, too. We want to know WHICH critical irq failed, not which level it had. Signed-off-by: Wolfram Sang w...@the-dreams.de Cc: Sebastian Andrzej Siewior bige...@linutronix.de Cc: Anatolij Gustschin ag...@denx.de --- Have I been on CC when the original patch was sent? arch/powerpc/platforms/52xx/mpc52xx_pic.c |3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/arch/powerpc/platforms/52xx/mpc52xx_pic.c b/arch/powerpc/platforms/52xx/mpc52xx_pic.c index b69221b..b89ef65 100644 --- a/arch/powerpc/platforms/52xx/mpc52xx_pic.c +++ b/arch/powerpc/platforms/52xx/mpc52xx_pic.c @@ -373,9 +373,8 @@ static int mpc52xx_irqhost_map(struct irq_domain *h, unsigned int virq, case MPC52xx_IRQ_L1_PERP: irqchip = mpc52xx_periph_irqchip; break; case MPC52xx_IRQ_L1_SDMA: irqchip = mpc52xx_sdma_irqchip; break; case MPC52xx_IRQ_L1_CRIT: - default: pr_warn(%s: Critical IRQ #%d is unsupported! Nopping it.\n, - __func__, l1irq); + __func__, l2irq); irq_set_chip(virq, no_irq_chip); return 0; } -- 1.7.10.4 ___ Linuxppc-dev mailing list Linuxppc-dev@lists.ozlabs.org https://lists.ozlabs.org/listinfo/linuxppc-dev
Re: [PATCH] Revert powerpc: 52xx: provide a default in mpc52xx_irqhost_map()
On 10/01/2013 09:26 AM, Wolfram Sang wrote: This reverts commit 6391f697d4892a6f233501beea553e13f7745a23. The compiler warning it wants to fix does not appear with my gcc 4.6.2. IMO we don't need superfluous (and here even misleading) code to make old compilers happy. Fixing the printout was bogus, too. We want to know WHICH critical irq failed, not which level it had. According to minimal Doc*/Changes minimal gcc is 3.2. Mine was 4.3.5. Why miss leading code? Default here does the same as unhandled and crit where it does nothing. Any why do you want to see l2irq since it was not in the case statement? l2 holds the number, l1 the level. Signed-off-by: Wolfram Sang w...@the-dreams.de Cc: Sebastian Andrzej Siewior bige...@linutronix.de Cc: Anatolij Gustschin ag...@denx.de --- Have I been on CC when the original patch was sent? You were but your email bounced. I wasn't aware of this new email address you are using now. arch/powerpc/platforms/52xx/mpc52xx_pic.c |3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/arch/powerpc/platforms/52xx/mpc52xx_pic.c b/arch/powerpc/platforms/52xx/mpc52xx_pic.c index b69221b..b89ef65 100644 --- a/arch/powerpc/platforms/52xx/mpc52xx_pic.c +++ b/arch/powerpc/platforms/52xx/mpc52xx_pic.c @@ -373,9 +373,8 @@ static int mpc52xx_irqhost_map(struct irq_domain *h, unsigned int virq, case MPC52xx_IRQ_L1_PERP: irqchip = mpc52xx_periph_irqchip; break; case MPC52xx_IRQ_L1_SDMA: irqchip = mpc52xx_sdma_irqchip; break; case MPC52xx_IRQ_L1_CRIT: - default: pr_warn(%s: Critical IRQ #%d is unsupported! Nopping it.\n, - __func__, l1irq); + __func__, l2irq); irq_set_chip(virq, no_irq_chip); return 0; } Sebastian ___ Linuxppc-dev mailing list Linuxppc-dev@lists.ozlabs.org https://lists.ozlabs.org/listinfo/linuxppc-dev
Re: [PATCH] Revert powerpc: 52xx: provide a default in mpc52xx_irqhost_map()
Hi, On Tue, Oct 01, 2013 at 09:54:51AM +0200, Sebastian Andrzej Siewior wrote: On 10/01/2013 09:26 AM, Wolfram Sang wrote: This reverts commit 6391f697d4892a6f233501beea553e13f7745a23. The compiler warning it wants to fix does not appear with my gcc 4.6.2. IMO we don't need superfluous (and here even misleading) code to make old compilers happy. Fixing the printout was bogus, too. We want to know WHICH critical irq failed, not which level it had. According to minimal Doc*/Changes minimal gcc is 3.2. Mine was 4.3.5. Well, if you insist, I'd prefer the following patch. From: Wolfram Sang w...@the-dreams.de Subject: [PATCH] ppc: mpc52xx: silence false positive from old GCC So people can compile with -Werror (RT patchset). Signed-off-by: Wolfram Sang w...@the-dreams.de --- arch/powerpc/platforms/52xx/mpc52xx_pic.c |2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/arch/powerpc/platforms/52xx/mpc52xx_pic.c b/arch/powerpc/platforms/52xx/mpc52xx_pic.c index b89ef65..ad3c9b0 100644 --- a/arch/powerpc/platforms/52xx/mpc52xx_pic.c +++ b/arch/powerpc/platforms/52xx/mpc52xx_pic.c @@ -340,7 +340,7 @@ static int mpc52xx_irqhost_map(struct irq_domain *h, unsigned int virq, { int l1irq; int l2irq; - struct irq_chip *irqchip; + struct irq_chip *irqchip = NULL; /* pet old compilers */ void *hndlr; int type; u32 reg; Why miss leading code? Default here does the same as unhandled and crit where it does nothing. People not realizing 'default' is a no-op might wonder why unknown levels are mapped to critical. Any why do you want to see l2irq since it was not in the case statement? l2 holds the number, l1 the level. We know which level it was, since the printout is only for that level. We probably want to know which requested IRQ was causing this, so we can fix the assorted driver. Otherwise we only know that some critical IRQ was requested somewhere. You were but your email bounced. I wasn't aware of this new email address you are using now. Ah, I see, pity. Thanks, Wolfram signature.asc Description: Digital signature ___ Linuxppc-dev mailing list Linuxppc-dev@lists.ozlabs.org https://lists.ozlabs.org/listinfo/linuxppc-dev
Re: [PATCH] Revert powerpc: 52xx: provide a default in mpc52xx_irqhost_map()
On 10/01/2013 11:11 AM, Wolfram Sang wrote: Hi, Hi Wolfram, Well, if you insist, I'd prefer the following patch. From: Wolfram Sang w...@the-dreams.de Subject: [PATCH] ppc: mpc52xx: silence false positive from old GCC So people can compile with -Werror (RT patchset). Why do you mention the RT patch set here? Doesn't the vanila tree gets compiled with -Werror as well? Signed-off-by: Wolfram Sang w...@the-dreams.de --- arch/powerpc/platforms/52xx/mpc52xx_pic.c |2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/arch/powerpc/platforms/52xx/mpc52xx_pic.c b/arch/powerpc/platforms/52xx/mpc52xx_pic.c index b89ef65..ad3c9b0 100644 --- a/arch/powerpc/platforms/52xx/mpc52xx_pic.c +++ b/arch/powerpc/platforms/52xx/mpc52xx_pic.c @@ -340,7 +340,7 @@ static int mpc52xx_irqhost_map(struct irq_domain *h, unsigned int virq, { int l1irq; int l2irq; - struct irq_chip *irqchip; + struct irq_chip *irqchip = NULL; /* pet old compilers */ That would probably work, too. I would drop that comment but then someone might clean that up :P void *hndlr; int type; u32 reg; Why miss leading code? Default here does the same as unhandled and crit where it does nothing. People not realizing 'default' is a no-op might wonder why unknown levels are mapped to critical. I see. And what would you suggest as default in case we would have an additional bit? Any why do you want to see l2irq since it was not in the case statement? l2 holds the number, l1 the level. We know which level it was, since the printout is only for that level. We probably want to know which requested IRQ was causing this, so we can fix the assorted driver. Otherwise we only know that some critical IRQ was requested somewhere. Hmmm. I assumed that critical / SDMA / … are interrupt numbers but they are seem not be. In that case I guess l2 is more important. l1 kinda looks important since it is the value in the switch case which failed but since it can only hold one possible value, I guess your info is better :) Thanks, Wolfram Sebastian ___ Linuxppc-dev mailing list Linuxppc-dev@lists.ozlabs.org https://lists.ozlabs.org/listinfo/linuxppc-dev
Re: [PATCH] Revert powerpc: 52xx: provide a default in mpc52xx_irqhost_map()
So people can compile with -Werror (RT patchset). Why do you mention the RT patch set here? Doesn't the vanila tree gets compiled with -Werror as well? Not for me. irq_chip *irqchip = NULL; /* pet old compilers */ That would probably work, too. I would drop that comment but then someone might clean that up :P Yup. But I just remembered a better solution: From: Wolfram Sang w...@the-dreams.de Subject: [PATCH] ppc: mpc52xx: silence false positive from old GCC So people can compile with -Werror. Signed-off-by: Wolfram Sang w...@the-dreams.de --- arch/powerpc/platforms/52xx/mpc52xx_pic.c |2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/arch/powerpc/platforms/52xx/mpc52xx_pic.c b/arch/powerpc/platforms/52xx/mpc52xx_pic.c index b89ef65..2898b73 100644 --- a/arch/powerpc/platforms/52xx/mpc52xx_pic.c +++ b/arch/powerpc/platforms/52xx/mpc52xx_pic.c @@ -340,7 +340,7 @@ static int mpc52xx_irqhost_map(struct irq_domain *h, unsigned int virq, { int l1irq; int l2irq; - struct irq_chip *irqchip; + struct irq_chip *uninitialized_var(irqchip); void *hndlr; int type; u32 reg; uninitialized_var was created for exactly that purpose IIRC. People not realizing 'default' is a no-op might wonder why unknown levels are mapped to critical. I see. And what would you suggest as default in case we would have an additional bit? -Esome or a different error message. But let's postpone that until that case happens ;) Hmmm. I assumed that critical / SDMA / … are interrupt numbers but they are seem not be. In that case I guess l2 is more important. l1 kinda looks important since it is the value in the switch case which failed but since it can only hold one possible value, I guess your info is better :) Thanks, Wolfram signature.asc Description: Digital signature ___ Linuxppc-dev mailing list Linuxppc-dev@lists.ozlabs.org https://lists.ozlabs.org/listinfo/linuxppc-dev