Merge branch 'drm-armada-fixes' of git://git.armlinux.org.uk/~rmk/linux-arm into...
[cascardo/linux.git] / arch / sparc / mm / srmmu.c
index 5cbc96d..c7f2a52 100644 (file)
@@ -107,17 +107,22 @@ static inline int srmmu_pmd_none(pmd_t pmd)
 
 /* XXX should we hyper_flush_whole_icache here - Anton */
 static inline void srmmu_ctxd_set(ctxd_t *ctxp, pgd_t *pgdp)
-{ set_pte((pte_t *)ctxp, (SRMMU_ET_PTD | (__nocache_pa((unsigned long) pgdp) >> 4))); }
+{
+       pte_t pte;
+
+       pte = __pte((SRMMU_ET_PTD | (__nocache_pa(pgdp) >> 4)));
+       set_pte((pte_t *)ctxp, pte);
+}
 
 void pmd_set(pmd_t *pmdp, pte_t *ptep)
 {
        unsigned long ptp;      /* Physical address, shifted right by 4 */
        int i;
 
-       ptp = __nocache_pa((unsigned long) ptep) >> 4;
+       ptp = __nocache_pa(ptep) >> 4;
        for (i = 0; i < PTRS_PER_PTE/SRMMU_REAL_PTRS_PER_PTE; i++) {
-               set_pte((pte_t *)&pmdp->pmdv[i], SRMMU_ET_PTD | ptp);
-               ptp += (SRMMU_REAL_PTRS_PER_PTE*sizeof(pte_t) >> 4);
+               set_pte((pte_t *)&pmdp->pmdv[i], __pte(SRMMU_ET_PTD | ptp));
+               ptp += (SRMMU_REAL_PTRS_PER_PTE * sizeof(pte_t) >> 4);
        }
 }
 
@@ -128,8 +133,8 @@ void pmd_populate(struct mm_struct *mm, pmd_t *pmdp, struct page *ptep)
 
        ptp = page_to_pfn(ptep) << (PAGE_SHIFT-4);      /* watch for overflow */
        for (i = 0; i < PTRS_PER_PTE/SRMMU_REAL_PTRS_PER_PTE; i++) {
-               set_pte((pte_t *)&pmdp->pmdv[i], SRMMU_ET_PTD | ptp);
-               ptp += (SRMMU_REAL_PTRS_PER_PTE*sizeof(pte_t) >> 4);
+               set_pte((pte_t *)&pmdp->pmdv[i], __pte(SRMMU_ET_PTD | ptp));
+               ptp += (SRMMU_REAL_PTRS_PER_PTE * sizeof(pte_t) >> 4);
        }
 }
 
@@ -911,7 +916,7 @@ void __init srmmu_paging_init(void)
 
        /* ctx table has to be physically aligned to its size */
        srmmu_context_table = __srmmu_get_nocache(num_contexts * sizeof(ctxd_t), num_contexts * sizeof(ctxd_t));
-       srmmu_ctx_table_phys = (ctxd_t *)__nocache_pa((unsigned long)srmmu_context_table);
+       srmmu_ctx_table_phys = (ctxd_t *)__nocache_pa(srmmu_context_table);
 
        for (i = 0; i < num_contexts; i++)
                srmmu_ctxd_set((ctxd_t *)__nocache_fix(&srmmu_context_table[i]), srmmu_swapper_pg_dir);