Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

net: mana: hardening: Validate adapter_mtu from MANA_QUERY_DEV_CONFIG

As a part of MANA hardening for CVM, validate the adapter_mtu value
returned from the MANA_QUERY_DEV_CONFIG HWC command.

The adapter_mtu value is used to compute ndev->max_mtu via:
gc->adapter_mtu - ETH_HLEN. If hardware returns a bogus adapter_mtu
smaller than ETH_HLEN (e.g. 0), the unsigned subtraction wraps to a
huge value, silently allowing oversized MTU settings.

Add a validation check to reject adapter_mtu values below
ETH_MIN_MTU + ETH_HLEN, returning -EPROTO to fail the device
configuration early with a clear error message.

Signed-off-by: Erni Sri Satya Vennela <ernis@linux.microsoft.com>
Link: https://patch.msgid.link/20260326173101.2010514-1-ernis@linux.microsoft.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>

authored by

Erni Sri Satya Vennela and committed by
Jakub Kicinski
d7709812 e5a3f10e

+8 -2
+8 -2
drivers/net/ethernet/microsoft/mana/mana_en.c
··· 1207 1207 1208 1208 *max_num_vports = resp.max_num_vports; 1209 1209 1210 - if (resp.hdr.response.msg_version >= GDMA_MESSAGE_V2) 1210 + if (resp.hdr.response.msg_version >= GDMA_MESSAGE_V2) { 1211 + if (resp.adapter_mtu < ETH_MIN_MTU + ETH_HLEN) { 1212 + dev_err(dev, "Adapter MTU too small: %u\n", 1213 + resp.adapter_mtu); 1214 + return -EPROTO; 1215 + } 1211 1216 gc->adapter_mtu = resp.adapter_mtu; 1212 - else 1217 + } else { 1213 1218 gc->adapter_mtu = ETH_FRAME_LEN; 1219 + } 1214 1220 1215 1221 if (resp.hdr.response.msg_version >= GDMA_MESSAGE_V3) 1216 1222 *bm_hostmode = resp.bm_hostmode;