Skip to content

Commit b712941

Browse files
ksornekanguy11
authored andcommitted
iavf: Fix limit of total number of queues to active queues of VF
In the absence of this validation, if the user requests to configure queues more than the enabled queues, it results in sending the requested number of queues to the kernel stack (due to the asynchronous nature of VF response), in which case the stack might pick a queue to transmit that is not enabled and result in Tx hang. Fix this bug by limiting the total number of queues allocated for VF to active queues of VF. Fixes: d5b33d0 ("i40evf: add ndo_setup_tc callback to i40evf") Signed-off-by: Ashwin Vijayavel <ashwin.vijayavel@intel.com> Signed-off-by: Karen Sornek <karen.sornek@intel.com> Tested-by: Konrad Jankowski <konrad0.jankowski@intel.com> Signed-off-by: Tony Nguyen <anthony.l.nguyen@intel.com>
1 parent e738451 commit b712941

1 file changed

Lines changed: 4 additions & 1 deletion

File tree

drivers/net/ethernet/intel/iavf/iavf_main.c

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2708,8 +2708,11 @@ static int iavf_validate_ch_config(struct iavf_adapter *adapter,
27082708
total_max_rate += tx_rate;
27092709
num_qps += mqprio_qopt->qopt.count[i];
27102710
}
2711-
if (num_qps > IAVF_MAX_REQ_QUEUES)
2711+
if (num_qps > adapter->num_active_queues) {
2712+
dev_err(&adapter->pdev->dev,
2713+
"Cannot support requested number of queues\n");
27122714
return -EINVAL;
2715+
}
27132716

27142717
ret = iavf_validate_tx_bandwidth(adapter, total_max_rate);
27152718
return ret;

0 commit comments

Comments
 (0)