diff --git a/sys/dev/virtual/amazon/ena/ena-com/ena_com.c b/sys/dev/virtual/amazon/ena/ena-com/ena_com.c --- a/sys/dev/virtual/amazon/ena/ena-com/ena_com.c +++ b/sys/dev/virtual/amazon/ena/ena-com/ena_com.c @@ -660,6 +660,12 @@ else llq_info->descs_per_entry = 1; + /* Spec allows LLQ_NUM_DESCS_BEFORE_HEADER_0, which makes + * descs_left_in_line=0 and lets get_sq_desc_llq index past the bounce + * buffer. Reject it as a defence-in-depth guard. */ + if (llq_desc->desc_num_before_header_ctrl == 0) + return -EINVAL; + llq_info->descs_num_before_header = llq_desc->desc_num_before_header_ctrl; return 0;