Re: [PATCH 25/39] merge common parts of uaccess.

From: Glauber Costa
Date: Mon Jun 30 2008 - 14:49:20 EST


Ingo Molnar wrote:
* Glauber Costa <gcosta@xxxxxxxxxx> wrote:

common parts of uaccess_32.h and uaccess_64.h
are put in uaccess.h.

-tip testing found that it causes this build failure:

fs/binfmt_aout.c: Assembler messages:
fs/binfmt_aout.c:152: Error: suffix or operands invalid for `cmp'

with:

http://redhat.com/~mingo/misc/config-Mon_Jun_30_08_17_42_CEST_2008.bad

and comparing the 32-bit and unified version is not simple and the commit is rather large.

I'm sure the fix is simple, but this bug shows a structural problem with this unification patch. The proper way to unify files is to first bring both the 32-bit and the 64-bit version up to a unified form via finegrained changes, so that uaccess_32.h and uaccess_64.h becomes exactly the same file.

... _then_ only, in a final 'mechanic unification' step the two files are merged into uaccess.h. (but no change is done to the content)

If anything breaks during such a series it's bisectable to a finegrained patch on either the 32-bit or the 64-bit side. If this commit was shaped that way i could now report to you the exact bisection result - instead of this too-broad bisection result.

So please rework this commit in that fashion (not just to fix this breakage but in anticipation of future commits) - uaccess.h is central enough for us to be super careful about it.

Ingo
Fair.

However, as I wrote in the first patch of the series, I'm not doing a complete unification of uaccess.h. Part of it is left for future work, since it's a little bit trickier.

So I didn't have the option of a mechanical move. I did tried, however, to make sure this patch was only a code move, with everything that is going to the common file being equal in both files.

Needless to say, I failed. ;-) This was for a very tiny piece, but still...

The options I see are:

* to redo the uaccess.h unification this way, making sure a diff between the diffs of the arch-files report nothing different, or:
* to remove the topmost patches that touches uaccess*.h, and leave only the ones that integrate the .c and .S files, until I can really integrate the whole of it.

For the second, however, although I was careful to make incremental changes, some small differences may exist. Examples of these differences are places in which I introduce a few ifdefs. It's close to nothing, but still not mechanical. Because of that, you might want me to redo the whole series.

Your call.

--
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/