[PATCH v1 2/2] mm/highmem: make nr_free_highpages() return "unsigned long"

David Hildenbrand
2024-06-07T08:37:35Z

It looks rather weird that totalhigh_pages() returns an
"unsigned long" but nr_free_highpages() returns an "unsigned int".

Let's return an "unsigned long" from nr_free_highpages() to be
consistent.

While at it, use a plain "0" instead of a "0UL" in the !CONFIG_HIGHMEM
totalhigh_pages() implementation, to make these look alike as well.

Signed-off-by: David Hildenbrand <david@redhat.com>
---
include/linux/highmem-internal.h | 8 ++++----
include/linux/highmem.h | 2 +-
mm/highmem.c | 4 ++--
3 files changed, 7 insertions(+), 7 deletions(-)

diff --git a/include/linux/highmem-internal.h b/include/linux/highmem-internal.h
index 65f865fbbac04..dd100e849f5e0 100644
--- a/include/linux/highmem-internal.h
+++ b/include/linux/highmem-internal.h
@@ -131,10 +131,10 @@ static inline void __kunmap_atomic(const void *addr)
preempt_enable();
}

-unsigned int __nr_free_highpages(void);
+unsigned long __nr_free_highpages(void);
unsigned long __totalhigh_pages(void);

-static inline unsigned int nr_free_highpages(void)
+static inline unsigned long nr_free_highpages(void)
{
return __nr_free_highpages();
}
@@ -234,8 +234,8 @@ static inline void __kunmap_atomic(const void *addr)
preempt_enable();
}

-static inline unsigned int nr_free_highpages(void) { return 0; }
-static inline unsigned long totalhigh_pages(void) { return 0UL; }
+static inline unsigned long nr_free_highpages(void) { return 0; }
+static inline unsigned long totalhigh_pages(void) { return 0; }

static inline bool is_kmap_addr(const void *x)
{
diff --git a/include/linux/highmem.h b/include/linux/highmem.h
index 6b0d6f3c8580c..930a591b9b616 100644
--- a/include/linux/highmem.h
+++ b/include/linux/highmem.h
@@ -179,7 +179,7 @@ static inline void *kmap_local_folio(struct folio *folio, size_t offset);
static inline void *kmap_atomic(struct page *page);

/* Highmem related interfaces for management code */
-static inline unsigned int nr_free_highpages(void);
+static inline unsigned long nr_free_highpages(void);
static inline unsigned long totalhigh_pages(void);

#ifndef ARCH_HAS_FLUSH_ANON_PAGE
diff --git a/mm/highmem.c b/mm/highmem.c
index 3c4e9f8c26dcd..1ece1e69031e7 100644
--- a/mm/highmem.c
+++ b/mm/highmem.c
@@ -111,10 +111,10 @@ static inline wait_queue_head_t *get_pkmap_wait_queue_head(unsigned int color)
}
#endif

-unsigned int __nr_free_highpages(void)
+unsigned long __nr_free_highpages(void)
{
+ unsigned long pages = 0;
struct zone *zone;
- unsigned int pages = 0;

for_each_populated_zone(zone) {
if (is_highmem(zone))
--
2.45.1