git.droids-corp.org
/
dpdk.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
net/hns3: fix crash with multi-TC
[dpdk.git]
/
drivers
/
net
/
hns3
/
hns3_dcb.c
diff --git
a/drivers/net/hns3/hns3_dcb.c
b/drivers/net/hns3/hns3_dcb.c
index
ab02c87
..
fb50179
100644
(file)
--- a/
drivers/net/hns3/hns3_dcb.c
+++ b/
drivers/net/hns3/hns3_dcb.c
@@
-1351,6
+1351,8
@@
hns3_dcb_cfg_validate(struct hns3_adapter *hns, uint8_t *tc, bool *changed)
{
struct rte_eth_dcb_rx_conf *dcb_rx_conf;
struct hns3_hw *hw = &hns->hw;
{
struct rte_eth_dcb_rx_conf *dcb_rx_conf;
struct hns3_hw *hw = &hns->hw;
+ uint16_t nb_rx_q = hw->data->nb_rx_queues;
+ uint16_t nb_tx_q = hw->data->nb_tx_queues;
uint8_t max_tc = 0;
uint8_t pfc_en;
int i;
uint8_t max_tc = 0;
uint8_t pfc_en;
int i;
@@
-1376,6
+1378,10
@@
hns3_dcb_cfg_validate(struct hns3_adapter *hns, uint8_t *tc, bool *changed)
pfc_en = RTE_LEN2MASK((uint8_t)dcb_rx_conf->nb_tcs, uint8_t);
if (hw->dcb_info.pfc_en != pfc_en)
*changed = true;
pfc_en = RTE_LEN2MASK((uint8_t)dcb_rx_conf->nb_tcs, uint8_t);
if (hw->dcb_info.pfc_en != pfc_en)
*changed = true;
+
+ /* tx/rx queue number is reconfigured. */
+ if (nb_rx_q != hw->used_rx_queues || nb_tx_q != hw->used_tx_queues)
+ *changed = true;
}
static int
}
static int