Commit 5bf032ef authored by Thomas Falcon's avatar Thomas Falcon Committed by David S. Miller

ibmvnic: Update driver queues after change in ring size support

During device reset, queue memory is not being updated to accommodate
changes in ring buffer sizes supported by backing hardware. Track
any differences in ring buffer sizes following the reset and update
queue memory when possible.
Signed-off-by: default avatarThomas Falcon <tlfalcon@linux.ibm.com>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent b7cdec3d
...@@ -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%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment