{
        static char buf[65];
        int present;
-       int i, j;
+       size_t i, j;
 
        for (i = 0, j = 0; i < ARRAY_SIZE(page_flag_names); i++) {
                present = (flags >> i) & 1;
 static char *page_flag_longname(uint64_t flags)
 {
        static char buf[1024];
-       int i, n;
+       size_t i, n;
 
        for (i = 0, n = 0; i < ARRAY_SIZE(page_flag_names); i++) {
                if (!page_flag_names[i])
 
 static void show_summary(void)
 {
-       int i;
+       size_t i;
 
        printf("             flags\tpage-count       MB"
                "  symbolic-flags\t\t\tlong-symbolic-flags\n");
 /* find the path to the mounted debugfs */
 static const char *debugfs_find_mountpoint(void)
 {
-       const char **ptr;
+       const char *const *ptr;
        char type[100];
        FILE *fp;
 
 
 static void debugfs_mount(void)
 {
-       const char **ptr;
+       const char *const *ptr;
 
        /* see if it's already mounted */
        if (debugfs_find_mountpoint())
  * page frame walker
  */
 
-static int hash_slot(uint64_t flags)
+static size_t hash_slot(uint64_t flags)
 {
-       int k = HASH_KEY(flags);
-       int i;
+       size_t k = HASH_KEY(flags);
+       size_t i;
 
        /* Explicitly reserve slot 0 for flags 0: the following logic
         * cannot distinguish an unoccupied slot from slot (flags==0).
 {
        uint64_t buf[KPAGEFLAGS_BATCH];
        unsigned long batch;
-       long pages;
+       unsigned long pages;
        unsigned long i;
 
        while (count) {
 
 static void usage(void)
 {
-       int i, j;
+       size_t i, j;
 
        printf(
 "page-types [options]\n"
 
 static uint64_t parse_flag_name(const char *str, int len)
 {
-       int i;
+       size_t i;
 
        if (!*str || !len)
                return 0;