BNX2X: spatch changes for BUG and WARN
[akaros.git] / kern / drivers / net / bnx2x / bnx2x_cmn.h
index d62a218..2bf7413 100644 (file)
@@ -46,7 +46,7 @@ extern int bnx2x_num_queues;
 
 #define BNX2X_PCI_ALLOC(y, size)                                       \
 ({                                                                     \
-       void *x = dma_zalloc_coherent(&bp->pdev->dev, size, y, GFP_KERNEL); \
+       void *x = dma_zalloc_coherent(&bp->pdev->dev, size, y, KMALLOC_WAIT); \
        if (x)                                                          \
                DP(NETIF_MSG_HW,                                        \
                   "BNX2X_PCI_ALLOC: Physical %Lx Virtual %p\n",        \
@@ -55,7 +55,7 @@ extern int bnx2x_num_queues;
 })
 #define BNX2X_PCI_FALLOC(y, size)                                      \
 ({                                                                     \
-       void *x = dma_alloc_coherent(&bp->pdev->dev, size, y, GFP_KERNEL); \
+       void *x = dma_alloc_coherent(&bp->pdev->dev, size, y, KMALLOC_WAIT); \
        if (x) {                                                        \
                memset(x, 0xff, size);                                  \
                DP(NETIF_MSG_HW,                                        \
@@ -232,7 +232,7 @@ uint16_t bnx2x_get_mf_speed(struct bnx2x *bp);
  * @irq:               irq number
  * @dev_instance:      private instance
  */
-irqreturn_t bnx2x_msix_sp_int(int irq, void *dev_instance);
+void bnx2x_msix_sp_int(struct hw_trapframe *hw_tf, void *dev_instance);
 
 /**
  * bnx2x_interrupt - non MSI-X interrupt handler
@@ -240,7 +240,7 @@ irqreturn_t bnx2x_msix_sp_int(int irq, void *dev_instance);
  * @irq:               irq number
  * @dev_instance:      private instance
  */
-irqreturn_t bnx2x_interrupt(int irq, void *dev_instance);
+void bnx2x_interrupt(struct hw_trapframe *hw_tf, void *dev_instance);
 
 /**
  * bnx2x_cnic_notify - send command to cnic driver
@@ -457,7 +457,8 @@ void bnx2x_dcbx_init(struct bnx2x *bp, bool update_shmem);
  *
  * Currently only D0 and D3hot are supported.
  */
-int bnx2x_set_power_state(struct bnx2x *bp, pci_power_t state);
+//int bnx2x_set_power_state(struct bnx2x *bp, pci_power_t state);
+#define bnx2x_set_power_state(...)
 
 /**
  * bnx2x_update_max_mf_config - update MAX part of MF configuration in HW.
@@ -742,9 +743,9 @@ static inline uint16_t bnx2x_tx_avail(struct bnx2x *bp,
        used = SUB_S16(prod, cons);
 
 #ifdef BNX2X_STOP_ON_ERROR
-       WARN_ON(used < 0);
-       WARN_ON(used > txdata->tx_ring_size);
-       WARN_ON((txdata->tx_ring_size - used) > MAX_TX_AVAIL);
+       warn_on(used < 0);
+       warn_on(used > txdata->tx_ring_size);
+       warn_on((txdata->tx_ring_size - used) > MAX_TX_AVAIL);
 #endif
 
        return (int16_t)(txdata->tx_ring_size) - used;
@@ -790,8 +791,11 @@ static inline int bnx2x_has_rx_work(struct bnx2x_fastpath *fp)
  */
 static inline void bnx2x_tx_disable(struct bnx2x *bp)
 {
+panic("Not implemented");
+#if 0 // AKAROS_PORT
        netif_tx_disable(bp->dev);
        netif_carrier_off(bp->dev);
+#endif
 }
 
 static inline void bnx2x_free_rx_sge(struct bnx2x *bp,
@@ -808,7 +812,7 @@ static inline void bnx2x_free_rx_sge(struct bnx2x *bp,
 
        dma_unmap_page(&bp->pdev->dev, dma_unmap_addr(sw_buf, mapping),
                       SGE_PAGES, DMA_FROM_DEVICE);
-       __free_pages(page, PAGES_PER_SGE_SHIFT);
+       free_cont_pages(page, PAGES_PER_SGE_SHIFT);
 
        sw_buf->page = NULL;
        sge->addr_hi = 0;
@@ -817,28 +821,36 @@ static inline void bnx2x_free_rx_sge(struct bnx2x *bp,
 
 static inline void bnx2x_del_all_napi_cnic(struct bnx2x *bp)
 {
+panic("Not implemented");
+#if 0 // AKAROS_PORT
        int i;
 
        for_each_rx_queue_cnic(bp, i) {
                napi_hash_del(&bnx2x_fp(bp, i, napi));
                netif_napi_del(&bnx2x_fp(bp, i, napi));
        }
+#endif
 }
 
 static inline void bnx2x_del_all_napi(struct bnx2x *bp)
 {
+panic("Not implemented");
+#if 0 // AKAROS_PORT
        int i;
 
        for_each_eth_queue(bp, i) {
                napi_hash_del(&bnx2x_fp(bp, i, napi));
                netif_napi_del(&bnx2x_fp(bp, i, napi));
        }
+#endif
 }
 
 int bnx2x_set_int_mode(struct bnx2x *bp);
 
 static inline void bnx2x_disable_msi(struct bnx2x *bp)
 {
+panic("Not implemented");
+#if 0 // AKAROS_PORT
        if (bp->flags & USING_MSIX_FLAG) {
                pci_disable_msix(bp->pdev);
                bp->flags &= ~(USING_MSIX_FLAG | USING_SINGLE_MSIX_FLAG);
@@ -846,6 +858,7 @@ static inline void bnx2x_disable_msi(struct bnx2x *bp)
                pci_disable_msi(bp->pdev);
                bp->flags &= ~USING_MSI_FLAG;
        }
+#endif
 }
 
 static inline void bnx2x_clear_sge_mask_next_elems(struct bnx2x_fastpath *fp)
@@ -1059,7 +1072,7 @@ static inline uint8_t bnx2x_get_path_func_num(struct bnx2x *bp)
                }
        }
 
-       WARN_ON(!func_num);
+       warn_on(!func_num);
 
        return func_num;
 }
@@ -1181,26 +1194,26 @@ static inline bool bnx2x_wait_sp_comp(struct bnx2x *bp, unsigned long mask)
 
        while (tout--) {
                mb();
-               netif_addr_lock_bh(bp->dev);
+               qlock(&bp->dev->qlock);
                if (!(bp->sp_state & mask)) {
-                       netif_addr_unlock_bh(bp->dev);
+                       qunlock(&bp->dev->qlock);
                        return true;
                }
-               netif_addr_unlock_bh(bp->dev);
+               qunlock(&bp->dev->qlock);
 
                kthread_usleep(1000);
        }
 
        mb();
 
-       netif_addr_lock_bh(bp->dev);
+       qlock(&bp->dev->qlock);
        if (bp->sp_state & mask) {
                BNX2X_ERR("Filtering completion timed out. sp_state 0x%lx, mask 0x%lx\n",
                          bp->sp_state, mask);
-               netif_addr_unlock_bh(bp->dev);
+               qunlock(&bp->dev->qlock);
                return false;
        }
-       netif_addr_unlock_bh(bp->dev);
+       qunlock(&bp->dev->qlock);
 
        return true;
 }
@@ -1244,6 +1257,8 @@ static inline uint16_t bnx2x_extract_max_cfg(struct bnx2x *bp,
 /* checks if HW supports GRO for given MTU */
 static inline bool bnx2x_mtu_allows_gro(int mtu)
 {
+panic("Not implemented");
+#if 0 // AKAROS_PORT
        /* gro frags per page */
        int fpp = SGE_PAGE_SIZE / (mtu - ETH_MAX_TPA_HEADER_SIZE);
 
@@ -1252,6 +1267,7 @@ static inline bool bnx2x_mtu_allows_gro(int mtu)
         * 2. Frag must fit the page
         */
        return mtu <= SGE_PAGE_SIZE && (U_ETH_SGL_SIZE * fpp) <= MAX_SKB_FRAGS;
+#endif
 }
 
 /**