@@ -838,14 +838,13 @@ static uint64_t break_page_table(struct map_params *map_params, void *paddr,
838
838
return next_page_size ;
839
839
}
840
840
841
- static void modify_paging (struct map_params * map_params , void * paddr ,
841
+ static int modify_paging (struct map_params * map_params , void * paddr ,
842
842
void * vaddr , uint64_t size , uint32_t flags ,
843
843
enum mem_map_request_type request_type , bool direct )
844
844
{
845
845
int64_t remaining_size ;
846
846
uint64_t adjust_size ;
847
847
uint64_t attr ;
848
- int status = 0 ;
849
848
struct entry_params entry ;
850
849
uint64_t page_size ;
851
850
uint64_t vaddr_end = ((uint64_t )vaddr ) + size ;
@@ -862,9 +861,9 @@ static void modify_paging(struct map_params *map_params, void *paddr,
862
861
|| (map_params == NULL )) {
863
862
pr_err ("%s: vaddr=0x%llx size=0x%llx req_type=0x%lx" ,
864
863
__func__ , vaddr , size , request_type );
865
- status = - EINVAL ;
864
+ ASSERT (0 , "Incorrect Arguments" );
865
+ return - EINVAL ;
866
866
}
867
- ASSERT (status == 0 , "Incorrect Arguments" );
868
867
869
868
attr = config_page_table_attr (map_params , flags );
870
869
/* Loop until the entire block of memory is appropriately
@@ -912,43 +911,60 @@ static void modify_paging(struct map_params *map_params, void *paddr,
912
911
paddr += adjust_size ;
913
912
remaining_size -= adjust_size ;
914
913
}
914
+
915
+ return 0 ;
915
916
}
916
917
917
- void map_mem (struct map_params * map_params , void * paddr , void * vaddr ,
918
+ int map_mem (struct map_params * map_params , void * paddr , void * vaddr ,
918
919
uint64_t size , uint32_t flags )
919
920
{
921
+ int ret = 0 ;
922
+
920
923
/* used for MMU and EPT*/
921
- modify_paging (map_params , paddr , vaddr , size , flags ,
924
+ ret = modify_paging (map_params , paddr , vaddr , size , flags ,
922
925
PAGING_REQUEST_TYPE_MAP , true);
926
+ if (ret < 0 )
927
+ return ret ;
923
928
/* only for EPT */
924
929
if (map_params -> page_table_type == PTT_EPT ) {
925
- modify_paging (map_params , vaddr , paddr , size , flags ,
930
+ ret = modify_paging (map_params , vaddr , paddr , size , flags ,
926
931
PAGING_REQUEST_TYPE_MAP , false);
927
932
}
933
+ return ret ;
928
934
}
929
935
930
- void unmap_mem (struct map_params * map_params , void * paddr , void * vaddr ,
936
+ int unmap_mem (struct map_params * map_params , void * paddr , void * vaddr ,
931
937
uint64_t size , uint32_t flags )
932
938
{
939
+ int ret = 0 ;
940
+
933
941
/* used for MMU and EPT */
934
- modify_paging (map_params , paddr , vaddr , size , flags ,
942
+ ret = modify_paging (map_params , paddr , vaddr , size , flags ,
935
943
PAGING_REQUEST_TYPE_UNMAP , true);
944
+ if (ret < 0 )
945
+ return ret ;
936
946
/* only for EPT */
937
947
if (map_params -> page_table_type == PTT_EPT ) {
938
- modify_paging (map_params , vaddr , paddr , size , flags ,
948
+ ret = modify_paging (map_params , vaddr , paddr , size , flags ,
939
949
PAGING_REQUEST_TYPE_UNMAP , false);
940
950
}
951
+ return ret ;
941
952
}
942
953
943
- void modify_mem (struct map_params * map_params , void * paddr , void * vaddr ,
954
+ int modify_mem (struct map_params * map_params , void * paddr , void * vaddr ,
944
955
uint64_t size , uint32_t flags )
945
956
{
957
+ int ret = 0 ;
958
+
946
959
/* used for MMU and EPT*/
947
- modify_paging (map_params , paddr , vaddr , size , flags ,
960
+ ret = modify_paging (map_params , paddr , vaddr , size , flags ,
948
961
PAGING_REQUEST_TYPE_MODIFY , true);
962
+ if (ret < 0 )
963
+ return ret ;
949
964
/* only for EPT */
950
965
if (map_params -> page_table_type == PTT_EPT ) {
951
- modify_paging (map_params , vaddr , paddr , size , flags ,
966
+ ret = modify_paging (map_params , vaddr , paddr , size , flags ,
952
967
PAGING_REQUEST_TYPE_MODIFY , false);
953
968
}
969
+ return ret ;
954
970
}
0 commit comments