[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-devel] [PATCH] xen: Introduce IS_ALIGNED()
And a few open-coded alignment checks which I encountered Signed-off-by: Andrew Cooper <andrew.cooper3@xxxxxxxxxx> --- CC: Jan Beulich <JBeulich@xxxxxxxx> CC: Tim Deegan <tim@xxxxxxx> CC: Ian Campbell <Ian.Campbell@xxxxxxxxxx> --- xen/arch/x86/mm.c | 8 ++++---- xen/arch/x86/xen.lds.S | 2 +- xen/include/xen/config.h | 2 ++ xen/include/xen/tmem_xen.h | 3 +-- 4 files changed, 8 insertions(+), 7 deletions(-) diff --git a/xen/arch/x86/mm.c b/xen/arch/x86/mm.c index ea3f9f2..d6aaed8 100644 --- a/xen/arch/x86/mm.c +++ b/xen/arch/x86/mm.c @@ -5957,8 +5957,8 @@ void destroy_xen_mappings(unsigned long s, unsigned long e) unsigned int i; unsigned long v = s; - ASSERT((s & ~PAGE_MASK) == 0); - ASSERT((e & ~PAGE_MASK) == 0); + ASSERT(IS_ALIGNED(s, PAGE_SIZE)); + ASSERT(IS_ALIGNED(e, PAGE_SIZE)); while ( v < e ) { @@ -6369,8 +6369,8 @@ static void __memguard_change_range(void *p, unsigned long l, int guard) unsigned int flags = __PAGE_HYPERVISOR_RW | MAP_SMALL_PAGES; /* Ensure we are dealing with a page-aligned whole number of pages. */ - ASSERT((_p&~PAGE_MASK) == 0); - ASSERT((_l&~PAGE_MASK) == 0); + ASSERT(IS_ALIGNED(_p, PAGE_SIZE)); + ASSERT(IS_ALIGNED(_l, PAGE_SIZE)); if ( guard ) flags &= ~_PAGE_PRESENT; diff --git a/xen/arch/x86/xen.lds.S b/xen/arch/x86/xen.lds.S index 3b199ca..9fde1db 100644 --- a/xen/arch/x86/xen.lds.S +++ b/xen/arch/x86/xen.lds.S @@ -229,4 +229,4 @@ ASSERT(__image_base__ > XEN_VIRT_START || ASSERT(kexec_reloc_size - kexec_reloc <= PAGE_SIZE, "kexec_reloc is too large") #endif -ASSERT((cpu0_stack & (STACK_SIZE - 1)) == 0, "cpu0_stack misaligned") +ASSERT(IS_ALIGNED(cpu0_stack, STACK_SIZE), "cpu0_stack misaligned") diff --git a/xen/include/xen/config.h b/xen/include/xen/config.h index a992933..bd78176 100644 --- a/xen/include/xen/config.h +++ b/xen/include/xen/config.h @@ -74,6 +74,8 @@ #define MB(_mb) (_AC(_mb, ULL) << 20) #define GB(_gb) (_AC(_gb, ULL) << 30) +#define IS_ALIGNED(val, align) (((val) & ((align) - 1)) == 0) + #define __STR(...) #__VA_ARGS__ #define STR(...) __STR(__VA_ARGS__) diff --git a/xen/include/xen/tmem_xen.h b/xen/include/xen/tmem_xen.h index 0fdbf68..c770f3e 100644 --- a/xen/include/xen/tmem_xen.h +++ b/xen/include/xen/tmem_xen.h @@ -23,8 +23,7 @@ #endif typedef uint32_t pagesize_t; /* like size_t, must handle largest PAGE_SIZE */ -#define IS_PAGE_ALIGNED(addr) \ - ((void *)((((unsigned long)addr + (PAGE_SIZE - 1)) & PAGE_MASK)) == addr) +#define IS_PAGE_ALIGNED(addr) IS_ALIGNED((unsigned long)(addr), PAGE_SIZE) #define IS_VALID_PAGE(_pi) ( mfn_valid(page_to_mfn(_pi)) ) extern struct page_list_head tmem_page_list; -- 2.1.4 _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx http://lists.xen.org/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |