aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/ethernet/brocade
diff options
context:
space:
mode:
authorRasesh Mody <rmody@brocade.com>2011-08-30 11:27:41 -0400
committerDavid S. Miller <davem@davemloft.net>2011-09-15 15:36:33 -0400
commit19dbff9feea4f31ab3cdae53b98ef4484b554592 (patch)
tree57bd10ffd82415288547a266f952caec2c408b08 /drivers/net/ethernet/brocade
parent271e8b794700022fcd93d37967fa999ddee47698 (diff)
bna: Formatting and Code Cleanup
Change details: - Print log messages when running with reduced number of MSI-X vectors and when defaulting to INTx mode. - Remove BUG_ONs and header file inclusion that are not needed - Comments addition/cleanup - Unused code cleanup - Add New Line to Print msg in bfa_sm_fault - Formatting fix Signed-off-by: Gurunatha Karaje <gkaraje@brocade.com> Signed-off-by: Rasesh Mody <rmody@brocade.com> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/net/ethernet/brocade')
-rw-r--r--drivers/net/ethernet/brocade/bna/bfa_cee.c2
-rw-r--r--drivers/net/ethernet/brocade/bna/bfa_defs_mfg_comm.h1
-rw-r--r--drivers/net/ethernet/brocade/bna/bfi.h46
-rw-r--r--drivers/net/ethernet/brocade/bna/bna.h18
-rw-r--r--drivers/net/ethernet/brocade/bna/bna_types.h1
-rw-r--r--drivers/net/ethernet/brocade/bna/bnad.c46
-rw-r--r--drivers/net/ethernet/brocade/bna/bnad.h6
-rw-r--r--drivers/net/ethernet/brocade/bna/cna.h11
8 files changed, 24 insertions, 107 deletions
diff --git a/drivers/net/ethernet/brocade/bna/bfa_cee.c b/drivers/net/ethernet/brocade/bna/bfa_cee.c
index b45b8eb3b9b0..8e627186507c 100644
--- a/drivers/net/ethernet/brocade/bna/bfa_cee.c
+++ b/drivers/net/ethernet/brocade/bna/bfa_cee.c
@@ -16,8 +16,6 @@
16 * www.brocade.com 16 * www.brocade.com
17 */ 17 */
18 18
19#include "bfa_defs_cna.h"
20#include "cna.h"
21#include "bfa_cee.h" 19#include "bfa_cee.h"
22#include "bfi_cna.h" 20#include "bfi_cna.h"
23#include "bfa_ioc.h" 21#include "bfa_ioc.h"
diff --git a/drivers/net/ethernet/brocade/bna/bfa_defs_mfg_comm.h b/drivers/net/ethernet/brocade/bna/bfa_defs_mfg_comm.h
index 7ddd16f819f9..7e5df90528fc 100644
--- a/drivers/net/ethernet/brocade/bna/bfa_defs_mfg_comm.h
+++ b/drivers/net/ethernet/brocade/bna/bfa_defs_mfg_comm.h
@@ -18,7 +18,6 @@
18#ifndef __BFA_DEFS_MFG_COMM_H__ 18#ifndef __BFA_DEFS_MFG_COMM_H__
19#define __BFA_DEFS_MFG_COMM_H__ 19#define __BFA_DEFS_MFG_COMM_H__
20 20
21#include "cna.h"
22#include "bfa_defs.h" 21#include "bfa_defs.h"
23 22
24/** 23/**
diff --git a/drivers/net/ethernet/brocade/bna/bfi.h b/drivers/net/ethernet/brocade/bna/bfi.h
index 19654cc7abab..4e04c140c84c 100644
--- a/drivers/net/ethernet/brocade/bna/bfi.h
+++ b/drivers/net/ethernet/brocade/bna/bfi.h
@@ -73,20 +73,6 @@ struct bfi_mhdr {
73 **************************************************************************** 73 ****************************************************************************
74 */ 74 */
75 75
76#define BFI_SGE_INLINE 1
77#define BFI_SGE_INLINE_MAX (BFI_SGE_INLINE + 1)
78
79/**
80 * SG Flags
81 */
82enum {
83 BFI_SGE_DATA = 0, /*!< data address, not last */
84 BFI_SGE_DATA_CPL = 1, /*!< data addr, last in current page */
85 BFI_SGE_DATA_LAST = 3, /*!< data address, last */
86 BFI_SGE_LINK = 2, /*!< link address */
87 BFI_SGE_PGDLEN = 2, /*!< cumulative data length for page */
88};
89
90/** 76/**
91 * DMA addresses 77 * DMA addresses
92 */ 78 */
@@ -97,33 +83,6 @@ union bfi_addr_u {
97 } a32; 83 } a32;
98}; 84};
99 85
100/**
101 * Scatter Gather Element
102 */
103struct bfi_sge {
104#ifdef __BIGENDIAN
105 u32 flags:2,
106 rsvd:2,
107 sg_len:28;
108#else
109 u32 sg_len:28,
110 rsvd:2,
111 flags:2;
112#endif
113 union bfi_addr_u sga;
114};
115
116/**
117 * Scatter Gather Page
118 */
119#define BFI_SGPG_DATA_SGES 7
120#define BFI_SGPG_SGES_MAX (BFI_SGPG_DATA_SGES + 1)
121#define BFI_SGPG_RSVD_WD_LEN 8
122struct bfi_sgpg {
123 struct bfi_sge sges[BFI_SGPG_SGES_MAX];
124 u32 rsvd[BFI_SGPG_RSVD_WD_LEN];
125};
126
127/* 86/*
128 * Large Message structure - 128 Bytes size Msgs 87 * Large Message structure - 128 Bytes size Msgs
129 */ 88 */
@@ -131,11 +90,6 @@ struct bfi_sgpg {
131#define BFI_LMSG_PL_WSZ \ 90#define BFI_LMSG_PL_WSZ \
132 ((BFI_LMSG_SZ - sizeof(struct bfi_mhdr)) / 4) 91 ((BFI_LMSG_SZ - sizeof(struct bfi_mhdr)) / 4)
133 92
134struct bfi_msg {
135 struct bfi_mhdr mhdr;
136 u32 pl[BFI_LMSG_PL_WSZ];
137};
138
139/** 93/**
140 * Mailbox message structure 94 * Mailbox message structure
141 */ 95 */
diff --git a/drivers/net/ethernet/brocade/bna/bna.h b/drivers/net/ethernet/brocade/bna/bna.h
index 2a587c5fdc20..3a6e7906149c 100644
--- a/drivers/net/ethernet/brocade/bna/bna.h
+++ b/drivers/net/ethernet/brocade/bna/bna.h
@@ -10,12 +10,17 @@
10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
11 * General Public License for more details. 11 * General Public License for more details.
12 */ 12 */
13/*
14 * Copyright (c) 2005-2011 Brocade Communications Systems, Inc.
15 * All rights reserved
16 * www.brocade.com
17 */
13#ifndef __BNA_H__ 18#ifndef __BNA_H__
14#define __BNA_H__ 19#define __BNA_H__
15 20
16#include "bfa_cs.h" 21#include "bfa_defs.h"
17#include "bfa_ioc.h" 22#include "bfa_ioc.h"
18#include "cna.h" 23#include "bfi_enet.h"
19#include "bna_types.h" 24#include "bna_types.h"
20 25
21extern const u32 bna_napi_dim_vector[][BNA_BIAS_T_MAX]; 26extern const u32 bna_napi_dim_vector[][BNA_BIAS_T_MAX];
@@ -395,12 +400,8 @@ void bna_mod_init(struct bna *bna, struct bna_res_info *res_info);
395void bna_uninit(struct bna *bna); 400void bna_uninit(struct bna *bna);
396int bna_num_txq_set(struct bna *bna, int num_txq); 401int bna_num_txq_set(struct bna *bna, int num_txq);
397int bna_num_rxp_set(struct bna *bna, int num_rxp); 402int bna_num_rxp_set(struct bna *bna, int num_rxp);
398void bna_stats_get(struct bna *bna);
399void bna_get_perm_mac(struct bna *bna, u8 *mac);
400void bna_hw_stats_get(struct bna *bna); 403void bna_hw_stats_get(struct bna *bna);
401 404
402/* APIs for Rx */
403
404/* APIs for RxF */ 405/* APIs for RxF */
405struct bna_mac *bna_ucam_mod_mac_get(struct bna_ucam_mod *ucam_mod); 406struct bna_mac *bna_ucam_mod_mac_get(struct bna_ucam_mod *ucam_mod);
406void bna_ucam_mod_mac_put(struct bna_ucam_mod *ucam_mod, 407void bna_ucam_mod_mac_put(struct bna_ucam_mod *ucam_mod,
@@ -521,11 +522,6 @@ bna_rx_mode_set(struct bna_rx *rx, enum bna_rxmode rxmode,
521void bna_rx_vlan_add(struct bna_rx *rx, int vlan_id); 522void bna_rx_vlan_add(struct bna_rx *rx, int vlan_id);
522void bna_rx_vlan_del(struct bna_rx *rx, int vlan_id); 523void bna_rx_vlan_del(struct bna_rx *rx, int vlan_id);
523void bna_rx_vlanfilter_enable(struct bna_rx *rx); 524void bna_rx_vlanfilter_enable(struct bna_rx *rx);
524void bna_rx_hds_enable(struct bna_rx *rx, struct bna_hds_config *hds_config,
525 void (*cbfn)(struct bnad *, struct bna_rx *));
526void bna_rx_hds_disable(struct bna_rx *rx,
527 void (*cbfn)(struct bnad *, struct bna_rx *));
528
529/** 525/**
530 * ENET 526 * ENET
531 */ 527 */
diff --git a/drivers/net/ethernet/brocade/bna/bna_types.h b/drivers/net/ethernet/brocade/bna/bna_types.h
index 8a6da0c3cd89..59417b1f56a9 100644
--- a/drivers/net/ethernet/brocade/bna/bna_types.h
+++ b/drivers/net/ethernet/brocade/bna/bna_types.h
@@ -21,7 +21,6 @@
21#include "cna.h" 21#include "cna.h"
22#include "bna_hw_defs.h" 22#include "bna_hw_defs.h"
23#include "bfa_cee.h" 23#include "bfa_cee.h"
24#include "bfi_enet.h"
25#include "bfa_msgq.h" 24#include "bfa_msgq.h"
26 25
27/** 26/**
diff --git a/drivers/net/ethernet/brocade/bna/bnad.c b/drivers/net/ethernet/brocade/bna/bnad.c
index ccba01f5a260..32df3a8bf593 100644
--- a/drivers/net/ethernet/brocade/bna/bnad.c
+++ b/drivers/net/ethernet/brocade/bna/bnad.c
@@ -386,10 +386,9 @@ bnad_alloc_n_post_rxbufs(struct bnad *bnad, struct bna_rcb *rcb)
386 BNA_RXQ_QPGE_PTR_GET(unmap_prod, rcb->sw_qpt, rxent, wi_range); 386 BNA_RXQ_QPGE_PTR_GET(unmap_prod, rcb->sw_qpt, rxent, wi_range);
387 387
388 while (to_alloc--) { 388 while (to_alloc--) {
389 if (!wi_range) { 389 if (!wi_range)
390 BNA_RXQ_QPGE_PTR_GET(unmap_prod, rcb->sw_qpt, rxent, 390 BNA_RXQ_QPGE_PTR_GET(unmap_prod, rcb->sw_qpt, rxent,
391 wi_range); 391 wi_range);
392 }
393 skb = netdev_alloc_skb_ip_align(bnad->netdev, 392 skb = netdev_alloc_skb_ip_align(bnad->netdev,
394 rcb->rxq->buffer_size); 393 rcb->rxq->buffer_size);
395 if (unlikely(!skb)) { 394 if (unlikely(!skb)) {
@@ -551,27 +550,6 @@ next:
551} 550}
552 551
553static void 552static void
554bnad_disable_rx_irq(struct bnad *bnad, struct bna_ccb *ccb)
555{
556 if (unlikely(!test_bit(BNAD_RXQ_STARTED, &ccb->rcb[0]->flags)))
557 return;
558
559 bna_ib_coalescing_timer_set(ccb->i_dbell, 0);
560 bna_ib_ack(ccb->i_dbell, 0);
561}
562
563static void
564bnad_enable_rx_irq(struct bnad *bnad, struct bna_ccb *ccb)
565{
566 unsigned long flags;
567
568 /* Because of polling context */
569 spin_lock_irqsave(&bnad->bna_lock, flags);
570 bnad_enable_rx_irq_unsafe(ccb);
571 spin_unlock_irqrestore(&bnad->bna_lock, flags);
572}
573
574static void
575bnad_netif_rx_schedule_poll(struct bnad *bnad, struct bna_ccb *ccb) 553bnad_netif_rx_schedule_poll(struct bnad *bnad, struct bna_ccb *ccb)
576{ 554{
577 struct bnad_rx_ctrl *rx_ctrl = (struct bnad_rx_ctrl *)(ccb->ctrl); 555 struct bnad_rx_ctrl *rx_ctrl = (struct bnad_rx_ctrl *)(ccb->ctrl);
@@ -1671,7 +1649,7 @@ bnad_napi_poll_rx(struct napi_struct *napi, int budget)
1671 return rcvd; 1649 return rcvd;
1672 1650
1673poll_exit: 1651poll_exit:
1674 napi_complete((napi)); 1652 napi_complete(napi);
1675 1653
1676 rx_ctrl->rx_complete++; 1654 rx_ctrl->rx_complete++;
1677 1655
@@ -2090,15 +2068,13 @@ bnad_enable_default_bcast(struct bnad *bnad)
2090 return 0; 2068 return 0;
2091} 2069}
2092 2070
2093/* Called with bnad_conf_lock() held */ 2071/* Called with mutex_lock(&bnad->conf_mutex) held */
2094static void 2072static void
2095bnad_restore_vlans(struct bnad *bnad, u32 rx_id) 2073bnad_restore_vlans(struct bnad *bnad, u32 rx_id)
2096{ 2074{
2097 u16 vid; 2075 u16 vid;
2098 unsigned long flags; 2076 unsigned long flags;
2099 2077
2100 BUG_ON(!(VLAN_N_VID == BFI_ENET_VLAN_ID_MAX));
2101
2102 for_each_set_bit(vid, bnad->active_vlans, VLAN_N_VID) { 2078 for_each_set_bit(vid, bnad->active_vlans, VLAN_N_VID) {
2103 spin_lock_irqsave(&bnad->bna_lock, flags); 2079 spin_lock_irqsave(&bnad->bna_lock, flags);
2104 bna_rx_vlan_add(bnad->rx_info[rx_id].rx, vid); 2080 bna_rx_vlan_add(bnad->rx_info[rx_id].rx, vid);
@@ -2207,9 +2183,6 @@ bnad_tso_prepare(struct bnad *bnad, struct sk_buff *skb)
2207{ 2183{
2208 int err; 2184 int err;
2209 2185
2210 /* SKB_GSO_TCPV4 and SKB_GSO_TCPV6 is defined since 2.6.18. */
2211 BUG_ON(!(skb_shinfo(skb)->gso_type == SKB_GSO_TCPV4 ||
2212 skb_shinfo(skb)->gso_type == SKB_GSO_TCPV6));
2213 if (skb_header_cloned(skb)) { 2186 if (skb_header_cloned(skb)) {
2214 err = pskb_expand_head(skb, 0, 0, GFP_ATOMIC); 2187 err = pskb_expand_head(skb, 0, 0, GFP_ATOMIC);
2215 if (err) { 2188 if (err) {
@@ -2236,7 +2209,6 @@ bnad_tso_prepare(struct bnad *bnad, struct sk_buff *skb)
2236 } else { 2209 } else {
2237 struct ipv6hdr *ipv6h = ipv6_hdr(skb); 2210 struct ipv6hdr *ipv6h = ipv6_hdr(skb);
2238 2211
2239 BUG_ON(!(skb->protocol == htons(ETH_P_IPV6)));
2240 ipv6h->payload_len = 0; 2212 ipv6h->payload_len = 0;
2241 tcp_hdr(skb)->check = 2213 tcp_hdr(skb)->check =
2242 ~csum_ipv6_magic(&ipv6h->saddr, &ipv6h->daddr, 0, 2214 ~csum_ipv6_magic(&ipv6h->saddr, &ipv6h->daddr, 0,
@@ -2387,6 +2359,8 @@ bnad_enable_msix(struct bnad *bnad)
2387 ret = pci_enable_msix(bnad->pcidev, bnad->msix_table, bnad->msix_num); 2359 ret = pci_enable_msix(bnad->pcidev, bnad->msix_table, bnad->msix_num);
2388 if (ret > 0) { 2360 if (ret > 0) {
2389 /* Not enough MSI-X vectors. */ 2361 /* Not enough MSI-X vectors. */
2362 pr_warn("BNA: %d MSI-X vectors allocated < %d requested\n",
2363 ret, bnad->msix_num);
2390 2364
2391 spin_lock_irqsave(&bnad->bna_lock, flags); 2365 spin_lock_irqsave(&bnad->bna_lock, flags);
2392 /* ret = #of vectors that we got */ 2366 /* ret = #of vectors that we got */
@@ -2415,6 +2389,7 @@ bnad_enable_msix(struct bnad *bnad)
2415 return; 2389 return;
2416 2390
2417intx_mode: 2391intx_mode:
2392 pr_warn("BNA: MSI-X enable failed - operating in INTx mode\n");
2418 2393
2419 kfree(bnad->msix_table); 2394 kfree(bnad->msix_table);
2420 bnad->msix_table = NULL; 2395 bnad->msix_table = NULL;
@@ -2577,7 +2552,7 @@ bnad_start_xmit(struct sk_buff *skb, struct net_device *netdev)
2577 2552
2578 /* 2553 /*
2579 * Takes care of the Tx that is scheduled between clearing the flag 2554 * Takes care of the Tx that is scheduled between clearing the flag
2580 * and the netif_stop_all_queue() call. 2555 * and the netif_tx_stop_all_queues() call.
2581 */ 2556 */
2582 if (unlikely(!test_bit(BNAD_TXQ_TX_STARTED, &tcb->flags))) { 2557 if (unlikely(!test_bit(BNAD_TXQ_TX_STARTED, &tcb->flags))) {
2583 dev_kfree_skb(skb); 2558 dev_kfree_skb(skb);
@@ -2630,7 +2605,6 @@ bnad_start_xmit(struct sk_buff *skb, struct net_device *netdev)
2630 2605
2631 txq_prod = tcb->producer_index; 2606 txq_prod = tcb->producer_index;
2632 BNA_TXQ_QPGE_PTR_GET(txq_prod, tcb->sw_qpt, txqent, wi_range); 2607 BNA_TXQ_QPGE_PTR_GET(txq_prod, tcb->sw_qpt, txqent, wi_range);
2633 BUG_ON(!(wi_range <= tcb->q_depth));
2634 txqent->hdr.wi.reserved = 0; 2608 txqent->hdr.wi.reserved = 0;
2635 txqent->hdr.wi.num_vectors = vectors; 2609 txqent->hdr.wi.num_vectors = vectors;
2636 2610
@@ -3036,6 +3010,12 @@ bnad_netpoll(struct net_device *netdev)
3036 bnad_isr(bnad->pcidev->irq, netdev); 3010 bnad_isr(bnad->pcidev->irq, netdev);
3037 bna_intx_enable(&bnad->bna, curr_mask); 3011 bna_intx_enable(&bnad->bna, curr_mask);
3038 } else { 3012 } else {
3013 /*
3014 * Tx processing may happen in sending context, so no need
3015 * to explicitly process completions here
3016 */
3017
3018 /* Rx processing */
3039 for (i = 0; i < bnad->num_rx; i++) { 3019 for (i = 0; i < bnad->num_rx; i++) {
3040 rx_info = &bnad->rx_info[i]; 3020 rx_info = &bnad->rx_info[i];
3041 if (!rx_info->rx) 3021 if (!rx_info->rx)
diff --git a/drivers/net/ethernet/brocade/bna/bnad.h b/drivers/net/ethernet/brocade/bna/bnad.h
index cae33e1e3839..ad0a1df28bd2 100644
--- a/drivers/net/ethernet/brocade/bna/bnad.h
+++ b/drivers/net/ethernet/brocade/bna/bnad.h
@@ -65,8 +65,6 @@ struct bnad_rx_ctrl {
65 65
66#define BNAD_RXMODE_PROMISC_DEFAULT BNA_RXMODE_PROMISC 66#define BNAD_RXMODE_PROMISC_DEFAULT BNA_RXMODE_PROMISC
67 67
68#define BNAD_GET_TX_ID(_skb) (0)
69
70/* 68/*
71 * GLOBAL #defines (CONSTANTS) 69 * GLOBAL #defines (CONSTANTS)
72 */ 70 */
@@ -152,7 +150,6 @@ struct bnad_drv_stats {
152 u64 tcpcsum_offload; 150 u64 tcpcsum_offload;
153 u64 udpcsum_offload; 151 u64 udpcsum_offload;
154 u64 csum_help; 152 u64 csum_help;
155 u64 csum_help_err;
156 u64 tx_skb_too_short; 153 u64 tx_skb_too_short;
157 u64 tx_skb_stopping; 154 u64 tx_skb_stopping;
158 u64 tx_skb_max_vectors; 155 u64 tx_skb_max_vectors;
@@ -169,13 +166,10 @@ struct bnad_drv_stats {
169 u64 tx_skb_len_mismatch; 166 u64 tx_skb_len_mismatch;
170 167
171 u64 hw_stats_updates; 168 u64 hw_stats_updates;
172 u64 netif_rx_schedule;
173 u64 netif_rx_complete;
174 u64 netif_rx_dropped; 169 u64 netif_rx_dropped;
175 170
176 u64 link_toggle; 171 u64 link_toggle;
177 u64 cee_toggle; 172 u64 cee_toggle;
178 u64 cee_up;
179 173
180 u64 rxp_info_alloc_failed; 174 u64 rxp_info_alloc_failed;
181 u64 mbox_intr_disabled; 175 u64 mbox_intr_disabled;
diff --git a/drivers/net/ethernet/brocade/bna/cna.h b/drivers/net/ethernet/brocade/bna/cna.h
index 50fce15feacc..cb4874210aa3 100644
--- a/drivers/net/ethernet/brocade/bna/cna.h
+++ b/drivers/net/ethernet/brocade/bna/cna.h
@@ -21,21 +21,18 @@
21 21
22#include <linux/kernel.h> 22#include <linux/kernel.h>
23#include <linux/types.h> 23#include <linux/types.h>
24#include <linux/mutex.h>
24#include <linux/pci.h> 25#include <linux/pci.h>
25#include <linux/delay.h> 26#include <linux/delay.h>
26#include <linux/bitops.h> 27#include <linux/bitops.h>
27#include <linux/timer.h> 28#include <linux/timer.h>
28#include <linux/interrupt.h> 29#include <linux/interrupt.h>
30#include <linux/if_vlan.h>
29#include <linux/if_ether.h> 31#include <linux/if_ether.h>
30#include <asm/page.h>
31#include <asm/io.h>
32#include <asm/string.h>
33
34#include <linux/list.h>
35 32
36#define bfa_sm_fault(__event) do { \ 33#define bfa_sm_fault(__event) do { \
37 pr_err("SM Assertion failure: %s: %d: event = %d", __FILE__, __LINE__, \ 34 pr_err("SM Assertion failure: %s: %d: event = %d\n", \
38 __event); \ 35 __FILE__, __LINE__, __event); \
39} while (0) 36} while (0)
40 37
41extern char bfa_version[]; 38extern char bfa_version[];