#define __flush_tlb_range_op(op, start, pages, stride,                 \
                                asid, tlb_level, tlbi_user, lpa2)       \
 do {                                                                   \
+       typeof(start) __flush_start = start;                            \
+       typeof(pages) __flush_pages = pages;                            \
        int num = 0;                                                    \
        int scale = 3;                                                  \
        int shift = lpa2 ? 16 : PAGE_SHIFT;                             \
        unsigned long addr;                                             \
                                                                        \
-       while (pages > 0) {                                             \
+       while (__flush_pages > 0) {                                     \
                if (!system_supports_tlb_range() ||                     \
-                   pages == 1 ||                                       \
-                   (lpa2 && start != ALIGN(start, SZ_64K))) {          \
-                       addr = __TLBI_VADDR(start, asid);               \
+                   __flush_pages == 1 ||                               \
+                   (lpa2 && __flush_start != ALIGN(__flush_start, SZ_64K))) {  \
+                       addr = __TLBI_VADDR(__flush_start, asid);       \
                        __tlbi_level(op, addr, tlb_level);              \
                        if (tlbi_user)                                  \
                                __tlbi_user_level(op, addr, tlb_level); \
-                       start += stride;                                \
-                       pages -= stride >> PAGE_SHIFT;                  \
+                       __flush_start += stride;                        \
+                       __flush_pages -= stride >> PAGE_SHIFT;          \
                        continue;                                       \
                }                                                       \
                                                                        \
-               num = __TLBI_RANGE_NUM(pages, scale);                   \
+               num = __TLBI_RANGE_NUM(__flush_pages, scale);           \
                if (num >= 0) {                                         \
-                       addr = __TLBI_VADDR_RANGE(start >> shift, asid, \
+                       addr = __TLBI_VADDR_RANGE(__flush_start >> shift, asid, \
                                                scale, num, tlb_level); \
                        __tlbi(r##op, addr);                            \
                        if (tlbi_user)                                  \
                                __tlbi_user(r##op, addr);               \
-                       start += __TLBI_RANGE_PAGES(num, scale) << PAGE_SHIFT; \
-                       pages -= __TLBI_RANGE_PAGES(num, scale);        \
+                       __flush_start += __TLBI_RANGE_PAGES(num, scale) << PAGE_SHIFT; \
+                       __flush_pages -= __TLBI_RANGE_PAGES(num, scale);\
                }                                                       \
                scale--;                                                \
        }                                                               \