Message ID | 20240729014725.29839-1-richard.weiyang@gmail.com (mailing list archive) |
---|---|
State | New |
Headers | show |
Series | [v2,1/5] memblock test: fix implicit declaration of function 'virt_to_phys' | expand |
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@gmail.com> > > --- > 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. 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 >
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@gmail.com> >> >> --- >> 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? >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.
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@gmail.com> > >> > >> --- > >> 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. > >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
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@gmail.com> >> >> >> >> --- >> >> 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.
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) + static inline void *phys_to_virt(unsigned long address) { return __va(address);
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@gmail.com> --- v2: move definition to mm.h --- tools/include/linux/mm.h | 2 ++ 1 file changed, 2 insertions(+)