提交 039e70a7 编写于 作者: D David S. Miller

Merge branch 'ibmvnic-Fix-queue-and-buffer-accounting-errors'

Thomas Falcon says:

====================
ibmvnic: Fix queue and buffer accounting errors

This series includes two small fixes. The first resolves a typo bug
in the code to clean up unused RX buffers during device queue removal.
The second ensures that device queue memory is updated to reflect new
supported queue ring sizes after migration to other backing hardware.
====================
Signed-off-by: NDavid S. Miller <davem@davemloft.net>
...@@ -485,8 +485,8 @@ static void release_rx_pools(struct ibmvnic_adapter *adapter) ...@@ -485,8 +485,8 @@ static void release_rx_pools(struct ibmvnic_adapter *adapter)
for (j = 0; j < rx_pool->size; j++) { for (j = 0; j < rx_pool->size; j++) {
if (rx_pool->rx_buff[j].skb) { if (rx_pool->rx_buff[j].skb) {
dev_kfree_skb_any(rx_pool->rx_buff[i].skb); dev_kfree_skb_any(rx_pool->rx_buff[j].skb);
rx_pool->rx_buff[i].skb = NULL; rx_pool->rx_buff[j].skb = NULL;
} }
} }
...@@ -1737,6 +1737,7 @@ static int do_reset(struct ibmvnic_adapter *adapter, ...@@ -1737,6 +1737,7 @@ static int do_reset(struct ibmvnic_adapter *adapter,
struct ibmvnic_rwi *rwi, u32 reset_state) struct ibmvnic_rwi *rwi, u32 reset_state)
{ {
u64 old_num_rx_queues, old_num_tx_queues; u64 old_num_rx_queues, old_num_tx_queues;
u64 old_num_rx_slots, old_num_tx_slots;
struct net_device *netdev = adapter->netdev; struct net_device *netdev = adapter->netdev;
int i, rc; int i, rc;
...@@ -1748,6 +1749,8 @@ static int do_reset(struct ibmvnic_adapter *adapter, ...@@ -1748,6 +1749,8 @@ static int do_reset(struct ibmvnic_adapter *adapter,
old_num_rx_queues = adapter->req_rx_queues; old_num_rx_queues = adapter->req_rx_queues;
old_num_tx_queues = adapter->req_tx_queues; old_num_tx_queues = adapter->req_tx_queues;
old_num_rx_slots = adapter->req_rx_add_entries_per_subcrq;
old_num_tx_slots = adapter->req_tx_entries_per_subcrq;
ibmvnic_cleanup(netdev); ibmvnic_cleanup(netdev);
...@@ -1810,7 +1813,11 @@ static int do_reset(struct ibmvnic_adapter *adapter, ...@@ -1810,7 +1813,11 @@ static int do_reset(struct ibmvnic_adapter *adapter,
if (rc) if (rc)
return rc; return rc;
} else if (adapter->req_rx_queues != old_num_rx_queues || } else if (adapter->req_rx_queues != old_num_rx_queues ||
adapter->req_tx_queues != old_num_tx_queues) { adapter->req_tx_queues != old_num_tx_queues ||
adapter->req_rx_add_entries_per_subcrq !=
old_num_rx_slots ||
adapter->req_tx_entries_per_subcrq !=
old_num_tx_slots) {
release_rx_pools(adapter); release_rx_pools(adapter);
release_tx_pools(adapter); release_tx_pools(adapter);
release_napi(adapter); release_napi(adapter);
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册