arm64: "unsupported RELA relocation"

Bug #1533009 reported by dann frazier on 2016-01-12
32
This bug affects 3 people
Affects Status Importance Assigned to Milestone
Linaro GCC
Unknown
Unknown
Linux
Unknown
Unknown
gcc-5 (Ubuntu)
Undecided
Unassigned
Trusty
Undecided
Unassigned
Vivid
Undecided
Unassigned
Wily
Undecided
Unassigned
Xenial
Undecided
Unassigned
linux (Ubuntu)
High
Paolo Pisati
Trusty
Undecided
Unassigned
Vivid
Undecided
Unassigned
Wily
Undecided
Unassigned
Xenial
High
Paolo Pisati

Bug Description

linux-image-4.3.0-5-generic 4.3.0-5.16 arm64 fails to load modules (and therefore boot). It emits messages like the following for each attempted module load:

[ 2.156817] module libahci: unsupported RELA relocation: 275

This is reminiscent of LP: #1502946 - except that fix appears to still be in-tact. What has changed, however, is the build environment. If I rebuild the same kernel source in a wily chroot, it boots fine.

Marking "Confirmed" because Paulo Pisatti reported this to me, and I reproduced.

CVE References

Raghuram Kota (rkota) on 2016-01-12
tags: added: hs-arm64
Changed in linux (Ubuntu):
importance: Undecided → High
Download full text (3.7 KiB)

When I built 4.3.0-7-generic on arm64(mustang) Wily with the following steps,

         fakeroot debian/rules clean
         fakeroot debian/rules binary-generic

by this compiler:

ubuntu@ubuntu:~$ gcc -v
Using built-in specs.
COLLECT_GCC=gcc
COLLECT_LTO_WRAPPER=/usr/lib/gcc/aarch64-linux-gnu/5/lto-wrapper
Target: aarch64-linux-gnu
Configured with: ../src/configure -v --with-pkgversion='Ubuntu
5.2.1-22ubuntu2' --with-bugurl=file:///usr/share/doc/gcc-5/README.Bugs
--enable-languages=c,ada,c++,java,go,d,fortran,objc,obj-c++
--prefix=/usr --program-suffix=-5 --enable-shared
--enable-linker-build-id --libexecdir=/usr/lib
--without-included-gettext --enable-threads=posix --libdir=/usr/lib
--enable-nls --with-sysroot=/ --enable-clocale=gnu
--enable-libstdcxx-debug --enable-libstdcxx-time=yes
--with-default-libstdcxx-abi=new --enable-gnu-unique-object
--disable-libquadmath --enable-plugin --with-system-zlib
--disable-browser-plugin --enable-java-awt=gtk --enable-gtk-cairo
--with-java-home=/usr/lib/jvm/java-1.5.0-gcj-5-arm64/jre
--enable-java-home
--with-jvm-root-dir=/usr/lib/jvm/java-1.5.0-gcj-5-arm64
--with-jvm-jar-dir=/usr/lib/jvm-exports/java-1.5.0-gcj-5-arm64
--with-arch-directory=aarch64
--with-ecj-jar=/usr/share/java/eclipse-ecj.jar --enable-multiarch
--disable-werror --enable-checking=release --build=aarch64-linux-gnu
--host=aarch64-linux-gnu --target=aarch64-linux-gnu

the built image just works well:

      ubuntu@ubuntu:~$ uname -a
      Linux ubuntu 4.3.0-7-generic #18 SMP Tue Jan 12 10:19:24 EST 2016
      aarch64 aarch64 aarch64 GNU/Linux

But I can see the issue when booting a kernel from the following package[1]:

         http://launchpadlibrarian.net/230287220/linux-image-4.3.0-5-generic_4.3.0-5.16_arm64.deb

It is a build environment issue instead of kernel issue, please see
comments from Ard Biesheuvel <email address hidden> [2]:

        RELA #275 is the relocation against ADRP instructions, which GCC
        should not emit anymore when -mcmodel=large is in effect.

        Can you confirm that the modules have been rebuilt with this config as
        well? Can you double check the GCC command line (with V=1) when doing
        'make modules' to ensure that '-mcmodel=large' is being passed? Can
        you check with 'readelf -r' which objects still contain
        R_AARCH64_ADR_PREL_PG_HI21 relocations?

I have checked the gcc flag in my building environment, and '-mcmodel=large' is
passed, and CONFIG_ARM64_ERRATUM_843419 is enabled too.

I don't know how the image in [1] is built, so could anyone check the build
environment for this building?

[1] http://launchpadlibrarian.net/230287220/linux-image-4.3.0-5-generic_4.3.0-5.16_arm64.deb
[2] http://www.spinics.net/lists/arm-kernel/msg449991.html

On Tue, Jan 12, 2016 at 7:47 PM, Raghuram Kota
<email address hidden> wrote:
> ** Tags added: hs-arm64
>
> --
> You received this bug notification because you are subscribed to linux
> in Ubuntu.
> https://bugs.launchpad.net/bugs/1533009
>
> Title:
> arm64: "unsupported RELA relocation"
>
> Status in linux package in Ubuntu:
> Confirmed
>
> Bug description:
> linux-image-4.3.0-5-generic 4.3.0-5.16 arm64 fails to lo...

Read more...

Ming Lei (tom-leiming) wrote :
Download full text (5.4 KiB)

When same kernel tree is built with gcc 5.3.1 from Xenial, the generated modlues
can't be loaded any more and '-mcmodel=large' is still passed to gcc
during kernel
building, so it looks like a compiler bug:

