|
@@ -2355,28 +2355,6 @@ static void ql_tx_ring_clean(struct ql_adapter *qdev)
|
|
|
}
|
|
|
}
|
|
|
|
|
|
-static void ql_free_ring_cb(struct ql_adapter *qdev)
|
|
|
-{
|
|
|
- kfree(qdev->ring_mem);
|
|
|
-}
|
|
|
-
|
|
|
-static int ql_alloc_ring_cb(struct ql_adapter *qdev)
|
|
|
-{
|
|
|
- /* Allocate space for tx/rx ring control blocks. */
|
|
|
- qdev->ring_mem_size =
|
|
|
- (qdev->tx_ring_count * sizeof(struct tx_ring)) +
|
|
|
- (qdev->rx_ring_count * sizeof(struct rx_ring));
|
|
|
- qdev->ring_mem = kmalloc(qdev->ring_mem_size, GFP_KERNEL);
|
|
|
- if (qdev->ring_mem == NULL) {
|
|
|
- return -ENOMEM;
|
|
|
- } else {
|
|
|
- qdev->rx_ring = qdev->ring_mem;
|
|
|
- qdev->tx_ring = qdev->ring_mem +
|
|
|
- (qdev->rx_ring_count * sizeof(struct rx_ring));
|
|
|
- }
|
|
|
- return 0;
|
|
|
-}
|
|
|
-
|
|
|
static void ql_free_mem_resources(struct ql_adapter *qdev)
|
|
|
{
|
|
|
int i;
|
|
@@ -3236,7 +3214,6 @@ static int qlge_close(struct net_device *ndev)
|
|
|
msleep(1);
|
|
|
ql_adapter_down(qdev);
|
|
|
ql_release_adapter_resources(qdev);
|
|
|
- ql_free_ring_cb(qdev);
|
|
|
return 0;
|
|
|
}
|
|
|
|
|
@@ -3262,8 +3239,8 @@ static int ql_configure_rings(struct ql_adapter *qdev)
|
|
|
* This limitation can be removed when requested.
|
|
|
*/
|
|
|
|
|
|
- if (cpu_cnt > 8)
|
|
|
- cpu_cnt = 8;
|
|
|
+ if (cpu_cnt > MAX_CPUS)
|
|
|
+ cpu_cnt = MAX_CPUS;
|
|
|
|
|
|
/*
|
|
|
* rx_ring[0] is always the default queue.
|
|
@@ -3283,9 +3260,6 @@ static int ql_configure_rings(struct ql_adapter *qdev)
|
|
|
*/
|
|
|
qdev->rx_ring_count = qdev->tx_ring_count + qdev->rss_ring_count + 1;
|
|
|
|
|
|
- if (ql_alloc_ring_cb(qdev))
|
|
|
- return -ENOMEM;
|
|
|
-
|
|
|
for (i = 0; i < qdev->tx_ring_count; i++) {
|
|
|
tx_ring = &qdev->tx_ring[i];
|
|
|
memset((void *)tx_ring, 0, sizeof(tx_ring));
|
|
@@ -3382,7 +3356,6 @@ static int qlge_open(struct net_device *ndev)
|
|
|
|
|
|
error_up:
|
|
|
ql_release_adapter_resources(qdev);
|
|
|
- ql_free_ring_cb(qdev);
|
|
|
return err;
|
|
|
}
|
|
|
|