habanalabs: don't init vm module if no MMU
authorOded Gabbay <ogabbay@kernel.org>
Sun, 4 Oct 2020 20:00:39 +0000 (23:00 +0300)
committerOded Gabbay <ogabbay@kernel.org>
Mon, 30 Nov 2020 08:47:28 +0000 (10:47 +0200)
In case we are running without MMU enabled (debug mode), no need to
initialize the VM module in the driver.

Signed-off-by: Oded Gabbay <ogabbay@kernel.org>
drivers/misc/habanalabs/common/memory.c

index 84227819e4d14d5d71064d902f20ae4e0dd876de..75dd1877186861ac0ec8fcd6cc1b58a4daa35a71 100644 (file)
@@ -1685,27 +1685,19 @@ int hl_vm_ctx_init(struct hl_ctx *ctx)
         *   In case of DRAM mapping, the returned address is the physical
         *   address of the memory related to the given handle.
         */
-       if (ctx->hdev->mmu_enable) {
-               dram_range_start = prop->dmmu.start_addr;
-               dram_range_end = prop->dmmu.end_addr;
-               host_range_start = prop->pmmu.start_addr;
-               host_range_end = prop->pmmu.end_addr;
-               host_huge_range_start = prop->pmmu_huge.start_addr;
-               host_huge_range_end = prop->pmmu_huge.end_addr;
-       } else {
-               dram_range_start = prop->dram_user_base_address;
-               dram_range_end = prop->dram_end_address;
-               host_range_start = prop->dram_user_base_address;
-               host_range_end = prop->dram_end_address;
-               host_huge_range_start = prop->dram_user_base_address;
-               host_huge_range_end = prop->dram_end_address;
-       }
+       if (!ctx->hdev->mmu_enable)
+               return 0;
+
+       dram_range_start = prop->dmmu.start_addr;
+       dram_range_end = prop->dmmu.end_addr;
+       host_range_start = prop->pmmu.start_addr;
+       host_range_end = prop->pmmu.end_addr;
+       host_huge_range_start = prop->pmmu_huge.start_addr;
+       host_huge_range_end = prop->pmmu_huge.end_addr;
 
        return vm_ctx_init_with_ranges(ctx, host_range_start, host_range_end,
-                                       host_huge_range_start,
-                                       host_huge_range_end,
-                                       dram_range_start,
-                                       dram_range_end);
+                               host_huge_range_start, host_huge_range_end,
+                               dram_range_start, dram_range_end);
 }
 
 /*
@@ -1737,6 +1729,9 @@ void hl_vm_ctx_fini(struct hl_ctx *ctx)
        struct hlist_node *tmp_node;
        int i;
 
+       if (!ctx->hdev->mmu_enable)
+               return;
+
        hl_debugfs_remove_ctx_mem_hash(hdev, ctx);
 
        /*