Improve the readability by replacing the custom aligning logic with
ALIGN_DOWN(). Unlike other places where a similar sequence is used,
there is no size parameter that needs to be adjusted, so the standard
macro fits.

Reviewed-by: Alexander Potapenko <gli...@google.com>
Signed-off-by: Ilya Leoshkevich <i...@linux.ibm.com>
---
 mm/kmsan/shadow.c | 8 +++-----
 1 file changed, 3 insertions(+), 5 deletions(-)

diff --git a/mm/kmsan/shadow.c b/mm/kmsan/shadow.c
index 2d57408c78ae..9c58f081d84f 100644
--- a/mm/kmsan/shadow.c
+++ b/mm/kmsan/shadow.c
@@ -123,14 +123,12 @@ struct shadow_origin_ptr kmsan_get_shadow_origin_ptr(void 
*address, u64 size,
  */
 void *kmsan_get_metadata(void *address, bool is_origin)
 {
-       u64 addr = (u64)address, pad, off;
+       u64 addr = (u64)address, off;
        struct page *page;
        void *ret;
 
-       if (is_origin && !IS_ALIGNED(addr, KMSAN_ORIGIN_SIZE)) {
-               pad = addr % KMSAN_ORIGIN_SIZE;
-               addr -= pad;
-       }
+       if (is_origin)
+               addr = ALIGN_DOWN(addr, KMSAN_ORIGIN_SIZE);
        address = (void *)addr;
        if (kmsan_internal_is_vmalloc_addr(address) ||
            kmsan_internal_is_module_addr(address))
-- 
2.45.1


Reply via email to