6.18.45 regression with bnxt_en due to uninitialized RX page size

From: Max Kellermann

Date: Thu Aug 20 2026 - 03:44:59 EST


Hi,

after updating our servers to 6.18.45, the bnxt_en NICs would fail to
initialize:

page_pool_create_percpu() gave up with errno -22
bnxt_en 0000:c4:00.0 eno12399np0: bnxt_alloc_mem err: ffffffea

The regression appears to have been introduced by the backport of
ad9ffc61fafeb ("eth: bnxt: support qcfg provided rx page size"). It
obtains rx_page_size from the per-queue configuration:

rxr->rx_page_size = rxq->qcfg.rx_page_size;

The bnxt_en driver installs queue_mgmt_ops only when
BNXT_SUPPORTS_QUEUE_API() is true. On some NICs (like ours),
ndo_default_qcfg is never called and rxq->qcfg.rx_page_size remains
zero, leading to bnxt_alloc_rx_page_pool() failure with -EINVAL.

This was fixed in master by:

1410c7416dc3 ("eth: bnxt: always set the queue mgmt ops")
3cf48c04966e ("eth: bnxt: make sure we populate the qcfg defaults on
old FW/HW")

After cherry-picking these two commits on top of 6.18.45, the error
disappeared. I suggest backporting them.

--

Max Kellermann

Principal Software Engineer
Hosting Technology

cm4all GmbH | Im Mediapark 6a | 50670 Köln | Germany
E-Mail: max.kellermann@xxxxxxxxx | Web: www.cm4all.com

General information about the company can be found here.

A member of the IONOS Group