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/