arm64: large modules fail to load

Bug #1841109 reported by dann frazier on 2019-08-22
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
linux (Ubuntu)
Undecided
Unassigned
Bionic
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) on 2019-08-22
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) on 2019-08-22
description: updated
Changed in linux (Ubuntu Bionic):
status: In Progress → Fix Committed

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
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
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  Edit
Everyone can see this information.

Other bug subscribers