diff options
| -rw-r--r-- | drivers/misc/habanalabs/mmu.c | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/drivers/misc/habanalabs/mmu.c b/drivers/misc/habanalabs/mmu.c index 2f2e99cb2743..3a5a2cec8305 100644 --- a/drivers/misc/habanalabs/mmu.c +++ b/drivers/misc/habanalabs/mmu.c | |||
| @@ -832,7 +832,7 @@ err: | |||
| 832 | int hl_mmu_map(struct hl_ctx *ctx, u64 virt_addr, u64 phys_addr, u32 page_size) | 832 | int hl_mmu_map(struct hl_ctx *ctx, u64 virt_addr, u64 phys_addr, u32 page_size) |
| 833 | { | 833 | { |
| 834 | struct hl_device *hdev = ctx->hdev; | 834 | struct hl_device *hdev = ctx->hdev; |
| 835 | u64 real_virt_addr; | 835 | u64 real_virt_addr, real_phys_addr; |
| 836 | u32 real_page_size, npages; | 836 | u32 real_page_size, npages; |
| 837 | int i, rc, mapped_cnt = 0; | 837 | int i, rc, mapped_cnt = 0; |
| 838 | 838 | ||
| @@ -857,14 +857,16 @@ int hl_mmu_map(struct hl_ctx *ctx, u64 virt_addr, u64 phys_addr, u32 page_size) | |||
| 857 | 857 | ||
| 858 | npages = page_size / real_page_size; | 858 | npages = page_size / real_page_size; |
| 859 | real_virt_addr = virt_addr; | 859 | real_virt_addr = virt_addr; |
| 860 | real_phys_addr = phys_addr; | ||
| 860 | 861 | ||
| 861 | for (i = 0 ; i < npages ; i++) { | 862 | for (i = 0 ; i < npages ; i++) { |
| 862 | rc = _hl_mmu_map(ctx, real_virt_addr, phys_addr, | 863 | rc = _hl_mmu_map(ctx, real_virt_addr, real_phys_addr, |
| 863 | real_page_size); | 864 | real_page_size); |
| 864 | if (rc) | 865 | if (rc) |
| 865 | goto err; | 866 | goto err; |
| 866 | 867 | ||
| 867 | real_virt_addr += real_page_size; | 868 | real_virt_addr += real_page_size; |
| 869 | real_phys_addr += real_page_size; | ||
| 868 | mapped_cnt++; | 870 | mapped_cnt++; |
| 869 | } | 871 | } |
| 870 | 872 | ||
