]> git.karo-electronics.de Git - linux-beck.git/blobdiff - drivers/net/ethernet/broadcom/bnx2x/bnx2x_cmn.c
Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net
[linux-beck.git] / drivers / net / ethernet / broadcom / bnx2x / bnx2x_cmn.c
index 466b512cda4fdc0c9324c0f726f9e208d2dc548b..b8fbe266ab68f1619a18b7e49e9d6df19a5f0625 100644 (file)
@@ -1044,6 +1044,7 @@ static irqreturn_t bnx2x_msix_fp_int(int irq, void *fp_cookie)
        DP(NETIF_MSG_INTR,
           "got an MSI-X interrupt on IDX:SB [fp %d fw_sd %d igusb %d]\n",
           fp->index, fp->fw_sb_id, fp->igu_sb_id);
+
        bnx2x_ack_sb(bp, fp->igu_sb_id, USTORM_ID, 0, IGU_INT_DISABLE, 0);
 
 #ifdef BNX2X_STOP_ON_ERROR
@@ -1725,7 +1726,7 @@ static int bnx2x_req_irq(struct bnx2x *bp)
        return request_irq(irq, bnx2x_interrupt, flags, bp->dev->name, bp->dev);
 }
 
-static int bnx2x_setup_irqs(struct bnx2x *bp)
+int bnx2x_setup_irqs(struct bnx2x *bp)
 {
        int rc = 0;
        if (bp->flags & USING_MSIX_FLAG &&
@@ -2581,6 +2582,8 @@ int bnx2x_nic_load(struct bnx2x *bp, int load_mode)
                }
        }
 
+       bnx2x_pre_irq_nic_init(bp);
+
        /* Connect to IRQs */
        rc = bnx2x_setup_irqs(bp);
        if (rc) {
@@ -2590,11 +2593,11 @@ int bnx2x_nic_load(struct bnx2x *bp, int load_mode)
                LOAD_ERROR_EXIT(bp, load_error2);
        }
 
-       /* Setup NIC internals and enable interrupts */
-       bnx2x_nic_init(bp, load_code);
-
        /* Init per-function objects */
        if (IS_PF(bp)) {
+               /* Setup NIC internals and enable interrupts */
+               bnx2x_post_irq_nic_init(bp, load_code);
+
                bnx2x_init_bp_objs(bp);
                bnx2x_iov_nic_init(bp);