arm64: large modules fail to load

Bug #1841109 reported by dann frazier
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
linux (Ubuntu)
Fix Released
Undecided
Unassigned
Bionic
Fix Released
Undecided
dann frazier

Bug Description

[Impact]
The 3rd party nvidia driver fails to load on arm64 systems.

[Test Case]
sudo modprobe nvidia

On failure:
[ 812.512205] nvidia: loading out-of-tree module taints kernel.
[ 812.512216] nvidia: module license 'NVIDIA' taints kernel.
[ 812.512218] Disabling lock debugging due to kernel taint
[ 812.711108] nvidia: module verification failed: signature and/or required key missing - tainting kernel
[ 812.711656] module nvidia: unsupported RELA relocation: 275

[Fix]
a257e02579e42 arm64/kernel: don't ban ADRP to work around Cortex-A53 erratum #843419

[Regression Risk]
Regressions would most likely impact the loading of modules. To mitigate this risk, I've tested on a couple different arm64 servers - including loading of some the largest available modules - and have not seen any issues. All code changes are restricted to arm64, except for a new macro & #include in the generic linux/sizes.h header.

CVE References

dann frazier (dannf)
Changed in linux (Ubuntu):
status: New → Fix Released
Changed in linux (Ubuntu Bionic):
status: New → In Progress
assignee: nobody → dann frazier (dannf)
summary: - arm64: nvidia driver fails to load
+ arm64: large modules fail to load
dann frazier (dannf)
description: updated
Changed in linux (Ubuntu Bionic):
status: In Progress → Fix Committed
Revision history for this message
Ubuntu Kernel Bot (ubuntu-kernel-bot) 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-bionic' to 'verification-done-bionic'. If the problem still exists, change the tag 'verification-needed-bionic' to 'verification-failed-bionic'.

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-bionic
Revision history for this message
dann frazier (dannf) wrote :
Download full text (3.5 KiB)

verification:

ubuntu@segers:~$ cat /proc/version
Linux version 4.15.0-63-generic (buildd@bos02-arm64-074) (gcc version 7.4.0 (Ubuntu/Linaro 7.4.0-1ubuntu1~18.04.1)) #72-Ubuntu SMP Fri Sep 6 10:15:17 UTC 2019
ubuntu@segers:~$ lsmod
Module Size Used by
libceph 364544 0
nls_iso8859_1 16384 1
ipmi_ssif 36864 0
joydev 28672 0
input_leds 16384 0
hns_roce_hw_v2 49152 0
hns_roce 81920 1 hns_roce_hw_v2
ipmi_si 69632 0
ipmi_devintf 20480 0
ipmi_msghandler 57344 3 ipmi_devintf,ipmi_si,ipmi_ssif
shpchp 40960 0
sch_fq_codel 20480 161
ib_iser 49152 0
rdma_cm 65536 1 ib_iser
iw_cm 40960 1 rdma_cm
ib_cm 57344 1 rdma_cm
ib_core 249856 6 rdma_cm,hns_roce_hw_v2,iw_cm,ib_iser,hns_roce,ib_cm
iscsi_tcp 20480 0
libiscsi_tcp 28672 1 iscsi_tcp
libiscsi 53248 3 libiscsi_tcp,iscsi_tcp,ib_iser
scsi_transport_iscsi 110592 3 iscsi_tcp,ib_iser,libiscsi
ip_tables 28672 0
x_tables 40960 1 ip_tables
autofs4 53248 2
btrfs 1253376 0
zstd_compress 159744 1 btrfs
raid10 57344 0
raid456 167936 0
async_raid6_recov 20480 1 raid456
async_memcpy 16384 2 raid456,async_raid6_recov
async_pq 16384 2 raid456,async_raid6_recov
async_xor 16384 3 async_pq,raid456,async_raid6_recov
async_tx 16384 5 async_pq,async_memcpy,async_xor,raid456,async_raid6_recov
xor 20480 2 async_xor,btrfs
raid6_pq 106496 4 async_pq,btrfs,raid456,async_raid6_recov
libcrc32c 16384 2 raid456,libceph
raid1 40960 0
raid0 20480 0
multipath 20480 0
linear 16384 0
hibmc_drm 36864 0
hid_generic 16384 0
marvell 28672 2
ttm 118784 1 hibmc_drm
aes_ce_blk 24576 0
aes_ce_cipher 16384 1 aes_ce_blk
drm_kms_helper 188416 1 hibmc_drm
ixgbe 331776 0
crc32_ce 16384 4
crct10dif_ce 16384 0
syscopyarea 16384 1 drm_kms_helper
ghash_ce 20480 0
hisi_sas_v3_hw 40960 2
sysfillrect 16384 1 drm_kms_helper
sysimgblt 16384 1 drm_kms_helper
hns3 65536 0
usbhid 65536 0
sha2_ce 16384 0
hisi_sas_main 40960 1 hisi_sas_v3_hw
fb_sys_fops 16384 1 drm_kms_helper
sha256_arm64 24576 1 sha2_ce
ptp 24576 1 ixgbe
sha1_ce 16384 0
drm 458752 4 drm_kms_helper,hibmc_drm,ttm
hclge 176128 2
libsas 81920 2 hisi_sas_v3_hw,hisi_sas_main
hid 122880 2 usbhid,hid_generic
pps_core 20480 1 ptp
ahci 40960 0
mdio 16384 1 ixgbe
hnae3 16384 3 hclge,hns3,hns_r...

