accel/habanalabs: prevent immediate hard reset due to 2 adjacent H/W events
authorTomer Tayar <ttayar@habana.ai>
Tue, 9 May 2023 10:51:59 +0000 (13:51 +0300)
committerOded Gabbay <ogabbay@kernel.org>
Mon, 9 Oct 2023 09:37:17 +0000 (12:37 +0300)
commit5d89ce6f8c2775b926b63c14529c5970429ea935
treed009028a7e857451d5e63a33f3c3114e2859ea9a
parent389af786f92ecdff35883551d54bf4e507ffcccb
accel/habanalabs: prevent immediate hard reset due to 2 adjacent H/W events

When a H/W event is received while a user is registered to events, no
immediate hard reset will happen, and instead the user will be notified
and will have some time to handle it and eventually release the
device, after which the reset will be done.
If a user, as part of the handling and as part of the cleanup steps
towards releasing the device, unregisters from receiving those events,
and at that time an adjacent H/W event is received, it will be assumed
that the user is not registered to events and thus an immediate hard
reset is required.

To prevent such an unwanted immediate reset, modify the driver to
perform it if the user is not registered to events AND we don't already
have a pending reset for a previous H/W event.

Signed-off-by: Tomer Tayar <ttayar@habana.ai>
Reviewed-by: Oded Gabbay <ogabbay@kernel.org>
Signed-off-by: Oded Gabbay <ogabbay@kernel.org>
drivers/accel/habanalabs/common/device.c