[PATCH v2 1/2] net/mana: fix MR length truncation for chunks over 4GB

Stephen Hemminger stephen at networkplumber.org
Tue Aug 11 05:57:52 CEST 2026


On Thu,  6 Aug 2026 20:26:39 +0300
Rita Ruvinsky <rita.ruvinsky at weka.io> wrote:

> mana_range.len is a uint32_t, so a mempool chunk of 4GB or more
> truncates modulo 2^32 -- exactly 4GB becomes 0, 15GB becomes 3GB.
> 
> The guard against priv->max_mr_size cannot catch this because it
> compares the already-truncated value, and the device advertises
> max_mr_size as UINT64_MAX. ibv_reg_mr() then fails with EINVAL on a
> zero length, or silently registers a region far shorter than the pool,
> so lookups for buffers past that boundary never find an MR and no Rx
> WQE can be posted.
> 
> Widen the length to uint64_t through the MR path, including the
> multi-process request that forwards it to the primary process.
> 
> Fixes: 0f5db3c68ba7 ("net/mana: implement memory registration")
> Cc: stable at dpdk.org
> Signed-off-by: Rita Ruvinsky <rita.ruvinsky at weka.io>
> Reviewed-by: Long Li <longli at microsoft.com>
> ---

Both patches are queued into net-next.
Added you to the .mailmap file.


More information about the dev mailing list