On 07/02/2018 04:54 PM, Kees Cook wrote: > On Mon, Jul 2, 2018 at 11:55 AM, Christoph von Recklinghausen > <crecklin@xxxxxxxxxx> wrote: >> On 07/02/2018 02:43 PM, Kees Cook wrote: >>> On Sat, Jun 30, 2018 at 1:43 PM, Christoph von Recklinghausen >>> <crecklin@xxxxxxxxxx> wrote: >>>> The last issue I'm chasing is build failures on ARCH=m68k. The error is >>>> atomic_read and friends needed by the jump label code not being found. >>>> The config has CONFIG_BROKEN_ON_SMP=y, so the jump label calls I added >>>> will only be made #ifndef CONFIG_BROKEN_ON_SMP. Do you think that's >>>> worth a mention in the blurb that's added to >>>> Documentation/admin-guide/kernel-parameters.txt? >>> Uhm, that's weird -- I think the configs on m68k need fixing then? I >>> don't want to have to sprinkle that ifdef in generic code. >>> >>> How are other users of static keys and jump labels dealing with m68k weirdness? >>> >> There's also CONFIG_JUMP_LABEL which is defined in x86_64 but not >> defined in the m68k configs. I'll use that instead. In hindsight I >> should have spotted that but didn't. > I think what I mean is that jump labels should always work. There > shouldn't be a need to #ifdef the common usercopy code. i.e. > include/linux/jump_label.h should work on all architectures already. I > see HAVE_JUMP_LABEL tests there, for example: > > #if defined(CC_HAVE_ASM_GOTO) && defined(CONFIG_JUMP_LABEL) > # define HAVE_JUMP_LABEL > #endif > > Other core code uses static keys without this; what is the failing combination? The complaints were when there was jump_label code in include/linux/thread_info.h. Now that the code is isolated to mm/usercopy.c, it successfully builds for m68k with mention of CONFIG_JUMP_LABEL and CONFIG_SMP_BROKEN removed. I'll send out a new patch in the morning after I test some more. Thanks, Chris > -Kees >