Re: mmotm 2009-08-04-14-22 uploaded (ummunotify)
From: Roland Dreier
Date: Tue Aug 04 2009 - 20:38:39 EST
> ummunotify.c:(.text+0x8f217): undefined reference to `__get_user_X'
>
> when building for i386.
>
> The get_user() and put_user() in ummunotify_exchange_features()
> are correctly converted to __get_user_4() and __put_user_4(),
> but the get_user() in ummunotify_unregister_region() becomes
> __get_user_X() [as seen in objdump output].
Is 64-bit get_user() supposed to work portably? Because it seems that
arch/x86/include/asm/uaccess.h intentionally makes get_user((__u64))
expand to __get_user_X() and then never defines __get_user_X(). And
arm, say, expands it to __get_user_bad(). But on the other hand,
powerpc and sparc seem to go to the trouble of defining a 64-bit
get_user() for 32-bit builds...
My fault for insufficient 32-bit compile testing. Andrew, I'll send a
patch to change to copy_from_user() instead.
- R.
--
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/