| From 2d784019e6c0437d43a1f13e26ab8925e94e1a54 Mon Sep 17 00:00:00 2001 |
| From: Sasha Levin <sashal@kernel.org> |
| Date: Fri, 9 Jul 2021 00:06:47 +0300 |
| Subject: habanalabs: fix nullifying of destroyed mmu pgt pool |
| |
| From: Tomer Tayar <ttayar@habana.ai> |
| |
| [ Upstream commit 89aad770d692e4d2d9a604c1674e9dfa69421430 ] |
| |
| In case of host-resident MMU, when the page tables pool is destroyed, |
| its pointer is not nullified correctly. |
| As a result, on a device fini which happens after a failing reset, the |
| already destroyed pool is accessed, which leads to a kernel panic. |
| The patch fixes the setting of the pool pointer to NULL. |
| |
| Signed-off-by: Tomer Tayar <ttayar@habana.ai> |
| Reviewed-by: Oded Gabbay <ogabbay@kernel.org> |
| Signed-off-by: Oded Gabbay <ogabbay@kernel.org> |
| Signed-off-by: Sasha Levin <sashal@kernel.org> |
| --- |
| drivers/misc/habanalabs/common/mmu/mmu_v1.c | 12 ++++++------ |
| 1 file changed, 6 insertions(+), 6 deletions(-) |
| |
| diff --git a/drivers/misc/habanalabs/common/mmu/mmu_v1.c b/drivers/misc/habanalabs/common/mmu/mmu_v1.c |
| index c5e93ff32586..0f536f79dd9c 100644 |
| --- a/drivers/misc/habanalabs/common/mmu/mmu_v1.c |
| +++ b/drivers/misc/habanalabs/common/mmu/mmu_v1.c |
| @@ -470,13 +470,13 @@ static void hl_mmu_v1_fini(struct hl_device *hdev) |
| if (!ZERO_OR_NULL_PTR(hdev->mmu_priv.hr.mmu_shadow_hop0)) { |
| kvfree(hdev->mmu_priv.dr.mmu_shadow_hop0); |
| gen_pool_destroy(hdev->mmu_priv.dr.mmu_pgt_pool); |
| - } |
| |
| - /* Make sure that if we arrive here again without init was called we |
| - * won't cause kernel panic. This can happen for example if we fail |
| - * during hard reset code at certain points |
| - */ |
| - hdev->mmu_priv.dr.mmu_shadow_hop0 = NULL; |
| + /* Make sure that if we arrive here again without init was |
| + * called we won't cause kernel panic. This can happen for |
| + * example if we fail during hard reset code at certain points |
| + */ |
| + hdev->mmu_priv.dr.mmu_shadow_hop0 = NULL; |
| + } |
| } |
| |
| /** |
| -- |
| 2.33.0 |
| |