Re: [PATCH v2] memblock: Anonotate memblock_is_reserved() with __init_memblock.
On Wed, Dec 05, 2018 at 05:37:37AM +, Yueyi Li wrote: > >On 2018/12/4 11:04, Wei Yang wrote: >> On Mon, Dec 03, 2018 at 04:00:08AM +, Yueyi Li wrote: >>> Found warning: >>> >>> WARNING: EXPORT symbol "gsi_write_channel_scratch" [vmlinux] version >>> generation failed, symbol will not be versioned. >>> WARNING: vmlinux.o(.text+0x1e0a0): Section mismatch in reference from the >>> function valid_phys_addr_range() to the function >>> .init.text:memblock_is_reserved() >>> The function valid_phys_addr_range() references >>> the function __init memblock_is_reserved(). >>> This is often because valid_phys_addr_range lacks a __init >>> annotation or the annotation of memblock_is_reserved is wrong. >>> >>> Use __init_memblock instead of __init. >> Not familiar with this error, the change looks good to me while have >> some questions. >> >> 1. I don't see valid_phys_addr_range() reference memblock_is_reserved(). >> This is in which file or arch? > >Yes, I modified valid_phys_addr_range() for some other debugging. > >> 2. In case a function reference memblock_is_reserved(), should it has >> the annotation of __init_memblock too? Or just __init is ok? If my >> understanding is correct, annotation __init is ok. Well, I don't see >> valid_phys_addr_range() has an annotation. >> 3. The only valid_phys_addr_range() reference some memblock function is >> the one in arch/arm64/mm/mmap.c. Do we suppose to add an annotation to >> this? > >Actually, __init_memblock is null in arch arm64, this warning is due to >CONFIG_DEBUG_SECTION_MISMATCH enabled, the help text in lib/Kconfig.debug. > Ok, thanks. > > >Thanks, >Yueyi -- Wei Yang Help you, Help me
Re: [PATCH v2] memblock: Anonotate memblock_is_reserved() with __init_memblock.
On 2018/12/4 11:04, Wei Yang wrote: > On Mon, Dec 03, 2018 at 04:00:08AM +, Yueyi Li wrote: >> Found warning: >> >> WARNING: EXPORT symbol "gsi_write_channel_scratch" [vmlinux] version >> generation failed, symbol will not be versioned. >> WARNING: vmlinux.o(.text+0x1e0a0): Section mismatch in reference from the >> function valid_phys_addr_range() to the function >> .init.text:memblock_is_reserved() >> The function valid_phys_addr_range() references >> the function __init memblock_is_reserved(). >> This is often because valid_phys_addr_range lacks a __init >> annotation or the annotation of memblock_is_reserved is wrong. >> >> Use __init_memblock instead of __init. > Not familiar with this error, the change looks good to me while have > some questions. > > 1. I don't see valid_phys_addr_range() reference memblock_is_reserved(). > This is in which file or arch? Yes, I modified valid_phys_addr_range() for some other debugging. > 2. In case a function reference memblock_is_reserved(), should it has > the annotation of __init_memblock too? Or just __init is ok? If my > understanding is correct, annotation __init is ok. Well, I don't see > valid_phys_addr_range() has an annotation. > 3. The only valid_phys_addr_range() reference some memblock function is > the one in arch/arm64/mm/mmap.c. Do we suppose to add an annotation to > this? Actually, __init_memblock is null in arch arm64, this warning is due to CONFIG_DEBUG_SECTION_MISMATCH enabled, the help text in lib/Kconfig.debug. Thanks, Yueyi
Re: [PATCH v2] memblock: Anonotate memblock_is_reserved() with __init_memblock.
On Mon, Dec 03, 2018 at 04:00:08AM +, Yueyi Li wrote: >Found warning: > >WARNING: EXPORT symbol "gsi_write_channel_scratch" [vmlinux] version >generation failed, symbol will not be versioned. >WARNING: vmlinux.o(.text+0x1e0a0): Section mismatch in reference from the >function valid_phys_addr_range() to the function >.init.text:memblock_is_reserved() >The function valid_phys_addr_range() references >the function __init memblock_is_reserved(). >This is often because valid_phys_addr_range lacks a __init >annotation or the annotation of memblock_is_reserved is wrong. > >Use __init_memblock instead of __init. Not familiar with this error, the change looks good to me while have some questions. 1. I don't see valid_phys_addr_range() reference memblock_is_reserved(). This is in which file or arch? 2. In case a function reference memblock_is_reserved(), should it has the annotation of __init_memblock too? Or just __init is ok? If my understanding is correct, annotation __init is ok. Well, I don't see valid_phys_addr_range() has an annotation. 3. The only valid_phys_addr_range() reference some memblock function is the one in arch/arm64/mm/mmap.c. Do we suppose to add an annotation to this? > >Signed-off-by: liyueyi >--- > > Changes v2: correct typo in 'warning'. > > mm/memblock.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > >diff --git a/mm/memblock.c b/mm/memblock.c >index 9a2d5ae..81ae63c 100644 >--- a/mm/memblock.c >+++ b/mm/memblock.c >@@ -1727,7 +1727,7 @@ static int __init_memblock memblock_search(struct >memblock_type *type, phys_addr > return -1; > } > >-bool __init memblock_is_reserved(phys_addr_t addr) >+bool __init_memblock memblock_is_reserved(phys_addr_t addr) > { > return memblock_search(&memblock.reserved, addr) != -1; > } >-- >2.7.4 -- Wei Yang Help you, Help me
Re: [PATCH v2] memblock: Anonotate memblock_is_reserved() with __init_memblock.
On Mon, Dec 03, 2018 at 04:00:08AM +, Yueyi Li wrote: > Found warning: > > WARNING: EXPORT symbol "gsi_write_channel_scratch" [vmlinux] version > generation failed, symbol will not be versioned. > WARNING: vmlinux.o(.text+0x1e0a0): Section mismatch in reference from the > function valid_phys_addr_range() to the function > .init.text:memblock_is_reserved() > The function valid_phys_addr_range() references > the function __init memblock_is_reserved(). > This is often because valid_phys_addr_range lacks a __init > annotation or the annotation of memblock_is_reserved is wrong. > > Use __init_memblock instead of __init. > > Signed-off-by: liyueyi Acked-by: Mike Rapoport > --- > > Changes v2: correct typo in 'warning'. > > mm/memblock.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/mm/memblock.c b/mm/memblock.c > index 9a2d5ae..81ae63c 100644 > --- a/mm/memblock.c > +++ b/mm/memblock.c > @@ -1727,7 +1727,7 @@ static int __init_memblock memblock_search(struct > memblock_type *type, phys_addr > return -1; > } > > -bool __init memblock_is_reserved(phys_addr_t addr) > +bool __init_memblock memblock_is_reserved(phys_addr_t addr) > { > return memblock_search(&memblock.reserved, addr) != -1; > } > -- > 2.7.4 > -- Sincerely yours, Mike.
Re: [PATCH v2] memblock: Anonotate memblock_is_reserved() with __init_memblock.
On 03.12.18 05:00, Yueyi Li wrote: > Found warning: > > WARNING: EXPORT symbol "gsi_write_channel_scratch" [vmlinux] version > generation failed, symbol will not be versioned. > WARNING: vmlinux.o(.text+0x1e0a0): Section mismatch in reference from the > function valid_phys_addr_range() to the function > .init.text:memblock_is_reserved() > The function valid_phys_addr_range() references > the function __init memblock_is_reserved(). > This is often because valid_phys_addr_range lacks a __init > annotation or the annotation of memblock_is_reserved is wrong. > > Use __init_memblock instead of __init. > > Signed-off-by: liyueyi > --- > > Changes v2: correct typo in 'warning'. > > mm/memblock.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/mm/memblock.c b/mm/memblock.c > index 9a2d5ae..81ae63c 100644 > --- a/mm/memblock.c > +++ b/mm/memblock.c > @@ -1727,7 +1727,7 @@ static int __init_memblock memblock_search(struct > memblock_type *type, phys_addr > return -1; > } > > -bool __init memblock_is_reserved(phys_addr_t addr) > +bool __init_memblock memblock_is_reserved(phys_addr_t addr) > { > return memblock_search(&memblock.reserved, addr) != -1; > } > Reviewed-by: David Hildenbrand -- Thanks, David / dhildenb
Re: [PATCH v2] memblock: Anonotate memblock_is_reserved() with __init_memblock.
On Mon 03-12-18 04:00:08, Yueyi Li wrote: > Found warning: > > WARNING: EXPORT symbol "gsi_write_channel_scratch" [vmlinux] version > generation failed, symbol will not be versioned. > WARNING: vmlinux.o(.text+0x1e0a0): Section mismatch in reference from the > function valid_phys_addr_range() to the function > .init.text:memblock_is_reserved() > The function valid_phys_addr_range() references > the function __init memblock_is_reserved(). > This is often because valid_phys_addr_range lacks a __init > annotation or the annotation of memblock_is_reserved is wrong. > > Use __init_memblock instead of __init. Yes, it really doesn't make much sense to stand this out of all other helpers. > Signed-off-by: liyueyi Acked-by: Michal Hocko > --- > > Changes v2: correct typo in 'warning'. > > mm/memblock.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/mm/memblock.c b/mm/memblock.c > index 9a2d5ae..81ae63c 100644 > --- a/mm/memblock.c > +++ b/mm/memblock.c > @@ -1727,7 +1727,7 @@ static int __init_memblock memblock_search(struct > memblock_type *type, phys_addr > return -1; > } > > -bool __init memblock_is_reserved(phys_addr_t addr) > +bool __init_memblock memblock_is_reserved(phys_addr_t addr) > { > return memblock_search(&memblock.reserved, addr) != -1; > } > -- > 2.7.4 > -- Michal Hocko SUSE Labs
[PATCH v2] memblock: Anonotate memblock_is_reserved() with __init_memblock.
Found warning: WARNING: EXPORT symbol "gsi_write_channel_scratch" [vmlinux] version generation failed, symbol will not be versioned. WARNING: vmlinux.o(.text+0x1e0a0): Section mismatch in reference from the function valid_phys_addr_range() to the function .init.text:memblock_is_reserved() The function valid_phys_addr_range() references the function __init memblock_is_reserved(). This is often because valid_phys_addr_range lacks a __init annotation or the annotation of memblock_is_reserved is wrong. Use __init_memblock instead of __init. Signed-off-by: liyueyi --- Changes v2: correct typo in 'warning'. mm/memblock.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mm/memblock.c b/mm/memblock.c index 9a2d5ae..81ae63c 100644 --- a/mm/memblock.c +++ b/mm/memblock.c @@ -1727,7 +1727,7 @@ static int __init_memblock memblock_search(struct memblock_type *type, phys_addr return -1; } -bool __init memblock_is_reserved(phys_addr_t addr) +bool __init_memblock memblock_is_reserved(phys_addr_t addr) { return memblock_search(&memblock.reserved, addr) != -1; } -- 2.7.4