cxgb4: Don't call t4_slow_intr_handler when we're not the Master PF
authorHariprasad Shenai <hariprasad@chelsio.com>
Tue, 14 Apr 2015 20:32:34 +0000 (02:02 +0530)
committerDavid S. Miller <davem@davemloft.net>
Tue, 14 Apr 2015 19:08:52 +0000 (15:08 -0400)
Signed-off-by: Hariprasad Shenai <hariprasad@chelsio.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/ethernet/chelsio/cxgb4/cxgb4_main.c
drivers/net/ethernet/chelsio/cxgb4/sge.c

index 24e10ea3d5efa64c5280348acd2eefa0f04205cc..6de0544041568fa002db03eda7fb5fe7f379442d 100644 (file)
@@ -724,7 +724,8 @@ static irqreturn_t t4_nondata_intr(int irq, void *cookie)
                adap->swintr = 1;
                t4_write_reg(adap, MYPF_REG(PL_PF_INT_CAUSE_A), v);
        }
-       t4_slow_intr_handler(adap);
+       if (adap->flags & MASTER_PF)
+               t4_slow_intr_handler(adap);
        return IRQ_HANDLED;
 }
 
index 1a31e40f0c2de7454879d5a2682b6bf616b79cb5..0d2eddab04efbf7b2a0e1054ea46848273c97933 100644 (file)
@@ -2238,7 +2238,8 @@ static irqreturn_t t4_intr_msi(int irq, void *cookie)
 {
        struct adapter *adap = cookie;
 
-       t4_slow_intr_handler(adap);
+       if (adap->flags & MASTER_PF)
+               t4_slow_intr_handler(adap);
        process_intrq(adap);
        return IRQ_HANDLED;
 }
@@ -2253,7 +2254,8 @@ static irqreturn_t t4_intr_intx(int irq, void *cookie)
        struct adapter *adap = cookie;
 
        t4_write_reg(adap, MYPF_REG(PCIE_PF_CLI_A), 0);
-       if (t4_slow_intr_handler(adap) | process_intrq(adap))
+       if (((adap->flags & MASTER_PF) && t4_slow_intr_handler(adap)) |
+           process_intrq(adap))
                return IRQ_HANDLED;
        return IRQ_NONE;             /* probably shared interrupt */
 }