mirror of
https://github.com/Fishwaldo/Star64_linux.git
synced 2025-04-27 00:33:55 +00:00
i40e: Queues are reserved despite "Invalid argument" error
Added a new local variable in the i40e_setup_tc function named old_queue_pairs so num_queue_pairs can be restored to the correct value in case configuring queue channels fails. Additionally, moved the exit label in the i40e_setup_tc function so the if (need_reset) block can be executed. Also, fixed data packing in the i40e_setup_tc function. Signed-off-by: Adam Ludkiewicz <adam.ludkiewicz@intel.com> Tested-by: Andrew Bowers <andrewx.bowers@intel.com> Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
This commit is contained in:
parent
432bc23070
commit
3e957b377b
1 changed files with 3 additions and 0 deletions
|
@ -6846,10 +6846,12 @@ static int i40e_setup_tc(struct net_device *netdev, void *type_data)
|
||||||
struct i40e_pf *pf = vsi->back;
|
struct i40e_pf *pf = vsi->back;
|
||||||
u8 enabled_tc = 0, num_tc, hw;
|
u8 enabled_tc = 0, num_tc, hw;
|
||||||
bool need_reset = false;
|
bool need_reset = false;
|
||||||
|
int old_queue_pairs;
|
||||||
int ret = -EINVAL;
|
int ret = -EINVAL;
|
||||||
u16 mode;
|
u16 mode;
|
||||||
int i;
|
int i;
|
||||||
|
|
||||||
|
old_queue_pairs = vsi->num_queue_pairs;
|
||||||
num_tc = mqprio_qopt->qopt.num_tc;
|
num_tc = mqprio_qopt->qopt.num_tc;
|
||||||
hw = mqprio_qopt->qopt.hw;
|
hw = mqprio_qopt->qopt.hw;
|
||||||
mode = mqprio_qopt->mode;
|
mode = mqprio_qopt->mode;
|
||||||
|
@ -6950,6 +6952,7 @@ config_tc:
|
||||||
}
|
}
|
||||||
ret = i40e_configure_queue_channels(vsi);
|
ret = i40e_configure_queue_channels(vsi);
|
||||||
if (ret) {
|
if (ret) {
|
||||||
|
vsi->num_queue_pairs = old_queue_pairs;
|
||||||
netdev_info(netdev,
|
netdev_info(netdev,
|
||||||
"Failed configuring queue channels\n");
|
"Failed configuring queue channels\n");
|
||||||
need_reset = true;
|
need_reset = true;
|
||||||
|
|
Loading…
Add table
Reference in a new issue