ubuntu@ubuntu:~/git$ gcc -v
Using built-in specs.
COLLECT_GCC=gcc
COLLECT_LTO_WRAPPER=/usr/lib/gcc/aarch64-linux-gnu/5/lto-wrapper
Target: aarch64-linux-gnu
Configured with: ../src/configure -v --with-pkgversion='Ubuntu/Linaro
5.3.1-5ubuntu2' --with-bugurl=file:///usr/share/doc/gcc-5/README.Bugs
--enable-languages=c,ada,c++,java,go,d,fortran,objc,obj-c++
--prefix=/usr --program-suffix=-5 --enable-shared
--enable-linker-build-id --libexecdir=/usr/lib
--without-included-gettext --enable-threads=posix --libdir=/usr/lib
--enable-nls --with-sysroot=/ --enable-clocale=gnu
--enable-libstdcxx-debug --enable-libstdcxx-time=yes
--with-default-libstdcxx-abi=new --enable-gnu-unique-object
--disable-libquadmath --enable-plugin --with-system-zlib
--disable-browser-plugin --enable-java-awt=gtk --enable-gtk-cairo
--with-java-home=/usr/lib/jvm/java-1.5.0-gcj-5-arm64/jre
--enable-java-home
--with-jvm-root-dir=/usr/lib/jvm/java-1.5.0-gcj-5-arm64
--with-jvm-jar-dir=/usr/lib/jvm-exports/java-1.5.0-gcj-5-arm64
--with-arch-directory=aarch64
--with-ecj-jar=/usr/share/java/eclipse-ecj.jar --enable-multiarch
--disable-werror --enable-checking=release --build=aarch64-linux-gnu
--host=aarch64-linux-gnu --target=aarch64-linux-gnu
Thread model: posix
gcc version 5.3.1 20160108 (Ubuntu/Linaro 5.3.1-5ubuntu2)

On Wed, Jan 13, 2016 at 9:11 AM, Ming Lei <email address hidden> wrote:
> When I built 4.3.0-7-generic on arm64(mustang) Wily with the following steps,
>
> fakeroot debian/rules clean
> fakeroot debian/rules binary-generic
>
> by this compiler:
>
> ubuntu@ubuntu:~$ gcc -v
> Using built-in specs.
> COLLECT_GCC=gcc
> COLLECT_LTO_WRAPPER=/usr/lib/gcc/aarch64-linux-gnu/5/lto-wrapper
> Target: aarch64-linux-gnu
> Configured with: ../src/configure -v --with-pkgversion='Ubuntu
> 5.2.1-22ubuntu2' --with-bugurl=file:///usr/share/doc/gcc-5/README.Bugs
> --enable-languages=c,ada,c++,java,go,d,fortran,objc,obj-c++
> --prefix=/usr --program-suffix=-5 --enable-shared
> --enable-linker-build-id --libexecdir=/usr/lib
> --without-included-gettext --enable-threads=posix --libdir=/usr/lib
> --enable-nls --with-sysroot=/ --enable-clocale=gnu
> --enable-libstdcxx-debug --enable-libstdcxx-time=yes
> --with-default-libstdcxx-abi=new --enable-gnu-unique-object
> --disable-libquadmath --enable-plugin --with-system-zlib
> --disable-browser-plugin --enable-java-awt=gtk --enable-gtk-cairo
> --with-java-home=/usr/lib/jvm/java-1.5.0-gcj-5-arm64/jre
> --enable-java-home
> --with-jvm-root-dir=/usr/lib/jvm/java-1.5.0-gcj-5-arm64
> --with-jvm-jar-dir=/usr/lib/jvm-exports/java-1.5.0-gcj-5-arm64
> --with-arch-directory=aarch64
> --with-ecj-jar=/usr/share/java/eclipse-ecj.jar --enable-multiarch
> --disable-werror --enable-checking=release --build=aarch64-linux-gnu
> --host=aarch64-linux-gnu --target=aarch64-linux-gnu
>
>
> the built image just works well:
>
> ubuntu@ubuntu:~$ uname -a
> Linux ubuntu 4.3.0-7-generic #18 SMP Tue Jan 12 10:19:24 EST 2016
> aarch64...

Read more...

Ming Lei (tom-leiming) wrote :

Hi,

Wrt. the build environment, the built kernel/modules can work fine just after
switching gcc from gcc-5 to gcc-4.9 and keep other things not changed
in Xenial.

So I am sure the issue is in Xenial gcc-5, and the bug should be introduced
after 5.2.1-22ubuntu2 because Wily gcc-5 hasn't this problem.

thanks,

Changed in linux (Ubuntu):
status: Confirmed → Triaged
Ming Lei (tom-leiming) wrote :

Looks the latest proposed gcc-5.3.1-6ubuntu1 has the problem too.

Matthias Klose (doko) wrote :

please attach the preprocessed source and the exact command line options to build the libahci module.

Launchpad Janitor (janitor) wrote :

Status changed to 'Confirmed' because the bug affects multiple users.

Changed in gcc-5 (Ubuntu):
status: New → Confirmed
Ming Lei (tom-leiming) wrote :

On Fri, Jan 15, 2016 at 6:29 PM, Matthias Klose <email address hidden> wrote:
> please attach the preprocessed source and the exact command line options
> to build the libahci module.

Not only libahci modules, all built modules has the problem.

Follows the command line for building libahci.ko:

1) apt-get source linux-image-`uname -r`

2) cd linux-XXXX #only one directory is generated

3) make -C /usr/src/linux-headers-`uname -r` M=`pwd` drivers/ata/libahci.ko

then the libahci.ko will be generated.

BTW, the issue can only be reproduced on Xenial.

Thanks,

>
> --
> You received this bug notification because you are subscribed to linux
> in Ubuntu.
> https://bugs.launchpad.net/bugs/1533009
>
> Title:
> arm64: "unsupported RELA relocation"
>
> Status in gcc-5 package in Ubuntu:
> New
> Status in linux package in Ubuntu:
> Triaged
>
> Bug description:
> linux-image-4.3.0-5-generic 4.3.0-5.16 arm64 fails to load modules
> (and therefore boot). It emits messages like the following for each
> attempted module load:
>
> [ 2.156817] module libahci: unsupported RELA relocation: 275
>
> This is reminiscent of LP: #1502946 - except that fix appears to still
> be in-tact. What has changed, however, is the build environment. If I
> rebuild the same kernel source in a wily chroot, it boots fine.
>
> Marking "Confirmed" because Paulo Pisatti reported this to me, and I
> reproduced.
>
> To manage notifications about this bug go to:
> https://bugs.launchpad.net/ubuntu/+source/gcc-5/+bug/1533009/+subscriptions

