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>
This commit is contained in:
parent
57c8a45664
commit
1f1332a3cb
@ -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;
|
||||
|
@ -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;
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user