Re: [PATCH 1/4] asm-generic/page.h: apply page shift to PFN instead of VA in pfn_to_virt
On Thu, Feb 29, 2024 at 02:34:35PM +0100, Linus Walleij wrote: > On Wed, Jan 31, 2024 at 7:27 AM Yan Zhao wrote: > > > Apply the page shift to PFN to get physical address for final VA. > > The macro __va should take physical address instead of PFN as input. > > > > Fixes: 2d78057f0dd4 ("asm-generic/page.h: Make pfn accessors static > > inlines") > > Signed-off-by: Yan Zhao > > My bug, obviously. :( > Reviewed-by: Linus Walleij > > I thought this was already applied with the other fixes, but maybe it > was missed? > Hi Linus, The other 3 in csky/hexagon/openrisc should have been applied in https://lore.kernel.org/all/20240202140550.9886-1-yan.y.z...@intel.com/. This one in asm-generic is not, because Arnd said he is going to remove the header as a whole soon. I explained it in the change log :) "The pfn_to_virt() in asm-generic/page.h is not touched in this patch as it's referenced by page_to_virt() in that header while the whole header is going to be removed as a whole due to no one including it." Thanks Yan
Re: [PATCH 1/4] asm-generic/page.h: apply page shift to PFN instead of VA in pfn_to_virt
On Wed, Jan 31, 2024 at 7:27 AM Yan Zhao wrote: > Apply the page shift to PFN to get physical address for final VA. > The macro __va should take physical address instead of PFN as input. > > Fixes: 2d78057f0dd4 ("asm-generic/page.h: Make pfn accessors static inlines") > Signed-off-by: Yan Zhao My bug, obviously. :( Reviewed-by: Linus Walleij I thought this was already applied with the other fixes, but maybe it was missed? Yours, Linus Walleij
Re: [PATCH 1/4] asm-generic/page.h: apply page shift to PFN instead of VA in pfn_to_virt
On Wed, Jan 31, 2024 at 2:27 PM Yan Zhao wrote: > > Apply the page shift to PFN to get physical address for final VA. > The macro __va should take physical address instead of PFN as input. > > Fixes: 2d78057f0dd4 ("asm-generic/page.h: Make pfn accessors static inlines") > Signed-off-by: Yan Zhao > --- > include/asm-generic/page.h | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/include/asm-generic/page.h b/include/asm-generic/page.h > index 9773582fd96e..4f1265207b9a 100644 > --- a/include/asm-generic/page.h > +++ b/include/asm-generic/page.h > @@ -81,7 +81,7 @@ static inline unsigned long virt_to_pfn(const void *kaddr) > #define virt_to_pfn virt_to_pfn > static inline void *pfn_to_virt(unsigned long pfn) > { > - return __va(pfn) << PAGE_SHIFT; > + return __va(pfn << PAGE_SHIFT); Oh, that's a terrible bug; Thx for fixing it. Reviewed-by: Guo Ren > } > #define pfn_to_virt pfn_to_virt > > -- > 2.17.1 > -- Best Regards Guo Ren
[PATCH 1/4] asm-generic/page.h: apply page shift to PFN instead of VA in pfn_to_virt
Apply the page shift to PFN to get physical address for final VA. The macro __va should take physical address instead of PFN as input. Fixes: 2d78057f0dd4 ("asm-generic/page.h: Make pfn accessors static inlines") Signed-off-by: Yan Zhao --- include/asm-generic/page.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/include/asm-generic/page.h b/include/asm-generic/page.h index 9773582fd96e..4f1265207b9a 100644 --- a/include/asm-generic/page.h +++ b/include/asm-generic/page.h @@ -81,7 +81,7 @@ static inline unsigned long virt_to_pfn(const void *kaddr) #define virt_to_pfn virt_to_pfn static inline void *pfn_to_virt(unsigned long pfn) { - return __va(pfn) << PAGE_SHIFT; + return __va(pfn << PAGE_SHIFT); } #define pfn_to_virt pfn_to_virt -- 2.17.1