CVE-2021-47619

i40e: Fix queues reservation for XDP

published June 20, 2024

CVSS
—
EPSS
0%
Percentile
11.9
In the wild
Unconfirmed
What it is

In the Linux kernel, the following vulnerability has been resolved:

i40e: Fix queues reservation for XDP

When XDP was configured on a system with large number of CPUs

and X722 NIC there was a call trace with NULL pointer dereference.

i40e 0000:87:00.0: failed to get tracking for 256 queues for VSI 0 err -12

i40e 0000:87:00.0: setup of MAIN VSI failed

BUG: kernel NULL pointer dereference, address: 0000000000000000

RIP: 0010:i40e_xdp+0xea/0x1b0 [i40e]

Call Trace:

? i40e_reconfig_rss_queues+0x130/0x130 [i40e]

dev_xdp_install+0x61/0xe0

dev_xdp_attach+0x18a/0x4c0

dev_change_xdp_fd+0x1e6/0x220

do_setlink+0x616/0x1030

? ahci_port_stop+0x80/0x80

? ata_qc_issue+0x107/0x1e0

? lock_timer_base+0x61/0x80

? __mod_timer+0x202/0x380

rtnl_setlink+0xe5/0x170

? bpf_lsm_binder_transaction+0x10/0x10

? security_capable+0x36/0x50

rtnetlink_rcv_msg+0x121/0x350

? rtnl_calcit.isra.0+0x100/0x100

netlink_rcv_skb+0x50/0xf0

netlink_unicast+0x1d3/0x2a0

netlink_sendmsg+0x22a/0x440

sock_sendmsg+0x5e/0x60

__sys_sendto+0xf0/0x160

? __sys_getsockname+0x7e/0xc0

? _copy_from_user+0x3c/0x80

? __sys_setsockopt+0xc8/0x1a0

__x64_sys_sendto+0x20/0x30

do_syscall_64+0x33/0x40

entry_SYSCALL_64_after_hwframe+0x44/0xae

RIP: 0033:0x7f83fa7a39e0

This was caused by PF queue pile fragmentation due to

flow director VSI queue being placed right after main VSI.

Because of this main VSI was not able to resize its

queue allocation for XDP resulting in no queues allocated

for main VSI when XDP was turned on.

Fix this by always allocating last queue in PF queue pile

for a flow director VSI.

The record
Technical detail
CVSS
Not scored
CVSS v4.0
Not supplied
EPSS
0.00220 · 11.9th percentile
Published
2024-06-20T11:08Z
EPSS history
Timeline
  • 20 JUN 11:08Z
    i40e: Fix queues reservation for XDP
    cvelistv5