All of lore.kernel.org
 help / color / mirror / Atom feed
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

  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.