gpu: nvgpu: use deferred_fault_engines for resetting engines during unbind

Engine reset is skipped if channel is disassociated from the tsg.
During unbind, tsg is disassociated before calling deferred
engine reset. Hence any deferred resets don't work
actually.

Engines to be reset is already set in the variable
deferred_fault_engines. Use it.

Bug 200711183

Change-Id: I0c2bdcad1770e0ccd001c208a9ac0cf499a374e1
Signed-off-by: Sagar Kamble <skamble@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nvgpu/+/2521974
Reviewed-by: svc-mobile-coverity <svc-mobile-coverity@nvidia.com>
Reviewed-by: svc-mobile-misra <svc-mobile-misra@nvidia.com>
Reviewed-by: svc-mobile-cert <svc-mobile-cert@nvidia.com>
Reviewed-by: Antony Clince Alex <aalex@nvidia.com>
Reviewed-by: Deepak Nibade <dnibade@nvidia.com>
Reviewed-by: mobile promotions <svcmobile_promotions@nvidia.com>
GVS: Gerrit_Virtual_Submit
Tested-by: mobile promotions <svcmobile_promotions@nvidia.com>
This commit is contained in:
Sagar Kamble
2021-04-29 01:14:50 +05:30
committed by mobile promotions
parent 0d5bcdf28b
commit 668bd75c1a

View File

@@ -2267,6 +2267,7 @@ int nvgpu_channel_deferred_reset_engines(struct gk20a *g,
engines = nvgpu_engine_get_mask_on_id(g, tsg->tsgid, true); engines = nvgpu_engine_get_mask_on_id(g, tsg->tsgid, true);
} else { } else {
nvgpu_err(g, "chid: %d is not bound to tsg", ch->chid); nvgpu_err(g, "chid: %d is not bound to tsg", ch->chid);
engines = g->fifo.deferred_fault_engines;
} }
if (engines == 0U) { if (engines == 0U) {