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

