On Mon, Aug 05, 2024 at 03:37:20PM +0000, Wei Yang wrote: > On Mon, Aug 05, 2024 at 01:03:14PM +0300, Mike Rapoport wrote: > >On Fri, Aug 02, 2024 at 01:09:19AM +0000, Wei Yang wrote: > >> Commit 94ff46de4a73 ("memblock: Move late alloc warning down to phys > >> alloc") introduce the usage of virt_to_phys(), which is not defined in > >> memblock tests. > >> > >> Define it in mm.h to fix the build error. > >> > >> Signed-off-by: Wei Yang <richard.weiyang@xxxxxxxxx> > >> > >> --- > >> v3: use static inline as phys_to_virt > >> v2: move definition to mm.h > >> --- > >> tools/include/linux/mm.h | 6 ++++++ > >> 1 file changed, 6 insertions(+) > >> > >> diff --git a/tools/include/linux/mm.h b/tools/include/linux/mm.h > >> index cad4f2927983..c9e915914add 100644 > >> --- a/tools/include/linux/mm.h > >> +++ b/tools/include/linux/mm.h > >> @@ -25,6 +25,12 @@ static inline void *phys_to_virt(unsigned long address) > >> return __va(address); > >> } > >> > >> +#define virt_to_phys virt_to_phys > >> +static inline phys_addr_t virt_to_phys(volatile void *address) > > > >Why volatilte? > > > > There are two definitions of virt_to_phys: > > include/asm-generic/io.h > arch/x86/include/asm/io.h > > both has volatile. > > I just copy from it. But I don't 100% understand it. Let's keep it inline with the kernel definitions > >> +{ > >> + return (unsigned long)address; > > > >This should be phys_addr_t, look at its definition in tools/include/linux/types.h > > > > You are right. Will fix it. > > >> +} > >> + > >> void reserve_bootmem_region(phys_addr_t start, phys_addr_t end, int nid); > >> > >> static inline void totalram_pages_inc(void) > >> -- > >> 2.34.1 > >> > > > >-- > >Sincerely yours, > >Mike. > > -- > Wei Yang > Help you, Help me -- Sincerely yours, Mike.