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