On Thu, 8 Oct 2026 at 06:17, Sandeep Penigalapati
<[email protected]> wrote:
>
> E830 supports at most 8096 descriptors per ring, but the advertised
> descriptor limits and the Rx/Tx queue setup checks used the generic
> maximum of 8160. Only the ring allocation honoured the E830 limit.
>
> An application could therefore request up to 8160 descriptors on E830.
> With Tx packet pacing enabled, the Tx time queue length (Tx descriptors
> plus a fetch margin) overflows the 13-bit queue length field, wraps to
> zero and triggers a Malicious Driver Detection event.
>
> Use ICE_MAX_NUM_DESC_BY_MAC() for the advertised limits and the queue
> setup checks so they match the ring allocation.
>
> Fixes: 0b6ff09a1f19 ("net/intel: support Tx packet pacing for E830")
> Cc: [email protected]
> Signed-off-by: Sandeep Penigalapati <[email protected]>

My two cents.

There are still some users of the unconditional macro:
drivers/net/intel/ice/ice_dcf_ethdev.c:         .nb_max = ICE_MAX_RING_DESC,
drivers/net/intel/ice/ice_dcf_ethdev.c:         .nb_max = ICE_MAX_RING_DESC,
drivers/net/intel/ice/ice_dcf_vf_representor.c:         .nb_max =
ICE_MAX_RING_DESC,
drivers/net/intel/ice/ice_dcf_vf_representor.c:         .nb_max =
ICE_MAX_RING_DESC,

Not sure it is a valid problem in DCF case.

At least, keeping the ICE_MAX_RING_DESC define seems a good way to
keep/reintroduce similar issues.


-- 
David Marchand

Reply via email to