Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit ade91f8e authored by Amit Kumar Salecha's avatar Amit Kumar Salecha Committed by David S. Miller
Browse files

qlcnic: fix pci semaphore checks



Driver should not go ahead with fw recovery if fails to acquire
semaphore.

Signed-off-by: default avatarAmit Kumar Salecha <amit.salecha@qlogic.com>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent 6d2a4724
Loading
Loading
Loading
Loading
+7 −4
Original line number Diff line number Diff line
@@ -1949,8 +1949,8 @@ static void qlcnic_poll_controller(struct net_device *netdev)
}
#endif

static void
qlcnic_set_drv_state(struct qlcnic_adapter *adapter, int state)
static int
qlcnic_set_drv_state(struct qlcnic_adapter *adapter, u8 state)
{
	u32  val;

@@ -1958,7 +1958,7 @@ qlcnic_set_drv_state(struct qlcnic_adapter *adapter, int state)
			state != QLCNIC_DEV_NEED_QUISCENT);

	if (qlcnic_api_lock(adapter))
		return ;
		return -EIO;

	val = QLCRD32(adapter, QLCNIC_CRB_DRV_STATE);

@@ -1970,6 +1970,8 @@ qlcnic_set_drv_state(struct qlcnic_adapter *adapter, int state)
	QLCWR32(adapter, QLCNIC_CRB_DRV_STATE, val);

	qlcnic_api_unlock(adapter);

	return 0;
}

static int
@@ -2195,7 +2197,8 @@ qlcnic_detach_work(struct work_struct *work)
	if (adapter->temp == QLCNIC_TEMP_PANIC)
		goto err_ret;

	qlcnic_set_drv_state(adapter, adapter->dev_state);
	if (qlcnic_set_drv_state(adapter, adapter->dev_state))
		goto err_ret;

	adapter->fw_wait_cnt = 0;