Martin Pitt (pitti) wrote :

> BTW, the issue can only be reproduced on Xenial.

Confirmed, from my duplicate bug 1534545. I reproduced that with "ip link add dev lxcbr0 type bridge", supposedly that also needs to load a module.

dann frazier (dannf) wrote :

Rebuilding xenial's gcc w/o the linaro patchset, and rebuilding the kernel with it, results in a functional build.

dann frazier (dannf) wrote :

Attaching the config I'm using.

Note that, unless otherwise noted, my build tests are being performed with the pristine Ubuntu kernel package (4.3.0-6.17) and using gcc-5 5.3.1-5ubuntu3, both from current xenial.

dann frazier (dannf) wrote :

<doko> dannf, ming: can you check building the kernel with -mfix-cortex-a53-835769 -mfix-cortex-a53-843419 ?

I did so, and observed no change in behavior.

dann frazier (dannf) wrote :

On Fri, Jan 15, 2016 at 3:29 AM, Matthias Klose <email address hidden> wrote:
> please attach the preprocessed source and the exact command line options
> to build the libahci module.

I used multipath instead of libahci just because it was easier for me,
but the same
is attached.

Note - building the kernel w/ linaro's toolchain and the module with
the FSF toolchain
still results in an unsupported RELA relocation failure.

  -dann

dann frazier (dannf) wrote :

I've also reproduced by building latest linux git (@ 7d1fc01a), using very close to the defconfig (just enabled multipath modules for testing, for consistency). Attached is the actual config I used.

dann frazier (dannf) wrote :

> Note - building the kernel w/ linaro's toolchain and the module with
> the FSF toolchain
> still results in an unsupported RELA relocation failure.

I need to correct this. The problem was that I rebuilt only dm-multipath, and not it's dependency dm-mod. If I rebuild both modules with the FSF compiler, they load on a kernel built with the Linaro compiler.

Matthias Klose (doko) wrote :

--- fsf/multipath.mod.s 2016-01-15 22:23:24.000000000 +0100
+++ linaro/multipath.mod.s 2016-01-15 22:20:11.000000000 +0100
@@ -1,7 +1,6 @@
- .cpu generic+fp+simd
        .file "multipath.mod.c"
        .global __this_module
- .section .modinfo,"a",%progbits
+ .section .modinfo,"a",@progbits
        .align 3
        .type __UNIQUE_ID_srcversion1, %object
        .size __UNIQUE_ID_srcversion1, 35
@@ -16,7 +15,7 @@
        .size __UNIQUE_ID_vermagic0, 60
 __UNIQUE_ID_vermagic0:
        .string "vermagic=4.3.0-6-generic SMP mod_unload modversions aarch64"
- .section __versions,"a",%progbits
+ .section __versions,"a",@progbits
        .align 3
        .type ____versions, %object
        .size ____versions, 2432
@@ -135,7 +134,7 @@
        .xword 534543858
        .string "_mcount"
        .zero 48
- .section .gnu.linkonce.this_module,"aw",%progbits
+ .section .gnu.linkonce.this_module,"aw",@progbits
        .align 6
        .type __this_module, %object
        .size __this_module, 832
@@ -148,5 +147,5 @@
        .zero 424
        .xword cleanup_module
        .zero 8
- .ident "GCC: (Ubuntu 5.3.1-5ubuntu3+fsf.1) 5.3.1 20160112"
- .section .note.GNU-stack,"",%progbits
+ .ident "GCC: (Ubuntu/Linaro 5.3.1-5ubuntu3) 5.3.1 20160112"
+ .section .note.GNU-stack,"",@progbits

Ming Lei (tom-leiming) wrote :

Dann,

In my test, the issue is nothing to do with kernel, and only related with modules built by the affected gcc 5.3.

For example, the kernel running is built from gcc 5.2, then I rebuilt some modules by gcc 5.3, the issue comes
when I try to load the just built module.

BTW, '-mcmodel=large' is only passed to gcc when modules are builting, and it isn't used for building kernel.

Thanks,

It's not clear to me how I can reproduce the problem as a GCC developper.
Should I build kernel-4.3.0 (vanilla), using the defconfig attached on comment #13, build the modules and look for the relocation mentioned by Ard Biesheuvel?

dann frazier (dannf) wrote :

On Tue, Jan 19, 2016 at 2:24 PM, Christophe Lyon
<email address hidden> wrote:
> It's not clear to me how I can reproduce the problem as a GCC developper.
> Should I build kernel-4.3.0 (vanilla), using the defconfig attached on comment #13, build the modules and look for the relocation mentioned by Ard Biesheuvel?

Hi Christophe,
  Here's the steps to reproduce (I'm doing this in an Ubuntu
16.04/arm64 QEMU/KVM VM):

tar xfJ linux-4.3.3.tar.xz
cd linux-4.3.3
make defconfig
# enable simple module for testing
echo "CONFIG_OVERLAY_FS=m" >> .config
make oldconfig
make Image modules
sudo make install
sudo reboot

Then, on reboot:

$ sudo dmesg -c > /dev/null
$ sudo modprobe overlay
modprobe: ERROR: could not insert 'overlay': Exec format error
$ dmesg
[ 336.449238] module overlay: unsupported RELA relocation: 275
ubuntu@ubuntu:~$

dann frazier (dannf) wrote :

On Tue, Jan 19, 2016 at 3:31 PM, Dann Frazier
<email address hidden> wrote:
> On Tue, Jan 19, 2016 at 2:24 PM, Christophe Lyon
> <email address hidden> wrote:
>> It's not clear to me how I can reproduce the problem as a GCC developper.
>> Should I build kernel-4.3.0 (vanilla), using the defconfig attached on comment #13, build the modules and look for the relocation mentioned by Ard Biesheuvel?
>
> Hi Christophe,
> Here's the steps to reproduce (I'm doing this in an Ubuntu
> 16.04/arm64 QEMU/KVM VM):
>
> tar xfJ linux-4.3.3.tar.xz
> cd linux-4.3.3
> make defconfig
> # enable simple module for testing
> echo "CONFIG_OVERLAY_FS=m" >> .config
> make oldconfig
> make Image modules

