diff mbox series

RISC-V: move riscv_cbom_block_size to the correct #ifdef block

Message ID 20220914143648.74022-1-heiko@sntech.de (mailing list archive)
State New, archived
Headers show
Series RISC-V: move riscv_cbom_block_size to the correct #ifdef block | expand

Commit Message

Heiko Stuebner Sept. 14, 2022, 2:36 p.m. UTC
riscv_cbom_block_size is used by all current non-coherent dma operations,
not only the zicbom variant. So move it over the block also containing
the riscv_noncoherent_supported() prototype.

Fixes: 8f7e001e0325 ("RISC-V: Clean up the Zicbom block size probing")
Reported-by: kernel test robot <lkp@intel.com>
Signed-off-by: Heiko Stuebner <heiko@sntech.de>
---
 arch/riscv/include/asm/cacheflush.h | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

Comments

Anup Patel Sept. 14, 2022, 2:46 p.m. UTC | #1
On Wed, Sep 14, 2022 at 8:07 PM Heiko Stuebner <heiko@sntech.de> wrote:
>
> riscv_cbom_block_size is used by all current non-coherent dma operations,
> not only the zicbom variant. So move it over the block also containing
> the riscv_noncoherent_supported() prototype.

At the moment, only non-coherent DMA operations use riscv_cbom_block_size
but soon we have other parties using it as well. For example, the RISC-V PMEM
support and KVM RISC-V Zicbom support.

I am not sure if this is the right thing to do.

Regards,
Anup

>
> Fixes: 8f7e001e0325 ("RISC-V: Clean up the Zicbom block size probing")
> Reported-by: kernel test robot <lkp@intel.com>
> Signed-off-by: Heiko Stuebner <heiko@sntech.de>
> ---
>  arch/riscv/include/asm/cacheflush.h | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/arch/riscv/include/asm/cacheflush.h b/arch/riscv/include/asm/cacheflush.h
> index a89c005b4bbf..5c16d901d3da 100644
> --- a/arch/riscv/include/asm/cacheflush.h
> +++ b/arch/riscv/include/asm/cacheflush.h
> @@ -43,13 +43,13 @@ void flush_icache_mm(struct mm_struct *mm, bool local);
>  #endif /* CONFIG_SMP */
>
>  #ifdef CONFIG_RISCV_ISA_ZICBOM
> -extern unsigned int riscv_cbom_block_size;
>  void riscv_init_cbom_blocksize(void);
>  #else
>  static inline void riscv_init_cbom_blocksize(void) { }
>  #endif
>
>  #ifdef CONFIG_RISCV_DMA_NONCOHERENT
> +extern unsigned int riscv_cbom_block_size;
>  void riscv_noncoherent_supported(void);
>  #endif
>
> --
> 2.35.1
>
>
> _______________________________________________
> linux-riscv mailing list
> linux-riscv@lists.infradead.org
> http://lists.infradead.org/mailman/listinfo/linux-riscv
Conor Dooley Sept. 14, 2022, 2:54 p.m. UTC | #2
On 14/09/2022 15:46, Anup Patel wrote:
> EXTERNAL EMAIL: Do not click links or open attachments unless you know the content is safe
> 
> On Wed, Sep 14, 2022 at 8:07 PM Heiko Stuebner <heiko@sntech.de> wrote:
>>
>> riscv_cbom_block_size is used by all current non-coherent dma operations,
>> not only the zicbom variant. So move it over the block also containing
>> the riscv_noncoherent_supported() prototype.
> 
> At the moment, only non-coherent DMA operations use riscv_cbom_block_size
> but soon we have other parties using it as well. For example, the RISC-V PMEM
> support and KVM RISC-V Zicbom support.
> 
> I am not sure if this is the right thing to do.

This is a fix for a current error reported by LKP.
When said future users need to use it - they can move it to a better location
IMO.

Thanks,
Conor.

