• Florian Fainelli's avatar
    um: Fix check for _xstate for older hosts · 2fb44600
    Florian Fainelli authored
    Commit 0a987645 ("um: Allow building and running on older
    hosts") attempted to check for PTRACE_{GET,SET}REGSET under the premise
    that these ptrace(2) parameters were directly linked with the presence
    of the _xstate structure.
    
    After Richard's commit 61e8d462 ("um: Correctly check for
    PTRACE_GETRESET/SETREGSET") which properly included linux/ptrace.h
    instead of asm/ptrace.h, we could get into the original build failure
    that I reported:
    
    arch/x86/um/user-offsets.c: In function 'foo':
    arch/x86/um/user-offsets.c:54: error: invalid application of 'sizeof' to
    incomplete type 'struct _xstate'
    
    On this particular host, we do have PTRACE_GETREGSET and
    PTRACE_SETREGSET defined in linux/ptrace.h, but not the structure
    _xstate that should be pulled from the following include chain: signal.h
    -> bits/sigcontext.h.
    
    Correctly fix this by checking for FP_XSTATE_MAGIC1 which is the correct
    way to see if struct _xstate is available or not on the host.
    
    Fixes: 61e8d462 ("um: Correctly check for PTRACE_GETRESET/SETREGSET")
    Fixes: 0a987645 ("um: Allow building and running on older hosts")
    Signed-off-by: default avatarFlorian Fainelli <f.fainelli@gmail.com>
    Signed-off-by: default avatarRichard Weinberger <richard@nod.at>
    2fb44600
user-offsets.c 2.43 KB