sparc32: Kill none_mask, it's bogus.
For some reason, the pte_none() calculation for srmmu sparc32 chips was masking out the top 4 bits. That doesn't make any sense, as those are just some of the physical bits of the PTE encoding. Furthermore, this mistake breaks things when the offset of of a swap entry has a large enough offset as reported by Тхай Кирилл. Sun4c always set it to zero, so it's really completely useless, kill it. Reported-by: Тхай Кирилл <tkhai@yandex.ru> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
@ -142,13 +142,12 @@ BTFIXUPDEF_CALL_CONST(unsigned long, pgd_page_vaddr, pgd_t)
|
||||
#define pmd_page(pmd) BTFIXUP_CALL(pmd_page)(pmd)
|
||||
#define pgd_page_vaddr(pgd) BTFIXUP_CALL(pgd_page_vaddr)(pgd)
|
||||
|
||||
BTFIXUPDEF_SETHI(none_mask)
|
||||
BTFIXUPDEF_CALL_CONST(int, pte_present, pte_t)
|
||||
BTFIXUPDEF_CALL(void, pte_clear, pte_t *)
|
||||
|
||||
static inline int pte_none(pte_t pte)
|
||||
{
|
||||
return !(pte_val(pte) & ~BTFIXUP_SETHI(none_mask));
|
||||
return !pte_val(pte);
|
||||
}
|
||||
|
||||
#define pte_present(pte) BTFIXUP_CALL(pte_present)(pte)
|
||||
@ -160,7 +159,7 @@ BTFIXUPDEF_CALL(void, pmd_clear, pmd_t *)
|
||||
|
||||
static inline int pmd_none(pmd_t pmd)
|
||||
{
|
||||
return !(pmd_val(pmd) & ~BTFIXUP_SETHI(none_mask));
|
||||
return !pmd_val(pmd);
|
||||
}
|
||||
|
||||
#define pmd_bad(pmd) BTFIXUP_CALL(pmd_bad)(pmd)
|
||||
|
Reference in New Issue
Block a user