> 
> Regards,
> Anup
> 
>>
>> Fixes: 8f7e001e0325 ("RISC-V: Clean up the Zicbom block size probing")
>> Reported-by: kernel test robot <lkp@intel.com>
>> Signed-off-by: Heiko Stuebner <heiko@sntech.de>
>> ---
>>   arch/riscv/include/asm/cacheflush.h | 2 +-
>>   1 file changed, 1 insertion(+), 1 deletion(-)
>>
>> diff --git a/arch/riscv/include/asm/cacheflush.h b/arch/riscv/include/asm/cacheflush.h
>> index a89c005b4bbf..5c16d901d3da 100644
>> --- a/arch/riscv/include/asm/cacheflush.h
>> +++ b/arch/riscv/include/asm/cacheflush.h
>> @@ -43,13 +43,13 @@ void flush_icache_mm(struct mm_struct *mm, bool local);
>>   #endif /* CONFIG_SMP */
>>
>>   #ifdef CONFIG_RISCV_ISA_ZICBOM
>> -extern unsigned int riscv_cbom_block_size;
>>   void riscv_init_cbom_blocksize(void);
>>   #else
>>   static inline void riscv_init_cbom_blocksize(void) { }
>>   #endif
>>
>>   #ifdef CONFIG_RISCV_DMA_NONCOHERENT
>> +extern unsigned int riscv_cbom_block_size;
>>   void riscv_noncoherent_supported(void);
>>   #endif
>>
>> --
>> 2.35.1
>>
>>
>> _______________________________________________
>> linux-riscv mailing list
>> linux-riscv@lists.infradead.org
>> http://lists.infradead.org/mailman/listinfo/linux-riscv
> 
> _______________________________________________
> linux-riscv mailing list
> linux-riscv@lists.infradead.org
> http://lists.infradead.org/mailman/listinfo/linux-riscv
Anup Patel Sept. 14, 2022, 2:56 p.m. UTC | #3
On Wed, Sep 14, 2022 at 8:24 PM <Conor.Dooley@microchip.com> wrote:
>
> On 14/09/2022 15:46, Anup Patel wrote:
> > EXTERNAL EMAIL: Do not click links or open attachments unless you know the content is safe
> >
> > On Wed, Sep 14, 2022 at 8:07 PM Heiko Stuebner <heiko@sntech.de> wrote:
> >>
> >> riscv_cbom_block_size is used by all current non-coherent dma operations,
> >> not only the zicbom variant. So move it over the block also containing
> >> the riscv_noncoherent_supported() prototype.
> >
> > At the moment, only non-coherent DMA operations use riscv_cbom_block_size
> > but soon we have other parties using it as well. For example, the RISC-V PMEM
> > support and KVM RISC-V Zicbom support.
> >
> > I am not sure if this is the right thing to do.
>
> This is a fix for a current error reported by LKP.
> When said future users need to use it - they can move it to a better location
> IMO.

Why don't we move it to a better location now itself ?

Regards,
Anup

>
> Thanks,
> Conor.
>
> >
> > Regards,
> > Anup
> >
> >>
> >> Fixes: 8f7e001e0325 ("RISC-V: Clean up the Zicbom block size probing")
> >> Reported-by: kernel test robot <lkp@intel.com>
> >> Signed-off-by: Heiko Stuebner <heiko@sntech.de>
> >> ---
> >>   arch/riscv/include/asm/cacheflush.h | 2 +-
> >>   1 file changed, 1 insertion(+), 1 deletion(-)
> >>
> >> diff --git a/arch/riscv/include/asm/cacheflush.h b/arch/riscv/include/asm/cacheflush.h
> >> index a89c005b4bbf..5c16d901d3da 100644
> >> --- a/arch/riscv/include/asm/cacheflush.h
> >> +++ b/arch/riscv/include/asm/cacheflush.h
> >> @@ -43,13 +43,13 @@ void flush_icache_mm(struct mm_struct *mm, bool local);
> >>   #endif /* CONFIG_SMP */
> >>
> >>   #ifdef CONFIG_RISCV_ISA_ZICBOM
> >> -extern unsigned int riscv_cbom_block_size;
> >>   void riscv_init_cbom_blocksize(void);
> >>   #else
> >>   static inline void riscv_init_cbom_blocksize(void) { }
> >>   #endif
> >>
> >>   #ifdef CONFIG_RISCV_DMA_NONCOHERENT
> >> +extern unsigned int riscv_cbom_block_size;
> >>   void riscv_noncoherent_supported(void);
> >>   #endif
> >>
> >> --
> >> 2.35.1
> >>
> >>
> >> _______________________________________________
> >> linux-riscv mailing list
> >> linux-riscv@lists.infradead.org
> >> http://lists.infradead.org/mailman/listinfo/linux-riscv
> >
> > _______________________________________________
> > linux-riscv mailing list
> > linux-riscv@lists.infradead.org
> > http://lists.infradead.org/mailman/listinfo/linux-riscv
>
Heiko Stuebner Sept. 14, 2022, 2:58 p.m. UTC | #4
Am Mittwoch, 14. September 2022, 16:56:07 CEST schrieb Anup Patel:
> On Wed, Sep 14, 2022 at 8:24 PM <Conor.Dooley@microchip.com> wrote:
> >
> > On 14/09/2022 15:46, Anup Patel wrote:
> > > EXTERNAL EMAIL: Do not click links or open attachments unless you know the content is safe
> > >
> > > On Wed, Sep 14, 2022 at 8:07 PM Heiko Stuebner <heiko@sntech.de> wrote:
> > >>
> > >> riscv_cbom_block_size is used by all current non-coherent dma operations,
> > >> not only the zicbom variant. So move it over the block also containing
> > >> the riscv_noncoherent_supported() prototype.
> > >
> > > At the moment, only non-coherent DMA operations use riscv_cbom_block_size
> > > but soon we have other parties using it as well. For example, the RISC-V PMEM
> > > support and KVM RISC-V Zicbom support.
> > >
> > > I am not sure if this is the right thing to do.
> >
> > This is a fix for a current error reported by LKP.
> > When said future users need to use it - they can move it to a better location
> > IMO.
> 
> Why don't we move it to a better location now itself ?

