The bitmask in a pte for swap type is 0x0000_1f00. In the CPU_MIPS32 && 64BIT_PHYS_ADDR case, _PAGE_FILE is 0x0000_0400. Since _PAGE_FILE is set in the maxed out swap type, it triggers a BUG(). If I move the swap type field like this: #define __swp_type(x) (((x).val >> 2) & 0x0f) then it works for me. This makes use of the _PAGE_DIRTY and _CACHE_MASK bits which were being used in the !64BIT_PHYS_ADDR case. Is this a reasonable solution, or should a different grouping of bits be used? Bob Breuer