[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Missing symbol on sh4: "__get_user_unknown"



On Sun, 2020-05-10 at 12:38 +0200, John Paul Adrian Glaubitz wrote:
> (Please keep me CC'ed, I'm not subscribed to debian-kernel@)
> 
> Hi!
> 
> src:linux hasn't been building on sh4 in the past for a while now due to objdump
> locking up during the build.
> 
> However, this problem has recently vanished, I assume maybe because the bug was
> fixed in binutils.
> 
> In any case, the kernel package now fails to build due to a missing symbol in the
> Infiniband core driver (see below). A simple workaround is to disable Infiniband
> support which allows me to build the kernel package normally (which I did and
> consequently uploaded).
[...]

__get_user_unknown() is never defined, but will be referenced if the
get_user() macro is invoked with a variable of unsupported size (see
arch/sh/include/asm/uaccess.h).  So my guess is that this module uses
get_user() to read a 64-bit value.  Some 32-bit architectures do now
support this operation but I'm not sure whether they are expected to.

This seems to have been introduced by commit 3a6532c9af1a, and could
probably be fixed by replacing the get_user() with a copy_from_user().

We could disable IB since it doesn't seem that likely to be used on
sh4, although I think the "verbs" layer can be used on top of Ethernet.

Ben.

-- 
Ben Hutchings
Everything should be made as simple as possible, but not simpler.
                                                      - Albert Einstein

Attachment: signature.asc
Description: This is a digitally signed message part


Reply to: