diff options
author | Michael Chan <mchan@broadcom.com> | 2010-05-18 11:32:52 +0000 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2010-05-18 15:16:44 -0700 |
commit | 1f1332a3cb7ac73e3bcff6ea42ff965c90a29d12 (patch) | |
tree | d0e3d63b8579831f2ad1ea6abdb9860f5f4893eb | |
parent | 57c8a456640fa3ca777652f11f2db4179a3e66b6 (diff) |
cnic: Convert cnic_local_flags to atomic ops.
It is easier to expand the flags for other purposes because it does
not require a spin_lock. The next bug fix patch needs a flag in
cnic_local_flags.
Signed-off-by: Michael Chan <mchan@broadcom.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
-rw-r--r-- | drivers/net/cnic.c | 6 | ||||
-rw-r--r-- | drivers/net/cnic.h | 5 |
2 files changed, 5 insertions, 6 deletions
diff --git a/drivers/net/cnic.c b/drivers/net/cnic.c index 4b08b18ca5d6..7c6d325b880a 100644 --- a/drivers/net/cnic.c +++ b/drivers/net/cnic.c @@ -1143,12 +1143,12 @@ static int cnic_submit_bnx2_kwqes(struct cnic_dev *dev, struct kwqe *wqes[], spin_lock_bh(&cp->cnic_ulp_lock); if (num_wqes > cnic_kwq_avail(cp) && - !(cp->cnic_local_flags & CNIC_LCL_FL_KWQ_INIT)) { + !test_bit(CNIC_LCL_FL_KWQ_INIT, &cp->cnic_local_flags)) { spin_unlock_bh(&cp->cnic_ulp_lock); return -EAGAIN; } - cp->cnic_local_flags &= ~CNIC_LCL_FL_KWQ_INIT; + clear_bit(CNIC_LCL_FL_KWQ_INIT, &cp->cnic_local_flags); prod = cp->kwq_prod_idx; sw_prod = prod & MAX_KWQ_IDX; @@ -3690,7 +3690,7 @@ static int cnic_start_bnx2_hw(struct cnic_dev *dev) cp->max_kwq_idx = MAX_KWQ_IDX; cp->kwq_prod_idx = 0; cp->kwq_con_idx = 0; - cp->cnic_local_flags |= CNIC_LCL_FL_KWQ_INIT; + set_bit(CNIC_LCL_FL_KWQ_INIT, &cp->cnic_local_flags); if (CHIP_NUM(cp) == CHIP_NUM_5706 || CHIP_NUM(cp) == CHIP_NUM_5708) cp->kwq_con_idx_ptr = &sblk->status_rx_quick_consumer_index15; diff --git a/drivers/net/cnic.h b/drivers/net/cnic.h index a0d853dff983..4422497249d1 100644 --- a/drivers/net/cnic.h +++ b/drivers/net/cnic.h @@ -179,9 +179,8 @@ struct cnic_local { #define ULP_F_CALL_PENDING 2 struct cnic_ulp_ops *ulp_ops[MAX_CNIC_ULP_TYPE]; - /* protected by ulp_lock */ - u32 cnic_local_flags; -#define CNIC_LCL_FL_KWQ_INIT 0x00000001 + unsigned long cnic_local_flags; +#define CNIC_LCL_FL_KWQ_INIT 0x0 struct cnic_dev *dev; |