]> git.proxmox.com Git - mirror_ubuntu-artful-kernel.git/blobdiff - drivers/net/s2io.h
S2io: code Optimization of isr function
[mirror_ubuntu-artful-kernel.git] / drivers / net / s2io.h
index b9654dfeb87734e3bd0e860cb32e3ba9a985b082..1a70cf02c915533b30403f940f960db290aa3884 100644 (file)
@@ -91,7 +91,7 @@ struct swStat {
        unsigned long long serious_err_cnt;
        unsigned long long soft_reset_cnt;
        unsigned long long fifo_full_cnt;
-       unsigned long long ring_full_cnt;
+       unsigned long long ring_full_cnt[8];
        /* LRO statistics */
        unsigned long long clubbed_frms_cnt;
        unsigned long long sending_both;
@@ -126,6 +126,26 @@ struct swStat {
        unsigned long long rx_buf_size_err_cnt;
        unsigned long long rx_rxd_corrupt_cnt;
        unsigned long long rx_unkn_err_cnt;
+
+       /* Error/alarm statistics*/
+       unsigned long long tda_err_cnt;
+       unsigned long long pfc_err_cnt;
+       unsigned long long pcc_err_cnt;
+       unsigned long long tti_err_cnt;
+       unsigned long long lso_err_cnt;
+       unsigned long long tpa_err_cnt;
+       unsigned long long sm_err_cnt;
+       unsigned long long mac_tmac_err_cnt;
+       unsigned long long mac_rmac_err_cnt;
+       unsigned long long xgxs_txgxs_err_cnt;
+       unsigned long long xgxs_rxgxs_err_cnt;
+       unsigned long long rc_err_cnt;
+       unsigned long long prc_pcix_err_cnt;
+       unsigned long long rpa_err_cnt;
+       unsigned long long rda_err_cnt;
+       unsigned long long rti_err_cnt;
+       unsigned long long mc_err_cnt;
+
 };
 
 /* Xpak releated alarm and warnings */
@@ -782,6 +802,13 @@ struct lro {
        u8              saw_ts;
 };
 
+/* These flags represent the devices temporary state */
+enum s2io_device_state_t
+{
+       __S2IO_STATE_LINK_TASK=0,
+       __S2IO_STATE_CARD_UP
+};
+
 /* Structure representing one instance of the NIC */
 struct s2io_nic {
        int rxd_mode;
@@ -860,10 +887,6 @@ struct s2io_nic {
 
        int task_flag;
        unsigned long long start_time;
-#define CARD_DOWN 1
-#define CARD_UP 2
-       atomic_t card_state;
-       volatile unsigned long link_state;
        struct vlan_group *vlgrp;
 #define MSIX_FLG                0xA5
        struct msix_entry *entries;
@@ -886,13 +909,8 @@ struct s2io_nic {
        unsigned long   sending_both;
        u8              lro;
        u16             lro_max_aggr_per_sess;
-
-#define INTA   0
-#define MSI_X  2
-       u8 intr_type;
-
+       volatile unsigned long state;
        spinlock_t      rx_lock;
-       atomic_t        isr_cnt;
        u64             general_int_mask;
        u64 *ufo_in_band_v;
 #define VPD_STRING_LEN 80
@@ -1018,7 +1036,7 @@ static void free_shared_mem(struct s2io_nic *sp);
 static int init_nic(struct s2io_nic *nic);
 static void rx_intr_handler(struct ring_info *ring_data);
 static void tx_intr_handler(struct fifo_info *fifo_data);
-static void alarm_intr_handler(struct s2io_nic *sp);
+static void s2io_handle_errors(void * dev_id);
 
 static int s2io_starter(void);
 static void s2io_closer(void);