habanalabs: fix race between soft reset and heartbeat
authorKoby Elbaz <kelbaz@habana.ai>
Tue, 6 Jul 2021 17:50:33 +0000 (20:50 +0300)
committerOded Gabbay <ogabbay@kernel.org>
Sun, 29 Aug 2021 06:47:47 +0000 (09:47 +0300)
commit8bb8b505761238be0d6a83dc41188867d65e5d4c
tree4a3b984663e2ea092c86cde20733afd557d7291c
parentae2021d320e9b454ca4ea7b32fdf1d111d3902c4
habanalabs: fix race between soft reset and heartbeat

There is a scenario where an ongoing soft reset would race with an
ongoing heartbeat routine, eventually causing heartbeat to fail and
thus to escalate into a hard reset.

With this fix, soft-reset procedure will disable heartbeat CPU messages
and flush the (ongoing) current one before continuing with reset code.

Signed-off-by: Koby Elbaz <kelbaz@habana.ai>
Reviewed-by: Oded Gabbay <ogabbay@kernel.org>
Signed-off-by: Oded Gabbay <ogabbay@kernel.org>
drivers/misc/habanalabs/common/device.c
drivers/misc/habanalabs/common/firmware_if.c
drivers/misc/habanalabs/common/habanalabs.h
drivers/misc/habanalabs/common/hw_queue.c