BXE: Enabled taskqueue code
[akaros.git] / kern / drivers / net / bxe / bxe.c
index 6a04554..e2130e4 100644 (file)
@@ -249,7 +249,8 @@ static device_method_t bxe_methods[] = {
 };
 
 #endif
-//MTX_SYSINIT(bxe_prev_mtx, &bxe_prev_mtx, "bxe_prev_lock", MTX_DEF);
+qlock_t bxe_prev_mtx;
+
 struct bxe_prev_list_node {
     LIST_ENTRY(bxe_prev_list_node) node;
     uint8_t bus;
@@ -777,65 +778,6 @@ calc_crc32(uint8_t  *crc32_packet,
     return (crc32_result);
 }
 
-int
-bxe_test_bit(int                    nr,
-             volatile unsigned long *addr)
-{
-    return ((atomic_load_acq_long(addr) & (1 << nr)) != 0);
-}
-
-void
-bxe_set_bit(unsigned int           nr,
-            volatile unsigned long *addr)
-{
-    atomic_set_acq_long(addr, (1 << nr));
-}
-
-void
-bxe_clear_bit(int                    nr,
-              volatile unsigned long *addr)
-{
-    atomic_clear_acq_long(addr, (1 << nr));
-}
-
-int
-bxe_test_and_set_bit(int                    nr,
-                       volatile unsigned long *addr)
-{
-    unsigned long x;
-    nr = (1 << nr);
-    do {
-        x = *addr;
-    } while (atomic_cmpset_acq_long(addr, x, x | nr) == 0);
-    // if (x & nr) bit_was_set; else bit_was_not_set;
-    return (x & nr);
-}
-
-int
-bxe_test_and_clear_bit(int                    nr,
-                       volatile unsigned long *addr)
-{
-    unsigned long x;
-    nr = (1 << nr);
-    do {
-        x = *addr;
-    } while (atomic_cmpset_acq_long(addr, x, x & ~nr) == 0);
-    // if (x & nr) bit_was_set; else bit_was_not_set;
-    return (x & nr);
-}
-
-int
-bxe_cmpxchg(volatile int *addr,
-            int          old,
-            int          new)
-{
-    int x;
-    do {
-        x = *addr;
-    } while (atomic_cmpset_acq_int(addr, old, new) == 0);
-    return (x);
-}
-
 /*
  * Get DMA memory from the OS.
  *
@@ -983,9 +925,9 @@ bxe_reg_wr_ind(struct bxe_adapter *sc,
                uint32_t         addr,
                uint32_t         val)
 {
-    pci_write_config(sc->dev, PCICFG_GRC_ADDRESS, addr, 4);
-    pci_write_config(sc->dev, PCICFG_GRC_DATA, val, 4);
-    pci_write_config(sc->dev, PCICFG_GRC_ADDRESS, 0, 4);
+    pcidev_write32(sc->pcidev, PCICFG_GRC_ADDRESS, addr);
+    pcidev_write32(sc->pcidev, PCICFG_GRC_DATA, val);
+    pcidev_write32(sc->pcidev, PCICFG_GRC_ADDRESS, 0);
 }
 
 uint32_t
@@ -994,9 +936,9 @@ bxe_reg_rd_ind(struct bxe_adapter *sc,
 {
     uint32_t val;
 
-    pci_write_config(sc->dev, PCICFG_GRC_ADDRESS, addr, 4);
-    val = pci_read_config(sc->dev, PCICFG_GRC_DATA, 4);
-    pci_write_config(sc->dev, PCICFG_GRC_ADDRESS, 0, 4);
+    pcidev_write32(sc->pcidev, PCICFG_GRC_ADDRESS, addr);
+    val = pcidev_read32(sc->pcidev, PCICFG_GRC_DATA);
+    pcidev_write32(sc->pcidev, PCICFG_GRC_ADDRESS, 0);
 
     return (val);
 }
@@ -2445,13 +2387,13 @@ bxe_sp_post(struct bxe_adapter *sc,
     BXE_SP_LOCK(sc);
 
     if (common) {
-        if (!atomic_load_acq_long(&sc->eq_spq_left)) {
+        if (!atomic_read(&sc->eq_spq_left)) {
             BLOGE(sc, "EQ ring is full!\n");
             BXE_SP_UNLOCK(sc);
             return (-1);
         }
     } else {
-        if (!atomic_load_acq_long(&sc->cq_spq_left)) {
+        if (!atomic_read(&sc->cq_spq_left)) {
             BLOGE(sc, "SPQ ring is full!\n");
             BXE_SP_UNLOCK(sc);
             return (-1);
@@ -2462,7 +2404,7 @@ bxe_sp_post(struct bxe_adapter *sc,
 
     /* CID needs port number to be encoded int it */
     spe->hdr.conn_and_cmd_data =
-        htole32((command << SPE_HDR_CMD_ID_SHIFT) | HW_CID(sc, cid));
+        cpu_to_le32((command << SPE_HDR_CMD_ID_SHIFT) | HW_CID(sc, cid));
 
     type = (cmd_type << SPE_HDR_CONN_TYPE_SHIFT) & SPE_HDR_CONN_TYPE;
 
@@ -2470,10 +2412,10 @@ bxe_sp_post(struct bxe_adapter *sc,
     type |= ((SC_FUNC(sc) << SPE_HDR_FUNCTION_ID_SHIFT) &
              SPE_HDR_FUNCTION_ID);
 
-    spe->hdr.type = htole16(type);
+    spe->hdr.type = cpu_to_le16(type);
 
-    spe->data.update_data_addr.hi = htole32(data_hi);
-    spe->data.update_data_addr.lo = htole32(data_lo);
+    spe->data.update_data_addr.hi = cpu_to_le32(data_hi);
+    spe->data.update_data_addr.lo = cpu_to_le32(data_lo);
 
     /*
      * It's ok if the actual decrement is issued towards the memory
@@ -2481,9 +2423,9 @@ bxe_sp_post(struct bxe_adapter *sc,
      * memory barrier is needed.
      */
     if (common) {
-        atomic_subtract_acq_long(&sc->eq_spq_left, 1);
+        atomic_add(&sc->eq_spq_left, -1);
     } else {
-        atomic_subtract_acq_long(&sc->cq_spq_left, 1);
+        atomic_add(&sc->cq_spq_left, -1);
     }
 
     BLOGD(sc, DBG_SP, "SPQE -> %#jx\n", (uintmax_t)sc->spq_dma.paddr);
@@ -2500,8 +2442,8 @@ bxe_sp_post(struct bxe_adapter *sc,
           data_hi,
           data_lo,
           type,
-          atomic_load_acq_long(&sc->cq_spq_left),
-          atomic_load_acq_long(&sc->eq_spq_left));
+          atomic_read(&sc->cq_spq_left),
+          atomic_read(&sc->eq_spq_left));
 
     bxe_sp_prod_update(sc);
 
@@ -2562,7 +2504,7 @@ bxe_probe(device_t dev)
 
     /* Find our device structure */
     sc = device_get_softc(dev);
-    sc->dev = dev;
+    sc->pcidev= dev;
     t = bxe_devs;
 
     /* Get the data for the device to be probed. */
@@ -2587,9 +2529,9 @@ bxe_probe(device_t dev)
             /* Print out the device identity. */
             snprintf(descbuf, BXE_DEVDESC_MAX,
                      "%s (%c%d) BXE v:%s\n", t->bxe_name,
-                     (((pci_read_config(dev, PCIR_REVID, 4) &
+                     (((pcidev_read32(dev, PCIR_REVID) &
                         0xf0) >> 4) + 'A'),
-                     (pci_read_config(dev, PCIR_REVID, 4) & 0xf),
+                     (pcidev_read32(dev, PCIR_REVID) & 0xf),
                      BXE_DRIVER_VERSION);
 
             device_set_desc_copy(dev, descbuf);
@@ -2735,7 +2677,7 @@ bxe_tx_queue_has_work(struct bxe_fastpath *fp)
     uint16_t hw_cons;
 
     mb(); /* status block fields can change */
-    hw_cons = le16toh(*fp->tx_cons_sb);
+    hw_cons = le16_to_cpu(*fp->tx_cons_sb);
     return (hw_cons != fp->tx_pkt_cons);
 }
 
@@ -2752,7 +2694,7 @@ bxe_has_rx_work(struct bxe_fastpath *fp)
     uint16_t rx_cq_cons_sb;
 
     mb(); /* status block fields can change */
-    rx_cq_cons_sb = le16toh(*fp->rx_cq_cons_sb);
+    rx_cq_cons_sb = le16_to_cpu(*fp->rx_cq_cons_sb);
     if ((rx_cq_cons_sb & RCQ_MAX) == RCQ_MAX)
         rx_cq_cons_sb++;
     return (fp->rx_cq_cons != rx_cq_cons_sb);
@@ -2838,10 +2780,10 @@ bxe_sp_event(struct bxe_adapter    *sc,
     bxe_iov_sp_event(sc, cid, TRUE);
 #endif
 
-    atomic_add_acq_long(&sc->cq_spq_left, 1);
+    atomic_add(&sc->cq_spq_left, 1);
 
     BLOGD(sc, DBG_SP, "sc->cq_spq_left 0x%lx\n",
-          atomic_load_acq_long(&sc->cq_spq_left));
+          atomic_read(&sc->cq_spq_left));
 
 #if 0
     if ((drv_cmd == ECORE_Q_CMD_UPDATE) && (IS_FCOE_FP(fp)) &&
@@ -2912,9 +2854,9 @@ bxe_tpa_start(struct bxe_adapter            *sc,
     /* change the TPA queue to the start state */
     tpa_info->state            = BXE_TPA_STATE_START;
     tpa_info->placement_offset = cqe->placement_offset;
-    tpa_info->parsing_flags    = le16toh(cqe->pars_flags.flags);
-    tpa_info->vlan_tag         = le16toh(cqe->vlan_tag);
-    tpa_info->len_on_bd        = le16toh(cqe->len_on_bd);
+    tpa_info->parsing_flags    = le16_to_cpu(cqe->pars_flags.flags);
+    tpa_info->vlan_tag         = le16_to_cpu(cqe->vlan_tag);
+    tpa_info->len_on_bd        = le16_to_cpu(cqe->len_on_bd);
 
     fp->rx_tpa_queue_used |= (1 << queue);
 
@@ -2952,8 +2894,8 @@ bxe_tpa_start(struct bxe_adapter            *sc,
 
     /* update the Rx BD with the empty mbuf phys address from the TPA pool */
     rx_bd = &fp->rx_chain[index];
-    rx_bd->addr_hi = htole32(U64_HI(tpa_info->seg.ds_addr));
-    rx_bd->addr_lo = htole32(U64_LO(tpa_info->seg.ds_addr));
+    rx_bd->addr_hi = cpu_to_le32(U64_HI(tpa_info->seg.ds_addr));
+    rx_bd->addr_lo = cpu_to_le32(U64_LO(tpa_info->seg.ds_addr));
 #endif
 }
 #if 0
@@ -2978,7 +2920,7 @@ bxe_fill_frag_mbuf(struct bxe_adapter          *sc,
     int rc = 0;
     int j;
 
-    frag_size = le16toh(cqe->pkt_len) - tpa_info->len_on_bd;
+    frag_size = le16_to_cpu(cqe->pkt_len) - tpa_info->len_on_bd;
 
     BLOGD(sc, DBG_LRO,
           "fp[%02d].tpa[%02d] TPA fill len_on_bd=%d frag_size=%d pages=%d\n",
@@ -2988,7 +2930,7 @@ bxe_fill_frag_mbuf(struct bxe_adapter          *sc,
     if (pages > 8 * PAGES_PER_SGE) {
         BLOGE(sc, "fp[%02d].sge[0x%04x] has too many pages (%d)! "
                   "pkt_len=%d len_on_bd=%d frag_size=%d\n",
-              fp->index, cqe_idx, pages, le16toh(cqe->pkt_len),
+              fp->index, cqe_idx, pages, le16_to_cpu(cqe->pkt_len),
               tpa_info->len_on_bd, frag_size);
         bxe_panic(sc, ("sge page count error\n"));
         return (EINVAL);
@@ -2999,7 +2941,7 @@ bxe_fill_frag_mbuf(struct bxe_adapter          *sc,
      * single mbuf for the host stack.
      */
     for (i = 0, j = 0; i < pages; i += PAGES_PER_SGE, j++) {
-        sge_idx = RX_SGE(le16toh(cqe->sgl_or_raw_data.sgl[j]));
+        sge_idx = RX_SGE(le16_to_cpu(cqe->sgl_or_raw_data.sgl[j]));
 
         /*
          * Firmware gives the indices of the SGE as if the ring is an array
@@ -3096,17 +3038,17 @@ bxe_update_sge_prod(struct bxe_adapter          *sc,
     /* first mark all used pages */
     for (i = 0; i < sge_len; i++) {
         BIT_VEC64_CLEAR_BIT(fp->sge_mask,
-                            RX_SGE(le16toh(cqe->sgl_or_raw_data.sgl[i])));
+                            RX_SGE(le16_to_cpu(cqe->sgl_or_raw_data.sgl[i])));
     }
 
     BLOGD(sc, DBG_LRO,
           "fp[%02d] fp_cqe->sgl[%d] = %d\n",
           fp->index, sge_len - 1,
-          le16toh(cqe->sgl_or_raw_data.sgl[sge_len - 1]));
+          le16_to_cpu(cqe->sgl_or_raw_data.sgl[sge_len - 1]));
 
     /* assume that the last SGE index is the biggest */
     bxe_update_last_max_sge(fp,
-                            le16toh(cqe->sgl_or_raw_data.sgl[sge_len - 1]));
+                            le16_to_cpu(cqe->sgl_or_raw_data.sgl[sge_len - 1]));
 
     last_max = RX_SGE(fp->last_max_sge);
     last_elem = last_max >> BIT_VEC64_ELEM_SHIFT;
@@ -3119,7 +3061,7 @@ bxe_update_sge_prod(struct bxe_adapter          *sc,
 
     /* now update the prod */
     for (i = first_elem; i != last_elem; i = RX_SGE_NEXT_MASK_ELEM(i)) {
-        if (__predict_true(fp->sge_mask[i])) {
+        if (fp->sge_mask[i]) {
             break;
         }
 
@@ -3160,7 +3102,7 @@ bxe_tpa_stop(struct bxe_adapter          *sc,
     BLOGD(sc, DBG_LRO,
           "fp[%02d].tpa[%02d] pad=%d pkt_len=%d pages=%d vlan=%d\n",
           fp->index, queue, tpa_info->placement_offset,
-          le16toh(cqe->pkt_len), pages, tpa_info->vlan_tag);
+          le16_to_cpu(cqe->pkt_len), pages, tpa_info->vlan_tag);
 
     m = tpa_info->bd.m;
 
@@ -3237,7 +3179,7 @@ bxe_rxeof(struct bxe_adapter    *sc,
     BXE_FP_RX_LOCK(fp);
 
     /* CQ "next element" is of the size of the regular element */
-    hw_cq_cons = le16toh(*fp->rx_cq_cons_sb);
+    hw_cq_cons = le16_to_cpu(*fp->rx_cq_cons_sb);
     if ((hw_cq_cons & RCQ_USABLE_PER_PAGE) == RCQ_USABLE_PER_PAGE) {
         hw_cq_cons++;
     }
@@ -3288,9 +3230,9 @@ bxe_rxeof(struct bxe_adapter    *sc,
               CQE_TYPE(cqe_fp_flags),
               cqe_fp_flags,
               cqe_fp->status_flags,
-              le32toh(cqe_fp->rss_hash_result),
-              le16toh(cqe_fp->vlan_tag),
-              le16toh(cqe_fp->pkt_len_or_gro_seg_len));
+              le32_to_cpu(cqe_fp->rss_hash_result),
+              le16_to_cpu(cqe_fp->vlan_tag),
+              le16_to_cpu(cqe_fp->pkt_len_or_gro_seg_len));
 
         /* is this a slowpath msg? */
         if (__predict_false(CQE_TYPE_SLOW(cqe_fp_type))) {
@@ -3330,7 +3272,7 @@ bxe_rxeof(struct bxe_adapter    *sc,
             BLOGD(sc, DBG_LRO, "fp[%02d].tpa[%02d] TPA STOP\n",
                   fp->index, queue);
 
-            frag_size = (le16toh(cqe->end_agg_cqe.pkt_len) -
+            frag_size = (le16_to_cpu(cqe->end_agg_cqe.pkt_len) -
                          tpa_info->len_on_bd);
             pages = SGE_PAGE_ALIGN(frag_size) >> SGE_PAGE_SHIFT;
 
@@ -3352,7 +3294,7 @@ bxe_rxeof(struct bxe_adapter    *sc,
             goto next_rx;
         }
 
-        len = le16toh(cqe_fp->pkt_len_or_gro_seg_len);
+        len = le16_to_cpu(cqe_fp->pkt_len_or_gro_seg_len);
         pad = cqe_fp->placement_offset;
 
         m = rx_buf->m;
@@ -3450,7 +3392,7 @@ next_rx:
         bd_prod_fw = RX_BD_NEXT(bd_prod_fw);
 
         /* pass the frame to the stack */
-        if (__predict_true(m != NULL)) {
+        if (m != NULL) {
             if_inc_counter(ifp, IFCOUNTER_IPACKETS, 1);
             rx_pkts++;
             if_input(ifp, m);
@@ -3501,7 +3443,7 @@ bxe_free_tx_pkt(struct bxe_adapter    *sc,
     bus_dmamap_unload(fp->tx_mbuf_tag, tx_buf->m_map);
 
     tx_start_bd = &fp->tx_chain[bd_idx].start_bd;
-    nbd = le16toh(tx_start_bd->nbd) - 1;
+    nbd = le16_to_cpu(tx_start_bd->nbd) - 1;
     // this #if 0 was already here in fbsd
 #if 0
     if ((nbd - 1) > (MAX_MBUF_FRAGS + 2)) {
@@ -3542,7 +3484,7 @@ bxe_free_tx_pkt(struct bxe_adapter    *sc,
 #endif
 
     /* free the mbuf */
-    if (__predict_true(tx_buf->m != NULL)) {
+    if (tx_buf->m != NULL) {
         m_freem(tx_buf->m);
         fp->eth_q_stats.mbuf_alloc_tx--;
     } else {
@@ -3561,7 +3503,6 @@ static int
 bxe_watchdog(struct bxe_adapter    *sc,
              struct bxe_fastpath *fp)
 {
-#if 0
     BXE_FP_TX_LOCK(fp);
 
     if ((fp->watchdog_timer == 0) || (--fp->watchdog_timer)) {
@@ -3573,9 +3514,8 @@ bxe_watchdog(struct bxe_adapter    *sc,
 
     BXE_FP_TX_UNLOCK(fp);
 
-    atomic_store_rel_long(&sc->chip_tq_flags, CHIP_TQ_REINIT);
+    atomic_set(&sc->chip_tq_flags, CHIP_TQ_REINIT);
     taskqueue_enqueue(sc->chip_tq, &sc->chip_tq_task);
-#endif
     return (-1);
 }
 
@@ -3592,7 +3532,7 @@ bxe_txeof(struct bxe_adapter    *sc,
     BXE_FP_TX_LOCK_ASSERT(fp);
 
     bd_cons = fp->tx_bd_cons;
-    hw_cons = le16toh(*fp->tx_cons_sb);
+    hw_cons = le16_to_cpu(*fp->tx_cons_sb);
     sw_cons = fp->tx_pkt_cons;
 
     while (sw_cons != hw_cons) {
@@ -3916,7 +3856,7 @@ bxe_send_unload_req(struct bxe_adapter *sc,
         reset_code = DRV_MSG_CODE_UNLOAD_REQ_WOL_MCP;
     } else if (sc->wol) {
         uint32_t emac_base = port ? GRCBASE_EMAC1 : GRCBASE_EMAC0;
-        uint8_t *mac_addr = sc->dev->dev_addr;
+        uint8_t *mac_addr = sc->pcidev->dev_addr;
         uint32_t val;
         uint16_t pmc;
 
@@ -3934,15 +3874,12 @@ bxe_send_unload_req(struct bxe_adapter *sc,
         EMAC_WR(sc, EMAC_REG_EMAC_MAC_MATCH + entry + 4, val);
 
         /* Enable the PME and clear the status */
-        pmc = pci_read_config(sc->dev,
+        pmc = pcidev_read16(sc->pcidev,
                               (sc->devinfo.pcie_pm_cap_reg +
-                               PCIR_POWER_STATUS),
-                              2);
+                               PCIR_POWER_STATUS));
         pmc |= PCIM_PSTAT_PMEENABLE | PCIM_PSTAT_PME;
-        pci_write_config(sc->dev,
-                         (sc->devinfo.pcie_pm_cap_reg +
-                          PCIR_POWER_STATUS),
-                         pmc, 4);
+        pcidev_write32(sc->pcidev,
+                      (sc->devinfo.pcie_pm_cap_reg + PCIR_POWER_STATUS), pmc);
 
         reset_code = DRV_MSG_CODE_UNLOAD_REQ_WOL_EN;
     }
@@ -4087,7 +4024,7 @@ bxe_wait_sp_comp(struct bxe_adapter *sc,
 
     while (tout--) {
         mb();
-        if (!(atomic_load_acq_long(&sc->sp_state) & mask)) {
+        if (!(atomic_read(&sc->sp_state) & mask)) {
             return (TRUE);
         }
 
@@ -4096,7 +4033,7 @@ bxe_wait_sp_comp(struct bxe_adapter *sc,
 
     mb();
 
-    tmp = atomic_load_acq_long(&sc->sp_state);
+    tmp = atomic_read(&sc->sp_state);
     if (tmp & mask) {
         BLOGE(sc, "Filtering completion timed out: "
                   "sp_state 0x%lx, mask 0x%lx\n",
@@ -4720,7 +4657,7 @@ bxe_handle_chip_tq(void *context,
 {
 #if 0
     struct bxe_adapter *sc = (struct bxe_adapter *)context;
-    long work = atomic_load_acq_long(&sc->chip_tq_flags);
+    long work = atomic_read(&sc->chip_tq_flags);
 
     switch (work)
     {
@@ -4806,10 +4743,10 @@ bxe_ioctl(if_t ifp,
             break;
         }
 
-        atomic_store_rel_int((volatile unsigned int *)&sc->mtu,
+        atomic_set(volatile unsigned int *)&sc->mtu,
                              (unsigned long)ifr->ifr_mtu);
        /* 
-        atomic_store_rel_long((volatile unsigned long *)&if_getmtu(ifp),
+        atomic_set((volatile unsigned long *)&if_getmtu(ifp),
                               (unsigned long)ifr->ifr_mtu);
        XXX - Not sure why it needs to be atomic
        */
@@ -4827,12 +4764,12 @@ bxe_ioctl(if_t ifp,
                 /* set the receive mode flags */
                 bxe_set_rx_mode(sc);
             } else {
-                atomic_store_rel_long(&sc->chip_tq_flags, CHIP_TQ_START);
+                atomic_set(&sc->chip_tq_flags, CHIP_TQ_START);
                 taskqueue_enqueue(sc->chip_tq, &sc->chip_tq_task);
             }
         } else {
             if (if_getdrvflags(ifp) & IFF_DRV_RUNNING) {
-                atomic_store_rel_long(&sc->chip_tq_flags, CHIP_TQ_STOP);
+                atomic_set(&sc->chip_tq_flags, CHIP_TQ_STOP);
                 taskqueue_enqueue(sc->chip_tq, &sc->chip_tq_task);
             }
         }
@@ -5006,7 +4943,7 @@ bxe_ioctl(if_t ifp,
     if (reinit && (if_getdrvflags(sc->ifp) & IFF_DRV_RUNNING)) {
         BLOGD(sc, DBG_LOAD | DBG_IOCTL,
               "Re-initializing hardware from IOCTL change\n");
-        atomic_store_rel_long(&sc->chip_tq_flags, CHIP_TQ_REINIT);
+        atomic_set(&sc->chip_tq_flags, CHIP_TQ_REINIT);
         taskqueue_enqueue(sc->chip_tq, &sc->chip_tq_task);
     }
 
@@ -5098,7 +5035,7 @@ bxe_chktso_window(struct bxe_adapter  *sc,
     wnd_sum = 0;
     wnd_size = 10;
     num_wnds = nsegs - wnd_size;
-    lso_mss = htole16(m->m_pkthdr.tso_segsz);
+    lso_mss = cpu_to_le16(m->m_pkthdr.tso_segsz);
 
     /*
      * Total header lengths Eth+IP+TCP in first FreeBSD mbuf so calculate the
@@ -5106,7 +5043,7 @@ bxe_chktso_window(struct bxe_adapter  *sc,
      * header in FreeBSD.
      */
     for (frag_idx = 1; (frag_idx <= wnd_size); frag_idx++) {
-        wnd_sum += htole16(segs[frag_idx].ds_len);
+        wnd_sum += cpu_to_le16(segs[frag_idx].ds_len);
     }
 
     /* check the first 10 bd window size */
@@ -5117,9 +5054,9 @@ bxe_chktso_window(struct bxe_adapter  *sc,
     /* run through the windows */
     for (wnd_idx = 0; wnd_idx < num_wnds; wnd_idx++, frag_idx++) {
         /* subtract the first mbuf->m_len of the last wndw(-header) */
-        wnd_sum -= htole16(segs[wnd_idx+1].ds_len);
+        wnd_sum -= cpu_to_le16(segs[wnd_idx+1].ds_len);
         /* add the next mbuf len to the len of our new window */
-        wnd_sum += htole16(segs[frag_idx].ds_len);
+        wnd_sum += cpu_to_le16(segs[frag_idx].ds_len);
         if (wnd_sum < lso_mss) {
             return (1);
         }
@@ -5269,9 +5206,9 @@ bxe_set_pbd_csum(struct bxe_fastpath        *fp,
     /* note that rest of global_data is indirectly zeroed here */
     if (m->m_flags & M_VLANTAG) {
         pbd->global_data =
-            htole16(hlen | (1 << ETH_TX_PARSE_BD_E1X_LLC_SNAP_EN_SHIFT));
+            cpu_to_le16(hlen | (1 << ETH_TX_PARSE_BD_E1X_LLC_SNAP_EN_SHIFT));
     } else {
-        pbd->global_data = htole16(hlen);
+        pbd->global_data = cpu_to_le16(hlen);
     }
 
     pbd->ip_hlen_w = ip_hlen;
@@ -5295,7 +5232,7 @@ bxe_set_pbd_csum(struct bxe_fastpath        *fp,
         return (0);
     }
 
-    pbd->total_hlen_w = htole16(hlen);
+    pbd->total_hlen_w = cpu_to_le16(hlen);
 
     if (m->m_pkthdr.csum_flags & (CSUM_TCP |
                                   CSUM_TSO |
@@ -5373,7 +5310,7 @@ bxe_set_pbd_lso(struct mbuf                *m,
     ip = (struct ip *)(m->m_data + e_hlen);
     th = (struct tcphdr *)((caddr_t)ip + (ip->ip_hl << 2));
 
-    pbd->lso_mss = htole16(m->m_pkthdr.tso_segsz);
+    pbd->lso_mss = cpu_to_le16(m->m_pkthdr.tso_segsz);
     pbd->tcp_send_seq = ntohl(th->th_seq);
     pbd->tcp_flags = ((ntohl(((uint32_t *)th)[3]) >> 16) & 0xff);
 
@@ -5393,7 +5330,7 @@ bxe_set_pbd_lso(struct mbuf                *m,
 #endif
 
     pbd->global_data |=
-        htole16(ETH_TX_PARSE_BD_E1X_PSEUDO_CS_WITHOUT_LEN);
+        cpu_to_le16(ETH_TX_PARSE_BD_E1X_PSEUDO_CS_WITHOUT_LEN);
 }
 
 /*
@@ -5585,9 +5522,9 @@ bxe_tx_encap_continue:
           "sending pkt_prod=%u tx_buf=%p next_idx=%u bd=%u tx_start_bd=%p\n",
           pkt_prod, tx_buf, fp->tx_pkt_prod, bd_prod, tx_start_bd);
 
-    tx_start_bd->addr_lo = htole32(U64_LO(segs[0].ds_addr));
-    tx_start_bd->addr_hi = htole32(U64_HI(segs[0].ds_addr));
-    tx_start_bd->nbytes  = htole16(segs[0].ds_len);
+    tx_start_bd->addr_lo = cpu_to_le32(U64_LO(segs[0].ds_addr));
+    tx_start_bd->addr_hi = cpu_to_le32(U64_HI(segs[0].ds_addr));
+    tx_start_bd->nbytes  = cpu_to_le16(segs[0].ds_len);
     total_pkt_size += tx_start_bd->nbytes;
     tx_start_bd->bd_flags.as_bitfield = ETH_TX_BD_FLAGS_START_BD;
 
@@ -5595,10 +5532,10 @@ bxe_tx_encap_continue:
 
     /* all frames have at least Start BD + Parsing BD */
     nbds = nsegs + 1;
-    tx_start_bd->nbd = htole16(nbds);
+    tx_start_bd->nbd = cpu_to_le16(nbds);
 
     if (m0->m_flags & M_VLANTAG) {
-        tx_start_bd->vlan_or_ethertype = htole16(m0->m_pkthdr.ether_vtag);
+        tx_start_bd->vlan_or_ethertype = cpu_to_le16(m0->m_pkthdr.ether_vtag);
         tx_start_bd->bd_flags.as_bitfield |=
             (X_ETH_OUTBAND_VLAN << ETH_TX_BD_FLAGS_VLAN_MODE_SHIFT);
     } else {
@@ -5609,7 +5546,7 @@ bxe_tx_encap_continue:
             tx_start_bd->vlan_or_ethertype = eh->evl_encap_proto;
         } else {
             /* used by FW for packet accounting */
-            tx_start_bd->vlan_or_ethertype = htole16(fp->tx_pkt_prod);
+            tx_start_bd->vlan_or_ethertype = cpu_to_le16(fp->tx_pkt_prod);
 #if 0
             /*
              * If NPAR-SD is active then FW should do the tagging regardless
@@ -5693,7 +5630,7 @@ bxe_tx_encap_continue:
 
         SET_FLAG(global_data,
                  ETH_TX_PARSE_BD_E1X_ETH_ADDR_TYPE, mac_type);
-        pbd_e1x->global_data |= htole16(global_data);
+        pbd_e1x->global_data |= cpu_to_le16(global_data);
     }
 
     /* setup the parsing BD with TSO specific info */
@@ -5706,25 +5643,25 @@ bxe_tx_encap_continue:
 
             /* split the first BD into header/data making the fw job easy */
             nbds++;
-            tx_start_bd->nbd = htole16(nbds);
-            tx_start_bd->nbytes = htole16(hlen);
+            tx_start_bd->nbd = cpu_to_le16(nbds);
+            tx_start_bd->nbytes = cpu_to_le16(hlen);
 
             bd_prod = TX_BD_NEXT(bd_prod);
 
             /* new transmit BD after the tx_parse_bd */
             tx_data_bd = &fp->tx_chain[TX_BD(bd_prod)].reg_bd;
-            tx_data_bd->addr_hi = htole32(U64_HI(segs[0].ds_addr + hlen));
-            tx_data_bd->addr_lo = htole32(U64_LO(segs[0].ds_addr + hlen));
-            tx_data_bd->nbytes  = htole16(segs[0].ds_len - hlen);
+            tx_data_bd->addr_hi = cpu_to_le32(U64_HI(segs[0].ds_addr + hlen));
+            tx_data_bd->addr_lo = cpu_to_le32(U64_LO(segs[0].ds_addr + hlen));
+            tx_data_bd->nbytes  = cpu_to_le16(segs[0].ds_len - hlen);
             if (tx_total_pkt_size_bd == NULL) {
                 tx_total_pkt_size_bd = tx_data_bd;
             }
 
             BLOGD(sc, DBG_TX,
                   "TSO split header size is %d (%x:%x) nbds %d\n",
-                  le16toh(tx_start_bd->nbytes),
-                  le32toh(tx_start_bd->addr_hi),
-                  le32toh(tx_start_bd->addr_lo),
+                  le16_to_cpu(tx_start_bd->nbytes),
+                  le32_to_cpu(tx_start_bd->addr_hi),
+                  le32_to_cpu(tx_start_bd->addr_lo),
                   nbds);
         }
 
@@ -5736,16 +5673,16 @@ bxe_tx_encap_continue:
     }
 
     if (pbd_e2_parsing_data) {
-        pbd_e2->parsing_data = htole32(pbd_e2_parsing_data);
+        pbd_e2->parsing_data = cpu_to_le32(pbd_e2_parsing_data);
     }
 
     /* prepare remaining BDs, start tx bd contains first seg/frag */
     for (i = 1; i < nsegs ; i++) {
         bd_prod = TX_BD_NEXT(bd_prod);
         tx_data_bd = &fp->tx_chain[TX_BD(bd_prod)].reg_bd;
-        tx_data_bd->addr_lo = htole32(U64_LO(segs[i].ds_addr));
-        tx_data_bd->addr_hi = htole32(U64_HI(segs[i].ds_addr));
-        tx_data_bd->nbytes  = htole16(segs[i].ds_len);
+        tx_data_bd->addr_lo = cpu_to_le32(U64_LO(segs[i].ds_addr));
+        tx_data_bd->addr_hi = cpu_to_le32(U64_HI(segs[i].ds_addr));
+        tx_data_bd->nbytes  = cpu_to_le16(segs[i].ds_len);
         if (tx_total_pkt_size_bd == NULL) {
             tx_total_pkt_size_bd = tx_data_bd;
         }
@@ -5768,8 +5705,8 @@ bxe_tx_encap_continue:
                       "bd_flags=0x%x hdr_nbds=%d\n",
                       tx_start_bd,
                       tmp_bd,
-                      le16toh(tx_start_bd->nbd),
-                      le16toh(tx_start_bd->vlan_or_ethertype),
+                      le16_to_cpu(tx_start_bd->nbd),
+                      le16_to_cpu(tx_start_bd->vlan_or_ethertype),
                       tx_start_bd->bd_flags.as_bitfield,
                       (tx_start_bd->general_data & ETH_TX_START_BD_HDR_NBDS));
             } else if (i == 1) {
@@ -5787,7 +5724,7 @@ bxe_tx_encap_continue:
                           pbd_e1x->tcp_flags,
                           pbd_e1x->tcp_pseudo_csum,
                           pbd_e1x->tcp_send_seq,
-                          le16toh(pbd_e1x->total_hlen_w));
+                          le16_to_cpu(pbd_e1x->total_hlen_w));
                 } else { /* if (pbd_e2) */
                     BLOGD(sc, DBG_TX,
                           "-> Parse: %p bd=%d dst=%02x:%02x:%02x "
@@ -5810,9 +5747,9 @@ bxe_tx_encap_continue:
                       "-> Frag: %p bd=%d nbytes=%d hi=0x%x lo: 0x%x\n",
                       tx_data_bd,
                       tmp_bd,
-                      le16toh(tx_data_bd->nbytes),
-                      le32toh(tx_data_bd->addr_hi),
-                      le32toh(tx_data_bd->addr_lo));
+                      le16_to_cpu(tx_data_bd->nbytes),
+                      le32_to_cpu(tx_data_bd->addr_hi),
+                      le32_to_cpu(tx_data_bd->addr_lo));
             }
 
             tmp_bd = TX_BD_NEXT(tmp_bd);
@@ -6664,8 +6601,8 @@ bxe_alloc_rx_bd_mbuf(struct bxe_fastpath *fp,
     rx_buf->m = m;
 
     rx_bd = &fp->rx_chain[index];
-    rx_bd->addr_hi = htole32(U64_HI(segs[0].ds_addr));
-    rx_bd->addr_lo = htole32(U64_LO(segs[0].ds_addr));
+    rx_bd->addr_hi = cpu_to_le32(U64_HI(segs[0].ds_addr));
+    rx_bd->addr_lo = cpu_to_le32(U64_LO(segs[0].ds_addr));
 
     return (rc);
 #endif
@@ -6793,8 +6730,8 @@ bxe_alloc_rx_sge_mbuf(struct bxe_fastpath *fp,
     sge_buf->m = m;
 
     sge = &fp->rx_sge_chain[index];
-    sge->addr_hi = htole32(U64_HI(segs[0].ds_addr));
-    sge->addr_lo = htole32(U64_LO(segs[0].ds_addr));
+    sge->addr_hi = cpu_to_le32(U64_HI(segs[0].ds_addr));
+    sge->addr_lo = cpu_to_le32(U64_LO(segs[0].ds_addr));
 
     return (rc);
 #endif
@@ -8659,8 +8596,8 @@ static void
 bxe_attn_int(struct bxe_adapter *sc)
 {
     /* read local copy of bits */
-    uint32_t attn_bits = le32toh(sc->def_sb->atten_status_block.attn_bits);
-    uint32_t attn_ack = le32toh(sc->def_sb->atten_status_block.attn_bits_ack);
+    uint32_t attn_bits = le32_to_cpu(sc->def_sb->atten_status_block.attn_bits);
+    uint32_t attn_ack = le32_to_cpu(sc->def_sb->atten_status_block.attn_bits_ack);
     uint32_t attn_state = sc->attn_state;
 
     /* look for changed bits */
@@ -8759,7 +8696,7 @@ bxe_handle_classification_eqe(struct bxe_adapter      *sc,
     /* always push next commands out, don't wait here */
     bit_set(&ramrod_flags, RAMROD_CONT);
 
-    switch (le32toh(elem->message.data.eth_event.echo) >> BXE_SWCID_SHIFT) {
+    switch (le32_to_cpu(elem->message.data.eth_event.echo) >> BXE_SWCID_SHIFT) {
     case ECORE_FILTER_MAC_PENDING:
         BLOGD(sc, DBG_SP, "Got SETUP_MAC completions\n");
         vlan_mac_obj = &sc->sp_objs[cid].mac_obj;
@@ -8833,7 +8770,7 @@ bxe_eq_int(struct bxe_adapter *sc)
     struct ecore_func_sp_obj *f_obj = &sc->func_obj;
     struct ecore_raw_obj *rss_raw = &sc->rss_conf_obj.raw;
 
-    hw_cons = le16toh(*sc->eq_cons_sb);
+    hw_cons = le16_to_cpu(*sc->eq_cons_sb);
 
     /*
      * The hw_cons range is 1-255, 257 - the sw_cons range is 0-254, 256.
@@ -8853,7 +8790,7 @@ bxe_eq_int(struct bxe_adapter *sc)
     sw_prod = sc->eq_prod;
 
     BLOGD(sc, DBG_SP,"EQ: hw_cons=%u sw_cons=%u eq_spq_left=0x%lx\n",
-          hw_cons, sw_cons, atomic_load_acq_long(&sc->eq_spq_left));
+          hw_cons, sw_cons, atomic_read(&sc->eq_spq_left));
 
     for (;
          sw_cons != hw_cons;
@@ -9012,7 +8949,7 @@ next_spqe:
     } /* for */
 
     mb();
-    atomic_add_acq_long(&sc->eq_spq_left, spqe_cnt);
+    atomic_add(&sc->eq_spq_left, spqe_cnt);
 
     sc->eq_cons = sw_cons;
     sc->eq_prod = sw_prod;
@@ -9051,7 +8988,7 @@ bxe_handle_sp_tq(void *context,
         BLOGD(sc, DBG_SP, "---> EQ INTR <---\n");
         bxe_eq_int(sc);
         bxe_ack_sb(sc, sc->igu_dsb_id, USTORM_ID,
-                   le16toh(sc->def_idx), IGU_INT_NOP, 1);
+                   le16_to_cpu(sc->def_idx), IGU_INT_NOP, 1);
         status &= ~BXE_DEF_SB_IDX;
     }
 
@@ -9062,7 +8999,7 @@ bxe_handle_sp_tq(void *context,
 
     /* ack status block only if something was actually handled */
     bxe_ack_sb(sc, sc->igu_dsb_id, ATTENTION_ID,
-               le16toh(sc->def_att_idx), IGU_INT_ENABLE, 1);
+               le16_to_cpu(sc->def_att_idx), IGU_INT_ENABLE, 1);
 
     /*
      * Must be called after the EQ processing (since eq leads to sriov
@@ -9122,13 +9059,12 @@ bxe_handle_fp_tq(void *context,
 
     if (more_rx /*|| more_tx*/) {
         /* still more work to do */
-#warning "task queue"
-      //taskqueue_enqueue_fast(fp->tq, &fp->tq_task);
+        taskqueue_enqueue_fast(fp->tq, &fp->tq_task);
         return;
     }
 
     bxe_ack_sb(sc, fp->igu_sb_id, USTORM_ID,
-               le16toh(fp->fp_hc_idx), IGU_INT_ENABLE, 1);
+               le16_to_cpu(fp->fp_hc_idx), IGU_INT_ENABLE, 1);
 }
 
 static void
@@ -9157,7 +9093,7 @@ bxe_task_fp(struct bxe_fastpath *fp)
 
     if (more_rx /*|| more_tx*/) {
         /* still more work to do, bail out if this ISR and process later */
-      //taskqueue_enqueue_fast(fp->tq, &fp->tq_task);
+        taskqueue_enqueue_fast(fp->tq, &fp->tq_task);
         return;
     }
 
@@ -9169,7 +9105,7 @@ bxe_task_fp(struct bxe_fastpath *fp)
      * not do any work in.
      */
     bxe_ack_sb(sc, fp->igu_sb_id, USTORM_ID,
-               le16toh(fp->fp_hc_idx), IGU_INT_ENABLE, 1);
+               le16_to_cpu(fp->fp_hc_idx), IGU_INT_ENABLE, 1);
 }
 
 /*
@@ -9241,7 +9177,7 @@ bxe_intr_legacy(void *xsc)
         bxe_ack_sb(sc, sc->igu_dsb_id, USTORM_ID, 0, IGU_INT_DISABLE, 0);
 
         /* schedule slowpath handler */
-        //taskqueue_enqueue_fast(sc->sp_tq, &sc->sp_tq_task);
+        taskqueue_enqueue_fast(sc->sp_tq, &sc->sp_tq_task);
 
         status &= ~0x1;
     }
@@ -9263,7 +9199,7 @@ bxe_intr_sp(void *xsc)
     bxe_ack_sb(sc, sc->igu_dsb_id, USTORM_ID, 0, IGU_INT_DISABLE, 0);
 
     /* schedule slowpath handler */
-    //taskqueue_enqueue_fast(sc->sp_tq, &sc->sp_tq_task);
+    taskqueue_enqueue_fast(sc->sp_tq, &sc->sp_tq_task);
 }
 
 /* fastpath interrupt entry point */
@@ -9303,7 +9239,7 @@ bxe_interrupt_free(struct bxe_adapter *sc)
     case INTR_MODE_INTX:
         BLOGD(sc, DBG_LOAD, "Releasing legacy INTx vector\n");
         if (sc->intr[0].resource != NULL) {
-            bus_release_resource(sc->dev,
+            bus_release_resource(sc->pcidev,
                                  SYS_RES_IRQ,
                                  sc->intr[0].rid,
                                  sc->intr[0].resource);
@@ -9313,25 +9249,25 @@ bxe_interrupt_free(struct bxe_adapter *sc)
         for (i = 0; i < sc->intr_count; i++) {
             BLOGD(sc, DBG_LOAD, "Releasing MSI vector %d\n", i);
             if (sc->intr[i].resource && sc->intr[i].rid) {
-                bus_release_resource(sc->dev,
+                bus_release_resource(sc->pcidev,
                                      SYS_RES_IRQ,
                                      sc->intr[i].rid,
                                      sc->intr[i].resource);
             }
         }
-        pci_release_msi(sc->dev);
+        pci_release_msi(sc->pcidev);
         break;
     case INTR_MODE_MSIX:
         for (i = 0; i < sc->intr_count; i++) {
             BLOGD(sc, DBG_LOAD, "Releasing MSI-X vector %d\n", i);
             if (sc->intr[i].resource && sc->intr[i].rid) {
-                bus_release_resource(sc->dev,
+                bus_release_resource(sc->pcidev,
                                      SYS_RES_IRQ,
                                      sc->intr[i].rid,
                                      sc->intr[i].resource);
             }
         }
-        pci_release_msi(sc->dev);
+        pci_release_msi(sc->pcidev);
         break;
     default:
         /* nothing to do as initial allocation failed */
@@ -9371,11 +9307,11 @@ bxe_interrupt_alloc(struct bxe_adapter *sc)
     /* get the number of available MSI/MSI-X interrupts from the OS */
     if (sc->interrupt_mode > 0) {
         if (sc->devinfo.pcie_cap_flags & BXE_MSIX_CAPABLE_FLAG) {
-            msix_count = pci_msix_count(sc->dev);
+            msix_count = pci_msix_count(sc->pcidev);
         }
 
         if (sc->devinfo.pcie_cap_flags & BXE_MSI_CAPABLE_FLAG) {
-            msi_count = pci_msi_count(sc->dev);
+            msi_count = pci_msi_count(sc->pcidev);
         }
 
         BLOGD(sc, DBG_LOAD, "%d MSI and %d MSI-X vectors available\n",
@@ -9399,7 +9335,7 @@ bxe_interrupt_alloc(struct bxe_adapter *sc)
         BLOGD(sc, DBG_LOAD, "Requesting %d MSI-X vectors\n", num_requested);
 
         num_allocated = num_requested;
-        if ((rc = pci_alloc_msix(sc->dev, &num_allocated)) != 0) {
+        if ((rc = pci_alloc_msix(sc->pcidev, &num_allocated)) != 0) {
             BLOGE(sc, "MSI-X alloc failed! (%d)\n", rc);
             sc->interrupt_mode = INTR_MODE_MSI; /* try MSI next */
             break;
@@ -9408,7 +9344,7 @@ bxe_interrupt_alloc(struct bxe_adapter *sc)
         if (num_allocated < 2) { /* possible? */
             BLOGE(sc, "MSI-X allocation less than 2!\n");
             sc->interrupt_mode = INTR_MODE_MSI; /* try MSI next */
-            pci_release_msi(sc->dev);
+            pci_release_msi(sc->pcidev);
             break;
         }
 
@@ -9426,7 +9362,7 @@ bxe_interrupt_alloc(struct bxe_adapter *sc)
             sc->intr[i].rid = (rid + i);
 
             if ((sc->intr[i].resource =
-                 bus_alloc_resource_any(sc->dev,
+                 bus_alloc_resource_any(sc->pcidev,
                                         SYS_RES_IRQ,
                                         &sc->intr[i].rid,
                                         RF_ACTIVE)) == NULL) {
@@ -9434,7 +9370,7 @@ bxe_interrupt_alloc(struct bxe_adapter *sc)
                       i, (rid + i));
 
                 for (j = (i - 1); j >= 0; j--) {
-                    bus_release_resource(sc->dev,
+                    bus_release_resource(sc->pcidev,
                                          SYS_RES_IRQ,
                                          sc->intr[j].rid,
                                          sc->intr[j].resource);
@@ -9443,7 +9379,7 @@ bxe_interrupt_alloc(struct bxe_adapter *sc)
                 sc->intr_count = 0;
                 sc->num_queues = 0;
                 sc->interrupt_mode = INTR_MODE_MSI; /* try MSI next */
-                pci_release_msi(sc->dev);
+                pci_release_msi(sc->pcidev);
                 break;
             }
 
@@ -9468,7 +9404,7 @@ bxe_interrupt_alloc(struct bxe_adapter *sc)
         BLOGD(sc, DBG_LOAD, "Requesting %d MSI vectors\n", num_requested);
 
         num_allocated = num_requested;
-        if ((rc = pci_alloc_msi(sc->dev, &num_allocated)) != 0) {
+        if ((rc = pci_alloc_msi(sc->pcidev, &num_allocated)) != 0) {
             BLOGE(sc, "MSI alloc failed (%d)!\n", rc);
             sc->interrupt_mode = INTR_MODE_INTX; /* try INTx next */
             break;
@@ -9477,7 +9413,7 @@ bxe_interrupt_alloc(struct bxe_adapter *sc)
         if (num_allocated != 1) { /* possible? */
             BLOGE(sc, "MSI allocation is not 1!\n");
             sc->interrupt_mode = INTR_MODE_INTX; /* try INTx next */
-            pci_release_msi(sc->dev);
+            pci_release_msi(sc->pcidev);
             break;
         }
 
@@ -9493,7 +9429,7 @@ bxe_interrupt_alloc(struct bxe_adapter *sc)
         sc->intr[0].rid = rid;
 
         if ((sc->intr[0].resource =
-             bus_alloc_resource_any(sc->dev,
+             bus_alloc_resource_any(sc->pcidev,
                                     SYS_RES_IRQ,
                                     &sc->intr[0].rid,
                                     RF_ACTIVE)) == NULL) {
@@ -9501,7 +9437,7 @@ bxe_interrupt_alloc(struct bxe_adapter *sc)
             sc->intr_count = 0;
             sc->num_queues = 0;
             sc->interrupt_mode = INTR_MODE_INTX; /* try INTx next */
-            pci_release_msi(sc->dev);
+            pci_release_msi(sc->pcidev);
             break;
         }
 
@@ -9524,7 +9460,7 @@ bxe_interrupt_alloc(struct bxe_adapter *sc)
         sc->intr[0].rid = rid;
 
         if ((sc->intr[0].resource =
-             bus_alloc_resource_any(sc->dev,
+             bus_alloc_resource_any(sc->pcidev,
                                     SYS_RES_IRQ,
                                     &sc->intr[0].rid,
                                     (RF_ACTIVE | RF_SHAREABLE))) == NULL) {
@@ -9556,7 +9492,6 @@ bxe_interrupt_alloc(struct bxe_adapter *sc)
 static void
 bxe_interrupt_detach(struct bxe_adapter *sc)
 {
-#if 0
     struct bxe_fastpath *fp;
     int i;
 
@@ -9564,7 +9499,7 @@ bxe_interrupt_detach(struct bxe_adapter *sc)
     for (i = 0; i < sc->intr_count; i++) {
         if (sc->intr[i].resource && sc->intr[i].tag) {
             BLOGD(sc, DBG_LOAD, "Disabling interrupt vector %d\n", i);
-            bus_teardown_intr(sc->dev, sc->intr[i].resource, sc->intr[i].tag);
+            bus_teardown_intr(sc->pcidev, sc->intr[i].resource, sc->intr[i].tag);
         }
     }
 
@@ -9588,7 +9523,6 @@ bxe_interrupt_detach(struct bxe_adapter *sc)
         taskqueue_free(sc->sp_tq);
         sc->sp_tq = NULL;
     }
-#endif
 }
 
 /*
@@ -9603,7 +9537,6 @@ bxe_interrupt_detach(struct bxe_adapter *sc)
 static int
 bxe_interrupt_attach(struct bxe_adapter *sc)
 {
-#if 0
     struct bxe_fastpath *fp;
     int rc = 0;
     int i;
@@ -9646,18 +9579,18 @@ bxe_interrupt_attach(struct bxe_adapter *sc)
          * Setup the interrupt handler. Note that we pass the driver instance
          * to the interrupt handler for the slowpath.
          */
-        if ((rc = bus_setup_intr(sc->dev, sc->intr[0].resource,
-                                 (INTR_TYPE_NET | INTR_MPSAFE),
+        if ((rc = bus_setup_intr(sc->pcidev, sc->intr[0].resource,
+                                 0, //(INTR_TYPE_NET | INTR_MPSAFE),
                                  NULL, bxe_intr_sp, sc,
                                  &sc->intr[0].tag)) != 0) {
             BLOGE(sc, "Failed to allocate MSI-X[0] vector (%d)\n", rc);
             goto bxe_interrupt_attach_exit;
         }
 
-        bus_describe_intr(sc->dev, sc->intr[0].resource,
+        bus_describe_intr(sc->pcidev, sc->intr[0].resource,
                           sc->intr[0].tag, "sp");
 
-        /* bus_bind_intr(sc->dev, sc->intr[0].resource, 0); */
+        /* bus_bind_intr(sc->pcidev, sc->intr[0].resource, 0); */
 
         /* initialize the fastpath vectors (note the first was used for sp) */
         for (i = 0; i < sc->num_queues; i++) {
@@ -9669,8 +9602,8 @@ bxe_interrupt_attach(struct bxe_adapter *sc)
              * fastpath context to the interrupt handler in this
              * case.
              */
-            if ((rc = bus_setup_intr(sc->dev, sc->intr[i + 1].resource,
-                                     (INTR_TYPE_NET | INTR_MPSAFE),
+            if ((rc = bus_setup_intr(sc->pcidev, sc->intr[i + 1].resource,
+                                     0, //(INTR_TYPE_NET | INTR_MPSAFE),
                                      NULL, bxe_intr_fp, fp,
                                      &sc->intr[i + 1].tag)) != 0) {
                 BLOGE(sc, "Failed to allocate MSI-X[%d] vector (%d)\n",
@@ -9678,12 +9611,12 @@ bxe_interrupt_attach(struct bxe_adapter *sc)
                 goto bxe_interrupt_attach_exit;
             }
 
-            bus_describe_intr(sc->dev, sc->intr[i + 1].resource,
+            bus_describe_intr(sc->pcidev, sc->intr[i + 1].resource,
                               sc->intr[i + 1].tag, "fp%02d", i);
 
             /* bind the fastpath instance to a cpu */
             if (sc->num_queues > 1) {
-                bus_bind_intr(sc->dev, sc->intr[i + 1].resource, i);
+                bus_bind_intr(sc->pcidev, sc->intr[i + 1].resource, i);
             }
 
             fp->state = BXE_FP_STATE_IRQ;
@@ -9696,8 +9629,8 @@ bxe_interrupt_attach(struct bxe_adapter *sc)
          * driver instance to the interrupt handler which
          * will handle both the slowpath and fastpath.
          */
-        if ((rc = bus_setup_intr(sc->dev, sc->intr[0].resource,
-                                 (INTR_TYPE_NET | INTR_MPSAFE),
+        if ((rc = bus_setup_intr(sc->pcidev, sc->intr[0].resource,
+                                 0, //(INTR_TYPE_NET | INTR_MPSAFE),
                                  NULL, bxe_intr_legacy, sc,
                                  &sc->intr[0].tag)) != 0) {
             BLOGE(sc, "Failed to allocate MSI[0] vector (%d)\n", rc);
@@ -9712,8 +9645,8 @@ bxe_interrupt_attach(struct bxe_adapter *sc)
          * driver instance to the interrupt handler which
          * will handle both the slowpath and fastpath.
          */
-        if ((rc = bus_setup_intr(sc->dev, sc->intr[0].resource,
-                                 (INTR_TYPE_NET | INTR_MPSAFE),
+        if ((rc = bus_setup_intr(sc->pcidev, sc->intr[0].resource,
+                                 0, //(INTR_TYPE_NET | INTR_MPSAFE),
                                  NULL, bxe_intr_legacy, sc,
                                  &sc->intr[0].tag)) != 0) {
             BLOGE(sc, "Failed to allocate INTx interrupt (%d)\n", rc);
@@ -9724,8 +9657,6 @@ bxe_interrupt_attach(struct bxe_adapter *sc)
 bxe_interrupt_attach_exit:
 
     return (rc);
-#endif
-    return -1;
 }
 
 static int  bxe_init_hw_common_chip(struct bxe_adapter *sc);
@@ -10334,7 +10265,7 @@ bxe_init_def_sb(struct bxe_adapter *sc)
 static void
 bxe_init_sp_ring(struct bxe_adapter *sc)
 {
-    atomic_store_rel_long(&sc->cq_spq_left, MAX_SPQ_PENDING);
+    atomic_set(&sc->cq_spq_left, MAX_SPQ_PENDING);
     sc->spq_prod_idx = 0;
     sc->dsb_sp_prod = &sc->def_sb->sp_sb.index_values[HC_SP_INDEX_ETH_DEF_CONS];
     sc->spq_prod_bd = sc->spq;
@@ -10350,10 +10281,10 @@ bxe_init_eq_ring(struct bxe_adapter *sc)
     for (i = 1; i <= NUM_EQ_PAGES; i++) {
         elem = &sc->eq[EQ_DESC_CNT_PAGE * i - 1];
 
-        elem->next_page.addr.hi = htole32(U64_HI(sc->eq_dma.paddr +
+        elem->next_page.addr.hi = cpu_to_le32(U64_HI(sc->eq_dma.paddr +
                                                  BCM_PAGE_SIZE *
                                                  (i % NUM_EQ_PAGES)));
-        elem->next_page.addr.lo = htole32(U64_LO(sc->eq_dma.paddr +
+        elem->next_page.addr.lo = cpu_to_le32(U64_LO(sc->eq_dma.paddr +
                                                  BCM_PAGE_SIZE *
                                                  (i % NUM_EQ_PAGES)));
     }
@@ -10362,7 +10293,7 @@ bxe_init_eq_ring(struct bxe_adapter *sc)
     sc->eq_prod    = NUM_EQ_DESC;
     sc->eq_cons_sb = &sc->def_sb->sp_sb.index_values[HC_SP_INDEX_EQ_CONS];
 
-    atomic_store_rel_long(&sc->eq_spq_left,
+    atomic_set(&sc->eq_spq_left,
                           (min((MAX_SP_DESC_CNT - MAX_SPQ_PENDING),
                                NUM_EQ_DESC) - 1));
 }
@@ -11071,15 +11002,14 @@ bxe_set_power_state(struct bxe_adapter *sc,
         return (0);
     }
 
-    pmcsr = pci_read_config(sc->dev,
-                            (sc->devinfo.pcie_pm_cap_reg + PCIR_POWER_STATUS),
-                            2);
+    pmcsr = pcidev_read16(sc->pcidev,
+                            (sc->devinfo.pcie_pm_cap_reg + PCIR_POWER_STATUS));
 
     switch (state) {
     case PCI_PM_D0:
-        pci_write_config(sc->dev,
-                         (sc->devinfo.pcie_pm_cap_reg + PCIR_POWER_STATUS),
-                         ((pmcsr & ~PCIM_PSTAT_DMASK) | PCIM_PSTAT_PME), 2);
+        pcidev_write16(sc->pcidev,
+                      (sc->devinfo.pcie_pm_cap_reg + PCIR_POWER_STATUS),
+                      ((pmcsr & ~PCIM_PSTAT_DMASK) | PCIM_PSTAT_PME));
 
         if (pmcsr & PCIM_PSTAT_DMASK) {
             /* delay required during transition out of D3hot */
@@ -11103,9 +11033,9 @@ bxe_set_power_state(struct bxe_adapter *sc,
             pmcsr |= PCIM_PSTAT_PMEENABLE;
         }
 
-        pci_write_config(sc->dev,
-                         (sc->devinfo.pcie_pm_cap_reg + PCIR_POWER_STATUS),
-                         pmcsr, 4);
+        pcidev_write32(sc->pcidev,
+                      (sc->devinfo.pcie_pm_cap_reg + PCIR_POWER_STATUS),
+                      pmcsr);
 
         /*
          * No more memory access after this point until device is brought back
@@ -12856,7 +12786,7 @@ bxe_periodic_callout_func(void *xsc)
         /* just bail and try again next time */
 
         if ((sc->state == BXE_STATE_OPEN) &&
-            (atomic_load_acq_long(&sc->periodic_flags) == PERIODIC_GO)) {
+            (atomic_read(&sc->periodic_flags) == PERIODIC_GO)) {
             /* schedule the next periodic callout */
                //callout_reset(&sc->periodic_callout, hz,
                //        bxe_periodic_callout_func, sc);
@@ -12866,7 +12796,7 @@ bxe_periodic_callout_func(void *xsc)
     }
 
     if ((sc->state != BXE_STATE_OPEN) ||
-        (atomic_load_acq_long(&sc->periodic_flags) == PERIODIC_STOP)) {
+        (atomic_read(&sc->periodic_flags) == PERIODIC_STOP)) {
         BLOGW(sc, "periodic callout exit (state=0x%x)\n", sc->state);
         BXE_CORE_UNLOCK(sc);
         return;
@@ -12933,7 +12863,7 @@ bxe_periodic_callout_func(void *xsc)
     BXE_CORE_UNLOCK(sc);
 
     if ((sc->state == BXE_STATE_OPEN) &&
-        (atomic_load_acq_long(&sc->periodic_flags) == PERIODIC_GO)) {
+        (atomic_read(&sc->periodic_flags) == PERIODIC_GO)) {
         /* schedule the next periodic callout */
 //        callout_reset(&sc->periodic_callout, hz,
 //                      bxe_periodic_callout_func, sc);
@@ -12943,14 +12873,14 @@ bxe_periodic_callout_func(void *xsc)
 static void
 bxe_periodic_start(struct bxe_adapter *sc)
 {
-       //atomic_store_rel_long(&sc->periodic_flags, PERIODIC_GO);
+       //atomic_set(&sc->periodic_flags, PERIODIC_GO);
     //  callout_reset(&sc->periodic_callout, hz, bxe_periodic_callout_func, sc);
 }
 
 static void
 bxe_periodic_stop(struct bxe_adapter *sc)
 {
-//    atomic_store_rel_long(&sc->periodic_flags, PERIODIC_STOP);
+//    atomic_set(&sc->periodic_flags, PERIODIC_STOP);
 //    callout_drain(&sc->periodic_callout);
 }
 
@@ -13378,7 +13308,7 @@ bxe_init_ifnet(struct bxe_adapter *sc)
     }
 
     if_setsoftc(ifp, sc);
-    if_initname(ifp, device_get_name(sc->dev), device_get_unit(sc->dev));
+    if_initname(ifp, device_get_name(sc->pcidev), device_get_unit(sc->pcidev));
     if_setflags(ifp, (IFF_BROADCAST | IFF_SIMPLEX | IFF_MULTICAST));
     if_setioctlfn(ifp, bxe_ioctl);
     if_setstartfn(ifp, bxe_tx_start);
@@ -13441,7 +13371,7 @@ bxe_deallocate_bars(struct bxe_adapter *sc)
 #if 0
     for (i = 0; i < MAX_BARS; i++) {
         if (sc->bar[i].resource != NULL) {
-            bus_release_resource(sc->dev,
+            bus_release_resource(sc->pcidev,
                                  SYS_RES_MEMORY,
                                  sc->bar[i].rid,
                                  sc->bar[i].resource);
@@ -13476,7 +13406,7 @@ bxe_allocate_bars(struct bxe_adapter *sc)
         }
 
         if ((sc->bar[i].resource =
-             bus_alloc_resource_any(sc->dev,
+             bus_alloc_resource_any(sc->pcidev,
                                     SYS_RES_MEMORY,
                                     &sc->bar[i].rid,
                                     flags)) == NULL) {
@@ -13567,10 +13497,19 @@ bxe_pcie_capability_read(struct bxe_adapter *sc,
 
     /* ensure PCIe capability is enabled */
 #if 0
-    if (pci_find_cap(sc->dev, PCIY_EXPRESS, &pcie_reg) == 0) {
+    if (pci_find_cap(sc->pcidev, PCIY_EXPRESS, &pcie_reg) == 0) {
         if (pcie_reg != 0) {
             BLOGD(sc, DBG_LOAD, "PCIe capability at 0x%04x\n", pcie_reg);
-            return (pci_read_config(sc->dev, (pcie_reg + reg), width));
+                       switch (width) {
+                               case 4:
+                                       return pcidev_read32(sc->pcidev, (pcie_reg + reg));
+                               case 2:
+                                       return pcidev_read16(sc->pcidev, (pcie_reg + reg));
+                               case 1:
+                                       return pcidev_read8(sc->pcidev, (pcie_reg + reg));
+                               default:
+                                       BLOGE(sc, "Bad width %d in PCIE Cap read\n", width);
+                       }
         }
     }
 #endif
@@ -13601,7 +13540,7 @@ bxe_probe_pci_caps(struct bxe_adapter *sc)
     int reg;
 
     /* check if PCI Power Management is enabled */
-    if (pci_find_cap(sc->dev, PCIY_PMG, &reg) == 0) {
+    if (pci_find_cap(sc->pcidev, PCIY_PMG, &reg) == 0) {
         if (reg != 0) {
             BLOGD(sc, DBG_LOAD, "Found PM capability at 0x%04x\n", reg);
 
@@ -13639,7 +13578,7 @@ bxe_probe_pci_caps(struct bxe_adapter *sc)
     sc->devinfo.pcie_pcie_cap_reg = (uint16_t)reg;
 
     /* check if MSI capability is enabled */
-    if (pci_find_cap(sc->dev, PCIY_MSI, &reg) == 0) {
+    if (pci_find_cap(sc->pcidev, PCIY_MSI, &reg) == 0) {
         if (reg != 0) {
             BLOGD(sc, DBG_LOAD, "Found MSI capability at 0x%04x\n", reg);
 
@@ -13649,7 +13588,7 @@ bxe_probe_pci_caps(struct bxe_adapter *sc)
     }
 
     /* check if MSI-X capability is enabled */
-    if (pci_find_cap(sc->dev, PCIY_MSIX, &reg) == 0) {
+    if (pci_find_cap(sc->pcidev, PCIY_MSIX, &reg) == 0) {
         if (reg != 0) {
             BLOGD(sc, DBG_LOAD, "Found MSI-X capability at 0x%04x\n", reg);
 
@@ -14306,7 +14245,7 @@ bxe_media_detect(struct bxe_adapter *sc)
         break;
     }
 #endif
-    asset(0);
+    assert(0);
 }
 
 #define GET_FIELD(value, fname)                     \
@@ -14386,10 +14325,10 @@ bxe_get_device_info(struct bxe_adapter *sc)
     int rc;
 
     /* Get the data for the device */
-    sc->devinfo.vendor_id    = pci_get_vendor(sc->dev);
-    sc->devinfo.device_id    = pci_get_device(sc->dev);
-    sc->devinfo.subvendor_id = pci_get_subvendor(sc->dev);
-    sc->devinfo.subdevice_id = pci_get_subdevice(sc->dev);
+    sc->devinfo.vendor_id    = pci_get_vendor(sc->pcidev);
+    sc->devinfo.device_id    = pci_get_device(sc->pcidev);
+    sc->devinfo.subvendor_id = pci_get_subvendor(sc->pcidev);
+    sc->devinfo.subdevice_id = pci_get_subdevice(sc->pcidev);
 
     /* get the chip revision (chip metal comes from pci config space) */
     sc->devinfo.chip_id     =
@@ -14496,7 +14435,7 @@ bxe_get_device_info(struct bxe_adapter *sc)
     BLOGD(sc, DBG_LOAD, "mf_cfg_base=0x08%x \n", sc->devinfo.mf_cfg_base);
 
     /* clean indirect addresses as they're not used */
-    pci_write_config(sc->dev, PCICFG_GRC_ADDRESS, 0, 4);
+    pcidev_write32(sc->pcidev, PCICFG_GRC_ADDRESS, 0);
     if (IS_PF(sc)) {
         REG_WR(sc, PXP2_REG_PGL_ADDR_88_F0, 0);
         REG_WR(sc, PXP2_REG_PGL_ADDR_8C_F0, 0);
@@ -14535,10 +14474,9 @@ bxe_get_device_info(struct bxe_adapter *sc)
 
     if (sc->devinfo.pcie_msix_cap_reg != 0) {
        assert(0);
-//        val = pci_read_config(sc->dev,
+//        val = pcidev_read16(sc->pcidev,
 //                              (sc->devinfo.pcie_msix_cap_reg +
-//                               PCIR_MSIX_CTRL),
-//                              2);
+//                               PCIR_MSIX_CTRL));
 //        sc->igu_sb_cnt = (val & PCIM_MSIXCTRL_TABLE_SIZE);
     } else {
         sc->igu_sb_cnt = 1;
@@ -15038,7 +14976,7 @@ bxe_alloc_hsi_mem(struct bxe_adapter *sc)
     /* XXX zero out all vars here and call bxe_alloc_hsi_mem on error */
 #if 0
     /* allocate the parent bus DMA tag */
-    rc = bus_dma_tag_create(bus_get_dma_tag(sc->dev), /* parent tag */
+    rc = bus_dma_tag_create(bus_get_dma_tag(sc->pcidev), /* parent tag */
                             1,                        /* alignment */
                             0,                        /* boundary limit */
                             BUS_SPACE_MAXADDR,        /* restricted low */
@@ -15214,8 +15152,8 @@ bxe_alloc_hsi_mem(struct bxe_adapter *sc)
             /* point to the next page and wrap from last page */
             busaddr = (fp->tx_dma.paddr +
                        (BCM_PAGE_SIZE * (j % TX_BD_NUM_PAGES)));
-            tx_next_bd->addr_hi = htole32(U64_HI(busaddr));
-            tx_next_bd->addr_lo = htole32(U64_LO(busaddr));
+            tx_next_bd->addr_hi = cpu_to_le32(U64_HI(busaddr));
+            tx_next_bd->addr_lo = cpu_to_le32(U64_LO(busaddr));
         }
 
         /******************/
@@ -15240,8 +15178,8 @@ bxe_alloc_hsi_mem(struct bxe_adapter *sc)
             /* point to the next page and wrap from last page */
             busaddr = (fp->rx_dma.paddr +
                        (BCM_PAGE_SIZE * (j % RX_BD_NUM_PAGES)));
-            rx_bd->addr_hi = htole32(U64_HI(busaddr));
-            rx_bd->addr_lo = htole32(U64_LO(busaddr));
+            rx_bd->addr_hi = cpu_to_le32(U64_HI(busaddr));
+            rx_bd->addr_lo = cpu_to_le32(U64_LO(busaddr));
         }
 
         /*******************/
@@ -15267,8 +15205,8 @@ bxe_alloc_hsi_mem(struct bxe_adapter *sc)
             /* point to the next page and wrap from last page */
             busaddr = (fp->rcq_dma.paddr +
                        (BCM_PAGE_SIZE * (j % RCQ_NUM_PAGES)));
-            rx_cqe_next->addr_hi = htole32(U64_HI(busaddr));
-            rx_cqe_next->addr_lo = htole32(U64_LO(busaddr));
+            rx_cqe_next->addr_hi = cpu_to_le32(U64_HI(busaddr));
+            rx_cqe_next->addr_lo = cpu_to_le32(U64_LO(busaddr));
         }
 
         /*******************/
@@ -15293,8 +15231,8 @@ bxe_alloc_hsi_mem(struct bxe_adapter *sc)
             /* point to the next page and wrap from last page */
             busaddr = (fp->rx_sge_dma.paddr +
                        (BCM_PAGE_SIZE * (j % RX_SGE_NUM_PAGES)));
-            rx_sge->addr_hi = htole32(U64_HI(busaddr));
-            rx_sge->addr_lo = htole32(U64_LO(busaddr));
+            rx_sge->addr_hi = cpu_to_le32(U64_HI(busaddr));
+            rx_sge->addr_lo = cpu_to_le32(U64_LO(busaddr));
         }
 
         /***********************/
@@ -15730,8 +15668,7 @@ bxe_prev_is_path_marked(struct bxe_adapter *sc)
 {
     struct bxe_prev_list_node *tmp;
     int rc = FALSE;
-#warning "TODO: figure out bxe_prev_mtx"
-    //    mtx_lock(&bxe_prev_mtx);
+    qlock(&bxe_prev_mtx);
 
     tmp = bxe_prev_path_get_entry(sc);
     if (tmp) {
@@ -15747,7 +15684,7 @@ bxe_prev_is_path_marked(struct bxe_adapter *sc)
         }
     }
 
-    //    mtx_unlock(&bxe_prev_mtx);
+    qunlock(&bxe_prev_mtx);
 
     return (rc);
 }
@@ -15758,7 +15695,7 @@ bxe_prev_mark_path(struct bxe_adapter *sc,
 {
     struct bxe_prev_list_node *tmp;
 
-    //    mtx_lock(&bxe_prev_mtx);
+    qlock(&bxe_prev_mtx);
 
     /* Check whether the entry for this path already exists */
     tmp = bxe_prev_path_get_entry(sc);
@@ -15774,11 +15711,11 @@ bxe_prev_mark_path(struct bxe_adapter *sc,
             tmp->aer = 0;
         }
 
-       //        mtx_unlock(&bxe_prev_mtx);
+               qunlock(&bxe_prev_mtx);
         return (0);
     }
 
-    //    mtx_unlock(&bxe_prev_mtx);
+    qunlock(&bxe_prev_mtx);
 
     /* Create an entry for this path and add it */
     tmp = kmalloc(sizeof(struct bxe_prev_list_node), 0); //M_DEVBUF,
@@ -15794,14 +15731,14 @@ bxe_prev_mark_path(struct bxe_adapter *sc,
     tmp->aer  = 0;
     tmp->undi = after_undi ? (1 << SC_PORT(sc)) : 0;
 
-    //    mtx_lock(&bxe_prev_mtx);
+    qlock(&bxe_prev_mtx);
 
     BLOGD(sc, DBG_LOAD,
           "Marked path %d/%d/%d - finished previous unload\n",
           sc->pcie_bus, sc->pcie_device, SC_PATH(sc));
     //    LIST_INSERT_HEAD(&bxe_prev_list, tmp, node);
 
-    //    mtx_unlock(&bxe_prev_mtx);
+    qunlock(&bxe_prev_mtx);
 
     return (0);
 }
@@ -16211,7 +16148,7 @@ bxe_set_qm_cid_count(struct bxe_adapter *sc)
         cid_count += CNIC_CID_MAX;
     }
 
-    return (roundup(cid_count, QM_CID_ROUND));
+    return (ROUNDUP(cid_count, QM_CID_ROUND));
 }
 
 static void
@@ -16339,8 +16276,8 @@ bxe_add_sysctls(struct bxe_adapter *sc)
     uint32_t q_stat;
     int i, j;
 
-    ctx = device_get_sysctl_ctx(sc->dev);
-    children = SYSCTL_CHILDREN(device_get_sysctl_tree(sc->dev));
+    ctx = device_get_sysctl_ctx(sc->pcidev);
+    children = SYSCTL_CHILDREN(device_get_sysctl_tree(sc->pcidev));
 
     SYSCTL_ADD_STRING(ctx, children, OID_AUTO, "version",
                       CTLFLAG_RD, BXE_DRIVER_VERSION, 0,
@@ -16454,7 +16391,7 @@ bxe_attach(device_t dev)
 
     sc->state = BXE_STATE_CLOSED;
 
-    sc->dev  = dev;
+       // TODO: sc->pcidev  = /* SOMETHING */
     sc->unit = device_get_unit(dev);
 
     BLOGD(sc, DBG_LOAD, "softc = %p\n", sc);
@@ -16624,7 +16561,7 @@ bxe_detach(device_t dev)
     bxe_periodic_stop(sc);
 
     /* stop the chip taskqueue */
-    atomic_store_rel_long(&sc->chip_tq_flags, CHIP_TQ_NONE);
+    atomic_set(&sc->chip_tq_flags, CHIP_TQ_NONE);
     if (sc->chip_tq) {
         taskqueue_drain(sc->chip_tq, &sc->chip_tq_task);
         taskqueue_free(sc->chip_tq);
@@ -18940,4 +18877,3 @@ ecore_storm_memset_struct(struct bxe_adapter *sc,
         REG_WR(sc, addr + (i * 4), data[i]);
     }
 }
-