diff options
Diffstat (limited to 'drivers/net/ethernet/emulex/benet/be_cmds.c')
| -rw-r--r-- | drivers/net/ethernet/emulex/benet/be_cmds.c | 6 | 
1 files changed, 4 insertions, 2 deletions
diff --git a/drivers/net/ethernet/emulex/benet/be_cmds.c b/drivers/net/ethernet/emulex/benet/be_cmds.c index 7fac97b4bb5..8c63d06ab12 100644 --- a/drivers/net/ethernet/emulex/benet/be_cmds.c +++ b/drivers/net/ethernet/emulex/benet/be_cmds.c @@ -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;  |