diff mbox series

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

Message ID 20240802010923.15577-1-richard.weiyang@gmail.com (mailing list archive)
State New
Headers show
Series [v3,1/5] memblock test: fix implicit declaration of function 'virt_to_phys' | expand

Commit Message

Wei Yang Aug. 2, 2024, 1:09 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>

---
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(+)

Comments

Mike Rapoport Aug. 5, 2024, 10:03 a.m. UTC | #1
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@gmail.com>
> 
> ---
> 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?

> +{
> +	return (unsigned long)address;

This should be phys_addr_t, look at its definition in tools/include/linux/types.h

> +}
> +
>  void reserve_bootmem_region(phys_addr_t start, phys_addr_t end, int nid);
>  
>  static inline void totalram_pages_inc(void)
> -- 
> 2.34.1
>
Wei Yang Aug. 5, 2024, 3:37 p.m. UTC | #2
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@gmail.com>
>> 
>> ---
>> 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.

>> +{
>> +	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.
Mike Rapoport Aug. 5, 2024, 5:05 p.m. UTC | #3
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@gmail.com>
> >> 
> >> ---
> >> 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
diff mbox series

Patch

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)
+{
+	return (unsigned long)address;
+}
+
 void reserve_bootmem_region(phys_addr_t start, phys_addr_t end, int nid);
 
 static inline void totalram_pages_inc(void)