bnxt_en: Avoid order-5 memory allocation for TPA data (Linux Linux)

CVE-2023-53134
MEDIUM 5.5

At a glance

Source
NVD
EPSS
EPSS 0.19 % · percentile 9 ()
State
PUBLISHED
Published
Updated
Assigner
Linux
NVD status
Analyzed

Description

In the Linux kernel, the following vulnerability has been resolved: bnxt_en: Avoid order-5 memory allocation for TPA data The driver needs to keep track of all the possible concurrent TPA (GRO/LRO) completions on the aggregation ring. On P5 chips, the maximum number of concurrent TPA is 256 and the amount of memory we allocate is order-5 on systems using 4K pages. Memory allocation failure has been reported: NetworkManager: page allocation failure: order:5, mode:0x40dc0(GFP_KERNEL|__GFP_COMP|__GFP_ZERO), nodemask=(null),cpuset=/,mems_allowed=0-1 CPU: 15 PID: 2995 Comm: NetworkManager Kdump: loaded Not tainted 5.10.156 #1 Hardware name: Dell Inc. PowerEdge R660/0M1CC5, BIOS 0.2.25 08/12/2022 Call Trace: dump_stack+0x57/0x6e warn_alloc.cold.120+0x7b/0xdd ? _cond_resched+0x15/0x30 ? __alloc_pages_direct_compact+0x15f/0x170 __alloc_pages_slowpath.constprop.108+0xc58/0xc70 __alloc_pages_nodemask+0x2d0/0x300 kmalloc_order+0x24/0xe0 kmalloc_order_trace+0x19/0x80 bnxt_alloc_mem+0x1150/0x15c0 [bnxt_en] ? bnxt_get_func_stat_ctxs+0x13/0x60 [bnxt_en] __bnxt_open_nic+0x12e/0x780 [bnxt_en] bnxt_open+0x10b/0x240 [bnxt_en] __dev_open+0xe9/0x180 __dev_change_flags+0x1af/0x220 dev_change_flags+0x21/0x60 do_setlink+0x35c/0x1100 Instead of allocating this big chunk of memory and dividing it up for the concurrent TPA instances, allocate each small chunk separately for each TPA instance. This will reduce it to order-0 allocations.

References

Scores

VersionScoreVectorScored by
CVSS 3.1MEDIUM 5.5CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:HNVD · nvd@nist.gov (Primary)

European references

CERT-FR advisories

Affected configurations (NVD CPE)

Affected products

ProductVersions
Linux · Linuxaffected 79632e9ba38671215fb193346ef6fb8db582744d < 16f3aae1aa2dd89bc8d073a67f190af580386ae9 ; affected 79632e9ba38671215fb193346ef6fb8db582744d < d16701a385b54f44bf41ff1d7485e7a11080deb3 ; affected 79632e9ba38671215fb193346ef6fb8db582744d < 20fd0607acbf9770db9b99e3418dd75614f80b6c ; affected 79632e9ba38671215fb193346ef6fb8db582744d < fcae40e65802547def39b4deaa2ae38a29864d81 ; affected 79632e9ba38671215fb193346ef6fb8db582744d < ad529d1fae1565d38f929479d4ea8aea90054bd2 ; affected 79632e9ba38671215fb193346ef6fb8db582744d < accd7e23693aaaa9aa0d3e9eca0ae77d1be80ab3
Linux · Linuxaffected 5.4 ; unaffected 0 < 5.4 ; unaffected 5.4.237 ≤ 5.4.* ; unaffected 5.10.175 ≤ 5.10.* ; unaffected 5.15.103 ≤ 5.15.* ; unaffected 6.1.20 ≤ 6.1.*

Sources

SourceLicence
CVE List (CVEProject cvelistV5)CVE Program Terms of Use
EPSS (FIRST.org)FIRST — attribution requested
ENISA EUVDENISA — reproduction authorised, source acknowledged
CERT-FR (ANSSI)Licence Ouverte / Etalab 2.0
NVD (NIST) via fkie-cad/nvd-json-data-feedsPublic domain — this product uses data from the NVD API but is not endorsed or certified by the NVD