Probably because a fix should be a minimal set of changes,
the breakage already exist and we're shortly before 6.0-rc6 ;-)

If we start discussing now where to put it, we might end up
releasing 6.0 with bugs.

> 
> Regards,
> Anup
> 
> >
> > Thanks,
> > Conor.
> >
> > >
> > > Regards,
> > > Anup
> > >
> > >>
> > >> Fixes: 8f7e001e0325 ("RISC-V: Clean up the Zicbom block size probing")
> > >> Reported-by: kernel test robot <lkp@intel.com>
> > >> Signed-off-by: Heiko Stuebner <heiko@sntech.de>
> > >> ---
> > >>   arch/riscv/include/asm/cacheflush.h | 2 +-
> > >>   1 file changed, 1 insertion(+), 1 deletion(-)
> > >>
> > >> diff --git a/arch/riscv/include/asm/cacheflush.h b/arch/riscv/include/asm/cacheflush.h
> > >> index a89c005b4bbf..5c16d901d3da 100644
> > >> --- a/arch/riscv/include/asm/cacheflush.h
> > >> +++ b/arch/riscv/include/asm/cacheflush.h
> > >> @@ -43,13 +43,13 @@ void flush_icache_mm(struct mm_struct *mm, bool local);
> > >>   #endif /* CONFIG_SMP */
> > >>
> > >>   #ifdef CONFIG_RISCV_ISA_ZICBOM
> > >> -extern unsigned int riscv_cbom_block_size;
> > >>   void riscv_init_cbom_blocksize(void);
> > >>   #else
> > >>   static inline void riscv_init_cbom_blocksize(void) { }
> > >>   #endif
> > >>
> > >>   #ifdef CONFIG_RISCV_DMA_NONCOHERENT
> > >> +extern unsigned int riscv_cbom_block_size;
> > >>   void riscv_noncoherent_supported(void);
> > >>   #endif
> > >>
> > >> --
> > >> 2.35.1
> > >>
> > >>
> > >> _______________________________________________
> > >> linux-riscv mailing list
> > >> linux-riscv@lists.infradead.org
> > >> http://lists.infradead.org/mailman/listinfo/linux-riscv
> > >
> > > _______________________________________________
> > > linux-riscv mailing list
> > > linux-riscv@lists.infradead.org
> > > http://lists.infradead.org/mailman/listinfo/linux-riscv
> >
>
Conor Dooley Sept. 14, 2022, 7:32 p.m. UTC | #5
On 14/09/2022 15:36, Heiko Stuebner wrote:
> EXTERNAL EMAIL: Do not click links or open attachments unless you know the content is safe
> 
> riscv_cbom_block_size is used by all current non-coherent dma operations,
> not only the zicbom variant. So move it over the block also containing
> the riscv_noncoherent_supported() prototype.
> 
> Fixes: 8f7e001e0325 ("RISC-V: Clean up the Zicbom block size probing")
> Reported-by: kernel test robot <lkp@intel.com>
> Signed-off-by: Heiko Stuebner <heiko@sntech.de>

