diff mbox series

[v2,1/5] memblock test: fix implicit declaration of function 'virt_to_phys'

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

Commit Message

Wei Yang July 29, 2024, 1:47 a.m. UTC
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(+)

Comments

Mike Rapoport July 29, 2024, 5:37 a.m. UTC | #1
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
>
Wei Yang Aug. 1, 2024, 12:07 a.m. UTC | #2
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.
Mike Rapoport Aug. 1, 2024, 6:09 a.m. UTC | #3
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
Wei Yang Aug. 2, 2024, 12:53 a.m. UTC | #4
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 mbox series

Patch

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);