[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[xen staging] xen/arm: mm: Add more ASSERT() in {destroy, modify}_xen_mappings()



commit 9b962e618313109882b6ca78cf1e09f43c9d6e62
Author:     Julien Grall <jgrall@xxxxxxxxxx>
AuthorDate: Sat Jul 16 15:37:57 2022 +0100
Commit:     Julien Grall <julien@xxxxxxx>
CommitDate: Sun Jul 17 14:10:08 2022 +0100

    xen/arm: mm: Add more ASSERT() in {destroy, modify}_xen_mappings()
    
    Both destroy_xen_mappings() and modify_xen_mappings() will take in
    parameter a range [start, end[. Both end should be page aligned.
    
    Add extra ASSERT() to ensure start and end are page aligned. Take the
    opportunity to rename 'v' to 's' to be consistent with the other helper.
    
    Signed-off-by: Julien Grall <jgrall@xxxxxxxxxx>
    Reviewed-by: Bertrand Marquis <bertrand.marquis@xxxxxxx>
    
    ----
        Changes in v2:
            - Also modify prototype. Note that on x86, the first parameter
              was not matching in the declaration and prototype.
            - Add Bertrand's reviewed-by
---
 xen/arch/arm/mm.c    | 10 +++++++---
 xen/include/xen/mm.h |  2 +-
 2 files changed, 8 insertions(+), 4 deletions(-)

diff --git a/xen/arch/arm/mm.c b/xen/arch/arm/mm.c
index 009b8cd9ef..9a2a29abe2 100644
--- a/xen/arch/arm/mm.c
+++ b/xen/arch/arm/mm.c
@@ -1368,14 +1368,18 @@ int populate_pt_range(unsigned long virt, unsigned long 
nr_mfns)
     return xen_pt_update(virt, INVALID_MFN, nr_mfns, _PAGE_POPULATE);
 }
 
-int destroy_xen_mappings(unsigned long v, unsigned long e)
+int destroy_xen_mappings(unsigned long s, unsigned long e)
 {
-    ASSERT(v <= e);
-    return xen_pt_update(v, INVALID_MFN, (e - v) >> PAGE_SHIFT, 0);
+    ASSERT(IS_ALIGNED(s, PAGE_SIZE));
+    ASSERT(IS_ALIGNED(e, PAGE_SIZE));
+    ASSERT(s <= e);
+    return xen_pt_update(s, INVALID_MFN, (e - s) >> PAGE_SHIFT, 0);
 }
 
 int modify_xen_mappings(unsigned long s, unsigned long e, unsigned int flags)
 {
+    ASSERT(IS_ALIGNED(s, PAGE_SIZE));
+    ASSERT(IS_ALIGNED(e, PAGE_SIZE));
     ASSERT(s <= e);
     return xen_pt_update(s, INVALID_MFN, (e - s) >> PAGE_SHIFT, flags);
 }
diff --git a/xen/include/xen/mm.h b/xen/include/xen/mm.h
index 3be754da92..6dee421bb8 100644
--- a/xen/include/xen/mm.h
+++ b/xen/include/xen/mm.h
@@ -101,7 +101,7 @@ int map_pages_to_xen(
     unsigned int flags);
 /* Alter the permissions of a range of Xen virtual address space. */
 int modify_xen_mappings(unsigned long s, unsigned long e, unsigned int flags);
-int destroy_xen_mappings(unsigned long v, unsigned long e);
+int destroy_xen_mappings(unsigned long s, unsigned long e);
 /* Retrieve the MFN mapped by VA in Xen virtual address space. */
 mfn_t xen_map_to_mfn(unsigned long va);
 
--
generated by git-patchbot for /home/xen/git/xen.git#staging



 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.