forked from Minki/linux
qlcnic: fix pci semaphore checks
Driver should not go ahead with fw recovery if fails to acquire semaphore. Signed-off-by: Amit Kumar Salecha <amit.salecha@qlogic.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
6d2a47241f
commit
ade91f8ec9
@ -1949,8 +1949,8 @@ static void qlcnic_poll_controller(struct net_device *netdev)
|
|||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
static void
|
static int
|
||||||
qlcnic_set_drv_state(struct qlcnic_adapter *adapter, int state)
|
qlcnic_set_drv_state(struct qlcnic_adapter *adapter, u8 state)
|
||||||
{
|
{
|
||||||
u32 val;
|
u32 val;
|
||||||
|
|
||||||
@ -1958,7 +1958,7 @@ qlcnic_set_drv_state(struct qlcnic_adapter *adapter, int state)
|
|||||||
state != QLCNIC_DEV_NEED_QUISCENT);
|
state != QLCNIC_DEV_NEED_QUISCENT);
|
||||||
|
|
||||||
if (qlcnic_api_lock(adapter))
|
if (qlcnic_api_lock(adapter))
|
||||||
return ;
|
return -EIO;
|
||||||
|
|
||||||
val = QLCRD32(adapter, QLCNIC_CRB_DRV_STATE);
|
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);
|
QLCWR32(adapter, QLCNIC_CRB_DRV_STATE, val);
|
||||||
|
|
||||||
qlcnic_api_unlock(adapter);
|
qlcnic_api_unlock(adapter);
|
||||||
|
|
||||||
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
static int
|
static int
|
||||||
@ -2195,7 +2197,8 @@ qlcnic_detach_work(struct work_struct *work)
|
|||||||
if (adapter->temp == QLCNIC_TEMP_PANIC)
|
if (adapter->temp == QLCNIC_TEMP_PANIC)
|
||||||
goto err_ret;
|
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;
|
adapter->fw_wait_cnt = 0;
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user