Re: [PATCH 03/14] powerpc: use printk_once

From: Michael Ellerman
Date: Mon Aug 10 2009 - 07:47:07 EST


On Mon, 2009-08-10 at 10:00 +0200, Wolfram Sang wrote:
> On Sun, Aug 09, 2009 at 09:53:58PM +0200, Marcin Slusarz wrote:
> > Signed-off-by: Marcin Slusarz <marcin.slusarz@xxxxxxxxx>
> > Cc: Benjamin Herrenschmidt <benh@xxxxxxxxxxxxxxxxxxx>
> > Cc: Paul Mackerras <paulus@xxxxxxxxx>
> > Cc: linuxppc-dev@xxxxxxxxxx
> > ---
> > arch/powerpc/kernel/iommu.c | 6 +-----
> > arch/powerpc/kernel/irq.c | 5 ++---
> > arch/powerpc/sysdev/ppc4xx_pci.c | 9 ++-------
> > 3 files changed, 5 insertions(+), 15 deletions(-)
> >
> > diff --git a/arch/powerpc/kernel/iommu.c b/arch/powerpc/kernel/iommu.c
> > index fd51578..c7fa258 100644
> > --- a/arch/powerpc/kernel/iommu.c
> > +++ b/arch/powerpc/kernel/iommu.c
> > @@ -502,7 +502,6 @@ static void iommu_table_clear(struct iommu_table *tbl)
> > struct iommu_table *iommu_init_table(struct iommu_table *tbl, int nid)
> > {
> > unsigned long sz;
> > - static int welcomed = 0;
> > struct page *page;
> >
> > /* Set aside 1/4 of the table for large allocations. */
> > @@ -523,11 +522,8 @@ struct iommu_table *iommu_init_table(struct iommu_table *tbl, int nid)
> >
> > iommu_table_clear(tbl);
> >
> > - if (!welcomed) {
> > - printk(KERN_INFO "IOMMU table initialized, virtual merging %s\n",
> > + printk_once(KERN_INFO "IOMMU table initialized, virtual merging %s\n",
> > novmerge ? "disabled" : "enabled");
> > - welcomed = 1;
> > - }
> >
> > return tbl;
> > }
> > diff --git a/arch/powerpc/kernel/irq.c b/arch/powerpc/kernel/irq.c
> > index f7f376e..05ebd21 100644
> > --- a/arch/powerpc/kernel/irq.c
> > +++ b/arch/powerpc/kernel/irq.c
> > @@ -231,7 +231,6 @@ skip:
> > void fixup_irqs(cpumask_t map)
> > {
> > unsigned int irq;
> > - static int warned;
> >
> > for_each_irq(irq) {
> > cpumask_t mask;
> > @@ -246,8 +245,8 @@ void fixup_irqs(cpumask_t map)
> > }
> > if (irq_desc[irq].chip->set_affinity)
> > irq_desc[irq].chip->set_affinity(irq, &mask);
> > - else if (irq_desc[irq].action && !(warned++))
> > - printk("Cannot set affinity for irq %i\n", irq);
> > + else if (irq_desc[irq].action)
> > + printk_once("Cannot set affinity for irq %i\n", irq);
>
> Maybe we should add a loglevel to this printk (and the other one in fix_irqs)
> while we are here?

I think you should drop it, it's stupid. If we actually care about irqs
that don't have a set affinity we should keep a count and report that at
the end of the loop.

cheers

Attachment: signature.asc
Description: This is a digitally signed message part