Gitweb:     
http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=23c9bbbac57ae50dceadfda37b49785ec04dd42f
Commit:     23c9bbbac57ae50dceadfda37b49785ec04dd42f
Parent:     0d4f64681695b0e389f7121eb647b27c602990bc
Author:     Hirokazu Takata <[EMAIL PROTECTED]>
AuthorDate: Thu May 10 22:22:28 2007 -0700
Committer:  Linus Torvalds <[EMAIL PROTECTED]>
CommitDate: Fri May 11 08:29:33 2007 -0700

    m32r: fix pte_to_pgoff(), pgoff_to_pte() and __swp_type() macros
    
    This patch is required to handle file-mapped or swapped-out pages
    correctly.
    
    - Fix pte_to_pgoff() and pgoff_to_pte() macros not to include
      _PAGE_PROTNONE bit of PTE.
      Mask value for { ACCESSED, N, (R, W, X), L, G } is not 0xef but 0x7f.
    - Fix __swp_type() macro for MAX_SWAPFILES_SHIFT(=5), which is defined
      in include/linux/swap.h.
    
    * M32R TLB format
    
         [0]    [1:19]           [20:23]       [24:31]
         +-----------------------+----+-------------+
         |          VPN          |0000|    ASID     |
         +-----------------------+----+-------------+
         +-+---------------------+----+-+---+-+-+-+-+
         |0         PPN          |0000|N|AC |L|G|V| |
         +-+---------------------+----+-+---+-+-+-+-+
                                    ||   RWX     | |
    * software bits in PTE          ||           | +-- _PAGE_FILE | _PAGE_DIRTY
                                    ||           +---- _PAGE_PRESENT
                                    |+---------------- _PAGE_ACCESSED
                                    +----------------- _PAGE_PROTNONE
    
    Signed-off-by: Hitoshi Yamamoto <[EMAIL PROTECTED]>
    Signed-off-by: Hirokazu Takata <[EMAIL PROTECTED]>
    Signed-off-by: Andrew Morton <[EMAIL PROTECTED]>
    Signed-off-by: Linus Torvalds <[EMAIL PROTECTED]>
---
 include/asm-m32r/pgtable-2level.h |    4 ++--
 include/asm-m32r/pgtable.h        |    2 +-
 2 files changed, 3 insertions(+), 3 deletions(-)

diff --git a/include/asm-m32r/pgtable-2level.h 
b/include/asm-m32r/pgtable-2level.h
index 7509257..bca3475 100644
--- a/include/asm-m32r/pgtable-2level.h
+++ b/include/asm-m32r/pgtable-2level.h
@@ -71,8 +71,8 @@ static inline pmd_t *pmd_offset(pgd_t * dir, unsigned long 
address)
 #define pfn_pmd(pfn, prot)     __pmd(((pfn) << PAGE_SHIFT) | pgprot_val(prot))
 
 #define PTE_FILE_MAX_BITS      29
-#define pte_to_pgoff(pte)      (((pte_val(pte) >> 2) & 0xef) | (((pte_val(pte) 
>> 10)) << 7))
-#define pgoff_to_pte(off)      ((pte_t) { (((off) & 0xef) << 2) | (((off) >> 
7) << 10) | _PAGE_FILE })
+#define pte_to_pgoff(pte)      (((pte_val(pte) >> 2) & 0x7f) | (((pte_val(pte) 
>> 10)) << 7))
+#define pgoff_to_pte(off)      ((pte_t) { (((off) & 0x7f) << 2) | (((off) >> 
7) << 10) | _PAGE_FILE })
 
 #endif /* __KERNEL__ */
 #endif /* _ASM_M32R_PGTABLE_2LEVEL_H */
diff --git a/include/asm-m32r/pgtable.h b/include/asm-m32r/pgtable.h
index 8b2a2f1..6604303 100644
--- a/include/asm-m32r/pgtable.h
+++ b/include/asm-m32r/pgtable.h
@@ -366,7 +366,7 @@ static inline void pmd_set(pmd_t * pmdp, pte_t * ptep)
 #define pte_unmap_nested(pte)  do { } while (0)
 
 /* Encode and de-code a swap entry */
-#define __swp_type(x)                  (((x).val >> 2) & 0x3f)
+#define __swp_type(x)                  (((x).val >> 2) & 0x1f)
 #define __swp_offset(x)                        ((x).val >> 10)
 #define __swp_entry(type, offset)      \
        ((swp_entry_t) { ((type) << 2) | ((offset) << 10) })
-
To unsubscribe from this list: send the line "unsubscribe git-commits-head" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to