I accidentally fetched palmers repo rather than riscv & noticed he
pushed a fix there for this too:
https://git.kernel.org/pub/scm/linux/kernel/git/palmer/linux.git/commit/?h=zicbom-fix

I think Palmer's solution is slightly nicer, but to me either makes
little difference, just getting things squared away for 6.0 is all
I care about at this point.

Either this or the one on Palmer's branch is:
Reviewed-by: Conor Dooley <conor.dooley@microchip.com>

> ---
>  arch/riscv/include/asm/cacheflush.h | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/arch/riscv/include/asm/cacheflush.h b/arch/riscv/include/asm/cacheflush.h
> index a89c005b4bbf..5c16d901d3da 100644
> --- a/arch/riscv/include/asm/cacheflush.h
> +++ b/arch/riscv/include/asm/cacheflush.h
> @@ -43,13 +43,13 @@ void flush_icache_mm(struct mm_struct *mm, bool local);
>  #endif /* CONFIG_SMP */
> 
>  #ifdef CONFIG_RISCV_ISA_ZICBOM
> -extern unsigned int riscv_cbom_block_size;
>  void riscv_init_cbom_blocksize(void);
>  #else
>  static inline void riscv_init_cbom_blocksize(void) { }
>  #endif
> 
>  #ifdef CONFIG_RISCV_DMA_NONCOHERENT
> +extern unsigned int riscv_cbom_block_size;
>  void riscv_noncoherent_supported(void);
>  #endif
> 
> --
> 2.35.1
>
Heiko Stuebner Sept. 14, 2022, 10:19 p.m. UTC | #6
Hi,

Am Mittwoch, 14. September 2022, 21:32:01 CEST schrieb Conor.Dooley@microchip.com:
> On 14/09/2022 15:36, Heiko Stuebner wrote:
> > EXTERNAL EMAIL: Do not click links or open attachments unless you know the content is safe
> > 
> > riscv_cbom_block_size is used by all current non-coherent dma operations,
> > not only the zicbom variant. So move it over the block also containing
> > the riscv_noncoherent_supported() prototype.
> > 
> > Fixes: 8f7e001e0325 ("RISC-V: Clean up the Zicbom block size probing")
> > Reported-by: kernel test robot <lkp@intel.com>
> > Signed-off-by: Heiko Stuebner <heiko@sntech.de>
> 
> I accidentally fetched palmers repo rather than riscv & noticed he
> pushed a fix there for this too:
> https://git.kernel.org/pub/scm/linux/kernel/git/palmer/linux.git/commit/?h=zicbom-fix
> 
> I think Palmer's solution is slightly nicer, but to me either makes
> little difference, just getting things squared away for 6.0 is all
> I care about at this point.

yeah, Palmer's solution is nice and incidentially should also
not only make LKP happier but maybe also Anup in one go :-) .

So I'd guess disregard this patch and move Palmer's patch over?


Heiko

