From mboxrd@z Thu Jan 1 00:00:00 1970 Content-Type: multipart/mixed; boundary="===============3751447676814683827==" MIME-Version: 1.0 From: kernel test robot To: kbuild-all@lists.01.org Subject: Re: [PATCH v2 12/17] arch, drivers: replace for_each_membock() with for_each_mem_range() Date: Tue, 04 Aug 2020 01:19:38 +0800 Message-ID: <202008040103.TpxdnUIy%lkp@intel.com> In-Reply-To: <20200802163601.8189-13-rppt@kernel.org> List-Id: --===============3751447676814683827== Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Hi Mike, I love your patch! Perhaps something to improve: [auto build test WARNING on linus/master] [also build test WARNING on v5.8] [cannot apply to hnaz-linux-mm/master powerpc/next arm64/for-next/core next= -20200731] [If your patch is applied to the wrong git tree, kindly drop us a note. And when submitting patch, we suggest to use '--base' as documented in https://git-scm.com/docs/git-format-patch] url: https://github.com/0day-ci/linux/commits/Mike-Rapoport/memblock-sea= sonal-cleaning-w-cleanup/20200803-004031 base: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git = ac3a0c8472969a03c0496ae774b3a29eb26c8d5a compiler: or1k-linux-gcc (GCC) 9.3.0 If you fix the issue, kindly add following tag as appropriate Reported-by: kernel test robot cppcheck warnings: (new ones prefixed by >>) >> arch/openrisc/mm/init.c:125:10: warning: Uninitialized variable: region = [uninitvar] region->base, region->base + region->size); ^ vim +125 arch/openrisc/mm/init.c 61e85e367535a7b Jonas Bonn 2011-06-04 58 = 61e85e367535a7b Jonas Bonn 2011-06-04 59 /* 61e85e367535a7b Jonas Bonn 2011-06-04 60 * Map all physical me= mory into kernel's address space. 61e85e367535a7b Jonas Bonn 2011-06-04 61 * 61e85e367535a7b Jonas Bonn 2011-06-04 62 * This is explicitly = coded for two-level page tables, so if you need 61e85e367535a7b Jonas Bonn 2011-06-04 63 * something else then= this needs to change. 61e85e367535a7b Jonas Bonn 2011-06-04 64 */ 61e85e367535a7b Jonas Bonn 2011-06-04 65 static void __init map= _ram(void) 61e85e367535a7b Jonas Bonn 2011-06-04 66 { 860df8f8a56d7c5 Mike Rapoport 2020-08-02 67 phys_addr_t start, en= d; 61e85e367535a7b Jonas Bonn 2011-06-04 68 unsigned long v, p, e; 61e85e367535a7b Jonas Bonn 2011-06-04 69 pgprot_t prot; 61e85e367535a7b Jonas Bonn 2011-06-04 70 pgd_t *pge; b187fb7fca9cc42 Mike Rapoport 2020-06-04 71 p4d_t *p4e; 61e85e367535a7b Jonas Bonn 2011-06-04 72 pud_t *pue; 61e85e367535a7b Jonas Bonn 2011-06-04 73 pmd_t *pme; 61e85e367535a7b Jonas Bonn 2011-06-04 74 pte_t *pte; 860df8f8a56d7c5 Mike Rapoport 2020-08-02 75 u64 i; 61e85e367535a7b Jonas Bonn 2011-06-04 76 /* These mark extents= of read-only kernel pages... 61e85e367535a7b Jonas Bonn 2011-06-04 77 * ...from vmlinux.ld= s.S 61e85e367535a7b Jonas Bonn 2011-06-04 78 */ 61e85e367535a7b Jonas Bonn 2011-06-04 79 struct memblock_regio= n *region; 61e85e367535a7b Jonas Bonn 2011-06-04 80 = 61e85e367535a7b Jonas Bonn 2011-06-04 81 v =3D PAGE_OFFSET; 61e85e367535a7b Jonas Bonn 2011-06-04 82 = 860df8f8a56d7c5 Mike Rapoport 2020-08-02 83 for_each_mem_range(i,= &start, &end) { 860df8f8a56d7c5 Mike Rapoport 2020-08-02 84 p =3D (u32) start & = PAGE_MASK; 860df8f8a56d7c5 Mike Rapoport 2020-08-02 85 e =3D (u32) end; 61e85e367535a7b Jonas Bonn 2011-06-04 86 = 61e85e367535a7b Jonas Bonn 2011-06-04 87 v =3D (u32) __va(p); 61e85e367535a7b Jonas Bonn 2011-06-04 88 pge =3D pgd_offset_k= (v); 61e85e367535a7b Jonas Bonn 2011-06-04 89 = 61e85e367535a7b Jonas Bonn 2011-06-04 90 while (p < e) { 61e85e367535a7b Jonas Bonn 2011-06-04 91 int j; b187fb7fca9cc42 Mike Rapoport 2020-06-04 92 p4e =3D p4d_offset(= pge, v); b187fb7fca9cc42 Mike Rapoport 2020-06-04 93 pue =3D pud_offset(= p4e, v); 61e85e367535a7b Jonas Bonn 2011-06-04 94 pme =3D pmd_offset(= pue, v); 61e85e367535a7b Jonas Bonn 2011-06-04 95 = 61e85e367535a7b Jonas Bonn 2011-06-04 96 if ((u32) pue !=3D = (u32) pge || (u32) pme !=3D (u32) pge) { 61e85e367535a7b Jonas Bonn 2011-06-04 97 panic("%s: OR1K ke= rnel hardcoded for " 61e85e367535a7b Jonas Bonn 2011-06-04 98 "two-level p= age tables", 61e85e367535a7b Jonas Bonn 2011-06-04 99 __func__); 61e85e367535a7b Jonas Bonn 2011-06-04 100 } 61e85e367535a7b Jonas Bonn 2011-06-04 101 = 61e85e367535a7b Jonas Bonn 2011-06-04 102 /* Alloc one page f= or holding PTE's... */ fb054d0d91dbe3c Mike Rapoport 2019-03-11 103 pte =3D memblock_al= loc_raw(PAGE_SIZE, PAGE_SIZE); fb054d0d91dbe3c Mike Rapoport 2019-03-11 104 if (!pte) fb054d0d91dbe3c Mike Rapoport 2019-03-11 105 panic("%s: Failed = to allocate page for PTEs\n", fb054d0d91dbe3c Mike Rapoport 2019-03-11 106 __func__); 61e85e367535a7b Jonas Bonn 2011-06-04 107 set_pmd(pme, __pmd(= _KERNPG_TABLE + __pa(pte))); 61e85e367535a7b Jonas Bonn 2011-06-04 108 = 61e85e367535a7b Jonas Bonn 2011-06-04 109 /* Fill the newly a= llocated page with PTE'S */ f47706099bdb8c0 Stefan Kristiansson 2014-01-11 110 for (j =3D 0; p < e= && j < PTRS_PER_PTE; 61e85e367535a7b Jonas Bonn 2011-06-04 111 v +=3D PAGE_SI= ZE, p +=3D PAGE_SIZE, j++, pte++) { 61e85e367535a7b Jonas Bonn 2011-06-04 112 if (v >=3D (u32) _= e_kernel_ro || 61e85e367535a7b Jonas Bonn 2011-06-04 113 v < (u32) _s_k= ernel_ro) 61e85e367535a7b Jonas Bonn 2011-06-04 114 prot =3D PAGE_KER= NEL; 61e85e367535a7b Jonas Bonn 2011-06-04 115 else 61e85e367535a7b Jonas Bonn 2011-06-04 116 prot =3D PAGE_KER= NEL_RO; 61e85e367535a7b Jonas Bonn 2011-06-04 117 = 61e85e367535a7b Jonas Bonn 2011-06-04 118 set_pte(pte, mk_pt= e_phys(p, prot)); 61e85e367535a7b Jonas Bonn 2011-06-04 119 } 61e85e367535a7b Jonas Bonn 2011-06-04 120 = 61e85e367535a7b Jonas Bonn 2011-06-04 121 pge++; 61e85e367535a7b Jonas Bonn 2011-06-04 122 } 61e85e367535a7b Jonas Bonn 2011-06-04 123 = 61e85e367535a7b Jonas Bonn 2011-06-04 124 printk(KERN_INFO "%s= : Memory: 0x%x-0x%x\n", __func__, 61e85e367535a7b Jonas Bonn 2011-06-04 @125 region->base,= region->base + region->size); 61e85e367535a7b Jonas Bonn 2011-06-04 126 } 61e85e367535a7b Jonas Bonn 2011-06-04 127 } 61e85e367535a7b Jonas Bonn 2011-06-04 128 = --- 0-DAY CI Kernel Test Service, Intel Corporation https://lists.01.org/hyperkitty/list/kbuild-all(a)lists.01.org --===============3751447676814683827==--