]> git.karo-electronics.de Git - karo-tx-linux.git/blobdiff - drivers/net/ethernet/broadcom/bnx2x/bnx2x_sriov.c
Merge branch 'locking-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel...
[karo-tx-linux.git] / drivers / net / ethernet / broadcom / bnx2x / bnx2x_sriov.c
index 81cc2d9831c2192edcf414fa90dd4aa5962285aa..faf01488d26eb9d793a245ba8d31f611739c4695 100644 (file)
@@ -1650,9 +1650,9 @@ static
 void bnx2x_vf_handle_filters_eqe(struct bnx2x *bp,
                                 struct bnx2x_virtf *vf)
 {
-       smp_mb__before_clear_bit();
+       smp_mb__before_atomic();
        clear_bit(BNX2X_FILTER_RX_MODE_PENDING, &vf->filter_state);
-       smp_mb__after_clear_bit();
+       smp_mb__after_atomic();
 }
 
 static void bnx2x_vf_handle_rss_update_eqe(struct bnx2x *bp,
@@ -2695,7 +2695,7 @@ out:
                bnx2x_unlock_vf_pf_channel(bp, vf, CHANNEL_TLV_PF_SET_MAC);
        }
 
-       return 0;
+       return rc;
 }
 
 int bnx2x_set_vf_vlan(struct net_device *dev, int vfidx, u16 vlan, u8 qos)
@@ -2990,9 +2990,9 @@ void bnx2x_iov_task(struct work_struct *work)
 
 void bnx2x_schedule_iov_task(struct bnx2x *bp, enum bnx2x_iov_flag flag)
 {
-       smp_mb__before_clear_bit();
+       smp_mb__before_atomic();
        set_bit(flag, &bp->iov_task_state);
-       smp_mb__after_clear_bit();
+       smp_mb__after_atomic();
        DP(BNX2X_MSG_IOV, "Scheduling iov task [Flag: %d]\n", flag);
        queue_delayed_work(bnx2x_iov_wq, &bp->iov_task, 0);
 }