These changes are the raw update to linux-4.4.6-rt14. Kernel sources
[kvmfornfv.git] / kernel / drivers / net / ethernet / brocade / bna / bna_enet.c
index deb8da6..4e5c387 100644 (file)
@@ -207,7 +207,7 @@ bna_bfi_stats_get_rsp(struct bna *bna, struct bfi_msgq_mhdr *msghdr)
        for (i = 0; i < BFI_ENET_CFG_MAX; i++) {
                stats_dst = (u64 *)&(bna->stats.hw_stats.rxf_stats[i]);
                memset(stats_dst, 0, sizeof(struct bfi_enet_stats_rxf));
-               if (rx_enet_mask & ((u32)(1 << i))) {
+               if (rx_enet_mask & BIT(i)) {
                        int k;
                        count = sizeof(struct bfi_enet_stats_rxf) /
                                sizeof(u64);
@@ -222,7 +222,7 @@ bna_bfi_stats_get_rsp(struct bna *bna, struct bfi_msgq_mhdr *msghdr)
        for (i = 0; i < BFI_ENET_CFG_MAX; i++) {
                stats_dst = (u64 *)&(bna->stats.hw_stats.txf_stats[i]);
                memset(stats_dst, 0, sizeof(struct bfi_enet_stats_txf));
-               if (tx_enet_mask & ((u32)(1 << i))) {
+               if (tx_enet_mask & BIT(i)) {
                        int k;
                        count = sizeof(struct bfi_enet_stats_txf) /
                                sizeof(u64);
@@ -884,16 +884,6 @@ do {                                                                       \
        }                                                               \
 } while (0)
 
-#define call_enet_pause_cbfn(enet)                                     \
-do {                                                                   \
-       if ((enet)->pause_cbfn) {                                       \
-               void (*cbfn)(struct bnad *);                            \
-               cbfn = (enet)->pause_cbfn;                              \
-               (enet)->pause_cbfn = NULL;                              \
-               cbfn((enet)->bna->bnad);                                \
-       }                                                               \
-} while (0)
-
 #define call_enet_mtu_cbfn(enet)                                       \
 do {                                                                   \
        if ((enet)->mtu_cbfn) {                                         \
@@ -925,7 +915,6 @@ bfa_fsm_state_decl(bna_enet, chld_stop_wait, struct bna_enet,
 static void
 bna_enet_sm_stopped_entry(struct bna_enet *enet)
 {
-       call_enet_pause_cbfn(enet);
        call_enet_mtu_cbfn(enet);
        call_enet_stop_cbfn(enet);
 }
@@ -947,7 +936,6 @@ bna_enet_sm_stopped(struct bna_enet *enet, enum bna_enet_event event)
                break;
 
        case ENET_E_PAUSE_CFG:
-               call_enet_pause_cbfn(enet);
                break;
 
        case ENET_E_MTU_CFG:
@@ -1039,7 +1027,6 @@ bna_enet_sm_started_entry(struct bna_enet *enet)
         * NOTE: Do not call bna_enet_chld_start() here, since it will be
         * inadvertently called during cfg_wait->started transition as well
         */
-       call_enet_pause_cbfn(enet);
        call_enet_mtu_cbfn(enet);
 }
 
@@ -1211,8 +1198,6 @@ bna_enet_init(struct bna_enet *enet, struct bna *bna)
        enet->stop_cbfn = NULL;
        enet->stop_cbarg = NULL;
 
-       enet->pause_cbfn = NULL;
-
        enet->mtu_cbfn = NULL;
 
        bfa_fsm_set_state(enet, bna_enet_sm_stopped);
@@ -1308,13 +1293,10 @@ bna_enet_disable(struct bna_enet *enet, enum bna_cleanup_type type,
 
 void
 bna_enet_pause_config(struct bna_enet *enet,
-                     struct bna_pause_config *pause_config,
-                     void (*cbfn)(struct bnad *))
+                     struct bna_pause_config *pause_config)
 {
        enet->pause_config = *pause_config;
 
-       enet->pause_cbfn = cbfn;
-
        bfa_fsm_send_event(enet, ENET_E_PAUSE_CFG);
 }
 
@@ -1330,9 +1312,9 @@ bna_enet_mtu_set(struct bna_enet *enet, int mtu,
 }
 
 void
-bna_enet_perm_mac_get(struct bna_enet *enet, mac_t *mac)
+bna_enet_perm_mac_get(struct bna_enet *enet, u8 *mac)
 {
-       *mac = bfa_nw_ioc_get_mac(&enet->bna->ioceth.ioc);
+       bfa_nw_ioc_get_mac(&enet->bna->ioceth.ioc, mac);
 }
 
 /* IOCETH */
@@ -1810,17 +1792,13 @@ bna_ucam_mod_init(struct bna_ucam_mod *ucam_mod, struct bna *bna,
        res_info[BNA_MOD_RES_MEM_T_UCMAC_ARRAY].res_u.mem_info.mdl[0].kva;
 
        INIT_LIST_HEAD(&ucam_mod->free_q);
-       for (i = 0; i < bna->ioceth.attr.num_ucmac; i++) {
-               bfa_q_qe_init(&ucam_mod->ucmac[i].qe);
+       for (i = 0; i < bna->ioceth.attr.num_ucmac; i++)
                list_add_tail(&ucam_mod->ucmac[i].qe, &ucam_mod->free_q);
-       }
 
        /* A separate queue to allow synchronous setting of a list of MACs */
        INIT_LIST_HEAD(&ucam_mod->del_q);
-       for (i = i; i < (bna->ioceth.attr.num_ucmac * 2); i++) {
-               bfa_q_qe_init(&ucam_mod->ucmac[i].qe);
+       for (i = i; i < (bna->ioceth.attr.num_ucmac * 2); i++)
                list_add_tail(&ucam_mod->ucmac[i].qe, &ucam_mod->del_q);
-       }
 
        ucam_mod->bna = bna;
 }
@@ -1828,17 +1806,6 @@ bna_ucam_mod_init(struct bna_ucam_mod *ucam_mod, struct bna *bna,
 static void
 bna_ucam_mod_uninit(struct bna_ucam_mod *ucam_mod)
 {
-       struct list_head *qe;
-       int i;
-
-       i = 0;
-       list_for_each(qe, &ucam_mod->free_q)
-               i++;
-
-       i = 0;
-       list_for_each(qe, &ucam_mod->del_q)
-               i++;
-
        ucam_mod->bna = NULL;
 }
 
@@ -1852,27 +1819,21 @@ bna_mcam_mod_init(struct bna_mcam_mod *mcam_mod, struct bna *bna,
        res_info[BNA_MOD_RES_MEM_T_MCMAC_ARRAY].res_u.mem_info.mdl[0].kva;
 
        INIT_LIST_HEAD(&mcam_mod->free_q);
-       for (i = 0; i < bna->ioceth.attr.num_mcmac; i++) {
-               bfa_q_qe_init(&mcam_mod->mcmac[i].qe);
+       for (i = 0; i < bna->ioceth.attr.num_mcmac; i++)
                list_add_tail(&mcam_mod->mcmac[i].qe, &mcam_mod->free_q);
-       }
 
        mcam_mod->mchandle = (struct bna_mcam_handle *)
        res_info[BNA_MOD_RES_MEM_T_MCHANDLE_ARRAY].res_u.mem_info.mdl[0].kva;
 
        INIT_LIST_HEAD(&mcam_mod->free_handle_q);
-       for (i = 0; i < bna->ioceth.attr.num_mcmac; i++) {
-               bfa_q_qe_init(&mcam_mod->mchandle[i].qe);
+       for (i = 0; i < bna->ioceth.attr.num_mcmac; i++)
                list_add_tail(&mcam_mod->mchandle[i].qe,
-                               &mcam_mod->free_handle_q);
-       }
+                             &mcam_mod->free_handle_q);
 
        /* A separate queue to allow synchronous setting of a list of MACs */
        INIT_LIST_HEAD(&mcam_mod->del_q);
-       for (i = i; i < (bna->ioceth.attr.num_mcmac * 2); i++) {
-               bfa_q_qe_init(&mcam_mod->mcmac[i].qe);
+       for (i = i; i < (bna->ioceth.attr.num_mcmac * 2); i++)
                list_add_tail(&mcam_mod->mcmac[i].qe, &mcam_mod->del_q);
-       }
 
        mcam_mod->bna = bna;
 }
@@ -1880,18 +1841,6 @@ bna_mcam_mod_init(struct bna_mcam_mod *mcam_mod, struct bna *bna,
 static void
 bna_mcam_mod_uninit(struct bna_mcam_mod *mcam_mod)
 {
-       struct list_head *qe;
-       int i;
-
-       i = 0;
-       list_for_each(qe, &mcam_mod->free_q) i++;
-
-       i = 0;
-       list_for_each(qe, &mcam_mod->del_q) i++;
-
-       i = 0;
-       list_for_each(qe, &mcam_mod->free_handle_q) i++;
-
        mcam_mod->bna = NULL;
 }
 
@@ -2108,32 +2057,26 @@ bna_num_rxp_set(struct bna *bna, int num_rxp)
 struct bna_mac *
 bna_cam_mod_mac_get(struct list_head *head)
 {
-       struct list_head *qe;
-
-       if (list_empty(head))
-               return NULL;
+       struct bna_mac *mac;
 
-       bfa_q_deq(head, &qe);
-       return (struct bna_mac *)qe;
-}
+       mac = list_first_entry_or_null(head, struct bna_mac, qe);
+       if (mac)
+               list_del(&mac->qe);
 
-void
-bna_cam_mod_mac_put(struct list_head *tail, struct bna_mac *mac)
-{
-       list_add_tail(&mac->qe, tail);
+       return mac;
 }
 
 struct bna_mcam_handle *
 bna_mcam_mod_handle_get(struct bna_mcam_mod *mcam_mod)
 {
-       struct list_head *qe;
-
-       if (list_empty(&mcam_mod->free_handle_q))
-               return NULL;
+       struct bna_mcam_handle *handle;
 
-       bfa_q_deq(&mcam_mod->free_handle_q, &qe);
+       handle = list_first_entry_or_null(&mcam_mod->free_handle_q,
+                                         struct bna_mcam_handle, qe);
+       if (handle)
+               list_del(&handle->qe);
 
-       return (struct bna_mcam_handle *)qe;
+       return handle;
 }
 
 void