Read more...

tags: added: verification-done-bionic
removed: verification-needed-bionic
Revision history for this message
Launchpad Janitor (janitor) wrote :
Download full text (20.2 KiB)

This bug was fixed in the package linux - 4.15.0-65.74

---------------
linux (4.15.0-65.74) bionic; urgency=medium

  * bionic/linux: 4.15.0-65.74 -proposed tracker (LP: #1844403)

  * arm64: large modules fail to load (LP: #1841109)
    - arm64/kernel: kaslr: reduce module randomization range to 4 GB
    - arm64/kernel: don't ban ADRP to work around Cortex-A53 erratum #843419
    - arm64: fix undefined reference to 'printk'
    - arm64/kernel: rename module_emit_adrp_veneer->module_emit_veneer_for_adrp
    - [config] Remove CONFIG_ARM64_MODULE_CMODEL_LARGE

  * CVE-2018-20976
    - xfs: clear sb->s_fs_info on mount failure

  * br_netfilter: namespace sysctl operations (LP: #1836910)
    - net: bridge: add bitfield for options and convert vlan opts
    - net: bridge: convert nf call options to bits
    - netfilter: bridge: port sysctls to use brnf_net
    - netfilter: bridge: namespace bridge netfilter sysctls
    - netfilter: bridge: prevent UAF in brnf_exit_net()

  * tuntap: correctly set SOCKWQ_ASYNC_NOSPACE (LP: #1830756)
    - tuntap: correctly set SOCKWQ_ASYNC_NOSPACE

  * Bionic update: upstream stable patchset 2019-08-30 (LP: #1842114)
    - HID: Add 044f:b320 ThrustMaster, Inc. 2 in 1 DT
    - MIPS: kernel: only use i8253 clocksource with periodic clockevent
    - mips: fix cacheinfo
    - netfilter: ebtables: fix a memory leak bug in compat
    - ASoC: dapm: Fix handling of custom_stop_condition on DAPM graph walks
    - bonding: Force slave speed check after link state recovery for 802.3ad
    - can: dev: call netif_carrier_off() in register_candev()
    - ASoC: Fail card instantiation if DAI format setup fails
    - st21nfca_connectivity_event_received: null check the allocation
    - st_nci_hci_connectivity_event_received: null check the allocation
    - ASoC: ti: davinci-mcasp: Correct slot_width posed constraint
    - net: usb: qmi_wwan: Add the BroadMobi BM818 card
    - qed: RDMA - Fix the hw_ver returned in device attributes
    - isdn: mISDN: hfcsusb: Fix possible null-pointer dereferences in
      start_isoc_chain()
    - netfilter: ipset: Fix rename concurrency with listing
    - isdn: hfcsusb: Fix mISDN driver crash caused by transfer buffer on the stack
    - perf bench numa: Fix cpu0 binding
    - can: sja1000: force the string buffer NULL-terminated
    - can: peak_usb: force the string buffer NULL-terminated
    - net/ethernet/qlogic/qed: force the string buffer NULL-terminated
    - NFSv4: Fix a potential sleep while atomic in nfs4_do_reclaim()
    - HID: input: fix a4tech horizontal wheel custom usage
    - SMB3: Kernel oops mounting a encryptData share with CONFIG_DEBUG_VIRTUAL
    - net: cxgb3_main: Fix a resource leak in a error path in 'init_one()'
    - net: hisilicon: make hip04_tx_reclaim non-reentrant
    - net: hisilicon: fix hip04-xmit never return TX_BUSY
    - net: hisilicon: Fix dma_map_single failed on arm64
    - libata: have ata_scsi_rw_xlat() fail invalid passthrough requests
    - libata: add SG safety checks in SFF pio transfers
    - x86/lib/cpu: Address missing prototypes warning
    - drm/vmwgfx: fix memory leak when too many retries have occurred
    - perf ftrace: Fix failure to set cpuma...

Changed in linux (Ubuntu Bionic):
status: Fix Committed → Fix Released
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

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