From: Randy Dunlap on
On Tue, 10 Aug 2010 13:56:01 +1000 Stephen Rothwell wrote:

> Hi all,
>
> As the merge window is open, please do not add 2.6.37 material to your
> linux-next included trees until after 2.6.36-rc1.
>
> Changes since 20100809:


on 32-bit i386:

drivers/acpi/apei/erst-dbg.c:106: warning: format '%lx' expects type 'long unsigned int', but argument 3 has type 'ssize_t'
erst-dbg.c:(.text+0xede6d): undefined reference to `__get_user_X'

For the __get_user_X() call, in erst-dbg.c::erst_dbg_ioctl():

case APEI_ERST_CLEAR_RECORD:
rc = get_user(record_id, (u64 __user *)arg);

-> arch/x86/include/asm/uaccess.h:

#ifdef CONFIG_X86_32
#define __get_user_8(__ret_gu, __val_gu, ptr) \
__get_user_x(X, __ret_gu, __val_gu, ptr)
#else
#define __get_user_8(__ret_gu, __val_gu, ptr) \
__get_user_x(8, __ret_gu, __val_gu, ptr)
#endif


so is __get_user_8() not supported on X86_32?
or is this something else?


---
~Randy
*** Remember to use Documentation/SubmitChecklist when testing your code ***
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo(a)vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
From: Huang Ying on
On Wed, 2010-08-11 at 01:02 +0800, Randy Dunlap wrote:
> On Tue, 10 Aug 2010 13:56:01 +1000 Stephen Rothwell wrote:
>
> > Hi all,
> >
> > As the merge window is open, please do not add 2.6.37 material to your
> > linux-next included trees until after 2.6.36-rc1.
> >
> > Changes since 20100809:
>
>
> on 32-bit i386:
>
> drivers/acpi/apei/erst-dbg.c:106: warning: format '%lx' expects type 'long unsigned int', but argument 3 has type 'ssize_t'
> erst-dbg.c:(.text+0xede6d): undefined reference to `__get_user_X'
>
> For the __get_user_X() call, in erst-dbg.c::erst_dbg_ioctl():
>
> case APEI_ERST_CLEAR_RECORD:
> rc = get_user(record_id, (u64 __user *)arg);
>
> -> arch/x86/include/asm/uaccess.h:
>
> #ifdef CONFIG_X86_32
> #define __get_user_8(__ret_gu, __val_gu, ptr) \
> __get_user_x(X, __ret_gu, __val_gu, ptr)
> #else
> #define __get_user_8(__ret_gu, __val_gu, ptr) \
> __get_user_x(8, __ret_gu, __val_gu, ptr)
> #endif
>
>
> so is __get_user_8() not supported on X86_32?
> or is this something else?

Will fix that via replacing get_user with copy_from_user for u64.

Best Regards,
Huang Ying


--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo(a)vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/