bnx2x: Fix compilation with no IOV support
authorYuval Mintz <yuvalmin@broadcom.com>
Mon, 24 Jun 2013 08:04:10 +0000 (11:04 +0300)
committerDavid S. Miller <davem@davemloft.net>
Mon, 24 Jun 2013 08:47:47 +0000 (01:47 -0700)
This fixes an issue caused by submit 78c3bcc5d1af64f51d9f30b0f5a2d1985bf69734
`bnx2x: Improve PF behaviour toward VF', which made the bnx2x driver fail
compilation when PCI_IOV is not set.

Signed-off-by: Yuval Mintz <yuvalmin@broadcom.com>
Signed-off-by: Ariel Elior <ariele@broadcom.com>
Signed-off-by: Eilon Greenstein <eilong@broadcom.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/ethernet/broadcom/bnx2x/bnx2x_main.c
drivers/net/ethernet/broadcom/bnx2x/bnx2x_sriov.c
drivers/net/ethernet/broadcom/bnx2x/bnx2x_sriov.h

index d468fe48093ad01f62078e4098e8ce8c215f8d73..73189888766d1704a00db9ddb6d58cd29b0b2862 100644 (file)
@@ -5457,18 +5457,8 @@ static void bnx2x_timer(unsigned long data)
                bnx2x_stats_handle(bp, STATS_EVENT_UPDATE);
 
        /* sample pf vf bulletin board for new posts from pf */
-       if (IS_VF(bp)) {
-               bnx2x_sample_bulletin(bp);
-
-               /* if channel is down we need to self destruct */
-               if (bp->old_bulletin.valid_bitmap & 1 << CHANNEL_DOWN) {
-                       smp_mb__before_clear_bit();
-                       set_bit(BNX2X_SP_RTNL_VFPF_CHANNEL_DOWN,
-                               &bp->sp_rtnl_state);
-                       smp_mb__after_clear_bit();
-                       schedule_delayed_work(&bp->sp_rtnl_task, 0);
-               }
-       }
+       if (IS_VF(bp))
+               bnx2x_timer_sriov(bp);
 
        mod_timer(&bp->timer, jiffies + bp->current_interval);
 }
index bda4d7e7fe7b2803fa148eda81c21065314fe9ed..95861efb505187f07bd1a176640e4f44af14a5de 100644 (file)
@@ -3426,6 +3426,20 @@ enum sample_bulletin_result bnx2x_sample_bulletin(struct bnx2x *bp)
        return PFVF_BULLETIN_UPDATED;
 }
 
+void bnx2x_timer_sriov(struct bnx2x *bp)
+{
+       bnx2x_sample_bulletin(bp);
+
+       /* if channel is down we need to self destruct */
+       if (bp->old_bulletin.valid_bitmap & 1 << CHANNEL_DOWN) {
+               smp_mb__before_clear_bit();
+               set_bit(BNX2X_SP_RTNL_VFPF_CHANNEL_DOWN,
+                       &bp->sp_rtnl_state);
+               smp_mb__after_clear_bit();
+               schedule_delayed_work(&bp->sp_rtnl_task, 0);
+       }
+}
+
 void __iomem *bnx2x_vf_doorbells(struct bnx2x *bp)
 {
        /* vf doorbells are embedded within the regview */
index 9fc029ed95478233d7ecb6df11d83edbcd05bde8..d143a7cdbbbedeb78fa831f1930f6228cfcc7e3d 100644 (file)
@@ -751,6 +751,7 @@ static inline int bnx2x_vf_ustorm_prods_offset(struct bnx2x *bp,
 }
 
 enum sample_bulletin_result bnx2x_sample_bulletin(struct bnx2x *bp);
+void bnx2x_timer_sriov(struct bnx2x *bp);
 void __iomem *bnx2x_vf_doorbells(struct bnx2x *bp);
 int bnx2x_vf_pci_alloc(struct bnx2x *bp);
 int bnx2x_enable_sriov(struct bnx2x *bp);
@@ -809,6 +810,7 @@ static inline enum sample_bulletin_result bnx2x_sample_bulletin(struct bnx2x *bp
 {
        return PFVF_BULLETIN_UNCHANGED;
 }
+static inline void bnx2x_timer_sriov(struct bnx2x *bp) {}
 
 static inline void __iomem *bnx2x_vf_doorbells(struct bnx2x *bp)
 {