From: Ingo Molnar <mingo@elte.hu>
To: David Woodhouse <dwmw2@infradead.org>
Cc: torvalds@linux-foundation.org, iommu@lists.linux-foundation.org,
linux-kernel@vger.kernel.org
Subject: Re: [PATCH] intel-iommu: fix build with CONFIG_BRANCH_TRACER=y
Date: Tue, 7 Apr 2009 14:14:57 +0200 [thread overview]
Message-ID: <20090407121457.GC11641@elte.hu> (raw)
In-Reply-To: <1239104035.22733.443.camel@macbook.infradead.org>
* David Woodhouse <dwmw2@infradead.org> wrote:
> On Tue, 2009-04-07 at 11:02 +0200, Ingo Molnar wrote:
> > for_each_active_iommu() and for_each_iommu() uses some tricky
> > C that is weird and borderline valid but does not allow the
> > macro evaluation trick used by the branch tracer/profiler:
> >
> > drivers/pci/intr_remapping.c:680:28: error: macro "if" passed 2
> > arguments, but takes just 1
> >
> > Switch it to a braced group statement.
>
> It doesn't even need the braces -- just putting simple parens
> around the comma-expression would have sufficed (that was Andrew's
> attempt).
>
> But it's a workaround, not a fix -- if we're going to #define if()
> then we should damn well make it transparent, and not have to work
> around breakage in arbitrary places.
Well, i consider it a feature that it flags weird if (x, y)
constructs: and yes, these iterators you introduced, while they are
legit C, definitely count as 'weird'. If regular code was doing it,
not a loop abstraction, i'd call it non-obvious and borderline
broken straight away.
We should _never ever_ put comma statements into if () constructs
without a _really_ good reason - and if yes, we can flag that we
know what we are doing, via extra parentheses.
> Hence the patch I sent to Linus last night, which fixes it in the
> _right_ place:
> http://marc.info/?l=linux-kernel&m=123907505308502&w=2
I dont think that's the right fix for the reason above - all the
places where the branch-profiler 'broke' the build before were
genuinely weird pieces of code that needed fixing.
Ingo
next prev parent reply other threads:[~2009-04-07 12:16 UTC|newest]
Thread overview: 22+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <1238839639.3560.37.camel@macbook.infradead.org>
2009-04-07 5:37 ` [GIT *] intel-iommu updates for 2.6.30 (second batch) Ingo Molnar
2009-04-07 5:42 ` Ingo Molnar
2009-04-07 5:52 ` David Woodhouse
2009-04-07 5:44 ` David Woodhouse
2009-04-07 5:48 ` Ingo Molnar
2009-04-07 5:52 ` Ingo Molnar
2009-04-07 6:04 ` David Woodhouse
2009-04-07 6:15 ` Ingo Molnar
2009-04-07 6:18 ` David Woodhouse
2009-04-07 8:49 ` Ingo Molnar
2009-04-07 9:02 ` [PATCH] intel-iommu: fix build with CONFIG_BRANCH_TRACER=y Ingo Molnar
2009-04-07 11:33 ` David Woodhouse
2009-04-07 12:14 ` Ingo Molnar [this message]
2009-04-07 12:44 ` David Woodhouse
2009-04-07 12:57 ` Ingo Molnar
2009-04-07 13:14 ` David Woodhouse
2009-04-07 14:54 ` Linus Torvalds
2009-04-07 14:59 ` Linus Torvalds
2009-04-07 15:12 ` Ingo Molnar
[not found] ` <f73f7ab80904071540w3d298c3bh386b46d5685f746e@mail.gmail.com>
2009-04-07 22:42 ` Kyle Moffett
2009-04-07 14:50 ` Linus Torvalds
2009-04-07 6:39 ` [GIT *] intel-iommu updates for 2.6.30 (second batch) Ingo Molnar
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20090407121457.GC11641@elte.hu \
--to=mingo@elte.hu \
--cc=dwmw2@infradead.org \
--cc=iommu@lists.linux-foundation.org \
--cc=linux-kernel@vger.kernel.org \
--cc=torvalds@linux-foundation.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.