@@ -1034,30 +1034,6 @@ static void unmap_phys_pg_pack(struct hl_ctx *ctx, u64 vaddr,
10341034 }
10351035}
10361036
1037- static int get_paddr_from_handle (struct hl_ctx * ctx , struct hl_mem_in * args ,
1038- u64 * paddr )
1039- {
1040- struct hl_device * hdev = ctx -> hdev ;
1041- struct hl_vm * vm = & hdev -> vm ;
1042- struct hl_vm_phys_pg_pack * phys_pg_pack ;
1043- u32 handle ;
1044-
1045- handle = lower_32_bits (args -> map_device .handle );
1046- spin_lock (& vm -> idr_lock );
1047- phys_pg_pack = idr_find (& vm -> phys_pg_pack_handles , handle );
1048- if (!phys_pg_pack ) {
1049- spin_unlock (& vm -> idr_lock );
1050- dev_err (hdev -> dev , "no match for handle %u\n" , handle );
1051- return - EINVAL ;
1052- }
1053-
1054- * paddr = phys_pg_pack -> pages [0 ];
1055-
1056- spin_unlock (& vm -> idr_lock );
1057-
1058- return 0 ;
1059- }
1060-
10611037/**
10621038 * map_device_va() - map the given memory.
10631039 * @ctx: pointer to the context structure.
@@ -2094,76 +2070,6 @@ static int export_dmabuf_from_addr(struct hl_ctx *ctx, u64 addr, u64 size, u64 o
20942070 return rc ;
20952071}
20962072
2097- static int mem_ioctl_no_mmu (struct hl_fpriv * hpriv , union hl_mem_args * args )
2098- {
2099- struct hl_device * hdev = hpriv -> hdev ;
2100- u64 block_handle , device_addr = 0 ;
2101- struct hl_ctx * ctx = hpriv -> ctx ;
2102- u32 handle = 0 , block_size ;
2103- int rc ;
2104-
2105- switch (args -> in .op ) {
2106- case HL_MEM_OP_ALLOC :
2107- if (args -> in .alloc .mem_size == 0 ) {
2108- dev_err (hdev -> dev , "alloc size must be larger than 0\n" );
2109- rc = - EINVAL ;
2110- goto out ;
2111- }
2112-
2113- /* Force contiguous as there are no real MMU
2114- * translations to overcome physical memory gaps
2115- */
2116- args -> in .flags |= HL_MEM_CONTIGUOUS ;
2117- rc = alloc_device_memory (ctx , & args -> in , & handle );
2118-
2119- memset (args , 0 , sizeof (* args ));
2120- args -> out .handle = (__u64 ) handle ;
2121- break ;
2122-
2123- case HL_MEM_OP_FREE :
2124- rc = free_device_memory (ctx , & args -> in );
2125- break ;
2126-
2127- case HL_MEM_OP_MAP :
2128- if (args -> in .flags & HL_MEM_USERPTR ) {
2129- dev_err (hdev -> dev , "Failed to map host memory when MMU is disabled\n" );
2130- rc = - EPERM ;
2131- } else {
2132- rc = get_paddr_from_handle (ctx , & args -> in , & device_addr );
2133- memset (args , 0 , sizeof (* args ));
2134- args -> out .device_virt_addr = device_addr ;
2135- }
2136-
2137- break ;
2138-
2139- case HL_MEM_OP_UNMAP :
2140- rc = 0 ;
2141- break ;
2142-
2143- case HL_MEM_OP_MAP_BLOCK :
2144- rc = map_block (hdev , args -> in .map_block .block_addr , & block_handle , & block_size );
2145- args -> out .block_handle = block_handle ;
2146- args -> out .block_size = block_size ;
2147- break ;
2148-
2149- case HL_MEM_OP_EXPORT_DMABUF_FD :
2150- dev_err (hdev -> dev , "Failed to export dma-buf object when MMU is disabled\n" );
2151- rc = - EPERM ;
2152- break ;
2153-
2154- case HL_MEM_OP_TS_ALLOC :
2155- rc = allocate_timestamps_buffers (hpriv , & args -> in , & args -> out .handle );
2156- break ;
2157- default :
2158- dev_err (hdev -> dev , "Unknown opcode for memory IOCTL\n" );
2159- rc = - EINVAL ;
2160- break ;
2161- }
2162-
2163- out :
2164- return rc ;
2165- }
2166-
21672073static void ts_buff_release (struct hl_mmap_mem_buf * buf )
21682074{
21692075 struct hl_ts_buff * ts_buff = buf -> private ;
@@ -2282,9 +2188,6 @@ int hl_mem_ioctl(struct hl_fpriv *hpriv, void *data)
22822188 return - EBUSY ;
22832189 }
22842190
2285- if (!hdev -> mmu_enable )
2286- return mem_ioctl_no_mmu (hpriv , args );
2287-
22882191 switch (args -> in .op ) {
22892192 case HL_MEM_OP_ALLOC :
22902193 if (args -> in .alloc .mem_size == 0 ) {
@@ -2779,13 +2682,10 @@ int hl_vm_ctx_init(struct hl_ctx *ctx)
27792682 atomic64_set (& ctx -> dram_phys_mem , 0 );
27802683
27812684 /*
2782- * - If MMU is enabled, init the ranges as usual.
2783- * - If MMU is disabled, in case of host mapping, the returned address
2784- * is the given one.
27852685 * In case of DRAM mapping, the returned address is the physical
27862686 * address of the memory related to the given handle.
27872687 */
2788- if (! ctx -> hdev -> mmu_enable )
2688+ if (ctx -> hdev -> mmu_disable )
27892689 return 0 ;
27902690
27912691 dram_range_start = prop -> dmmu .start_addr ;
@@ -2835,7 +2735,7 @@ void hl_vm_ctx_fini(struct hl_ctx *ctx)
28352735 struct hl_mem_in args ;
28362736 int i ;
28372737
2838- if (! hdev -> mmu_enable )
2738+ if (hdev -> mmu_disable )
28392739 return ;
28402740
28412741 hl_debugfs_remove_ctx_mem_hash (hdev , ctx );
0 commit comments