Re: [patch 3.5-rc3] mm, mempolicy: fix mbind() to do synchronousmigration

From: Andrew Morton
Date: Thu Jun 21 2012 - 21:44:55 EST


On Thu, 21 Jun 2012 17:46:52 -0700 Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx> wrote:

> On Thu, Jun 21, 2012 at 4:46 PM, Andrew Morton
> <akpm@xxxxxxxxxxxxxxxxxxxx> wrote:
> >
> > I can't really do anything with this patch - it's a bug added by
> > Peter's "mm/mpol: Simplify do_mbind()" and added to linux-next via one
> > of Ingo's trees.
> >
> > And I can't cleanly take the patch over as it's all bound up with the
> > other changes for sched/numa balancing.
>
> I took the patch, it looked obviously correct (passing in a boolean
> was clearly crap).

Ah, OK, the bug was actually "retained" by "mm/mpol: Simplify do_mbind()".

I do still ask what the plans are for that patchset..

> I wonder if I should make sparse warn about any casts to/from enums.
> They tend to always be wrong.

I think it would be worth trying, see how much fallout there is. Also
casts from "enum a" to "enum b". We've had a few of those,
unintentionally.

And casts to/from bool, perhaps. To squish the warning we'd do things
like a_bool = !!a_int. That generates extra code, but gcc internally
generates extra code for a_bool = a_int anyway, and a quick test here
indicates that the generated code is identical (testl/setne).

It would be nice to find a way of converting an integer which is known
to be 1 or 0 into a bool without generating any code, but I haven't
found a way of tricking the compiler into doing that. It's all a bit
of a downside to using bool at all.
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/