From: netdev-bot+sashiko@kernel.org
To: anthony.l.nguyen@intel.com
Cc: davem@davemloft.net, kuba@kernel.org, pabeni@redhat.com,
edumazet@kernel.org, andrew+netdev@lunn.ch,
netdev@vger.kernel.org, david.butler@appgate.com,
emil.s.tantilov@intel.com, luoxuanqiang@kylinos.cn,
bryan.fraschetti@canonical.com, tristan@talencesecurity.com,
tomasz.lichwala@linux.intel.com, horms@kernel.org,
aleksander.lobakin@intel.com, stable@vger.kernel.org,
jacob.e.keller@intel.com, aleksandr.loktionov@intel.com
Subject: Re: [PATCH net 6/6] iavf: cap advertised max_pkt_size at the single-buffer HW limit
Date: Wed, 30 Sep 2026 00:58:36 +0000 [thread overview]
Message-ID: <179072991678.434549.17815320009417499641@kernel.org> (raw)
In-Reply-To: <20260928230429.495442-7-anthony.l.nguyen@intel.com>
Thank you for your contribution! Sashiko AI review found 1 potential
issue(s) to consider.
Critical: 0 · High: 0 · Medium: 1 · Low: 0
If you believe none of the issues are legitimate, please reply to each
issue of Medium severity or higher and explain why the AI is wrong.
If any of them are legitimate and you plan to respin, please let patchwork
know by including "pw-bot: cr" as a separate line at the end of your reply
(one such reply per series is enough).
- [Medium] The patch caps the Rx max_pkt_size sent to the PF (the per-
queue Rx context 'rxmax') at LIBIE_MAX_RX_BUF_LEN (9728) in…
--
iavf: cap advertised max_pkt_size at the single-buffer HW limit
This commit caps the max_pkt_size that iavf_configure_queues() sends to
the PF in VIRTCHNL_OP_CONFIG_VSI_QUEUES at LIBIE_MAX_RX_BUF_LEN (9728).
Without the cap, a PF that advertises vf_res->max_mtu as 0 (the ESXi icen
PF on E810) receives 16382 and rejects the queue configuration.
Link: https://community.intel.com/t5/Ethernet-Products/E810-C-iavf-driver-issue-on-Linux-6-12/m-p/1737490
Link: https://access.redhat.com/solutions/6973766
Link: https://knowledge.broadcom.com/external/article/404315/sriov-enabled-vms-network-adaptor-goes-d.html
> diff --git a/drivers/net/ethernet/intel/iavf/iavf_virtchnl.c b/drivers/net/ethernet/intel/iavf/iavf_virtchnl.c
> index ec234cc8bd9db..680a28a739bf0 100644
> --- a/drivers/net/ethernet/intel/iavf/iavf_virtchnl.c
> +++ b/drivers/net/ethernet/intel/iavf/iavf_virtchnl.c
> @@ -382,6 +382,14 @@ void iavf_configure_queues(struct iavf_adapter *adapter)
>
> max_frame = LIBIE_MAX_RX_FRM_LEN(adapter->rx_rings->pp->p.offset);
> max_frame = min_not_zero(adapter->vf_res->max_mtu, max_frame);
> + /* The PF programs max_pkt_size into the per-queue Rx context "rxmax".
> + * LIBIE_MAX_RX_FRM_LEN is the multi-descriptor (S/G) frame ceiling
> + * (16382), but that exceeds the E810 max MAC frame size (9728); some
> + * PFs reject the out-of-range value with VIRTCHNL_STATUS_ERR_PARAM.
> + * Cap it at the single-buffer HW limit (== the MAC frame max),
> + * restoring the pre-Page-Pool behaviour.
> + */
> + max_frame = min(max_frame, LIBIE_MAX_RX_BUF_LEN);
[Severity: Medium]
Should netdev->max_mtu be clamped to match? Rx max_pkt_size is now capped
at 9728. However, iavf_init_config_adapter() in iavf_main.c still derives
the MTU ceiling from the 16382 S/G limit when the PF sends max_mtu == 0:
drivers/net/ethernet/intel/iavf/iavf_main.c:iavf_init_config_adapter() {
...
if (!adapter->vf_res->max_mtu) {
netdev->max_mtu = LIBIE_MAX_MTU;
} else if (adapter->vf_res->max_mtu < LIBETH_RX_LL_LEN + ETH_MIN_MTU ||
adapter->vf_res->max_mtu >
LIBETH_RX_LL_LEN + LIBIE_MAX_MTU) {
...
netdev->max_mtu = LIBIE_MAX_MTU;
} else {
netdev->max_mtu = adapter->vf_res->max_mtu - LIBETH_RX_LL_LEN;
}
...
}
LIBIE_MAX_MTU is 16382 - 26 = 16356. A PF-advertised frame size above
9728 that still passes the range check also gives a max_mtu above 9702.
In the icen case this patch targets, can a user still set an MTU the
queues can't carry? For example:
ip link set dev ethX mtu 12000
dev_validate_mtu() only checks against dev->max_mtu. iavf_change_mtu()
stores the new MTU and triggers a reset without a check of its own. The
queues are then reprogrammed with max_pkt_size = 9728.
Received frames larger than 9728 bytes would then be silently dropped by
the Rx queue context, instead of the MTU change failing. Per the commit
message, E810 also discards Tx frames above MAX_TXFRAME (9728).
Before this patch, rxmax and max_mtu both came from the 16382 ceiling and
matched each other.
The commit message and the new comment both describe this as "restoring
the pre-Page-Pool behaviour". Commit 5fa4caff59f2 changed two things. It
changed max_frame from IAVF_MAX_RXBUFFER to LIBIE_MAX_RX_FRM_LEN(). It
also changed netdev->max_mtu from IAVF_MAX_RXBUFFER - IAVF_PACKET_HDR_PAD
(9710) to LIBIE_MAX_MTU. This patch only reverts the first change.
Could netdev->max_mtu also be clamped to LIBIE_MAX_RX_BUF_LEN -
LIBETH_RX_LL_LEN, in both the zero-value branch and the invalid-value
fallback?
[ ... ]
--
Sashiko AI review · https://netdev-ai.bots.linux.dev/sashiko/#/patchset/20260928230429.495442-1-anthony.l.nguyen%40intel.com
next prev parent reply other threads:[~2026-09-30 0:58 UTC|newest]
Thread overview: 28+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-09-28 23:04 [PATCH net 0/6][pull request] Intel Wired LAN Driver Updates 2026-09-28 (idpf, ice, iavf) Tony Nguyen
2026-09-28 23:04 ` [PATCH net 1/6] idpf: fix possible race on remove during a reset Tony Nguyen
2026-09-30 0:58 ` netdev-bot+sashiko
2026-10-01 23:40 ` Tantilov, Emil S
2026-09-28 23:04 ` [PATCH net 2/6] ice: fix use-after-free in dynamic port cleanup Tony Nguyen
2026-09-28 23:04 ` [PATCH net 3/6] ice: Restore Ordered MMIO Writes for Tx Doorbells Tony Nguyen
2026-09-30 0:58 ` netdev-bot+sashiko
2026-10-01 16:35 ` Tony Nguyen
2026-09-28 23:04 ` [PATCH net 4/6] ice: fix metadata_dst refcount handling on representor teardown Tony Nguyen
2026-09-28 23:04 ` [PATCH net 5/6] iavf: fix VF stats not updating due to PTP command preemption Tony Nguyen
2026-09-30 0:58 ` netdev-bot+sashiko
2026-09-30 15:07 ` Tomasz Lichwala
2026-09-28 23:04 ` [PATCH net 6/6] iavf: cap advertised max_pkt_size at the single-buffer HW limit Tony Nguyen
2026-09-29 16:18 ` Alexander Lobakin
2026-09-29 20:32 ` Dave Butler
2026-09-30 11:32 ` Alexander Lobakin
2026-09-30 0:58 ` netdev-bot+sashiko [this message]
2026-09-30 6:02 ` Dave Butler
[not found] ` <IA3PR05MB22078430E404FAD12912A706298B892@IA3PR05MB220784.namprd05.prod.outlook.com>
[not found] ` <CANm61jc37jivo=XmRwN8ic8PNJFXZK+6Gsw5VRy=b-oZKpMsMA@mail.gmail.com>
2026-10-02 21:09 ` Fw: " David Butler
2026-09-28 23:10 ` [PATCH net 0/6][pull request] Intel Wired LAN Driver Updates 2026-09-28 (idpf, ice, iavf) netdev-bot+sinfo
2026-09-29 1:41 ` Dave Butler
[not found] ` <IA3PR05MB22078467309FA5DFF33EF712488B892@IA3PR05MB220784.namprd05.prod.outlook.com>
2026-10-02 21:21 ` Fw: " David Butler
2026-09-29 17:16 ` Tantilov, Emil S
2026-09-30 15:06 ` Tomasz Lichwala
2026-10-01 23:47 ` Tony Nguyen
2026-10-02 20:39 ` Jakub Kicinski
[not found] ` <IA3PR05MB220784D3846E12367B0CA1D3738B892@IA3PR05MB220784.namprd05.prod.outlook.com>
[not found] ` <CANm61jco98RoBmBAtbnjRZCPwqS0Vt6SqXjYAEUwSD4-bWLuZA@mail.gmail.com>
2026-10-02 21:06 ` Fw: " David Butler
2026-10-02 20:50 ` patchwork-bot+netdevbpf
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=179072991678.434549.17815320009417499641@kernel.org \
--to=netdev-bot+sashiko@kernel.org \
--cc=aleksander.lobakin@intel.com \
--cc=aleksandr.loktionov@intel.com \
--cc=andrew+netdev@lunn.ch \
--cc=anthony.l.nguyen@intel.com \
--cc=bryan.fraschetti@canonical.com \
--cc=davem@davemloft.net \
--cc=david.butler@appgate.com \
--cc=edumazet@kernel.org \
--cc=emil.s.tantilov@intel.com \
--cc=horms@kernel.org \
--cc=jacob.e.keller@intel.com \
--cc=kuba@kernel.org \
--cc=luoxuanqiang@kylinos.cn \
--cc=netdev@vger.kernel.org \
--cc=pabeni@redhat.com \
--cc=stable@vger.kernel.org \
--cc=tomasz.lichwala@linux.intel.com \
--cc=tristan@talencesecurity.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox