> I shamed myself into sitting down and doing this. 8-) > > The attached patch seems to work, or at least doesn't seem to cause > things to blow up. An o32 userspace on a 64-bit kernel comes up > multi-user and can build a kernel, and run a quick subset of LTP. > > There was a comment on IRC that there was a register allocation issue which > lead to the current code. I'm not sure of the exact details, but I _think_ > this change ends up being equivilent to the code it replaces. It's correct - but triggers plenty of extra warnings and you forgot about get_user() which has the same kind of issue. Also you don't have the guarantee that <linux/types.h> has been included, so in order to avoid a yet another header file dependency I changed s8, s16 etc. to char, short, int, long long. Working on it but as usual uaccess.h is quite a quiz. Ralf