Re: [PATCH v2 4/7] sparc32: Do not select ZONE_DMA

From: Andreas Larsson
Date: Tue Mar 05 2024 - 10:14:26 EST


On 2024-02-24 18:42, Sam Ravnborg via B4 Relay wrote:
> From: Sam Ravnborg <sam@xxxxxxxxxxxx>
>
> sparc32 has no limited DMA zone so there is no need to select ZONE_DMA.
>
> Based on analysis from Marciej:
> "
> Actually I think ZONE_DMA should go too (it's linked to GENERIC_ISA_DMA,
> isn't it? -- cf. commit 5ac6da669e24 ("[PATCH] Set CONFIG_ZONE_DMA for
> arches with GENERIC_ISA_DMA")), and the whole thing use:
>
> Fixes: 1da177e4c3f4 ("Linux-2.6.12-rc2")
>
> The GENERIC_ISA_DMA option itself was added to arch/sparc/config.in with
> 2.5.31 as:
>
> define_bool CONFIG_GENERIC_ISA_DMA y
>
> despite of:
>
> define_bool CONFIG_ISA n
> "
>
> The sparc32 code did not differ between ZONE_NORMAL and ZONE_DMA,
> which confirms the above. This patch drop ZONE_DMA.
>
> Signed-off-by: Sam Ravnborg <sam@xxxxxxxxxxxx>
> Reported-by: "Maciej W. Rozycki" <macro@xxxxxxxxxxx>
> Cc: Andreas Larsson <andreas@xxxxxxxxxxx>
> Cc: "David S. Miller" <davem@xxxxxxxxxxxxx>
> Cc: Randy Dunlap <rdunlap@xxxxxxxxxxxxx>
> Cc: Maciej W. Rozycki <macro@xxxxxxxxxxx>
> Cc: Arnd Bergmann <arnd@xxxxxxxx>
> ---
> arch/sparc/Kconfig | 1 -
> arch/sparc/mm/srmmu.c | 1 -
> 2 files changed, 2 deletions(-)
>
> diff --git a/arch/sparc/Kconfig b/arch/sparc/Kconfig
> index 734f23daecca..bdbde506c01e 100644
> --- a/arch/sparc/Kconfig
> +++ b/arch/sparc/Kconfig
> @@ -62,7 +62,6 @@ config SPARC32
> select HAVE_UID16
> select LOCK_MM_AND_FIND_VMA
> select OLD_SIGACTION
> - select ZONE_DMA

This however makes a number of PCI drivers that depend on
ZONE_DMA unselectable.

>
> config SPARC64
> def_bool 64BIT
> diff --git a/arch/sparc/mm/srmmu.c b/arch/sparc/mm/srmmu.c
> index 852085ada368..7aae2f6f4973 100644
> --- a/arch/sparc/mm/srmmu.c
> +++ b/arch/sparc/mm/srmmu.c
> @@ -975,7 +975,6 @@ void __init srmmu_paging_init(void)
> {
> unsigned long max_zone_pfn[MAX_NR_ZONES] = { 0 };
>
> - max_zone_pfn[ZONE_DMA] = max_low_pfn;
> max_zone_pfn[ZONE_NORMAL] = max_low_pfn;
> max_zone_pfn[ZONE_HIGHMEM] = highend_pfn;
>
>
Thanks,
Andreas