> 
> Either this or the one on Palmer's branch is:
> Reviewed-by: Conor Dooley <conor.dooley@microchip.com>
> 
> > ---
> >  arch/riscv/include/asm/cacheflush.h | 2 +-
> >  1 file changed, 1 insertion(+), 1 deletion(-)
> > 
> > diff --git a/arch/riscv/include/asm/cacheflush.h b/arch/riscv/include/asm/cacheflush.h
> > index a89c005b4bbf..5c16d901d3da 100644
> > --- a/arch/riscv/include/asm/cacheflush.h
> > +++ b/arch/riscv/include/asm/cacheflush.h
> > @@ -43,13 +43,13 @@ void flush_icache_mm(struct mm_struct *mm, bool local);
> >  #endif /* CONFIG_SMP */
> > 
> >  #ifdef CONFIG_RISCV_ISA_ZICBOM
> > -extern unsigned int riscv_cbom_block_size;
> >  void riscv_init_cbom_blocksize(void);
> >  #else
> >  static inline void riscv_init_cbom_blocksize(void) { }
> >  #endif
> > 
> >  #ifdef CONFIG_RISCV_DMA_NONCOHERENT
> > +extern unsigned int riscv_cbom_block_size;
> >  void riscv_noncoherent_supported(void);
> >  #endif
> > 
> > --
> > 2.35.1
> > 
> 
>
Palmer Dabbelt Sept. 15, 2022, 5:09 p.m. UTC | #7
On Wed, 14 Sep 2022 15:19:51 PDT (-0700), heiko@sntech.de wrote:
> Hi,
>
> Am Mittwoch, 14. September 2022, 21:32:01 CEST schrieb Conor.Dooley@microchip.com:
>> On 14/09/2022 15:36, Heiko Stuebner wrote:
>> > EXTERNAL EMAIL: Do not click links or open attachments unless you know the content is safe
>> >
>> > riscv_cbom_block_size is used by all current non-coherent dma operations,
>> > not only the zicbom variant. So move it over the block also containing
>> > the riscv_noncoherent_supported() prototype.
>> >
>> > Fixes: 8f7e001e0325 ("RISC-V: Clean up the Zicbom block size probing")
>> > Reported-by: kernel test robot <lkp@intel.com>
>> > Signed-off-by: Heiko Stuebner <heiko@sntech.de>
>>
>> I accidentally fetched palmers repo rather than riscv & noticed he
>> pushed a fix there for this too:
>> https://git.kernel.org/pub/scm/linux/kernel/git/palmer/linux.git/commit/?h=zicbom-fix
>>
>> I think Palmer's solution is slightly nicer, but to me either makes
>> little difference, just getting things squared away for 6.0 is all
>> I care about at this point.
>
> yeah, Palmer's solution is nice and incidentially should also
> not only make LKP happier but maybe also Anup in one go :-) .
>
> So I'd guess disregard this patch and move Palmer's patch over?

OK, I'll go post mine and then merge it -- I was writing it at Plumbers, 
I guess I forgot to send it.

>
>
> Heiko
>
>>
>> Either this or the one on Palmer's branch is:
>> Reviewed-by: Conor Dooley <conor.dooley@microchip.com>
>>
>> > ---
>> >  arch/riscv/include/asm/cacheflush.h | 2 +-
>> >  1 file changed, 1 insertion(+), 1 deletion(-)
>> >
>> > diff --git a/arch/riscv/include/asm/cacheflush.h b/arch/riscv/include/asm/cacheflush.h
>> > index a89c005b4bbf..5c16d901d3da 100644
>> > --- a/arch/riscv/include/asm/cacheflush.h
>> > +++ b/arch/riscv/include/asm/cacheflush.h
>> > @@ -43,13 +43,13 @@ void flush_icache_mm(struct mm_struct *mm, bool local);
>> >  #endif /* CONFIG_SMP */
>> >
>> >  #ifdef CONFIG_RISCV_ISA_ZICBOM
>> > -extern unsigned int riscv_cbom_block_size;
>> >  void riscv_init_cbom_blocksize(void);
>> >  #else
>> >  static inline void riscv_init_cbom_blocksize(void) { }
>> >  #endif
>> >
>> >  #ifdef CONFIG_RISCV_DMA_NONCOHERENT
>> > +extern unsigned int riscv_cbom_block_size;
>> >  void riscv_noncoherent_supported(void);
>> >  #endif
>> >
>> > --
>> > 2.35.1
>> >
>>
>>
diff mbox series

Patch

diff --git a/arch/riscv/include/asm/cacheflush.h b/arch/riscv/include/asm/cacheflush.h
index a89c005b4bbf..5c16d901d3da 100644
--- a/arch/riscv/include/asm/cacheflush.h
+++ b/arch/riscv/include/asm/cacheflush.h
@@ -43,13 +43,13 @@  void flush_icache_mm(struct mm_struct *mm, bool local);
 #endif /* CONFIG_SMP */
 
 #ifdef CONFIG_RISCV_ISA_ZICBOM
-extern unsigned int riscv_cbom_block_size;
 void riscv_init_cbom_blocksize(void);
 #else
 static inline void riscv_init_cbom_blocksize(void) { }
 #endif
 
 #ifdef CONFIG_RISCV_DMA_NONCOHERENT
+extern unsigned int riscv_cbom_block_size;
 void riscv_noncoherent_supported(void);
 #endif