Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 224395
b: refs/heads/master
c: e2ddeba
h: refs/heads/master
i:
  224393: 339b833
  224391: 80194ff
v: v3
  • Loading branch information
Eric Dumazet authored and Jeff Kirsher committed Nov 17, 2010
1 parent 3bcba07 commit 213ef95
Show file tree
Hide file tree
Showing 2 changed files with 29 additions and 45 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: b93a22260f6f4bcf6c92c54de8530a97d3e921f0
refs/heads/master: e2ddeba95c09d0d44719ff005e915dc06ff46571
72 changes: 28 additions & 44 deletions trunk/drivers/net/ixgbe/ixgbe_main.c
Original file line number Diff line number Diff line change
Expand Up @@ -4676,71 +4676,55 @@ static void ixgbe_cache_ring_register(struct ixgbe_adapter *adapter)
**/
static int ixgbe_alloc_queues(struct ixgbe_adapter *adapter)
{
int i;
int rx_count;
int orig_node = adapter->node;
int rx = 0, tx = 0, nid = adapter->node;

for (i = 0; i < adapter->num_tx_queues; i++) {
struct ixgbe_ring *ring = adapter->tx_ring[i];
if (orig_node == -1) {
int cur_node = next_online_node(adapter->node);
if (cur_node == MAX_NUMNODES)
cur_node = first_online_node;
adapter->node = cur_node;
}
ring = kzalloc_node(sizeof(struct ixgbe_ring), GFP_KERNEL,
adapter->node);
if (nid < 0 || !node_online(nid))
nid = first_online_node;

for (; tx < adapter->num_tx_queues; tx++) {
struct ixgbe_ring *ring;

ring = kzalloc_node(sizeof(*ring), GFP_KERNEL, nid);
if (!ring)
ring = kzalloc(sizeof(struct ixgbe_ring), GFP_KERNEL);
ring = kzalloc(sizeof(*ring), GFP_KERNEL);
if (!ring)
goto err_tx_ring_allocation;
goto err_allocation;
ring->count = adapter->tx_ring_count;
ring->queue_index = i;
ring->queue_index = tx;
ring->numa_node = nid;
ring->dev = &adapter->pdev->dev;
ring->netdev = adapter->netdev;
ring->numa_node = adapter->node;

adapter->tx_ring[i] = ring;
adapter->tx_ring[tx] = ring;
}

/* Restore the adapter's original node */
adapter->node = orig_node;
for (; rx < adapter->num_rx_queues; rx++) {
struct ixgbe_ring *ring;

rx_count = adapter->rx_ring_count;
for (i = 0; i < adapter->num_rx_queues; i++) {
struct ixgbe_ring *ring = adapter->rx_ring[i];
if (orig_node == -1) {
int cur_node = next_online_node(adapter->node);
if (cur_node == MAX_NUMNODES)
cur_node = first_online_node;
adapter->node = cur_node;
}
ring = kzalloc_node(sizeof(struct ixgbe_ring), GFP_KERNEL,
adapter->node);
ring = kzalloc_node(sizeof(*ring), GFP_KERNEL, nid);
if (!ring)
ring = kzalloc(sizeof(struct ixgbe_ring), GFP_KERNEL);
ring = kzalloc(sizeof(*ring), GFP_KERNEL);
if (!ring)
goto err_rx_ring_allocation;
ring->count = rx_count;
ring->queue_index = i;
goto err_allocation;
ring->count = adapter->rx_ring_count;
ring->queue_index = rx;
ring->numa_node = nid;
ring->dev = &adapter->pdev->dev;
ring->netdev = adapter->netdev;
ring->numa_node = adapter->node;

adapter->rx_ring[i] = ring;
adapter->rx_ring[rx] = ring;
}

/* Restore the adapter's original node */
adapter->node = orig_node;

ixgbe_cache_ring_register(adapter);

return 0;

err_rx_ring_allocation:
for (i = 0; i < adapter->num_tx_queues; i++)
kfree(adapter->tx_ring[i]);
err_tx_ring_allocation:
err_allocation:
while (tx)
kfree(adapter->tx_ring[--tx]);

while (rx)
kfree(adapter->rx_ring[--rx]);
return -ENOMEM;
}

Expand Down

0 comments on commit 213ef95

Please sign in to comment.