Forgot one step:

sudo make modules_install

  -dann

> sudo make install
> sudo reboot
>
> Then, on reboot:
>
> $ sudo dmesg -c > /dev/null
> $ sudo modprobe overlay
> modprobe: ERROR: could not insert 'overlay': Exec format error
> $ dmesg
> [ 336.449238] module overlay: unsupported RELA relocation: 275
> ubuntu@ubuntu:~$

dann frazier (dannf) wrote :

On Sat, Jan 16, 2016 at 2:44 AM, Matthias Klose <email address hidden> wrote:
> --- fsf/multipath.mod.s 2016-01-15 22:23:24.000000000 +0100
> +++ linaro/multipath.mod.s 2016-01-15 22:20:11.000000000 +0100
> @@ -1,7 +1,6 @@
> - .cpu generic+fp+simd
> .file "multipath.mod.c"
> .global __this_module
> - .section .modinfo,"a",%progbits
> + .section .modinfo,"a",@progbits
> .align 3
> .type __UNIQUE_ID_srcversion1, %object
> .size __UNIQUE_ID_srcversion1, 35

[...]
I got rid of the @progbits/%progbits differences in the assembly, as
well as the .cpu and .arch differences,
but still observe the same failure.

  -dann

That's what I expected: this has nothing to do with relocations.

I've cross compiled the kernel+modules, mostly following the steps in comment #18.

Then, I've scanned the generated module for the AARCH64_ADR_PREL_PG_HI21 relocation.

