aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/ethernet/ibm
diff options
context:
space:
mode:
authorAnton Blanchard <anton@samba.org>2011-10-14 01:31:01 -0400
committerDavid S. Miller <davem@davemloft.net>2011-10-17 19:00:54 -0400
commit723f28e49c9f8578b418dfd1ec8c7b9cc13e2b63 (patch)
treedd43fdf94769f8366cef0fd87a382d386a061043 /drivers/net/ethernet/ibm
parent222ca96b69ae8afb2ad13b99070b09309e7d9657 (diff)
ehea: Remove num_tx_qps module option
The num_tx_qps module option allows a user to configure a different number of tx and rx queues. Now the networking stack is multiqueue aware it makes little sense just to enable the tx queues and not the rx queues so remove the option. v3: [cascardo] fixed conflict with get_stats change Signed-off-by: Anton Blanchard <anton@samba.org> Signed-off-by: Thadeu Lima de Souza Cascardo <cascardo@linux.vnet.ibm.com> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/net/ethernet/ibm')
-rw-r--r--drivers/net/ethernet/ibm/ehea/ehea.h3
-rw-r--r--drivers/net/ethernet/ibm/ehea/ehea_main.c51
2 files changed, 18 insertions, 36 deletions
diff --git a/drivers/net/ethernet/ibm/ehea/ehea.h b/drivers/net/ethernet/ibm/ehea/ehea.h
index 4a4d466e9ce0..8e7c5941a148 100644
--- a/drivers/net/ethernet/ibm/ehea/ehea.h
+++ b/drivers/net/ethernet/ibm/ehea/ehea.h
@@ -58,7 +58,6 @@
58#define EHEA_MIN_ENTRIES_QP 127 58#define EHEA_MIN_ENTRIES_QP 127
59 59
60#define EHEA_SMALL_QUEUES 60#define EHEA_SMALL_QUEUES
61#define EHEA_NUM_TX_QP 1
62#define EHEA_LRO_MAX_AGGR 64 61#define EHEA_LRO_MAX_AGGR 64
63 62
64#ifdef EHEA_SMALL_QUEUES 63#ifdef EHEA_SMALL_QUEUES
@@ -460,8 +459,6 @@ struct ehea_port {
460 char int_aff_name[EHEA_IRQ_NAME_SIZE]; 459 char int_aff_name[EHEA_IRQ_NAME_SIZE];
461 int allmulti; /* Indicates IFF_ALLMULTI state */ 460 int allmulti; /* Indicates IFF_ALLMULTI state */
462 int promisc; /* Indicates IFF_PROMISC state */ 461 int promisc; /* Indicates IFF_PROMISC state */
463 int num_tx_qps;
464 int num_add_tx_qps;
465 int num_mcs; 462 int num_mcs;
466 int resets; 463 int resets;
467 unsigned long flags; 464 unsigned long flags;
diff --git a/drivers/net/ethernet/ibm/ehea/ehea_main.c b/drivers/net/ethernet/ibm/ehea/ehea_main.c
index 4032a0a6b929..6ded42a965ac 100644
--- a/drivers/net/ethernet/ibm/ehea/ehea_main.c
+++ b/drivers/net/ethernet/ibm/ehea/ehea_main.c
@@ -64,7 +64,6 @@ static int sq_entries = EHEA_DEF_ENTRIES_SQ;
64static int use_mcs = 1; 64static int use_mcs = 1;
65static int use_lro; 65static int use_lro;
66static int lro_max_aggr = EHEA_LRO_MAX_AGGR; 66static int lro_max_aggr = EHEA_LRO_MAX_AGGR;
67static int num_tx_qps = EHEA_NUM_TX_QP;
68static int prop_carrier_state; 67static int prop_carrier_state;
69 68
70module_param(msg_level, int, 0); 69module_param(msg_level, int, 0);
@@ -76,9 +75,7 @@ module_param(prop_carrier_state, int, 0);
76module_param(use_mcs, int, 0); 75module_param(use_mcs, int, 0);
77module_param(use_lro, int, 0); 76module_param(use_lro, int, 0);
78module_param(lro_max_aggr, int, 0); 77module_param(lro_max_aggr, int, 0);
79module_param(num_tx_qps, int, 0);
80 78
81MODULE_PARM_DESC(num_tx_qps, "Number of TX-QPS");
82MODULE_PARM_DESC(msg_level, "msg_level"); 79MODULE_PARM_DESC(msg_level, "msg_level");
83MODULE_PARM_DESC(prop_carrier_state, "Propagate carrier state of physical " 80MODULE_PARM_DESC(prop_carrier_state, "Propagate carrier state of physical "
84 "port to stack. 1:yes, 0:no. Default = 0 "); 81 "port to stack. 1:yes, 0:no. Default = 0 ");
@@ -174,7 +171,7 @@ static void ehea_update_firmware_handles(void)
174 continue; 171 continue;
175 172
176 num_ports++; 173 num_ports++;
177 num_portres += port->num_def_qps + port->num_add_tx_qps; 174 num_portres += port->num_def_qps;
178 } 175 }
179 } 176 }
180 177
@@ -200,9 +197,7 @@ static void ehea_update_firmware_handles(void)
200 (num_ports == 0)) 197 (num_ports == 0))
201 continue; 198 continue;
202 199
203 for (l = 0; 200 for (l = 0; l < port->num_def_qps; l++) {
204 l < port->num_def_qps + port->num_add_tx_qps;
205 l++) {
206 struct ehea_port_res *pr = &port->port_res[l]; 201 struct ehea_port_res *pr = &port->port_res[l];
207 202
208 arr[i].adh = adapter->handle; 203 arr[i].adh = adapter->handle;
@@ -340,7 +335,7 @@ static struct net_device_stats *ehea_get_stats(struct net_device *dev)
340 rx_bytes += port->port_res[i].rx_bytes; 335 rx_bytes += port->port_res[i].rx_bytes;
341 } 336 }
342 337
343 for (i = 0; i < port->num_def_qps + port->num_add_tx_qps; i++) { 338 for (i = 0; i < port->num_def_qps; i++) {
344 tx_packets += port->port_res[i].tx_packets; 339 tx_packets += port->port_res[i].tx_packets;
345 tx_bytes += port->port_res[i].tx_bytes; 340 tx_bytes += port->port_res[i].tx_bytes;
346 } 341 }
@@ -810,7 +805,7 @@ static void reset_sq_restart_flag(struct ehea_port *port)
810{ 805{
811 int i; 806 int i;
812 807
813 for (i = 0; i < port->num_def_qps + port->num_add_tx_qps; i++) { 808 for (i = 0; i < port->num_def_qps; i++) {
814 struct ehea_port_res *pr = &port->port_res[i]; 809 struct ehea_port_res *pr = &port->port_res[i];
815 pr->sq_restart_flag = 0; 810 pr->sq_restart_flag = 0;
816 } 811 }
@@ -823,7 +818,7 @@ static void check_sqs(struct ehea_port *port)
823 int swqe_index; 818 int swqe_index;
824 int i, k; 819 int i, k;
825 820
826 for (i = 0; i < port->num_def_qps + port->num_add_tx_qps; i++) { 821 for (i = 0; i < port->num_def_qps; i++) {
827 struct ehea_port_res *pr = &port->port_res[i]; 822 struct ehea_port_res *pr = &port->port_res[i];
828 int ret; 823 int ret;
829 k = 0; 824 k = 0;
@@ -1112,13 +1107,6 @@ int ehea_sense_port_attr(struct ehea_port *port)
1112 goto out_free; 1107 goto out_free;
1113 } 1108 }
1114 1109
1115 port->num_tx_qps = num_tx_qps;
1116
1117 if (port->num_def_qps >= port->num_tx_qps)
1118 port->num_add_tx_qps = 0;
1119 else
1120 port->num_add_tx_qps = port->num_tx_qps - port->num_def_qps;
1121
1122 ret = 0; 1110 ret = 0;
1123out_free: 1111out_free:
1124 if (ret || netif_msg_probe(port)) 1112 if (ret || netif_msg_probe(port))
@@ -1359,7 +1347,7 @@ static int ehea_reg_interrupts(struct net_device *dev)
1359 port->qp_eq->attr.ist1); 1347 port->qp_eq->attr.ist1);
1360 1348
1361 1349
1362 for (i = 0; i < port->num_def_qps + port->num_add_tx_qps; i++) { 1350 for (i = 0; i < port->num_def_qps; i++) {
1363 pr = &port->port_res[i]; 1351 pr = &port->port_res[i];
1364 snprintf(pr->int_send_name, EHEA_IRQ_NAME_SIZE - 1, 1352 snprintf(pr->int_send_name, EHEA_IRQ_NAME_SIZE - 1,
1365 "%s-queue%d", dev->name, i); 1353 "%s-queue%d", dev->name, i);
@@ -1402,7 +1390,7 @@ static void ehea_free_interrupts(struct net_device *dev)
1402 1390
1403 /* send */ 1391 /* send */
1404 1392
1405 for (i = 0; i < port->num_def_qps + port->num_add_tx_qps; i++) { 1393 for (i = 0; i < port->num_def_qps; i++) {
1406 pr = &port->port_res[i]; 1394 pr = &port->port_res[i];
1407 ibmebus_free_irq(pr->eq->attr.ist1, pr); 1395 ibmebus_free_irq(pr->eq->attr.ist1, pr);
1408 netif_info(port, intr, dev, 1396 netif_info(port, intr, dev,
@@ -2438,8 +2426,7 @@ out:
2438 return ret; 2426 return ret;
2439} 2427}
2440 2428
2441static int ehea_port_res_setup(struct ehea_port *port, int def_qps, 2429static int ehea_port_res_setup(struct ehea_port *port, int def_qps)
2442 int add_tx_qps)
2443{ 2430{
2444 int ret, i; 2431 int ret, i;
2445 struct port_res_cfg pr_cfg, pr_cfg_small_rx; 2432 struct port_res_cfg pr_cfg, pr_cfg_small_rx;
@@ -2472,7 +2459,7 @@ static int ehea_port_res_setup(struct ehea_port *port, int def_qps,
2472 if (ret) 2459 if (ret)
2473 goto out_clean_pr; 2460 goto out_clean_pr;
2474 } 2461 }
2475 for (i = def_qps; i < def_qps + add_tx_qps; i++) { 2462 for (i = def_qps; i < def_qps; i++) {
2476 ret = ehea_init_port_res(port, &port->port_res[i], 2463 ret = ehea_init_port_res(port, &port->port_res[i],
2477 &pr_cfg_small_rx, i); 2464 &pr_cfg_small_rx, i);
2478 if (ret) 2465 if (ret)
@@ -2495,7 +2482,7 @@ static int ehea_clean_all_portres(struct ehea_port *port)
2495 int ret = 0; 2482 int ret = 0;
2496 int i; 2483 int i;
2497 2484
2498 for (i = 0; i < port->num_def_qps + port->num_add_tx_qps; i++) 2485 for (i = 0; i < port->num_def_qps; i++)
2499 ret |= ehea_clean_portres(port, &port->port_res[i]); 2486 ret |= ehea_clean_portres(port, &port->port_res[i]);
2500 2487
2501 ret |= ehea_destroy_eq(port->qp_eq); 2488 ret |= ehea_destroy_eq(port->qp_eq);
@@ -2527,8 +2514,7 @@ static int ehea_up(struct net_device *dev)
2527 if (port->state == EHEA_PORT_UP) 2514 if (port->state == EHEA_PORT_UP)
2528 return 0; 2515 return 0;
2529 2516
2530 ret = ehea_port_res_setup(port, port->num_def_qps, 2517 ret = ehea_port_res_setup(port, port->num_def_qps);
2531 port->num_add_tx_qps);
2532 if (ret) { 2518 if (ret) {
2533 netdev_err(dev, "port_res_failed\n"); 2519 netdev_err(dev, "port_res_failed\n");
2534 goto out; 2520 goto out;
@@ -2547,7 +2533,7 @@ static int ehea_up(struct net_device *dev)
2547 goto out_clean_pr; 2533 goto out_clean_pr;
2548 } 2534 }
2549 2535
2550 for (i = 0; i < port->num_def_qps + port->num_add_tx_qps; i++) { 2536 for (i = 0; i < port->num_def_qps; i++) {
2551 ret = ehea_activate_qp(port->adapter, port->port_res[i].qp); 2537 ret = ehea_activate_qp(port->adapter, port->port_res[i].qp);
2552 if (ret) { 2538 if (ret) {
2553 netdev_err(dev, "activate_qp failed\n"); 2539 netdev_err(dev, "activate_qp failed\n");
@@ -2593,7 +2579,7 @@ static void port_napi_disable(struct ehea_port *port)
2593{ 2579{
2594 int i; 2580 int i;
2595 2581
2596 for (i = 0; i < port->num_def_qps + port->num_add_tx_qps; i++) 2582 for (i = 0; i < port->num_def_qps; i++)
2597 napi_disable(&port->port_res[i].napi); 2583 napi_disable(&port->port_res[i].napi);
2598} 2584}
2599 2585
@@ -2601,7 +2587,7 @@ static void port_napi_enable(struct ehea_port *port)
2601{ 2587{
2602 int i; 2588 int i;
2603 2589
2604 for (i = 0; i < port->num_def_qps + port->num_add_tx_qps; i++) 2590 for (i = 0; i < port->num_def_qps; i++)
2605 napi_enable(&port->port_res[i].napi); 2591 napi_enable(&port->port_res[i].napi);
2606} 2592}
2607 2593
@@ -2689,7 +2675,7 @@ static void ehea_flush_sq(struct ehea_port *port)
2689{ 2675{
2690 int i; 2676 int i;
2691 2677
2692 for (i = 0; i < port->num_def_qps + port->num_add_tx_qps; i++) { 2678 for (i = 0; i < port->num_def_qps; i++) {
2693 struct ehea_port_res *pr = &port->port_res[i]; 2679 struct ehea_port_res *pr = &port->port_res[i];
2694 int swqe_max = pr->sq_skba_size - 2 - pr->swqe_ll_count; 2680 int swqe_max = pr->sq_skba_size - 2 - pr->swqe_ll_count;
2695 int ret; 2681 int ret;
@@ -2723,7 +2709,7 @@ int ehea_stop_qps(struct net_device *dev)
2723 goto out; 2709 goto out;
2724 } 2710 }
2725 2711
2726 for (i = 0; i < (port->num_def_qps + port->num_add_tx_qps); i++) { 2712 for (i = 0; i < (port->num_def_qps); i++) {
2727 struct ehea_port_res *pr = &port->port_res[i]; 2713 struct ehea_port_res *pr = &port->port_res[i];
2728 struct ehea_qp *qp = pr->qp; 2714 struct ehea_qp *qp = pr->qp;
2729 2715
@@ -2825,7 +2811,7 @@ int ehea_restart_qps(struct net_device *dev)
2825 goto out; 2811 goto out;
2826 } 2812 }
2827 2813
2828 for (i = 0; i < (port->num_def_qps + port->num_add_tx_qps); i++) { 2814 for (i = 0; i < (port->num_def_qps); i++) {
2829 struct ehea_port_res *pr = &port->port_res[i]; 2815 struct ehea_port_res *pr = &port->port_res[i];
2830 struct ehea_qp *qp = pr->qp; 2816 struct ehea_qp *qp = pr->qp;
2831 2817
@@ -3184,8 +3170,7 @@ struct ehea_port *ehea_setup_single_port(struct ehea_adapter *adapter,
3184 goto out_free_mc_list; 3170 goto out_free_mc_list;
3185 3171
3186 netif_set_real_num_rx_queues(dev, port->num_def_qps); 3172 netif_set_real_num_rx_queues(dev, port->num_def_qps);
3187 netif_set_real_num_tx_queues(dev, port->num_def_qps + 3173 netif_set_real_num_tx_queues(dev, port->num_def_qps);
3188 port->num_add_tx_qps);
3189 3174
3190 port_dev = ehea_register_port(port, dn); 3175 port_dev = ehea_register_port(port, dn);
3191 if (!port_dev) 3176 if (!port_dev)