BNX2X: spatch changes for BUG and WARN
[akaros.git] / kern / drivers / net / bnx2x / bnx2x_sp.c
index 1864231..83e1e20 100644 (file)
@@ -53,7 +53,7 @@ static inline void bnx2x_exe_queue_init(struct bnx2x *bp,
        INIT_LIST_HEAD(&o->exe_queue);
        INIT_LIST_HEAD(&o->pending_comp);
 
-       spin_lock_init(&o->lock);
+       spinlock_init_irqsave(&o->lock);
 
        o->exe_chunk_len = exe_len;
        o->owner         = owner;
@@ -81,12 +81,12 @@ static inline int bnx2x_exe_queue_length(struct bnx2x_exe_queue_obj *o)
        struct bnx2x_exeq_elem *elem;
        int cnt = 0;
 
-       spin_lock_bh(&o->lock);
+       spin_lock(&o->lock);
 
        list_for_each_entry(elem, &o->exe_queue, link)
                cnt++;
 
-       spin_unlock_bh(&o->lock);
+       spin_unlock(&o->lock);
 
        return cnt;
 }
@@ -108,7 +108,7 @@ static inline int bnx2x_exe_queue_add(struct bnx2x *bp,
 {
        int rc;
 
-       spin_lock_bh(&o->lock);
+       spin_lock(&o->lock);
 
        if (!restore) {
                /* Try to cancel this element queue */
@@ -127,14 +127,14 @@ static inline int bnx2x_exe_queue_add(struct bnx2x *bp,
        /* If so, add it to the execution queue */
        list_add_tail(&elem->link, &o->exe_queue);
 
-       spin_unlock_bh(&o->lock);
+       spin_unlock(&o->lock);
 
        return 0;
 
 free_and_exit:
        bnx2x_exe_queue_free_elem(bp, elem);
 
-       spin_unlock_bh(&o->lock);
+       spin_unlock(&o->lock);
 
        return rc;
 }
@@ -193,7 +193,7 @@ static inline int bnx2x_exe_queue_step(struct bnx2x *bp,
        while (!list_empty(&o->exe_queue)) {
                elem = list_first_entry(&o->exe_queue, struct bnx2x_exeq_elem,
                                        link);
-               WARN_ON(!elem->cmd_len);
+               warn_on(!elem->cmd_len);
 
                if (cur_len + elem->cmd_len <= o->exe_chunk_len) {
                        cur_len += elem->cmd_len;
@@ -242,7 +242,7 @@ static inline struct bnx2x_exeq_elem *bnx2x_exe_queue_alloc_elem(
        struct bnx2x *bp)
 {
        DP(BNX2X_MSG_SP, "Allocating a new exe_queue element\n");
-       return kzalloc(sizeof(struct bnx2x_exeq_elem), GFP_ATOMIC);
+       return kzmalloc(sizeof(struct bnx2x_exeq_elem), 0);
 }
 
 /************************ raw_obj functions ***********************************/
@@ -253,16 +253,16 @@ static bool bnx2x_raw_check_pending(struct bnx2x_raw_obj *o)
 
 static void bnx2x_raw_clear_pending(struct bnx2x_raw_obj *o)
 {
-       smp_mb__before_atomic();
+       cmb();
        clear_bit(o->state, o->pstate);
-       smp_mb__after_atomic();
+       cmb();
 }
 
 static void bnx2x_raw_set_pending(struct bnx2x_raw_obj *o)
 {
-       smp_mb__before_atomic();
+       cmb();
        set_bit(o->state, o->pstate);
-       smp_mb__after_atomic();
+       cmb();
 }
 
 /**
@@ -293,7 +293,7 @@ static inline int bnx2x_state_wait(struct bnx2x *bp, int state,
                        return 0;
                }
 
-               usleep_range(1000, 2000);
+               kthread_usleep(1000);
 
                if (bp->panic)
                        return -EIO;
@@ -319,7 +319,7 @@ static bool bnx2x_get_cam_offset_mac(struct bnx2x_vlan_mac_obj *o, int *offset)
 {
        struct bnx2x_credit_pool_obj *mp = o->macs_pool;
 
-       WARN_ON(!mp);
+       warn_on(!mp);
 
        return mp->get_entry(mp, offset);
 }
@@ -328,7 +328,7 @@ static bool bnx2x_get_credit_mac(struct bnx2x_vlan_mac_obj *o)
 {
        struct bnx2x_credit_pool_obj *mp = o->macs_pool;
 
-       WARN_ON(!mp);
+       warn_on(!mp);
 
        return mp->get(mp, 1);
 }
@@ -337,7 +337,7 @@ static bool bnx2x_get_cam_offset_vlan(struct bnx2x_vlan_mac_obj *o, int *offset)
 {
        struct bnx2x_credit_pool_obj *vp = o->vlans_pool;
 
-       WARN_ON(!vp);
+       warn_on(!vp);
 
        return vp->get_entry(vp, offset);
 }
@@ -346,7 +346,7 @@ static bool bnx2x_get_credit_vlan(struct bnx2x_vlan_mac_obj *o)
 {
        struct bnx2x_credit_pool_obj *vp = o->vlans_pool;
 
-       WARN_ON(!vp);
+       warn_on(!vp);
 
        return vp->get(vp, 1);
 }
@@ -503,9 +503,9 @@ int bnx2x_vlan_mac_h_read_lock(struct bnx2x *bp,
 {
        int rc;
 
-       spin_lock_bh(&o->exe_queue.lock);
+       spin_lock(&o->exe_queue.lock);
        rc = __bnx2x_vlan_mac_h_read_lock(bp, o);
-       spin_unlock_bh(&o->exe_queue.lock);
+       spin_unlock(&o->exe_queue.lock);
 
        return rc;
 }
@@ -558,16 +558,17 @@ static void __bnx2x_vlan_mac_h_read_unlock(struct bnx2x *bp,
 void bnx2x_vlan_mac_h_read_unlock(struct bnx2x *bp,
                                  struct bnx2x_vlan_mac_obj *o)
 {
-       spin_lock_bh(&o->exe_queue.lock);
+       spin_lock(&o->exe_queue.lock);
        __bnx2x_vlan_mac_h_read_unlock(bp, o);
-       spin_unlock_bh(&o->exe_queue.lock);
+       spin_unlock(&o->exe_queue.lock);
 }
 
 static int bnx2x_get_n_elements(struct bnx2x *bp, struct bnx2x_vlan_mac_obj *o,
-                               int n, u8 *base, u8 stride, u8 size)
+                               int n, uint8_t *base, uint8_t stride,
+                               uint8_t size)
 {
        struct bnx2x_vlan_mac_registry_elem *pos;
-       u8 *next = base;
+       uint8_t *next = base;
        int counter = 0;
        int read_lock;
 
@@ -592,7 +593,7 @@ static int bnx2x_get_n_elements(struct bnx2x *bp, struct bnx2x_vlan_mac_obj *o,
                bnx2x_vlan_mac_h_read_unlock(bp, o);
        }
 
-       return counter * ETH_ALEN;
+       return counter * Eaddrlen;
 }
 
 /* check_add() callbacks */
@@ -600,6 +601,8 @@ static int bnx2x_check_mac_add(struct bnx2x *bp,
                               struct bnx2x_vlan_mac_obj *o,
                               union bnx2x_classification_ramrod_data *data)
 {
+panic("Not implemented");
+#if 0 // AKAROS_PORT
        struct bnx2x_vlan_mac_registry_elem *pos;
 
        DP(BNX2X_MSG_SP, "Checking MAC %pM for ADD command\n", data->mac.mac);
@@ -614,6 +617,7 @@ static int bnx2x_check_mac_add(struct bnx2x *bp,
                        return -EEXIST;
 
        return 0;
+#endif
 }
 
 static int bnx2x_check_vlan_add(struct bnx2x *bp,
@@ -637,6 +641,8 @@ static struct bnx2x_vlan_mac_registry_elem *
                            struct bnx2x_vlan_mac_obj *o,
                            union bnx2x_classification_ramrod_data *data)
 {
+panic("Not implemented");
+#if 0 // AKAROS_PORT
        struct bnx2x_vlan_mac_registry_elem *pos;
 
        DP(BNX2X_MSG_SP, "Checking MAC %pM for DEL command\n", data->mac.mac);
@@ -647,6 +653,7 @@ static struct bnx2x_vlan_mac_registry_elem *
                        return pos;
 
        return NULL;
+#endif
 }
 
 static struct bnx2x_vlan_mac_registry_elem *
@@ -700,10 +707,10 @@ static bool bnx2x_check_move_always_err(
        return false;
 }
 
-static inline u8 bnx2x_vlan_mac_get_rx_tx_flag(struct bnx2x_vlan_mac_obj *o)
+static inline uint8_t bnx2x_vlan_mac_get_rx_tx_flag(struct bnx2x_vlan_mac_obj *o)
 {
        struct bnx2x_raw_obj *raw = &o->raw;
-       u8 rx_tx_flag = 0;
+       uint8_t rx_tx_flag = 0;
 
        if ((raw->obj_type == BNX2X_OBJ_TYPE_TX) ||
            (raw->obj_type == BNX2X_OBJ_TYPE_RX_TX))
@@ -719,8 +726,8 @@ static inline u8 bnx2x_vlan_mac_get_rx_tx_flag(struct bnx2x_vlan_mac_obj *o)
 static void bnx2x_set_mac_in_nig(struct bnx2x *bp,
                                 bool add, unsigned char *dev_addr, int index)
 {
-       u32 wb_data[2];
-       u32 reg_offset = BP_PORT(bp) ? NIG_REG_LLH1_FUNC_MEM :
+       uint32_t wb_data[2];
+       uint32_t reg_offset = BP_PORT(bp) ? NIG_REG_LLH1_FUNC_MEM :
                         NIG_REG_LLH0_FUNC_MEM;
 
        if (!IS_MF_SI(bp) && !IS_MF_AFEX(bp))
@@ -788,12 +795,12 @@ static inline void bnx2x_vlan_mac_set_cmd_hdr_e2(struct bnx2x *bp,
  * currently we always configure one rule and echo field to contain a CID and an
  * opcode type.
  */
-static inline void bnx2x_vlan_mac_set_rdata_hdr_e2(u32 cid, int type,
+static inline void bnx2x_vlan_mac_set_rdata_hdr_e2(uint32_t cid, int type,
                                struct eth_classify_header *hdr, int rule_cnt)
 {
        hdr->echo = cpu_to_le32((cid & BNX2X_SWCID_MASK) |
                                (type << BNX2X_SWCID_SHIFT));
-       hdr->rule_cnt = (u8)rule_cnt;
+       hdr->rule_cnt = (uint8_t)rule_cnt;
 }
 
 /* hw_config() callbacks */
@@ -809,7 +816,7 @@ static void bnx2x_set_one_mac_e2(struct bnx2x *bp,
        union eth_classify_rule_cmd *rule_entry = &data->rules[rule_idx];
        bool add = (cmd == BNX2X_VLAN_MAC_ADD) ? true : false;
        unsigned long *vlan_mac_flags = &elem->cmd_data.vlan_mac.vlan_mac_flags;
-       u8 *mac = elem->cmd_data.vlan_mac.u.mac.mac;
+       uint8_t *mac = elem->cmd_data.vlan_mac.u.mac.mac;
 
        /* Set LLH CAM entry: currently only iSCSI and ETH macs are
         * relevant. In addition, current implementation is tuned for a
@@ -900,18 +907,18 @@ static inline void bnx2x_vlan_mac_set_rdata_hdr_e1x(struct bnx2x *bp,
        struct bnx2x_raw_obj *r = &o->raw;
 
        hdr->length = 1;
-       hdr->offset = (u8)cam_offset;
+       hdr->offset = (uint8_t)cam_offset;
        hdr->client_id = cpu_to_le16(0xff);
        hdr->echo = cpu_to_le32((r->cid & BNX2X_SWCID_MASK) |
                                (type << BNX2X_SWCID_SHIFT));
 }
 
 static inline void bnx2x_vlan_mac_set_cfg_entry_e1x(struct bnx2x *bp,
-       struct bnx2x_vlan_mac_obj *o, bool add, int opcode, u8 *mac,
-       u16 vlan_id, struct mac_configuration_entry *cfg_entry)
+       struct bnx2x_vlan_mac_obj *o, bool add, int opcode, uint8_t *mac,
+       uint16_t vlan_id, struct mac_configuration_entry *cfg_entry)
 {
        struct bnx2x_raw_obj *r = &o->raw;
-       u32 cl_bit_vec = (1 << r->cl_id);
+       uint32_t cl_bit_vec = (1 << r->cl_id);
 
        cfg_entry->clients_bit_vector = cpu_to_le32(cl_bit_vec);
        cfg_entry->pf_id = r->func_id;
@@ -934,7 +941,8 @@ static inline void bnx2x_vlan_mac_set_cfg_entry_e1x(struct bnx2x *bp,
 
 static inline void bnx2x_vlan_mac_set_rdata_e1x(struct bnx2x *bp,
        struct bnx2x_vlan_mac_obj *o, int type, int cam_offset, bool add,
-       u8 *mac, u16 vlan_id, int opcode, struct mac_configuration_cmd *config)
+       uint8_t *mac, uint16_t vlan_id, int opcode,
+                                               struct mac_configuration_cmd *config)
 {
        struct mac_configuration_entry *cfg_entry = &config->config_table[0];
        struct bnx2x_raw_obj *raw = &o->raw;
@@ -993,7 +1001,7 @@ static void bnx2x_set_one_vlan_e2(struct bnx2x *bp,
        union eth_classify_rule_cmd *rule_entry = &data->rules[rule_idx];
        enum bnx2x_vlan_mac_cmd cmd = elem->cmd_data.vlan_mac.cmd;
        bool add = (cmd == BNX2X_VLAN_MAC_ADD) ? true : false;
-       u16 vlan = elem->cmd_data.vlan_mac.u.vlan.vlan;
+       uint16_t vlan = elem->cmd_data.vlan_mac.u.vlan.vlan;
 
        /* Reset the ramrod data buffer for the first rule */
        if (rule_idx == 0)
@@ -1379,7 +1387,7 @@ static int bnx2x_wait_vlan_mac(struct bnx2x *bp,
 
                /* Wait until there are no pending commands */
                if (!bnx2x_exe_queue_empty(exeq))
-                       usleep_range(1000, 2000);
+                       kthread_usleep(1000);
                else
                        return 0;
        }
@@ -1393,7 +1401,7 @@ static int __bnx2x_vlan_mac_execute_step(struct bnx2x *bp,
 {
        int rc = 0;
 
-       spin_lock_bh(&o->exe_queue.lock);
+       spin_lock(&o->exe_queue.lock);
 
        DP(BNX2X_MSG_SP, "vlan_mac_execute_step - trying to take writer lock\n");
        rc = __bnx2x_vlan_mac_h_write_trylock(bp, o);
@@ -1408,7 +1416,7 @@ static int __bnx2x_vlan_mac_execute_step(struct bnx2x *bp,
        } else {
                rc = bnx2x_exe_queue_step(bp, &o->exe_queue, ramrod_flags);
        }
-       spin_unlock_bh(&o->exe_queue.lock);
+       spin_unlock(&o->exe_queue.lock);
 
        return rc;
 }
@@ -1433,7 +1441,7 @@ static int bnx2x_complete_vlan_mac(struct bnx2x *bp,
        /* Clearing the pending list & raw state should be made
         * atomically (as execution flow assumes they represent the same).
         */
-       spin_lock_bh(&o->exe_queue.lock);
+       spin_lock(&o->exe_queue.lock);
 
        /* Reset pending list */
        __bnx2x_exe_queue_reset_pending(bp, &o->exe_queue);
@@ -1441,7 +1449,7 @@ static int bnx2x_complete_vlan_mac(struct bnx2x *bp,
        /* Clear pending */
        r->clear_pending(r);
 
-       spin_unlock_bh(&o->exe_queue.lock);
+       spin_unlock(&o->exe_queue.lock);
 
        /* If ramrod failed this is most likely a SW bug */
        if (cqe->message.error)
@@ -1544,7 +1552,7 @@ static inline int bnx2x_vlan_mac_get_registry_elem(
        /* Allocate a new registry element if needed. */
        if (!restore &&
            ((cmd == BNX2X_VLAN_MAC_ADD) || (cmd == BNX2X_VLAN_MAC_MOVE))) {
-               reg_elem = kzalloc(sizeof(*reg_elem), GFP_ATOMIC);
+               reg_elem = kzmalloc(sizeof(*reg_elem), 0);
                if (!reg_elem)
                        return -ENOMEM;
 
@@ -1553,7 +1561,7 @@ static inline int bnx2x_vlan_mac_get_registry_elem(
                        /* This shall never happen, because we have checked the
                         * CAM availability in the 'validate'.
                         */
-                       WARN_ON(1);
+                       warn_on(1);
                        kfree(reg_elem);
                        return -EINVAL;
                }
@@ -1602,7 +1610,7 @@ static int bnx2x_execute_vlan_mac(struct bnx2x *bp,
         * and exit. Otherwise send a ramrod to FW.
         */
        if (!drv_only) {
-               WARN_ON(r->check_pending(r));
+               warn_on(r->check_pending(r));
 
                /* Set pending */
                r->set_pending(r);
@@ -1624,7 +1632,7 @@ static int bnx2x_execute_vlan_mac(struct bnx2x *bp,
                        if (rc)
                                goto error_exit;
 
-                       WARN_ON(!reg_elem);
+                       warn_on(!reg_elem);
 
                        /* Push a new entry into the registry */
                        if (!restore &&
@@ -1666,7 +1674,7 @@ static int bnx2x_execute_vlan_mac(struct bnx2x *bp,
                        reg_elem = o->check_del(bp, o,
                                                &elem->cmd_data.vlan_mac.u);
 
-                       WARN_ON(!reg_elem);
+                       warn_on(!reg_elem);
 
                        o->put_cam_offset(o, reg_elem->cam_offset);
                        list_del(&reg_elem->link);
@@ -1840,7 +1848,7 @@ static int bnx2x_vlan_mac_del_all(struct bnx2x *bp,
 
        /* Clear pending commands first */
 
-       spin_lock_bh(&exeq->lock);
+       spin_lock(&exeq->lock);
 
        list_for_each_entry_safe(exeq_pos, exeq_pos_n, &exeq->exe_queue, link) {
                flags = exeq_pos->cmd_data.vlan_mac.vlan_mac_flags;
@@ -1849,7 +1857,7 @@ static int bnx2x_vlan_mac_del_all(struct bnx2x *bp,
                        rc = exeq->remove(bp, exeq->owner, exeq_pos);
                        if (rc) {
                                BNX2X_ERR("Failed to remove command\n");
-                               spin_unlock_bh(&exeq->lock);
+                               spin_unlock(&exeq->lock);
                                return rc;
                        }
                        list_del(&exeq_pos->link);
@@ -1857,7 +1865,7 @@ static int bnx2x_vlan_mac_del_all(struct bnx2x *bp,
                }
        }
 
-       spin_unlock_bh(&exeq->lock);
+       spin_unlock(&exeq->lock);
 
        /* Prepare a command request */
        memset(&p, 0, sizeof(p));
@@ -1901,8 +1909,11 @@ static int bnx2x_vlan_mac_del_all(struct bnx2x *bp,
        return bnx2x_config_vlan_mac(bp, &p);
 }
 
-static inline void bnx2x_init_raw_obj(struct bnx2x_raw_obj *raw, u8 cl_id,
-       u32 cid, u8 func_id, void *rdata, dma_addr_t rdata_mapping, int state,
+static inline void bnx2x_init_raw_obj(struct bnx2x_raw_obj *raw,
+                                     uint8_t cl_id,
+       uint32_t cid, uint8_t func_id, void *rdata,
+                                     dma_addr_t rdata_mapping,
+                                     int state,
        unsigned long *pstate, bnx2x_obj_type type)
 {
        raw->func_id = func_id;
@@ -1920,7 +1931,8 @@ static inline void bnx2x_init_raw_obj(struct bnx2x_raw_obj *raw, u8 cl_id,
 }
 
 static inline void bnx2x_init_vlan_mac_common(struct bnx2x_vlan_mac_obj *o,
-       u8 cl_id, u32 cid, u8 func_id, void *rdata, dma_addr_t rdata_mapping,
+       uint8_t cl_id, uint32_t cid, uint8_t func_id, void *rdata,
+                                             dma_addr_t rdata_mapping,
        int state, unsigned long *pstate, bnx2x_obj_type type,
        struct bnx2x_credit_pool_obj *macs_pool,
        struct bnx2x_credit_pool_obj *vlans_pool)
@@ -1944,7 +1956,8 @@ static inline void bnx2x_init_vlan_mac_common(struct bnx2x_vlan_mac_obj *o,
 
 void bnx2x_init_mac_obj(struct bnx2x *bp,
                        struct bnx2x_vlan_mac_obj *mac_obj,
-                       u8 cl_id, u32 cid, u8 func_id, void *rdata,
+                       uint8_t cl_id, uint32_t cid, uint8_t func_id,
+                       void *rdata,
                        dma_addr_t rdata_mapping, int state,
                        unsigned long *pstate, bnx2x_obj_type type,
                        struct bnx2x_credit_pool_obj *macs_pool)
@@ -1998,7 +2011,8 @@ void bnx2x_init_mac_obj(struct bnx2x *bp,
 
 void bnx2x_init_vlan_obj(struct bnx2x *bp,
                         struct bnx2x_vlan_mac_obj *vlan_obj,
-                        u8 cl_id, u32 cid, u8 func_id, void *rdata,
+                        uint8_t cl_id, uint32_t cid, uint8_t func_id,
+                        void *rdata,
                         dma_addr_t rdata_mapping, int state,
                         unsigned long *pstate, bnx2x_obj_type type,
                         struct bnx2x_credit_pool_obj *vlans_pool)
@@ -2016,7 +2030,7 @@ void bnx2x_init_vlan_obj(struct bnx2x *bp,
 
        if (CHIP_IS_E1x(bp)) {
                BNX2X_ERR("Do not support chips others than E2 and newer\n");
-               BUG();
+               panic("BUG");
        } else {
                vlan_obj->set_one_rule      = bnx2x_set_one_vlan_e2;
                vlan_obj->check_del         = bnx2x_check_vlan_del;
@@ -2040,29 +2054,29 @@ void bnx2x_init_vlan_obj(struct bnx2x *bp,
 /* RX_MODE verbs: DROP_ALL/ACCEPT_ALL/ACCEPT_ALL_MULTI/ACCEPT_ALL_VLAN/NORMAL */
 static inline void __storm_memset_mac_filters(struct bnx2x *bp,
                        struct tstorm_eth_mac_filter_config *mac_filters,
-                       u16 pf_id)
+                       uint16_t pf_id)
 {
        size_t size = sizeof(struct tstorm_eth_mac_filter_config);
 
-       u32 addr = BAR_TSTRORM_INTMEM +
+       uint32_t addr = BAR_TSTRORM_INTMEM +
                        TSTORM_MAC_FILTER_CONFIG_OFFSET(pf_id);
 
-       __storm_memset_struct(bp, addr, size, (u32 *)mac_filters);
+       __storm_memset_struct(bp, addr, size, (uint32_t *)mac_filters);
 }
 
 static int bnx2x_set_rx_mode_e1x(struct bnx2x *bp,
                                 struct bnx2x_rx_mode_ramrod_params *p)
 {
        /* update the bp MAC filter structure */
-       u32 mask = (1 << p->cl_id);
+       uint32_t mask = (1 << p->cl_id);
 
        struct tstorm_eth_mac_filter_config *mac_filters =
                (struct tstorm_eth_mac_filter_config *)p->rdata;
 
        /* initial setting is drop-all */
-       u8 drop_all_ucast = 1, drop_all_mcast = 1;
-       u8 accp_all_ucast = 0, accp_all_bcast = 0, accp_all_mcast = 0;
-       u8 unmatched_unicast = 0;
+       uint8_t drop_all_ucast = 1, drop_all_mcast = 1;
+       uint8_t accp_all_ucast = 0, accp_all_bcast = 0, accp_all_mcast = 0;
+       uint8_t unmatched_unicast = 0;
 
     /* In e1x there we only take into account rx accept flag since tx switching
      * isn't enabled. */
@@ -2126,15 +2140,15 @@ static int bnx2x_set_rx_mode_e1x(struct bnx2x *bp,
 
        /* The operation is completed */
        clear_bit(p->state, p->pstate);
-       smp_mb__after_atomic();
+       cmb();
 
        return 0;
 }
 
 /* Setup ramrod data */
-static inline void bnx2x_rx_mode_set_rdata_hdr_e2(u32 cid,
+static inline void bnx2x_rx_mode_set_rdata_hdr_e2(uint32_t cid,
                                struct eth_classify_header *hdr,
-                               u8 rule_cnt)
+                               uint8_t rule_cnt)
 {
        hdr->echo = cpu_to_le32(cid);
        hdr->rule_cnt = rule_cnt;
@@ -2145,7 +2159,7 @@ static inline void bnx2x_rx_mode_set_cmd_state_e2(struct bnx2x *bp,
                                struct eth_filter_rules_cmd *cmd,
                                bool clear_accept_all)
 {
-       u16 state;
+       uint16_t state;
 
        /* start with 'drop-all' */
        state = ETH_FILTER_RULES_CMD_UCAST_DROP_ALL |
@@ -2194,7 +2208,7 @@ static int bnx2x_set_rx_mode_e2(struct bnx2x *bp,
 {
        struct eth_filter_rules_ramrod_data *data = p->rdata;
        int rc;
-       u8 rule_idx = 0;
+       uint8_t rule_idx = 0;
 
        /* Reset the ramrod data buffer */
        memset(data, 0, sizeof(*data));
@@ -2337,15 +2351,18 @@ void bnx2x_init_rx_mode_obj(struct bnx2x *bp,
 }
 
 /********************* Multicast verbs: SET, CLEAR ****************************/
-static inline u8 bnx2x_mcast_bin_from_mac(u8 *mac)
+static inline uint8_t bnx2x_mcast_bin_from_mac(uint8_t *mac)
 {
-       return (crc32c_le(0, mac, ETH_ALEN) >> 24) & 0xff;
+panic("Not implemented");
+#if 0 // AKAROS_PORT
+       return (crc32c_le(0, mac, Eaddrlen) >> 24) & 0xff;
+#endif
 }
 
 struct bnx2x_mcast_mac_elem {
        struct list_head link;
-       u8 mac[ETH_ALEN];
-       u8 pad[2]; /* For a natural alignment of the following buffer */
+       uint8_t mac[Eaddrlen];
+       uint8_t pad[2]; /* For a natural alignment of the following buffer */
 };
 
 struct bnx2x_pending_mcast_cmd {
@@ -2353,7 +2370,7 @@ struct bnx2x_pending_mcast_cmd {
        int type; /* BNX2X_MCAST_CMD_X */
        union {
                struct list_head macs_head;
-               u32 macs_num; /* Needed for DEL command */
+               uint32_t macs_num; /* Needed for DEL command */
                int next_bin; /* Needed for RESTORE flow with aprox match */
        } data;
 
@@ -2395,7 +2412,7 @@ static int bnx2x_mcast_enqueue_cmd(struct bnx2x *bp,
                macs_list_len * sizeof(struct bnx2x_mcast_mac_elem);
 
        /* Add mcast is called under spin_lock, thus calling with GFP_ATOMIC */
-       new_cmd = kzalloc(total_sz, GFP_ATOMIC);
+       new_cmd = kzmalloc(total_sz, 0);
 
        if (!new_cmd)
                return -ENOMEM;
@@ -2411,13 +2428,13 @@ static int bnx2x_mcast_enqueue_cmd(struct bnx2x *bp,
        switch (cmd) {
        case BNX2X_MCAST_CMD_ADD:
                cur_mac = (struct bnx2x_mcast_mac_elem *)
-                         ((u8 *)new_cmd + sizeof(*new_cmd));
+                         ((uint8_t *)new_cmd + sizeof(*new_cmd));
 
                /* Push the MACs of the current command into the pending command
                 * MACs list: FIFO
                 */
                list_for_each_entry(pos, &p->mcast_list, link) {
-                       memcpy(cur_mac->mac, pos->mac, ETH_ALEN);
+                       memcpy(cur_mac->mac, pos->mac, Eaddrlen);
                        list_add_tail(&cur_mac->link, &new_cmd->data.macs_head);
                        cur_mac++;
                }
@@ -2491,10 +2508,10 @@ static inline int bnx2x_mcast_clear_first_bin(struct bnx2x_mcast_obj *o)
        return cur_bit;
 }
 
-static inline u8 bnx2x_mcast_get_rx_tx_flag(struct bnx2x_mcast_obj *o)
+static inline uint8_t bnx2x_mcast_get_rx_tx_flag(struct bnx2x_mcast_obj *o)
 {
        struct bnx2x_raw_obj *raw = &o->raw;
-       u8 rx_tx_flag = 0;
+       uint8_t rx_tx_flag = 0;
 
        if ((raw->obj_type == BNX2X_OBJ_TYPE_TX) ||
            (raw->obj_type == BNX2X_OBJ_TYPE_RX_TX))
@@ -2515,8 +2532,8 @@ static void bnx2x_mcast_set_one_rule_e2(struct bnx2x *bp,
        struct bnx2x_raw_obj *r = &o->raw;
        struct eth_multicast_rules_ramrod_data *data =
                (struct eth_multicast_rules_ramrod_data *)(r->rdata);
-       u8 func_id = r->func_id;
-       u8 rx_tx_add_flag = bnx2x_mcast_get_rx_tx_flag(o);
+       uint8_t func_id = r->func_id;
+       uint8_t rx_tx_add_flag = bnx2x_mcast_get_rx_tx_flag(o);
        int bin;
 
        if ((cmd == BNX2X_MCAST_CMD_ADD) || (cmd == BNX2X_MCAST_CMD_RESTORE))
@@ -2554,7 +2571,7 @@ static void bnx2x_mcast_set_one_rule_e2(struct bnx2x *bp,
                         ((rx_tx_add_flag & ETH_MULTICAST_RULES_CMD_IS_ADD) ?
                         "Setting"  : "Clearing"), bin);
 
-       data->rules[idx].bin_id    = (u8)bin;
+       data->rules[idx].bin_id    = (uint8_t)bin;
        data->rules[idx].func_id   = func_id;
        data->rules[idx].engine_id = o->engine_id;
 }
@@ -2580,7 +2597,7 @@ static inline int bnx2x_mcast_handle_restore_cmd_e2(
        for (cur_bin = bnx2x_mcast_get_next_bin(o, start_bin); cur_bin >= 0;
            cur_bin = bnx2x_mcast_get_next_bin(o, cur_bin + 1)) {
 
-               cfg_data.bin = (u8)cur_bin;
+               cfg_data.bin = (uint8_t)cur_bin;
                o->set_one_rule(bp, o, cnt, &cfg_data,
                                BNX2X_MCAST_CMD_RESTORE);
 
@@ -2873,7 +2890,7 @@ static void bnx2x_mcast_revert_e2(struct bnx2x *bp,
  */
 static inline void bnx2x_mcast_set_rdata_hdr_e2(struct bnx2x *bp,
                                        struct bnx2x_mcast_ramrod_params *p,
-                                       u8 len)
+                                       uint8_t len)
 {
        struct bnx2x_raw_obj *r = &p->mcast_obj->raw;
        struct eth_multicast_rules_ramrod_data *data =
@@ -2900,7 +2917,7 @@ static inline int bnx2x_mcast_refresh_registry_e2(struct bnx2x *bp,
                                                  struct bnx2x_mcast_obj *o)
 {
        int i, cnt = 0;
-       u64 elem;
+       uint64_t elem;
 
        for (i = 0; i < BNX2X_MCAST_VEC_SZ; i++) {
                elem = o->registry.aprox_match.vec[i];
@@ -2947,10 +2964,10 @@ static int bnx2x_mcast_setup_e2(struct bnx2x *bp,
        o->total_pending_num -= cnt;
 
        /* send a ramrod */
-       WARN_ON(o->total_pending_num < 0);
-       WARN_ON(cnt > o->max_cmd_len);
+       warn_on(o->total_pending_num < 0);
+       warn_on(cnt > o->max_cmd_len);
 
-       bnx2x_mcast_set_rdata_hdr_e2(bp, p, (u8)cnt);
+       bnx2x_mcast_set_rdata_hdr_e2(bp, p, (uint8_t)cnt);
 
        /* Update a registry size if there are no more pending operations.
         *
@@ -3023,7 +3040,7 @@ do { \
 static inline void bnx2x_mcast_hdl_add_e1h(struct bnx2x *bp,
                                           struct bnx2x_mcast_obj *o,
                                           struct bnx2x_mcast_ramrod_params *p,
-                                          u32 *mc_filter)
+                                          uint32_t *mc_filter)
 {
        struct bnx2x_mcast_list_elem *mlist_pos;
        int bit;
@@ -3043,7 +3060,7 @@ static inline void bnx2x_mcast_hdl_add_e1h(struct bnx2x *bp,
 
 static inline void bnx2x_mcast_hdl_restore_e1h(struct bnx2x *bp,
        struct bnx2x_mcast_obj *o, struct bnx2x_mcast_ramrod_params *p,
-       u32 *mc_filter)
+       uint32_t *mc_filter)
 {
        int bit;
 
@@ -3071,7 +3088,7 @@ static int bnx2x_mcast_setup_e1h(struct bnx2x *bp,
         * and clear a pending bit.
         */
        if (!test_bit(RAMROD_DRV_CLR_ONLY, &p->ramrod_flags)) {
-               u32 mc_filter[MC_HASH_SIZE] = {0};
+               uint32_t mc_filter[MC_HASH_SIZE] = {0};
 
                /* Set the multicast filter bits before writing it into
                 * the internal memory.
@@ -3220,13 +3237,13 @@ static void bnx2x_mcast_set_one_rule_e1(struct bnx2x *bp,
  */
 static inline void bnx2x_mcast_set_rdata_hdr_e1(struct bnx2x *bp,
                                        struct bnx2x_mcast_ramrod_params *p,
-                                       u8 len)
+                                       uint8_t len)
 {
        struct bnx2x_raw_obj *r = &p->mcast_obj->raw;
        struct mac_configuration_cmd *data =
                (struct mac_configuration_cmd *)(r->rdata);
 
-       u8 offset = (CHIP_REV_IS_SLOW(bp) ?
+       uint8_t offset = (CHIP_REV_IS_SLOW(bp) ?
                     BNX2X_MAX_EMUL_MULTI*(1 + r->func_id) :
                     BNX2X_MAX_MULTICAST*(1 + r->func_id));
 
@@ -3334,14 +3351,14 @@ static inline int bnx2x_mcast_handle_pending_cmds_e1(
  * @mac:
  */
 static inline void bnx2x_get_fw_mac_addr(__le16 *fw_hi, __le16 *fw_mid,
-                                        __le16 *fw_lo, u8 *mac)
+                                        __le16 *fw_lo, uint8_t *mac)
 {
-       mac[1] = ((u8 *)fw_hi)[0];
-       mac[0] = ((u8 *)fw_hi)[1];
-       mac[3] = ((u8 *)fw_mid)[0];
-       mac[2] = ((u8 *)fw_mid)[1];
-       mac[5] = ((u8 *)fw_lo)[0];
-       mac[4] = ((u8 *)fw_lo)[1];
+       mac[1] = ((uint8_t *)fw_hi)[0];
+       mac[0] = ((uint8_t *)fw_hi)[1];
+       mac[3] = ((uint8_t *)fw_mid)[0];
+       mac[2] = ((uint8_t *)fw_mid)[1];
+       mac[5] = ((uint8_t *)fw_lo)[0];
+       mac[4] = ((uint8_t *)fw_lo)[1];
 }
 
 /**
@@ -3374,7 +3391,7 @@ static inline int bnx2x_mcast_refresh_registry_e1(struct bnx2x *bp,
                if (!list_empty(&o->registry.exact_match.macs))
                        return 0;
 
-               elem = kcalloc(len, sizeof(*elem), GFP_ATOMIC);
+               elem = kzmalloc((len) * (sizeof(*elem)), 0);
                if (!elem) {
                        BNX2X_ERR("Failed to allocate registry memory\n");
                        return -ENOMEM;
@@ -3439,10 +3456,10 @@ static int bnx2x_mcast_setup_e1(struct bnx2x *bp,
 
        /* send a ramrod */
 
-       WARN_ON(cnt > o->max_cmd_len);
+       warn_on(cnt > o->max_cmd_len);
 
        /* Set ramrod header (in particular, a number of entries to update) */
-       bnx2x_mcast_set_rdata_hdr_e1(bp, p, (u8)cnt);
+       bnx2x_mcast_set_rdata_hdr_e1(bp, p, (uint8_t)cnt);
 
        /* update a registry: we need the registry contents to be always up
         * to date in order to be able to execute a RESTORE opcode. Here
@@ -3571,16 +3588,16 @@ error_exit1:
 
 static void bnx2x_mcast_clear_sched(struct bnx2x_mcast_obj *o)
 {
-       smp_mb__before_atomic();
+       cmb();
        clear_bit(o->sched_state, o->raw.pstate);
-       smp_mb__after_atomic();
+       cmb();
 }
 
 static void bnx2x_mcast_set_sched(struct bnx2x_mcast_obj *o)
 {
-       smp_mb__before_atomic();
+       cmb();
        set_bit(o->sched_state, o->raw.pstate);
-       smp_mb__after_atomic();
+       cmb();
 }
 
 static bool bnx2x_mcast_check_sched(struct bnx2x_mcast_obj *o)
@@ -3595,8 +3612,10 @@ static bool bnx2x_mcast_check_pending(struct bnx2x_mcast_obj *o)
 
 void bnx2x_init_mcast_obj(struct bnx2x *bp,
                          struct bnx2x_mcast_obj *mcast_obj,
-                         u8 mcast_cl_id, u32 mcast_cid, u8 func_id,
-                         u8 engine_id, void *rdata, dma_addr_t rdata_mapping,
+                         uint8_t mcast_cl_id, uint32_t mcast_cid,
+                         uint8_t func_id,
+                         uint8_t engine_id, void *rdata,
+                         dma_addr_t rdata_mapping,
                          int state, unsigned long *pstate, bnx2x_obj_type type)
 {
        memset(mcast_obj, 0, sizeof(*mcast_obj));
@@ -3691,6 +3710,8 @@ void bnx2x_init_mcast_obj(struct bnx2x *bp,
  */
 static inline bool __atomic_add_ifless(atomic_t *v, int a, int u)
 {
+panic("Not implemented");
+#if 0 // AKAROS_PORT
        int c, old;
 
        c = atomic_read(v);
@@ -3705,6 +3726,7 @@ static inline bool __atomic_add_ifless(atomic_t *v, int a, int u)
        }
 
        return true;
+#endif
 }
 
 /**
@@ -3719,6 +3741,8 @@ static inline bool __atomic_add_ifless(atomic_t *v, int a, int u)
  */
 static inline bool __atomic_dec_ifmoe(atomic_t *v, int a, int u)
 {
+panic("Not implemented");
+#if 0 // AKAROS_PORT
        int c, old;
 
        c = atomic_read(v);
@@ -3733,38 +3757,45 @@ static inline bool __atomic_dec_ifmoe(atomic_t *v, int a, int u)
        }
 
        return true;
+#endif
 }
 
 static bool bnx2x_credit_pool_get(struct bnx2x_credit_pool_obj *o, int cnt)
 {
+panic("Not implemented");
+#if 0 // AKAROS_PORT
        bool rc;
 
-       smp_mb();
+       mb();
        rc = __atomic_dec_ifmoe(&o->credit, cnt, 0);
-       smp_mb();
+       mb();
 
        return rc;
+#endif
 }
 
 static bool bnx2x_credit_pool_put(struct bnx2x_credit_pool_obj *o, int cnt)
 {
+panic("Not implemented");
+#if 0 // AKAROS_PORT
        bool rc;
 
-       smp_mb();
+       mb();
 
        /* Don't let to refill if credit + cnt > pool_sz */
        rc = __atomic_add_ifless(&o->credit, cnt, o->pool_sz + 1);
 
-       smp_mb();
+       mb();
 
        return rc;
+#endif
 }
 
 static int bnx2x_credit_pool_check(struct bnx2x_credit_pool_obj *o)
 {
        int cur_credit;
 
-       smp_mb();
+       mb();
        cur_credit = atomic_read(&o->credit);
 
        return cur_credit;
@@ -3867,7 +3898,7 @@ static inline void bnx2x_init_credit_pool(struct bnx2x_credit_pool_obj *p,
        p->base_pool_offset = base;
 
        /* Commit the change */
-       smp_mb();
+       mb();
 
        p->check = bnx2x_credit_pool_check;
 
@@ -3892,8 +3923,9 @@ static inline void bnx2x_init_credit_pool(struct bnx2x_credit_pool_obj *p,
 }
 
 void bnx2x_init_mac_credit_pool(struct bnx2x *bp,
-                               struct bnx2x_credit_pool_obj *p, u8 func_id,
-                               u8 func_num)
+                               struct bnx2x_credit_pool_obj *p,
+                               uint8_t func_id,
+                               uint8_t func_num)
 {
 /* TODO: this will be defined in consts as well... */
 #define BNX2X_CAM_SIZE_EMUL 5
@@ -3948,8 +3980,8 @@ void bnx2x_init_mac_credit_pool(struct bnx2x *bp,
 
 void bnx2x_init_vlan_credit_pool(struct bnx2x *bp,
                                 struct bnx2x_credit_pool_obj *p,
-                                u8 func_id,
-                                u8 func_num)
+                                uint8_t func_id,
+                                uint8_t func_num)
 {
        if (CHIP_IS_E1x(bp)) {
                /* There is no VLAN credit in HW on 57710 and 57711 only
@@ -4010,12 +4042,14 @@ static inline void bnx2x_debug_print_ind_table(struct bnx2x *bp,
 static int bnx2x_setup_rss(struct bnx2x *bp,
                           struct bnx2x_config_rss_params *p)
 {
+panic("Not implemented");
+#if 0 // AKAROS_PORT
        struct bnx2x_rss_config_obj *o = p->rss_obj;
        struct bnx2x_raw_obj *r = &o->raw;
        struct eth_rss_update_ramrod_data *data =
                (struct eth_rss_update_ramrod_data *)(r->rdata);
-       u16 caps = 0;
-       u8 rss_mode = 0;
+       uint16_t caps = 0;
+       uint8_t rss_mode = 0;
        int rc;
 
        memset(data, 0, sizeof(*data));
@@ -4103,10 +4137,11 @@ static int bnx2x_setup_rss(struct bnx2x *bp,
                return rc;
 
        return 1;
+#endif
 }
 
 void bnx2x_get_rss_ind_table(struct bnx2x_rss_config_obj *rss_obj,
-                            u8 *ind_table)
+                            uint8_t *ind_table)
 {
        memcpy(ind_table, rss_obj->ind_table, sizeof(rss_obj->ind_table));
 }
@@ -4141,7 +4176,8 @@ int bnx2x_config_rss(struct bnx2x *bp,
 
 void bnx2x_init_rss_config_obj(struct bnx2x *bp,
                               struct bnx2x_rss_config_obj *rss_obj,
-                              u8 cl_id, u32 cid, u8 func_id, u8 engine_id,
+                              uint8_t cl_id, uint32_t cid, uint8_t func_id,
+                              uint8_t engine_id,
                               void *rdata, dma_addr_t rdata_mapping,
                               int state, unsigned long *pstate,
                               bnx2x_obj_type type)
@@ -4195,7 +4231,7 @@ int bnx2x_queue_state_change(struct bnx2x *bp,
                if (rc) {
                        o->next_state = BNX2X_Q_STATE_MAX;
                        clear_bit(pending_bit, pending);
-                       smp_mb__after_atomic();
+                       cmb();
                        return rc;
                }
 
@@ -4283,7 +4319,7 @@ static int bnx2x_queue_comp_cmd(struct bnx2x *bp,
        wmb();
 
        clear_bit(cmd, &o->pending);
-       smp_mb__after_atomic();
+       cmb();
 
        return 0;
 }
@@ -4518,8 +4554,8 @@ static inline int bnx2x_q_init(struct bnx2x *bp,
 {
        struct bnx2x_queue_sp_obj *o = params->q_obj;
        struct bnx2x_queue_init_params *init = &params->params.init;
-       u16 hc_usec;
-       u8 cos;
+       uint16_t hc_usec;
+       uint8_t cos;
 
        /* Tx HC configuration */
        if (test_bit(BNX2X_Q_TYPE_HAS_TX, &o->type) &&
@@ -4554,8 +4590,8 @@ static inline int bnx2x_q_init(struct bnx2x *bp,
        /* As no ramrod is sent, complete the command immediately  */
        o->complete_cmd(bp, o, BNX2X_Q_CMD_INIT);
 
-       mmiowb();
-       smp_mb();
+       bus_wmb();
+       mb();
 
        return 0;
 }
@@ -4623,7 +4659,7 @@ static inline int bnx2x_q_send_setup_tx_only(struct bnx2x *bp,
        int ramrod = RAMROD_CMD_ID_ETH_TX_QUEUE_SETUP;
        struct bnx2x_queue_setup_tx_only_params *tx_only_params =
                &params->params.tx_only;
-       u8 cid_index = tx_only_params->cid_index;
+       uint8_t cid_index = tx_only_params->cid_index;
 
        if (cid_index >= o->max_cos) {
                BNX2X_ERR("queue[%d]: cid_index (%d) is out of range\n",
@@ -4737,7 +4773,7 @@ static inline int bnx2x_q_send_update(struct bnx2x *bp,
        dma_addr_t data_mapping = o->rdata_mapping;
        struct bnx2x_queue_update_params *update_params =
                &params->params.update;
-       u8 cid_index = update_params->cid_index;
+       uint8_t cid_index = update_params->cid_index;
 
        if (cid_index >= o->max_cos) {
                BNX2X_ERR("queue[%d]: cid_index (%d) is out of range\n",
@@ -4834,7 +4870,7 @@ static inline int bnx2x_q_send_update_tpa(struct bnx2x *bp,
        dma_addr_t data_mapping = o->rdata_mapping;
        struct bnx2x_queue_update_tpa_params *update_tpa_params =
                &params->params.update_tpa;
-       u16 type;
+       uint16_t type;
 
        /* Clear the ramrod data */
        memset(rdata, 0, sizeof(*rdata));
@@ -4875,7 +4911,7 @@ static inline int bnx2x_q_send_cfc_del(struct bnx2x *bp,
                                       struct bnx2x_queue_state_params *params)
 {
        struct bnx2x_queue_sp_obj *o = params->q_obj;
-       u8 cid_idx = params->params.cfc_del.cid_index;
+       uint8_t cid_idx = params->params.cfc_del.cid_index;
 
        if (cid_idx >= o->max_cos) {
                BNX2X_ERR("queue[%d]: cid_index (%d) is out of range\n",
@@ -4891,7 +4927,7 @@ static inline int bnx2x_q_send_terminate(struct bnx2x *bp,
                                        struct bnx2x_queue_state_params *params)
 {
        struct bnx2x_queue_sp_obj *o = params->q_obj;
-       u8 cid_index = params->params.terminate.cid_index;
+       uint8_t cid_index = params->params.terminate.cid_index;
 
        if (cid_index >= o->max_cos) {
                BNX2X_ERR("queue[%d]: cid_index (%d) is out of range\n",
@@ -5013,7 +5049,7 @@ static int bnx2x_queue_chk_transition(struct bnx2x *bp,
        enum bnx2x_queue_cmd cmd = params->cmd;
        struct bnx2x_queue_update_params *update_params =
                 &params->params.update;
-       u8 next_tx_only = o->num_tx_only;
+       uint8_t next_tx_only = o->num_tx_only;
 
        /* Forget all pending for completion commands if a driver only state
         * transition has been requested.
@@ -5173,14 +5209,15 @@ static int bnx2x_queue_chk_transition(struct bnx2x *bp,
 
 void bnx2x_init_queue_obj(struct bnx2x *bp,
                          struct bnx2x_queue_sp_obj *obj,
-                         u8 cl_id, u32 *cids, u8 cid_cnt, u8 func_id,
+                         uint8_t cl_id, uint32_t *cids, uint8_t cid_cnt,
+                         uint8_t func_id,
                          void *rdata,
                          dma_addr_t rdata_mapping, unsigned long type)
 {
        memset(obj, 0, sizeof(*obj));
 
        /* We support only BNX2X_MULTI_TX_COS Tx CoS at the moment */
-       BUG_ON(BNX2X_MULTI_TX_COS < cid_cnt);
+       assert(!(BNX2X_MULTI_TX_COS < cid_cnt));
 
        memcpy(obj->cids, cids, sizeof(obj->cids[0]) * cid_cnt);
        obj->max_cos = cid_cnt;
@@ -5283,7 +5320,7 @@ static inline int bnx2x_func_state_change_comp(struct bnx2x *bp,
        wmb();
 
        clear_bit(cmd, &o->pending);
-       smp_mb__after_atomic();
+       cmb();
 
        return 0;
 }
@@ -5499,7 +5536,7 @@ static inline int bnx2x_func_init_cmn(struct bnx2x *bp,
 static int bnx2x_func_hw_init(struct bnx2x *bp,
                              struct bnx2x_func_state_params *params)
 {
-       u32 load_code = params->params.hw_init.load_phase;
+       uint32_t load_code = params->params.hw_init.load_phase;
        struct bnx2x_func_sp_obj *o = params->f_obj;
        const struct bnx2x_func_sp_drv_ops *drv = o->drv;
        int rc = 0;
@@ -5619,7 +5656,7 @@ static inline void bnx2x_func_reset_cmn(struct bnx2x *bp,
 static inline int bnx2x_func_hw_reset(struct bnx2x *bp,
                                      struct bnx2x_func_state_params *params)
 {
-       u32 reset_phase = params->params.hw_reset.reset_phase;
+       uint32_t reset_phase = params->params.hw_reset.reset_phase;
        struct bnx2x_func_sp_obj *o = params->f_obj;
        const struct bnx2x_func_sp_drv_ops *drv = o->drv;
 
@@ -5660,7 +5697,7 @@ static inline int bnx2x_func_send_start(struct bnx2x *bp,
        memset(rdata, 0, sizeof(*rdata));
 
        /* Fill the ramrod data with provided parameters */
-       rdata->function_mode    = (u8)start_params->mf_mode;
+       rdata->function_mode    = (uint8_t)start_params->mf_mode;
        rdata->sd_vlan_tag      = cpu_to_le16(start_params->sd_vlan_tag);
        rdata->path_id          = BP_PATH(bp);
        rdata->network_cos_mode = start_params->network_cos_mode;
@@ -5816,7 +5853,7 @@ inline int bnx2x_func_send_afex_viflists(struct bnx2x *bp,
                (struct afex_vif_list_ramrod_data *)o->afex_rdata;
        struct bnx2x_func_afex_viflists_params *afex_vif_params =
                &params->params.afex_viflists;
-       u64 *p_rdata = (u64 *)rdata;
+       uint64_t *p_rdata = (uint64_t *)rdata;
 
        memset(rdata, 0, sizeof(*rdata));
 
@@ -5965,7 +6002,7 @@ void bnx2x_init_func_obj(struct bnx2x *bp,
 {
        memset(obj, 0, sizeof(*obj));
 
-       mutex_init(&obj->one_pending_mutex);
+       qlock_init(&obj->one_pending_mutex);
 
        obj->rdata = rdata;
        obj->rdata_mapping = rdata_mapping;
@@ -6000,25 +6037,25 @@ int bnx2x_func_state_change(struct bnx2x *bp,
        enum bnx2x_func_cmd cmd = params->cmd;
        unsigned long *pending = &o->pending;
 
-       mutex_lock(&o->one_pending_mutex);
+       qlock(&o->one_pending_mutex);
 
        /* Check that the requested transition is legal */
        rc = o->check_transition(bp, o, params);
        if ((rc == -EBUSY) &&
            (test_bit(RAMROD_RETRY, &params->ramrod_flags))) {
                while ((rc == -EBUSY) && (--cnt > 0)) {
-                       mutex_unlock(&o->one_pending_mutex);
-                       msleep(10);
-                       mutex_lock(&o->one_pending_mutex);
+                       qunlock(&o->one_pending_mutex);
+                       kthread_usleep(1000 * 10);
+                       qlock(&o->one_pending_mutex);
                        rc = o->check_transition(bp, o, params);
                }
                if (rc == -EBUSY) {
-                       mutex_unlock(&o->one_pending_mutex);
+                       qunlock(&o->one_pending_mutex);
                        BNX2X_ERR("timeout waiting for previous ramrod completion\n");
                        return rc;
                }
        } else if (rc) {
-               mutex_unlock(&o->one_pending_mutex);
+               qunlock(&o->one_pending_mutex);
                return rc;
        }
 
@@ -6028,17 +6065,17 @@ int bnx2x_func_state_change(struct bnx2x *bp,
        /* Don't send a command if only driver cleanup was requested */
        if (test_bit(RAMROD_DRV_CLR_ONLY, &params->ramrod_flags)) {
                bnx2x_func_state_change_comp(bp, o, cmd);
-               mutex_unlock(&o->one_pending_mutex);
+               qunlock(&o->one_pending_mutex);
        } else {
                /* Send a ramrod */
                rc = o->send_cmd(bp, params);
 
-               mutex_unlock(&o->one_pending_mutex);
+               qunlock(&o->one_pending_mutex);
 
                if (rc) {
                        o->next_state = BNX2X_F_STATE_MAX;
                        clear_bit(cmd, pending);
-                       smp_mb__after_atomic();
+                       cmb();
                        return rc;
                }