Gitweb:     
http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=2497f0a8125e307cf1fd4222bab53f66305eba27
Commit:     2497f0a8125e307cf1fd4222bab53f66305eba27
Parent:     235b185ce47ce64793362bd3ae4bcd8afc6b57b8
Author:     Russell King <[EMAIL PROTECTED]>
AuthorDate: Sat Apr 21 09:59:44 2007 +0100
Committer:  Russell King <[EMAIL PROTECTED]>
CommitDate: Sat Apr 21 20:35:44 2007 +0100

    [ARM] mm 1: Combine mem_type domain into prot_* at init time
    
    Rather than combining the domain for a particular memory type with
    the protection information each time we want to use it, do so when
    we fix up the mem_type array at initialisation time.
    
    Rename struct mem_types to be mem_type - each structure is one
    memory type description, not several.
    
    Signed-off-by: Russell King <[EMAIL PROTECTED]>
---
 arch/arm/mm/mmu.c |   16 ++++++++++++----
 1 files changed, 12 insertions(+), 4 deletions(-)

diff --git a/arch/arm/mm/mmu.c b/arch/arm/mm/mmu.c
index 94fd4bf..6178be0 100644
--- a/arch/arm/mm/mmu.c
+++ b/arch/arm/mm/mmu.c
@@ -176,14 +176,14 @@ void adjust_cr(unsigned long mask, unsigned long set)
 }
 #endif
 
-struct mem_types {
+struct mem_type {
        unsigned int    prot_pte;
        unsigned int    prot_l1;
        unsigned int    prot_sect;
        unsigned int    domain;
 };
 
-static struct mem_types mem_types[] __initdata = {
+static struct mem_type mem_types[] __initdata = {
        [MT_DEVICE] = {
                .prot_pte  = L_PTE_PRESENT | L_PTE_YOUNG | L_PTE_DIRTY |
                                L_PTE_WRITE,
@@ -368,6 +368,14 @@ static void __init build_mem_type_table(void)
        }
        printk("Memory policy: ECC %sabled, Data cache %s\n",
                ecc_mask ? "en" : "dis", cp->policy);
+
+       for (i = 0; i < ARRAY_SIZE(mem_types); i++) {
+               struct mem_type *t = &mem_types[i];
+               if (t->prot_l1)
+                       t->prot_l1 |= PMD_DOMAIN(t->domain);
+               if (t->prot_sect)
+                       t->prot_sect |= PMD_DOMAIN(t->domain);
+       }
 }
 
 #define vectors_base() (vectors_high() ? 0xffff0000 : 0)
@@ -458,8 +466,8 @@ void __init create_mapping(struct map_desc *md)
 
        domain    = mem_types[md->type].domain;
        prot_pte  = __pgprot(mem_types[md->type].prot_pte);
-       prot_l1   = mem_types[md->type].prot_l1 | PMD_DOMAIN(domain);
-       prot_sect = mem_types[md->type].prot_sect | PMD_DOMAIN(domain);
+       prot_l1   = mem_types[md->type].prot_l1;
+       prot_sect = mem_types[md->type].prot_sect;
 
        /*
         * Catch 36-bit addresses
-
To unsubscribe from this list: send the line "unsubscribe git-commits-head" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to