]> git.baikalelectronics.ru Git - kernel.git/commit
habanalabs: complete user context cleanup before hard reset
authorOmer Shpigelman <oshpigelman@habana.ai>
Wed, 13 Mar 2019 11:36:28 +0000 (13:36 +0200)
committerOded Gabbay <oded.gabbay@gmail.com>
Wed, 13 Mar 2019 11:36:28 +0000 (13:36 +0200)
commit01f8343071ab47ca086475396bde0de51547afd7
treebafe49399cb3acc158e5799f3a9008f2baf1b172
parent9894bdf1e6e33fc1f85608b5b8d807e6621d88b9
habanalabs: complete user context cleanup before hard reset

This patch fixes a bug which led to a crash during hard reset flow.
Before a hard reset is executed, we wait a few seconds for the user
context cleanup to complete.
If it wasn't completed, we kill the user process and move on to the reset
flow.
Upon killing the user process, the context cleanup flow begins and may
take a while due to MMU unmaps.
Meanwhile, in the driver reset flow, we change the PCI DRAM bar location
which can interfere with the MMU that uses the bar.
If the context cleanup flow didn't finish quickly, a crash may occur due
to PCI DRAM bar mislocation during the MMU unmap.
Hence adding a wait between killing the user process and the start of the
reset flow.

Signed-off-by: Omer Shpigelman <oshpigelman@habana.ai>
Signed-off-by: Oded Gabbay <oded.gabbay@gmail.com>
drivers/misc/habanalabs/device.c