qcacld-3.0: Do not block vdev trans if recovery in progress
Currently if SSR happens and at the same time if driver gets del virtual interface which is a vdev transition, it bloks this vdev transition and queues into dsc queue assuming that it will execute once SSR completes. There is an issue with above assumption, del virtual interface comes with rtnl lock held which may lead for other processes to misbehave which are waiting for rtnl lock. in current case kernel is waiting for rtnl lock to send shutdown to driver as part of the SSR and this rtnl lock is held by del virtual interface which is waiting inside dsc queue for SSR to complete, this leads to the deadlock. To address above issue, do not insert the vdev transintion in dsc queue in case of SSR and return the failure instead. Change-Id: I19c897d68086d885f340d35c686badb70601076a CRs-Fixed: 2730903
This commit is contained in:

committed by
snandini

parent
3cceff7853
commit
4b436bcbc3
@@ -284,8 +284,8 @@ static uint32_t dsc_test_psoc_trans_blocks(void)
|
||||
*/
|
||||
cds_set_recovery_in_progress(true);
|
||||
dsc_for_each_psoc_vdev(psoc, vdev) {
|
||||
action_expect(vdev, trans, QDF_STATUS_E_AGAIN, errors);
|
||||
action_expect(vdev, op, QDF_STATUS_E_AGAIN, errors);
|
||||
action_expect(vdev, trans, QDF_STATUS_E_INVAL, errors);
|
||||
action_expect(vdev, op, QDF_STATUS_E_INVAL, errors);
|
||||
}
|
||||
cds_set_recovery_in_progress(false);
|
||||
|
||||
|
Reference in New Issue
Block a user