|
@@ -259,7 +259,7 @@ int be_process_mcc(struct be_adapter *adapter)
|
|
|
int num = 0, status = 0;
|
|
|
struct be_mcc_obj *mcc_obj = &adapter->mcc_obj;
|
|
|
|
|
|
- spin_lock_bh(&adapter->mcc_cq_lock);
|
|
|
+ spin_lock(&adapter->mcc_cq_lock);
|
|
|
while ((compl = be_mcc_compl_get(adapter))) {
|
|
|
if (compl->flags & CQE_FLAGS_ASYNC_MASK) {
|
|
|
/* Interpret flags as an async trailer */
|
|
@@ -280,7 +280,7 @@ int be_process_mcc(struct be_adapter *adapter)
|
|
|
if (num)
|
|
|
be_cq_notify(adapter, mcc_obj->cq.id, mcc_obj->rearm_cq, num);
|
|
|
|
|
|
- spin_unlock_bh(&adapter->mcc_cq_lock);
|
|
|
+ spin_unlock(&adapter->mcc_cq_lock);
|
|
|
return status;
|
|
|
}
|
|
|
|
|
@@ -295,7 +295,9 @@ static int be_mcc_wait_compl(struct be_adapter *adapter)
|
|
|
if (be_error(adapter))
|
|
|
return -EIO;
|
|
|
|
|
|
+ local_bh_disable();
|
|
|
status = be_process_mcc(adapter);
|
|
|
+ local_bh_enable();
|
|
|
|
|
|
if (atomic_read(&mcc_obj->q.used) == 0)
|
|
|
break;
|