From: gerg@snapgear.com (Greg Ungerer)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH 06/10] ARM: dma-mapping: move consistent_init into CONFIG_MMU section
Date: Sun, 22 Nov 2009 10:05:40 +1000 [thread overview]
Message-ID: <4B088054.30606@snapgear.com> (raw)
In-Reply-To: <E1NBvmz-0007qr-7X@rmk-PC.arm.linux.org.uk>
Hi Russell,
Russell King - ARM Linux wrote:
> No point wrapping the contents of this function with #ifdef CONFIG_MMU
> when we can place it and the core_initcall() entirely within the
Lost the end of the comments here?
Regards
Greg
> Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
> ---
> arch/arm/mm/dma-mapping.c | 78 ++++++++++++++++++++++-----------------------
> 1 files changed, 38 insertions(+), 40 deletions(-)
>
> diff --git a/arch/arm/mm/dma-mapping.c b/arch/arm/mm/dma-mapping.c
> index 2e025f6..7e8f150 100644
> --- a/arch/arm/mm/dma-mapping.c
> +++ b/arch/arm/mm/dma-mapping.c
> @@ -144,6 +144,44 @@ static struct arm_vmregion_head consistent_head = {
> #error ARM Coherent DMA allocator does not (yet) support huge TLB
> #endif
>
> +/*
> + * Initialise the consistent memory allocation.
> + */
> +static int __init consistent_init(void)
> +{
> + int ret = 0;
> + pgd_t *pgd;
> + pmd_t *pmd;
> + pte_t *pte;
> + int i = 0;
> + u32 base = CONSISTENT_BASE;
> +
> + do {
> + pgd = pgd_offset(&init_mm, base);
> + pmd = pmd_alloc(&init_mm, pgd, base);
> + if (!pmd) {
> + printk(KERN_ERR "%s: no pmd tables\n", __func__);
> + ret = -ENOMEM;
> + break;
> + }
> + WARN_ON(!pmd_none(*pmd));
> +
> + pte = pte_alloc_kernel(pmd, base);
> + if (!pte) {
> + printk(KERN_ERR "%s: no pte tables\n", __func__);
> + ret = -ENOMEM;
> + break;
> + }
> +
> + consistent_pte[i++] = pte;
> + base += (1 << PGDIR_SHIFT);
> + } while (base < CONSISTENT_END);
> +
> + return ret;
> +}
> +
> +core_initcall(consistent_init);
> +
> static void *
> __dma_alloc(struct device *dev, size_t size, dma_addr_t *handle, gfp_t gfp,
> pgprot_t prot)
> @@ -400,46 +438,6 @@ void dma_free_coherent(struct device *dev, size_t size, void *cpu_addr, dma_addr
> EXPORT_SYMBOL(dma_free_coherent);
>
> /*
> - * Initialise the consistent memory allocation.
> - */
> -static int __init consistent_init(void)
> -{
> - int ret = 0;
> -#ifdef CONFIG_MMU
> - pgd_t *pgd;
> - pmd_t *pmd;
> - pte_t *pte;
> - int i = 0;
> - u32 base = CONSISTENT_BASE;
> -
> - do {
> - pgd = pgd_offset(&init_mm, base);
> - pmd = pmd_alloc(&init_mm, pgd, base);
> - if (!pmd) {
> - printk(KERN_ERR "%s: no pmd tables\n", __func__);
> - ret = -ENOMEM;
> - break;
> - }
> - WARN_ON(!pmd_none(*pmd));
> -
> - pte = pte_alloc_kernel(pmd, base);
> - if (!pte) {
> - printk(KERN_ERR "%s: no pte tables\n", __func__);
> - ret = -ENOMEM;
> - break;
> - }
> -
> - consistent_pte[i++] = pte;
> - base += (1 << PGDIR_SHIFT);
> - } while (base < CONSISTENT_END);
> -#endif /* !CONFIG_MMU */
> -
> - return ret;
> -}
> -
> -core_initcall(consistent_init);
> -
> -/*
> * Make an area consistent for devices.
> * Note: Drivers should NOT use this function directly, as it will break
> * platforms with CONFIG_DMABOUNCE.
--
------------------------------------------------------------------------
Greg Ungerer -- Principal Engineer EMAIL: gerg at snapgear.com
SnapGear Group, McAfee PHONE: +61 7 3435 2888
8 Gardner Close FAX: +61 7 3217 5323
Milton, QLD, 4064, Australia WEB: http://www.SnapGear.com
next prev parent reply other threads:[~2009-11-22 0:05 UTC|newest]
Thread overview: 65+ messages / expand[flat|nested] mbox.gz Atom feed top
2009-11-20 18:25 [PATCH 0/7] dma-mapping: Cortex A9 speculative prefetch fixes Russell King - ARM Linux
2009-11-20 18:01 ` [PATCH 1/7] ARM: provide phys_to_page() to complement page_to_phys() Russell King - ARM Linux
2009-11-23 12:05 ` Catalin Marinas
2009-11-20 18:02 ` [PATCH 2/7] ARM: dma-mapping: simplify page_to_dma() and __pfn_to_bus() Russell King - ARM Linux
2009-11-23 12:05 ` [PATCH 2/7] ARM: dma-mapping: simplify page_to_dma() and__pfn_to_bus() Catalin Marinas
2009-12-12 14:01 ` [PATCH 2/7] ARM: dma-mapping: simplify page_to_dma() and __pfn_to_bus() Anders Grafström
2009-12-12 14:37 ` Russell King - ARM Linux
2009-12-14 18:47 ` Anders Grafström
2009-11-20 18:03 ` [PATCH 3/7] ARM: dma-mapping: provide dma_to_page() Russell King - ARM Linux
2009-11-20 18:04 ` [PATCH 4/7] ARM: dma-mapping: split dma_unmap_page() from dma_unmap_single() Russell King - ARM Linux
2009-11-20 18:05 ` [PATCH 5/7] ARM: dma-mapping: use the idea of buffer ownership Russell King - ARM Linux
2009-11-20 18:06 ` [PATCH 6/7] ARM: dma-mapping: fix for speculative accesses Russell King - ARM Linux
2009-11-23 12:03 ` Catalin Marinas
2009-11-23 12:08 ` Russell King - ARM Linux
2009-11-23 13:38 ` [PATCH v2 06/17] " Russell King - ARM Linux
2009-11-23 15:25 ` saeed bishara
2009-11-23 17:27 ` Russell King - ARM Linux
2009-11-24 15:46 ` saeed bishara
2009-11-24 16:22 ` Russell King - ARM Linux
2009-11-24 16:40 ` saeed bishara
2009-11-24 16:48 ` Catalin Marinas
2009-11-24 17:02 ` Russell King - ARM Linux
2009-11-24 19:12 ` Nicolas Pitre
2009-11-25 12:12 ` Mark Brown
2009-11-24 16:47 ` Catalin Marinas
2009-11-24 20:00 ` Russell King - ARM Linux
2009-11-24 20:35 ` Nicolas Pitre
2009-11-24 21:01 ` Russell King - ARM Linux
2009-11-24 21:46 ` saeed bishara
2009-11-25 12:14 ` Catalin Marinas
2009-11-25 16:26 ` Russell King - ARM Linux
2009-11-26 13:21 ` Ronen Shitrit
2009-11-20 18:07 ` [PATCH 7/7] ARM: dma-mapping: no need to clean overlapping cache lines on invalidate Russell King - ARM Linux
2009-11-22 22:16 ` Nicolas Pitre
2009-11-23 10:26 ` Russell King - ARM Linux
2009-11-23 12:09 ` [PATCH 7/7] ARM: dma-mapping: no need to clean overlapping cachelines " Catalin Marinas
2009-11-23 13:30 ` Russell King - ARM Linux
2009-11-23 13:38 ` [PATCH v2 07/17] ARM: dma-mapping: no need to clean overlapping cache lines " Russell King - ARM Linux
2009-11-23 19:35 ` Nicolas Pitre
2009-11-25 12:19 ` Catalin Marinas
2009-11-25 16:31 ` Russell King - ARM Linux
2009-11-25 17:02 ` [PATCH v2 07/17] ARM: dma-mapping: no need to cleanoverlapping " Catalin Marinas
2009-11-25 17:34 ` [PATCH v2 07/17] ARM: dma-mapping: no need to clean overlapping " Russell King - ARM Linux
2009-11-21 14:00 ` [PATCH 0/7] dma-mapping: Cortex A9 speculative prefetch fixes Jamie Iles
2009-11-23 10:29 ` Russell King - ARM Linux
2010-01-13 6:37 ` muni anda
2010-01-13 8:42 ` Russell King - ARM Linux
2009-11-21 17:56 ` Rajanikanth H.V
2009-11-21 18:57 ` Russell King - ARM Linux
2009-11-21 19:35 ` [PATCH 0/10] dma-mapping: cleanup coherent/writealloc dma allocations and ARMv7 memory support Russell King - ARM Linux
2009-11-21 19:37 ` [PATCH 01/10] ARM: dma-mapping: split out vmregion code from dma coherent mapping code Russell King - ARM Linux
2009-11-21 19:37 ` [PATCH 02/10] ARM: dma-mapping: functions to allocate/free a coherent buffer Russell King - ARM Linux
2009-11-21 19:37 ` [PATCH 03/10] ARM: dma-mapping: fix coherent arch dma_alloc_coherent() Russell King - ARM Linux
2009-11-21 19:38 ` [PATCH 04/10] ARM: dma-mapping: fix nommu dma_alloc_coherent() Russell King - ARM Linux
2009-11-21 19:38 ` [PATCH 05/10] ARM: dma-mapping: factor dma_free_coherent() common code Russell King - ARM Linux
2009-11-21 19:38 ` [PATCH 06/10] ARM: dma-mapping: move consistent_init into CONFIG_MMU section Russell King - ARM Linux
2009-11-22 0:05 ` Greg Ungerer [this message]
2009-11-22 0:16 ` Russell King - ARM Linux
2009-11-21 19:38 ` [PATCH 07/10] ARM: dma-mapping: clean up coherent arch dma allocation Russell King - ARM Linux
2009-11-21 19:39 ` [PATCH 08/10] ARM: dma-mapping: Factor out noMMU dma buffer allocation code Russell King - ARM Linux
2009-11-21 19:39 ` [PATCH 09/10] ARM: dma-mapping: get rid of setting/clearing the reserved page bit Russell King - ARM Linux
2009-11-21 19:39 ` [PATCH 10/10] ARM: dma-mapping: switch ARMv7 DMA mappings to retain 'memory' attribute Russell King - ARM Linux
2009-11-23 12:21 ` [PATCH 10/10] ARM: dma-mapping: switch ARMv7 DMA mappings to retain'memory' attribute Catalin Marinas
2009-11-23 7:10 ` [PATCH 0/10] dma-mapping: cleanup coherent/writealloc dma allocations and ARMv7 memory support Greg Ungerer
2009-11-23 10:26 ` Russell King - ARM Linux
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=4B088054.30606@snapgear.com \
--to=gerg@snapgear.com \
--cc=linux-arm-kernel@lists.infradead.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.