diff mbox series

[stable,5.10] ARM: Qualify enabling of swiotlb_init()

Message ID 20210923001425.414046-1-f.fainelli@gmail.com (mailing list archive)
State New, archived
Headers show
Series [stable,5.10] ARM: Qualify enabling of swiotlb_init() | expand

Commit Message

Florian Fainelli Sept. 23, 2021, 12:14 a.m. UTC
commit fcf044891c84e38fc90eb736b818781bccf94e38 upstream

We do not need a SWIOTLB unless we have DRAM that is addressable beyond
the arm_dma_limit. Compare max_pfn with arm_dma_pfn_limit to determine
whether we do need a SWIOTLB to be initialized.

Fixes: ad3c7b18c5b3 ("arm: use swiotlb for bounce buffering on LPAE configs")
Signed-off-by: Florian Fainelli <f.fainelli@gmail.com>
Signed-off-by: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
---
 arch/arm/mm/init.c | 6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)

Comments

Greg Kroah-Hartman Sept. 23, 2021, 8:06 a.m. UTC | #1
On Wed, Sep 22, 2021 at 05:14:24PM -0700, Florian Fainelli wrote:
> commit fcf044891c84e38fc90eb736b818781bccf94e38 upstream
> 
> We do not need a SWIOTLB unless we have DRAM that is addressable beyond
> the arm_dma_limit. Compare max_pfn with arm_dma_pfn_limit to determine
> whether we do need a SWIOTLB to be initialized.
> 
> Fixes: ad3c7b18c5b3 ("arm: use swiotlb for bounce buffering on LPAE configs")
> Signed-off-by: Florian Fainelli <f.fainelli@gmail.com>
> Signed-off-by: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
> ---
>  arch/arm/mm/init.c | 6 +++++-
>  1 file changed, 5 insertions(+), 1 deletion(-)
> 
> diff --git a/arch/arm/mm/init.c b/arch/arm/mm/init.c
> index d54d69cf1732..75f3ab531bdf 100644
> --- a/arch/arm/mm/init.c
> +++ b/arch/arm/mm/init.c
> @@ -378,7 +378,11 @@ static void __init free_highpages(void)
>  void __init mem_init(void)
>  {
>  #ifdef CONFIG_ARM_LPAE
> -	swiotlb_init(1);
> +	if (swiotlb_force == SWIOTLB_FORCE ||
> +	    max_pfn > arm_dma_pfn_limit)
> +		swiotlb_init(1);
> +	else
> +		swiotlb_force = SWIOTLB_NO_FORCE;
>  #endif
>  
>  	set_max_mapnr(pfn_to_page(max_pfn) - mem_map);
> -- 
> 2.25.1
> 

Both now queued up, thanks.

greg k-h
diff mbox series

Patch

diff --git a/arch/arm/mm/init.c b/arch/arm/mm/init.c
index d54d69cf1732..75f3ab531bdf 100644
--- a/arch/arm/mm/init.c
+++ b/arch/arm/mm/init.c
@@ -378,7 +378,11 @@  static void __init free_highpages(void)
 void __init mem_init(void)
 {
 #ifdef CONFIG_ARM_LPAE
-	swiotlb_init(1);
+	if (swiotlb_force == SWIOTLB_FORCE ||
+	    max_pfn > arm_dma_pfn_limit)
+		swiotlb_init(1);
+	else
+		swiotlb_force = SWIOTLB_NO_FORCE;
 #endif
 
 	set_max_mapnr(pfn_to_page(max_pfn) - mem_map);