tree: https://github.com/ammarfaizi2/linux-block akpm/mm/mm-unstable head: 977bde1f5ffd252e0d4c270bc5c9489280686788 commit: 977bde1f5ffd252e0d4c270bc5c9489280686788 [63/63] highmem: fix kmap_to_page() for kmap_local_page() addresses compiler: nios2-linux-gcc (GCC) 12.1.0 reproduce (cppcheck warning): # apt-get install cppcheck git checkout 977bde1f5ffd252e0d4c270bc5c9489280686788 cppcheck --quiet --enable=style,performance,portability --template=gcc FILE If you fix the issue, kindly add following tag where applicable | Reported-by: kernel test robot <lkp@xxxxxxxxx> cppcheck warnings: (new ones prefixed by >>) >> mm/highmem.c:164:7: warning: Local variable 'i' shadows outer variable [shadowVariable] int i = PKMAP_NR(addr); ^ mm/highmem.c:159:6: note: Shadowed declaration int i; ^ mm/highmem.c:164:7: note: Shadow variable int i = PKMAP_NR(addr); ^ cppcheck possible warnings: (new ones prefixed by >>, may not real problems) mm/highmem.c:759:13: warning: Uninitialized variable: pam->page [uninitvar] if (pam->page == page) { ^ mm/highmem.c:796:13: warning: Uninitialized variable: pam->page [uninitvar] if (pam->page == page) { ^ vim +/i +164 mm/highmem.c 3297e760776af1 Nicolas Pitre 2009-03-04 153 13f876ba77ebd5 Thomas Gleixner 2020-11-03 154 struct page *__kmap_to_page(void *vaddr) 5a178119b0fbe3 Mel Gorman 2012-07-31 155 { 977bde1f5ffd25 Ira Weiny 2022-10-05 156 unsigned long base = (unsigned long) vaddr & PAGE_MASK; 977bde1f5ffd25 Ira Weiny 2022-10-05 157 struct kmap_ctrl *kctrl = ¤t->kmap_ctrl; 5a178119b0fbe3 Mel Gorman 2012-07-31 158 unsigned long addr = (unsigned long)vaddr; 977bde1f5ffd25 Ira Weiny 2022-10-05 159 int i; 5a178119b0fbe3 Mel Gorman 2012-07-31 160 977bde1f5ffd25 Ira Weiny 2022-10-05 161 /* kmap() mappings */ 977bde1f5ffd25 Ira Weiny 2022-10-05 162 if (WARN_ON_ONCE(addr >= PKMAP_ADDR(0) && 977bde1f5ffd25 Ira Weiny 2022-10-05 163 addr < PKMAP_ADDR(LAST_PKMAP))) { 4de22c0584fb05 Joonsoo Kim 2012-12-11 @164 int i = PKMAP_NR(addr); 9727688dbf7ea9 songqiang 2021-05-04 165 5a178119b0fbe3 Mel Gorman 2012-07-31 166 return pte_page(pkmap_page_table[i]); 5a178119b0fbe3 Mel Gorman 2012-07-31 167 } 5a178119b0fbe3 Mel Gorman 2012-07-31 168 977bde1f5ffd25 Ira Weiny 2022-10-05 169 /* kmap_local_page() mappings */ 977bde1f5ffd25 Ira Weiny 2022-10-05 170 if (WARN_ON_ONCE(base >= __fix_to_virt(FIX_KMAP_END) && 977bde1f5ffd25 Ira Weiny 2022-10-05 171 base < __fix_to_virt(FIX_KMAP_BEGIN))) { 977bde1f5ffd25 Ira Weiny 2022-10-05 172 for (i = 0; i < kctrl->idx; i++) { 977bde1f5ffd25 Ira Weiny 2022-10-05 173 unsigned long base_addr; 977bde1f5ffd25 Ira Weiny 2022-10-05 174 int idx; 977bde1f5ffd25 Ira Weiny 2022-10-05 175 977bde1f5ffd25 Ira Weiny 2022-10-05 176 idx = arch_kmap_local_map_idx(i, pte_pfn(pteval)); 977bde1f5ffd25 Ira Weiny 2022-10-05 177 base_addr = __fix_to_virt(FIX_KMAP_BEGIN + idx); 977bde1f5ffd25 Ira Weiny 2022-10-05 178 977bde1f5ffd25 Ira Weiny 2022-10-05 179 if (base_addr == base) 977bde1f5ffd25 Ira Weiny 2022-10-05 180 return pte_page(kctrl->pteval[i]); 977bde1f5ffd25 Ira Weiny 2022-10-05 181 } 977bde1f5ffd25 Ira Weiny 2022-10-05 182 } 977bde1f5ffd25 Ira Weiny 2022-10-05 183 259ecb34e2cd73 Linus Walleij 2022-06-30 184 return virt_to_page(vaddr); 5a178119b0fbe3 Mel Gorman 2012-07-31 185 } 13f876ba77ebd5 Thomas Gleixner 2020-11-03 186 EXPORT_SYMBOL(__kmap_to_page); 5a178119b0fbe3 Mel Gorman 2012-07-31 187 :::::: The code at line 164 was first introduced by commit :::::: 4de22c0584fb0566487b2cba5cdfbce346b18402 mm, highmem: use PKMAP_NR() to calculate an index of pkmap :::::: TO: Joonsoo Kim <js1304@xxxxxxxxx> :::::: CC: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx> -- 0-DAY CI Kernel Test Service https://01.org/lkp