On Thu, Aug 01, 2024 at 09:09:14AM +0300, Mike Rapoport wrote: >On Thu, Aug 01, 2024 at 12:07:39AM +0000, Wei Yang wrote: >> On Mon, Jul 29, 2024 at 08:37:23AM +0300, Mike Rapoport wrote: >> >On Mon, Jul 29, 2024 at 01:47:21AM +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> >> >> >> >> --- >> >> v2: move definition to mm.h >> >> --- >> >> tools/include/linux/mm.h | 2 ++ >> >> 1 file changed, 2 insertions(+) >> >> >> >> diff --git a/tools/include/linux/mm.h b/tools/include/linux/mm.h >> >> index cad4f2927983..9db45c5d00fc 100644 >> >> --- a/tools/include/linux/mm.h >> >> +++ b/tools/include/linux/mm.h >> >> @@ -20,6 +20,8 @@ >> >> #define pfn_to_page(pfn) ((void *)((pfn) * PAGE_SIZE)) >> >> >> >> #define phys_to_virt phys_to_virt >> >> +#define virt_to_phys(p) ((unsigned long)p) >> >> + >> > >> >Please don't break #define of phys_to_virt from the static inline >> >implementation. >> > >> >> I don't touch the definition of phys_to_virt, so you are willing me to adjust >> it? >> >> The macro here will be expanded to code at preprocessing stage. I don't get >> how static inline would help here. Do I miss something? > >static inline allows type checking of the parameters and #define with the >same name as of the static inline allows catching other defines with the >same name. > >So it's common practice to use this combination, line phys_to_virt does. > Thanks, I finally get why we write code like this. >> >And please make virt_to_phys a static inline similarly to phys_to_virt. >> > >> >> static inline void *phys_to_virt(unsigned long address) >> >> { >> >> return __va(address); >> >> -- >> >> 2.34.1 >> >> >> > >> >-- >> >Sincerely yours, >> >Mike. >> >> -- >> Wei Yang >> Help you, Help me > >-- >Sincerely yours, >Mike. -- Wei Yang Help you, Help me