On Aug 21, 2008, at 4:40 PM, Kumar Gala wrote:
#define _PMD_PRESENT 0
#define _PMD_PRESENT_MASK (PAGE_MASK)
@@ -517,7 +522,13 @@ extern unsigned long
bad_call_to_PMD_PAGE_SIZE(void);
#define pte_none(pte) ((pte_val(pte) & ~_PTE_NONE_MASK) == 0)
#define pte_present(pte) (pte_val(pte) & _PAGE_PRESENT)
+
+#if (defined(CONFIG_PTE_64BIT) && (_PAGE_HASHPTE != 0))
+#define pte_clear(mm, addr, ptep) \
+ do { pte_update((ptep), (~_PAGE_HASHPTE), __pte(0)); } while (0)
drop the __pte(0), doesn't make sense for pte_update
Cut-and-paste strikes again :) Will fix, thanks.
+#else
#define pte_clear(mm,addr,ptep) do { set_pte_at((mm), (addr),
(ptep), __pte(0)); } while (0)
+#endif
Can we just always (for all ppc32) do:
#define pte_clear(mm,addr,ptep) do { pte_update(ptep,
(~_PAGE_HASHPTE), 0); } while (0)
I've already changed this to be:
#define pte_clear(mm,addr,ptep) do { pte_update(ptep, ~0, 0); }
while (0)
That's fine, but it makes me dependent on your tree. Shall I respin
on top of your tree and have you pick this up, or are you going to
push your changes to Paulus?
/*
diff --git a/arch/powerpc/include/asm/types.h b/arch/powerpc/
include/asm/types.h
index d3374bc..a9a9262 100644
--- a/arch/powerpc/include/asm/types.h
+++ b/arch/powerpc/include/asm/types.h
@@ -55,7 +55,7 @@ typedef u64 phys_addr_t;
typedef u32 phys_addr_t;
#endif
-#ifdef __powerpc64__
+#if defined(__powerpc64__) || defined(CONFIG_PHYS_64BIT)
typedef u64 dma_addr_t;
#else
typedef u32 dma_addr_t;
is this really part of this patchset of the IOMMU changes?
It doesn't really belong here - I'll move it.
Thanks,
B
_______________________________________________
Linuxppc-dev mailing list
Linuxppc-dev@ozlabs.org
https://ozlabs.org/mailman/listinfo/linuxppc-dev