When compiled with Linaro-2015.12, this relocation is present.
When compiled with Linaro-2015.10, it is not.
When using Linaro-2015.11, the build fails with errors such as:
Assembler messages:
Error: selected processor does not support `aese v0.16b,v1.16b'

Assuming that these relocations are the real cause of the problem, I'm going to bisect to identify which commit in our branch introduced them.

We backported fixes for GCC PR63304 (https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63304) in our 2015.12 snapshot.

By default, GCC now uses adrp / ldr or adrp / add instructions to address the literal pools under the use of a command line
option, and this mode is on by default.

OTOH, CONFIG_ARM64_ERRATUM_843419 removes support for the related relocations from the kernel, hence the error you are seeing.

Modifying arch/arm64/Makefile in the kernel sources to have:
ifeq ($(CONFIG_ARM64_ERRATUM_843419), y)
KBUILD_CFLAGS_MODULE += -mcmodel=large -mpc-relative-literal-loads
endif

makes the problem disappear.

However, the -mpc-relative-literal-loads option is not recognized by GCC if it doesn't include the patch for GCC PR 63304, so it may not be easy to patch the Makefile.

Updating arch/arm64/Makefile to have:

ifeq ($(CONFIG_ARM64_ERRATUM_843419), y)
KBUILD_CFLAGS_MODULE += -mcmodel=large
KBUILD_CFLAGS_MODULE += $(call cc-option, -mpc-relative-literal-loads)
endif

does the trick.

Is this a good solution for you?

dann frazier (dannf) wrote :

Thanks Christophe. I can verify that -mpc-relative-literal-loads does produce loadable modules.

dann frazier (dannf) wrote :

On Thu, Jan 21, 2016 at 9:59 AM, Christophe Lyon
<email address hidden> wrote:
> Updating arch/arm64/Makefile to have:
>
> ifeq ($(CONFIG_ARM64_ERRATUM_843419), y)
> KBUILD_CFLAGS_MODULE += -mcmodel=large
> KBUILD_CFLAGS_MODULE += $(call cc-option, -mpc-relative-literal-loads)
> endif
>
> does the trick.

Cool.

> Is this a good solution for you?

If it works for upstream, it works for me. Do you want to submit that
or prefer I do?
(If you do, could you please CC stable?)

  -dann

dann frazier (dannf) wrote :

btw, I've also reproduced this with FSF GCC 6 (probably not surprising, since the Linaro change was a backport).

I prefer you submit the Makefile patch upstream, since I'm not very familiar with kernel lists.

I am going to look at a patch for GCC-6, such that this optimization is disabled by default when compiling with -mfix-cortex-a53-843419. You could then use -mfix-cortex-a53-843419 to compile the kernel, instead of -mpc-relative-literal-loads.

dann frazier (dannf) wrote :
tags: added: patch-forwarded-upstream
Tim Gardner (timg-tpi) on 2016-01-25
Changed in linux (Ubuntu Xenial):
assignee: nobody → Paolo Pisati (p-pisati)
status: Triaged → Fix Committed
Matthias Klose (doko) on 2016-01-25
Changed in gcc-5 (Ubuntu Xenial):
status: Confirmed → Invalid

I have posted a GCC patch:
https://gcc.gnu.org/ml/gcc-patches/2016-01/msg01986.html
to change the default of -mpc-relative-literal-loads when -mfix-cortex-a53-843419 is used.

Launchpad Janitor (janitor) wrote :
Download full text (17.3 KiB)

This bug was fixed in the package linux - 4.4.0-2.16

---------------
linux (4.4.0-2.16) xenial; urgency=low

  [ Andy Whitcroft ]

  * Release Tracking Bug
    - LP: #1539090
  * SAUCE: hv: hv_set_ifconfig -- convert to python3
    - LP: #1506521
  * SAUCE: dm: introduce a target_ioctl op to allow target specific ioctls
    - LP: #1538618

  [ Colin Ian King ]

  * SAUCE: ACPI / tables: Add acpi_force_32bit_fadt_addr option to force 32
    bit FADT addresses (LP: #1529381)
    - LP: #1529381

  [ John Johansen ]

  * SAUCE: (no-up): apparmor: fix for failed mediation of socket that is
    being shutdown
    - LP: #1446906

  [ Mahesh Salgaonkar ]

  * SAUCE: Powernv: Remove the usage of PACAR1 from opal wrappers
    - LP: #1537881
  * SAUCE: powerpc/book3s: Fix TB corruption in guest exit path on HMI
    interrupt.
    - LP: #1537881
  * SAUCE: KVM: PPC: Book3S HV: Fix soft lockups in KVM on HMI for time
    base errors
    - LP: #1537881

  [ Paolo Pisati ]

  * SAUCE: arm64: errata: Add -mpc-relative-literal-loads to erratum
    #843419 build flags
    - LP: #1533009
  * [Config] MFD_TPS65217=y && REGULATOR_TPS65217=y
  * [Config] disable ARCH_ZX (ZTE ZX Soc)

  [ Tim Gardner ]

  * Revert "SAUCE: (noup) cxlflash: a couple off by one bugs"
  * SAUCE: (no-up) Update bnx2x firmware to 7.12.30.0
    - LP: #1536719
  * SAUCE: drop obsolete bnx2x firmware
  * SAUCE: i40e: Silence 'may be used uninitialized' warnings
    - LP: #1536474
  * [Config] CONFIG_ZONE_DMA=y for amd64 lowlatency
    - LP: #1534647
  * [Config] Add pvpanic to virtual flavour
    - LP: #1537923
  * [Config] CONFIG_INTEL_PUNIT_IPC=m, CONFIG_INTEL_TELEMETRY=m
    - LP: #1520457

  [ Upstream Kernel Changes ]

  * i40evf: fix compiler warning of unused variable
    - LP: #1536474
  * intel: i40e: fix confused code
    - LP: #1536474
  * i40e/i40evf: remove unused tunnel parameter
    - LP: #1536474
  * i40e: Change BUG_ON to WARN_ON in service event complete
    - LP: #1536474
  * i40e: remove BUG_ON from feature string building
    - LP: #1536474
  * i40e: remove BUG_ON from FCoE setup
    - LP: #1536474
  * i40e: Workaround fix for mss < 256 issue
    - LP: #1536474
  * i40e/i40evf: Add a stat to track how many times we have to do a force
    WB
    - LP: #1536474
  * i40e: Move the saving of old link info from handle_link_event to
    link_event
    - LP: #1536474
  * i40e/i40evf: Add comment to #endif
    - LP: #1536474
  * i40e/i40evf: clean up error messages
    - LP: #1536474
  * i40evf: handle many MAC filters correctly
    - LP: #1536474
  * i40e: return the number of enabled queues for ETHTOOL_GRXRINGS
    - LP: #1536474
  * i40e: rework the functions to configure RSS with similar parameters
    - LP: #1536474
  * i40e: create a generic configure rss function
    - LP: #1536474
  * i40e: Bump version to 1.4.2
    - LP: #1536474
  * i40e: add new fields to store user configuration
    - LP: #1536474
  * i40e: rename rss_size to alloc_rss_size in i40e_pf
    - LP: #1536474
  * i40e/i40evf: Fix RS bit update in Tx path and disable force WB
    workaround
    - LP: #1536474
  * i40e/i40evf: prefetch skb data on transmit
    - LP: #1536474
  * i40evf: rename VF adapter s...

Changed in linux (Ubuntu Xenial):
status: Fix Committed → Fix Released
Martin Pitt (pitti) wrote :

Confirming that 4.4.0-2 works fine on an arm64 box. Thanks!

Brad Figg (brad-figg) on 2016-02-22
Changed in linux (Ubuntu Trusty):
status: New → Fix Committed
Brad Figg (brad-figg) on 2016-02-23
Changed in linux (Ubuntu Wily):
status: New → Fix Committed
Changed in linux (Ubuntu Vivid):
status: New → Fix Committed
Brad Figg (brad-figg) wrote :

This bug is awaiting verification that the kernel in -proposed solves the problem. Please test the kernel and update this bug with the results. If the problem is solved, change the tag 'verification-needed-trusty' to 'verification-done-trusty'.

If verification is not done by 5 working days from today, this fix will be dropped from the source code, and this bug will be closed.

See https://wiki.ubuntu.com/Testing/EnableProposed for documentation how to enable and use -proposed. Thank you!

tags: added: verification-needed-trusty
tags: added: verification-needed-vivid
Brad Figg (brad-figg) wrote :

This bug is awaiting verification that the kernel in -proposed solves the problem. Please test the kernel and update this bug with the results. If the problem is solved, change the tag 'verification-needed-vivid' to 'verification-done-vivid'.

If verification is not done by 5 working days from today, this fix will be dropped from the source code, and this bug will be closed.

See https://wiki.ubuntu.com/Testing/EnableProposed for documentation how to enable and use -proposed. Thank you!

tags: added: verification-needed-wily
Brad Figg (brad-figg) wrote :

This bug is awaiting verification that the kernel in -proposed solves the problem. Please test the kernel and update this bug with the results. If the problem is solved, change the tag 'verification-needed-wily' to 'verification-done-wily'.

If verification is not done by 5 working days from today, this fix will be dropped from the source code, and this bug will be closed.

See https://wiki.ubuntu.com/Testing/EnableProposed for documentation how to enable and use -proposed. Thank you!

dann frazier (dannf) wrote :

ubuntu@ubuntu:~$ cat /proc/version
Linux version 3.13.0-81-generic (buildd@bos01-arm64-020) (gcc version 4.8.2 (Ubuntu/Linaro 4.8.2-19ubuntu1) ) #125-Ubuntu SMP Wed Mar 2 17:30:16 UTC 2016
ubuntu@ubuntu:~$ lsmod
Module Size Used by
dm_crypt 21007 0
ofpart 2881 0
redboot 2822 0
cmdlinepart 3674 0
cfi_cmdset_0001 37183 2
cfi_probe 5130 0
cfi_util 9856 2 cfi_probe,cfi_cmdset_0001
gen_probe 3851 1 cfi_probe
physmap_of 5711 0
map_funcs 2667 1 physmap_of
chipreg 3034 2 cfi_probe,physmap_of
mtd 59409 6 redboot,cmdlinepart,cfi_cmdset_0001,physmap_of,ofpart
uio_pdrv_genirq 4125 0
uio 11609 1 uio_pdrv_genirq
nls_utf8 1578 0
isofs 35332 0
ubuntu@ubuntu:~$

tags: added: verification-done-trusty
removed: verification-needed-trusty
dann frazier (dannf) wrote :

ubuntu@ubuntu:~$ cat /proc/version
Linux version 3.19.0-54-generic (buildd@bos01-arm64-004) (gcc version 4.9.2 (Ubuntu/Linaro 4.9.2-10ubuntu13) ) #60-Ubuntu SMP Wed Mar 2 17:44:06 UTC 2016
ubuntu@ubuntu:~$ lsmod
Module Size Used by
nls_utf8 16384 0
isofs 45056 0
ofpart 16384 0
redboot 16384 0
cmdlinepart 16384 0
cfi_cmdset_0001 49152 2
cfi_probe 16384 0
rtc_efi 16384 0
cfi_util 20480 2 cfi_probe,cfi_cmdset_0001
gen_probe 16384 1 cfi_probe
physmap_of 16384 0
map_funcs 16384 1 physmap_of
uio_pdrv_genirq 16384 0
chipreg 16384 2 cfi_probe,physmap_of
uio 24576 1 uio_pdrv_genirq
mtd 77824 6 redboot,cmdlinepart,cfi_cmdset_0001,physmap_of,ofpart
autofs4 49152 2
aes_neon_blk 20480 0
ablk_helper 16384 1 aes_neon_

tags: added: verification-done-vivid
removed: verification-needed-vivid
dann frazier (dannf) wrote :

ubuntu@ubuntu:~$ cat /proc/version
Linux version 4.2.0-32-generic (buildd@bos01-arm64-007) (gcc version 5.2.1 20151010 (Ubuntu 5.2.1-22ubuntu2) ) #37-Ubuntu SMP Fri Feb 26 02:21:04 UTC 2016
ubuntu@ubuntu:~$ lsmod
Module Size Used by
nls_utf8 16384 0
isofs 45056 0
xt_CHECKSUM 16384 1
iptable_mangle 16384 1
ipt_MASQUERADE 16384 1
nf_nat_masquerade_ipv4 16384 1 ipt_MASQUERADE
iptable_nat 16384 1
nf_conntrack_ipv4 24576 1
nf_defrag_ipv4 16384 1 nf_conntrack_ipv4
nf_nat_ipv4 16384 1 iptable_nat
nf_nat 32768 2 nf_nat_ipv4,nf_nat_masquerade_ipv4
nf_conntrack 135168 4 nf_nat,nf_nat_ipv4,nf_nat_masquerade_ipv4,nf_conntrack_ipv4
xt_tcpudp 16384 5
bridge 139264 0
stp 16384 1 bridge
llc 16384 2 stp,bridge
iptable_filter 16384 1
ip_tables 32768 3 iptable_filter,iptable_mangle,iptable_nat
x_tables 40960 6 xt_CHECKSUM,ip_tables,xt_tcpudp,ipt_MASQUERADE,iptable_filter,iptable_mangle
ofpart 16384 0
redboot 16384 0
cmdlinepart 16384 0
rtc_efi 16384 0
cfi_cmdset_0001 36864 2
cfi_probe 16384 0
cfi_util 16384 2 cfi_probe,cfi_cmdset_0001
gen_probe 16384 1 cfi_probe
physmap_of 16384 0
map_funcs 16384 1 physmap_of
chipreg 16384 2 cfi_probe,physmap_of
mtd 73728 6 redboot,cmdlinepart,cfi_cmdset_0001,physmap_of,ofpart
uio_pdrv_genirq 16384 0
uio 24576 1 uio_pdrv_genirq
autofs4 49152 2
aes_neon_blk 20480 0
ablk_helper 16384 1 aes_neon_blk
cryptd 24576 1 ablk_helper
ubuntu@ubuntu:~$

tags: added: verification-done-wily
removed: verification-needed-wily
Launchpad Janitor (janitor) wrote :
Download full text (7.7 KiB)

This bug was fixed in the package linux - 4.2.0-34.39

---------------
linux (4.2.0-34.39) wily; urgency=low

  [ Brad Figg ]

  * Release Tracking Bug
    - LP: #1555821

  [ Florian Westphal ]

  * SAUCE: [nf] netfilter: x_tables: check for size overflow
    - LP: #1555353
  * SAUCE: [nf,v2] netfilter: x_tables: don't rely on well-behaving
    userspace
    - LP: #1555338

linux (4.2.0-33.38) wily; urgency=low

  [ Brad Figg ]

  * Release Tracking Bug
    - LP: #1554649

  [ Upstream Kernel Changes ]

  * Revert "drm/radeon: call hpd_irq_event on resume"
    - LP: #1554608
  * cxl: Fix PSL timebase synchronization detection
    - LP: #1532914

linux (4.2.0-32.37) wily; urgency=low

  [ Kamal Mostafa ]

  * Release Tracking Bug
    - LP: #1550045

  [ Kamal Mostafa ]

  * Merged back Ubuntu-4.2.0-31.36

linux (4.2.0-31.36) wily; urgency=low

  [ Brad Figg ]

  * Release Tracking Bug
    - LP: #1548579

  [ Andy Whitcroft ]

  * [Debian] hv: hv_set_ifconfig -- convert to python3
    - LP: #1506521
  * [Debian] hv: hv_set_ifconfig -- switch to approved indentation
    - LP: #1540586
  * [Debian] hv: hv_set_ifconfig -- fix numerous parameter handling issues
    - LP: #1540586

  [ Carol L Soto ]

  * SAUCE: IB/IPoIB: Do not set skb truesize since using one linearskb
    - LP: #1541326

  [ Dan Streetman ]

  * SAUCE: nbd: ratelimit error msgs after socket close
    - LP: #1505564

  [ Tim Gardner ]

  * Revert "SAUCE: (noup) cxlflash: Fix to avoid virtual LUN failover
    failure"
    - LP: #1541635
  * Revert "SAUCE: (noup) cxlflash: Fix to escalate LINK_RESET also on port
    1"
    - LP: #1541635
  * [Config] ARMV8_DEPRECATED=y
    - LP: #1545542

  [ Upstream Kernel Changes ]

  * x86/xen/p2m: hint at the last populated P2M entry
    - LP: #1542941
  * mm: add dma_pool_zalloc() call to DMA API
    - LP: #1543737
  * sctp: Prevent soft lockup when sctp_accept() is called during a timeout
    event
    - LP: #1543737
  * xen-netback: respect user provided max_queues
    - LP: #1543737
  * xen-netfront: respect user provided max_queues
    - LP: #1543737
  * xen-netfront: update num_queues to real created
    - LP: #1543737
  * iio: adis_buffer: Fix out-of-bounds memory access
    - LP: #1543737
  * KVM: PPC: Fix emulation of H_SET_DABR/X on POWER8
    - LP: #1543737
  * KVM: PPC: Fix ONE_REG AltiVec support
    - LP: #1543737
  * x86/irq: Call chip->irq_set_affinity in proper context
    - LP: #1543737
  * drm/amdgpu: fix tonga smu resume
    - LP: #1543737
  * perf kvm record/report: 'unprocessable sample' error while
    recording/reporting guest data
    - LP: #1543737
  * hrtimer: Handle remaining time proper for TIME_LOW_RES
    - LP: #1543737
  * timerfd: Handle relative timers with CONFIG_TIME_LOW_RES proper
    - LP: #1543737
  * posix-timers: Handle relative timers with CONFIG_TIME_LOW_RES proper
    - LP: #1543737
  * itimers: Handle relative timers with CONFIG_TIME_LOW_RES proper
    - LP: #1543737
  * drm/amdgpu: Use drm_calloc_large for VM page_tables array
    - LP: #1543737
  * drm/amdgpu: fix amdgpu_bo_pin_restricted VRAM placing v2
    - LP: #1543737
  * drm/radeon: properly byte swap vce firmware setup
    - LP: #1543737
  ...

Read more...

Changed in linux (Ubuntu Wily):
status: Fix Committed → Fix Released
Launchpad Janitor (janitor) wrote :
Download full text (21.3 KiB)

This bug was fixed in the package linux - 3.19.0-56.62

---------------
linux (3.19.0-56.62) vivid; urgency=low

  [ Brad Figg ]

  * Release Tracking Bug
    - LP: #1555832

  [ Florian Westphal ]

  * SAUCE: [nf,v2] netfilter: x_tables: don't rely on well-behaving
    userspace
    - LP: #1555338

linux (3.19.0-55.61) vivid; urgency=low

  [ Brad Figg ]

  * Release Tracking Bug
    - LP: #1554708

  [ Upstream Kernel Changes ]

  * Revert "drm/radeon: call hpd_irq_event on resume"
    - LP: #1554608

linux (3.19.0-54.60) vivid; urgency=low

  [ Luis Henriques ]

  * Release Tracking Bug
    - LP: #1552337

  [ Upstream Kernel Changes ]

  * Revert "firmware: dmi_scan: Fix UUID endianness for SMBIOS >= 2.6"
    - LP: #1551419

linux (3.19.0-53.59) vivid; urgency=low

  [ Kamal Mostafa ]

  * Release Tracking Bug
    - LP: #1550576

  [ Kamal Mostafa ]

  * Merged back 3.19.0-52.58

linux (3.19.0-52.58) vivid; urgency=low

  [ Brad Figg ]

  * Release Tracking Bug
    - LP: #1548548

  [ Dan Streetman ]

  * SAUCE: nbd: ratelimit error msgs after socket close
    - LP: #1505564

  [ Upstream Kernel Changes ]

  * Revert "ACPI / LPSS: allow to use specific PM domain during ->probe()"
    - LP: #1542457
  * Revert "workqueue: make sure delayed work run in local cpu"
    - LP: #1546320
  * net: ipmr: fix static mfc/dev leaks on table destruction
    - LP: #1542457
  * drm/nouveau/nv46: Change mc subdev oclass from nv44 to nv4c
    - LP: #1542457
  * ovl: allow zero size xattr
    - LP: #1542457
  * ovl: use a minimal buffer in ovl_copy_xattr
    - LP: #1542457
  * [media] vb2: fix a regression in poll() behavior for output,streams
    - LP: #1542457
  * [media] gspca: ov534/topro: prevent a division by 0
    - LP: #1542457
  * [media] media: dvb-core: Don't force CAN_INVERSION_AUTO in oneshot mode
    - LP: #1542457
  * tools lib traceevent: Fix output of %llu for 64 bit values read on 32
    bit machines
    - LP: #1542457
  * KVM: x86: expose MSR_TSC_AUX to userspace
    - LP: #1542457
  * KVM: x86: correctly print #AC in traces
    - LP: #1542457
  * drm/radeon: call hpd_irq_event on resume
    - LP: #1542457
  * xhci: refuse loading if nousb is used
    - LP: #1542457
  * arm64: Clear out any singlestep state on a ptrace detach operation
    - LP: #1542457
  * time: Avoid signed overflow in timekeeping_get_ns()
    - LP: #1542457
  * ovl: root: copy attr
    - LP: #1542457
  * Bluetooth: Add support of Toshiba Broadcom based devices
    - LP: #1522949, #1542457
  * rtlwifi: fix memory leak for USB device
    - LP: #1542457
  * wlcore/wl12xx: spi: fix oops on firmware load
    - LP: #1542457
  * ovl: check dentry positiveness in ovl_cleanup_whiteouts()
    - LP: #1542457
  * EDAC, mc_sysfs: Fix freeing bus' name
    - LP: #1542457
  * EDAC: Robustify workqueues destruction
    - LP: #1542457
  * arm64: mm: ensure that the zero page is visible to the page table
    walker
    - LP: #1542457
  * powerpc: Make value-returning atomics fully ordered
    - LP: #1542457
  * powerpc: Make {cmp}xchg* and their atomic_ versions fully ordered
    - LP: #1542457
  * dm space map metadata: remove unused variable in brb_pop()
    - LP: #1542457
  * dm thi...

Changed in linux (Ubuntu Vivid):
status: Fix Committed → Fix Released
Launchpad Janitor (janitor) wrote :
Download full text (14.5 KiB)

This bug was fixed in the package linux - 3.13.0-83.127

---------------
linux (3.13.0-83.127) trusty; urgency=low

  [ Brad Figg ]

  * Release Tracking Bug
    - LP: #1555839

  [ Florian Westphal ]

  * SAUCE: [nf,v2] netfilter: x_tables: don't rely on well-behaving
    userspace
    - LP: #1555338

linux (3.13.0-82.126) trusty; urgency=low

  [ Brad Figg ]

  * Release Tracking Bug
    - LP: #1554732

  [ Upstream Kernel Changes ]

  * Revert "drm/radeon: call hpd_irq_event on resume"
    - LP: #1554608
  * net: generic dev_disable_lro() stacked device handling
    - LP: #1547680

linux (3.13.0-81.125) trusty; urgency=low

  [ Luis Henriques ]

  * Release Tracking Bug
    - LP: #1552316

  [ Upstream Kernel Changes ]

  * Revert "firmware: dmi_scan: Fix UUID endianness for SMBIOS >= 2.6"
    - LP: #1551419
  * bcache: Fix a lockdep splat in an error path
    - LP: #1551327

linux (3.13.0-80.124) trusty; urgency=low

  [ Brad Figg ]

  * Release Tracking Bug
    - LP: #1548519

  [ Andy Whitcroft ]

  * [Debian] hv: hv_set_ifconfig -- convert to python3
    - LP: #1506521
  * [Debian] hv: hv_set_ifconfig -- switch to approved indentation
    - LP: #1540586
  * [Debian] hv: hv_set_ifconfig -- fix numerous parameter handling issues
    - LP: #1540586

  [ Dan Streetman ]

  * SAUCE: nbd: ratelimit error msgs after socket close
    - LP: #1505564

  [ Upstream Kernel Changes ]

  * Revert "workqueue: make sure delayed work run in local cpu"
    - LP: #1546320
  * [media] gspca: ov534/topro: prevent a division by 0
    - LP: #1542497
  * [media] media: dvb-core: Don't force CAN_INVERSION_AUTO in oneshot mode
    - LP: #1542497
  * tools lib traceevent: Fix output of %llu for 64 bit values read on 32
    bit machines
    - LP: #1542497
  * KVM: x86: correctly print #AC in traces
    - LP: #1542497
  * drm/radeon: call hpd_irq_event on resume
    - LP: #1542497
  * xhci: refuse loading if nousb is used
    - LP: #1542497
  * arm64: Clear out any singlestep state on a ptrace detach operation
    - LP: #1542497
  * time: Avoid signed overflow in timekeeping_get_ns()
    - LP: #1542497
  * rtlwifi: fix memory leak for USB device
    - LP: #1542497
  * wlcore/wl12xx: spi: fix oops on firmware load
    - LP: #1542497
  * EDAC, mc_sysfs: Fix freeing bus' name
    - LP: #1542497
  * EDAC: Don't try to cancel workqueue when it's never setup
    - LP: #1542497
  * EDAC: Robustify workqueues destruction
    - LP: #1542497
  * powerpc: Make value-returning atomics fully ordered
    - LP: #1542497
  * powerpc: Make {cmp}xchg* and their atomic_ versions fully ordered
    - LP: #1542497
  * dm space map metadata: remove unused variable in brb_pop()
    - LP: #1542497
  * dm thin: fix race condition when destroying thin pool workqueue
    - LP: #1542497
  * futex: Drop refcount if requeue_pi() acquired the rtmutex
    - LP: #1542497
  * drm/radeon: clean up fujitsu quirks
    - LP: #1542497
  * mmc: sdio: Fix invalid vdd in voltage switch power cycle
    - LP: #1542497
  * mmc: sdhci: Fix sdhci_runtime_pm_bus_on/off()
    - LP: #1542497
  * udf: limit the maximum number of indirect extents in a row
    - LP: #1542497
  * nfs: Fix race in __update_open_stateid...

Changed in linux (Ubuntu Trusty):
status: Fix Committed → Fix Released
Tim Gardner (timg-tpi) wrote :

This bug is awaiting verification that the kernel in -proposed solves the problem. Please test the kernel and update this bug with the results. If the problem is solved, change the tag 'verification-needed-xenial' to 'verification-done-xenial'.

If verification is not done by 5 working days from today, this fix will be dropped from the source code, and this bug will be closed.

See https://wiki.ubuntu.com/Testing/EnableProposed for documentation how to enable and use -proposed. Thank you!

tags: added: verification-needed-xenial
Kj (ksingh2017) wrote :

I came across the same issue today (2/2/2017), i.e. "unsupported RELA relocation: 275", while using "Ubuntu 16.04.1 LTS (GNU/Linux 4.4.0-59-generic aarch64)". I read above messages and have verified that arch/arm64/Makefile does have -mpc-relative-literal-loads as shown below. The kernel config file also has CONFIG_ARM64_ERRATUM_843419=y.

However, module.c shows "#ifndef CONFIG_ARM64_ERRATUM_843419". Shouldn't this be #ifdef instead? Could it be that I'm seeing the error message since #ifndef compiled out "case R_AARCH64_ADR_PREL_PG_HI21" (275)?

ifeq ($(CONFIG_ARM64_ERRATUM_843419), y)
 KBUILD_CFLAGS_MODULE += -mcmodel=large
 KBUILD_CFLAGS_MODULE += $(call cc-option, -mpc-relative-literal-loads)
endif

File: arch/arm64/kernel/module.c
Linux Kernel Version: 4.9

 195int apply_relocate_add(Elf64_Shdr *sechdrs,
 196 const char *strtab,
 197 unsigned int symindex,
 198 unsigned int relsec,
 199 struct module *me)
 200{
 ...
 334#ifndef CONFIG_ARM64_ERRATUM_843419
 335 case R_AARCH64_ADR_PREL_PG_HI21_NC:
 336 overflow_check = false;
 337 case R_AARCH64_ADR_PREL_PG_HI21:
 338 ovf = reloc_insn_imm(RELOC_OP_PAGE, loc, val, 12, 21,
 339 AARCH64_INSN_IMM_ADR);
 340 break;
 341#endif

To post a comment you must log in.
This report contains Public information  Edit
Everyone can see this information.

Duplicates of this bug

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.