From: Lukas Razik <linux@xxxxxxxxxx> Date: Fri, 18 Nov 2011 05:02:57 +0000 (GMT) > After applying your patch I still get the errors: > [ 1117.556582] swap_free: Bad swap file entry 100004e000061800 > [ 1117.556710] BUG: Bad page map in process ibv_devinfo pte:9c0000c300104608 pmd:00f882d0 This looks almost like it's actually a mapping to physical memory, or at least it is a PTE which hasn't had pgprot_noncached() applied to it's protections. Another hint is that pte_mkspecial() hasn't been performed on this PTE either. The PTE is: 0x9c0000c300104608 which amounts to: _PAGE_VALID 0x8000000000000000 _PAGE_ACCESSED_4V 0x1000000000000000 _PAGE_READ_4V 0x0800000000000000 _PAGE_WRITE_4V 0x0400000000000000 physical page 0x000000c300104000 _PAGE_CP_4V 0x0000000000000400 _PAGE_CV_4V 0x0000000000000200 _PAGE_RESV_4V 0x0000000000000008 That last bit is mysterious, there shouldn't be anything setting the reserved bit 0x8. But that just so happens to be equal to the SUN4U PTE's "side effect" bit, _PAGE_E_4U. Hmmm... That explains everything. The problem is that we don't do the sparc64 PTE handling code patching in modules. So it's left at the default 4U versions. So the PTE did have pgprot_noncached() applied to it's protections, it's just that this function is inlined into the driver module and hasn't been patched properly by the sun4v code patcher when the module got loaded. I'll work on a fix for this. -- To unsubscribe from this list: send the line "unsubscribe sparclinux" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html