Re: [PATCH v10 3/4] x86, mce: Add __mcsafe_copy()

From: Richard Weinberger
Date: Sun Feb 07 2016 - 15:54:19 EST


Am 07.02.2016 um 17:55 schrieb Borislav Petkov:
> due to those
>
>> + _ASM_EXTABLE_FAULT(0b,30b)
>> + _ASM_EXTABLE_FAULT(1b,31b)
>> + _ASM_EXTABLE_FAULT(2b,32b)
>> + _ASM_EXTABLE_FAULT(3b,33b)
>> + _ASM_EXTABLE_FAULT(4b,34b)
>
> things below and that's because ex_handler_fault() is defined in
> arch/x86/mm/extable.c and UML doesn't include that file in the build. It
> takes kernel/extable.c and lib/extable.c only.
>
> Richi, what's the usual way to address that in UML? I.e., make an
> x86-only symbol visible to the UML build too? Define a dummy one, just
> so that it builds?

As discussed on IRC with Boris, UML offers only minimal extable support.
To get rid of the said #ifndef, UML would have to provide its own
extable.c (mostly copy&paste from arch/x86) and an advanced
struct exception_table_entry which includes the trap number.
This implies also that UML can no longer use uaccess.h from asm-generic
or has to add a new ifdef into uaccess.h to whiteout the minimal
struct exception_table_entry from there.

So, I'd vote to keep the #ifndef CONFIG_UML in memcpy_64.S.
As soon you need another #ifndef please ping me and I'll happily
bite the bullet and implement the advanced extable stuff for UML.
Deal?

Thanks,
//richard