Blob Blame History Raw
From: David Gow <davidgow@google.com>
Date: Fri, 1 Jul 2022 17:16:19 +0800
Subject: mm: Add PAGE_ALIGN_DOWN macro
Git-commit: 335e52c28cf9954d65b819cb68912fd32de3c844
Patch-mainline: v6.0-rc1
References: jsc#PED-7167

This is just the same as PAGE_ALIGN(), but rounds the address down, not
up.

Suggested-by: Dmitry Vyukov <dvyukov@google.com>
Signed-off-by: David Gow <davidgow@google.com>
Acked-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Richard Weinberger <richard@nod.at>
Signed-off-by: Vlastimil Babka <vbabka@suse.cz>
---
 include/linux/mm.h |    3 +++
 1 file changed, 3 insertions(+)

--- a/include/linux/mm.h
+++ b/include/linux/mm.h
@@ -229,6 +229,9 @@ int __add_to_page_cache_locked(struct pa
 /* to align the pointer to the (next) page boundary */
 #define PAGE_ALIGN(addr) ALIGN(addr, PAGE_SIZE)
 
+/* to align the pointer to the (prev) page boundary */
+#define PAGE_ALIGN_DOWN(addr) ALIGN_DOWN(addr, PAGE_SIZE)
+
 /* test whether an address (unsigned long or pointer) is aligned to PAGE_SIZE */
 #define PAGE_ALIGNED(addr)	IS_ALIGNED((unsigned long)(addr), PAGE_SIZE)