]> bbs.cooldavid.org Git - net-next-2.6.git/commitdiff
Merge git://git.kernel.org/pub/scm/linux/kernel/git/lethal/sh-2.6
authorLinus Torvalds <torvalds@linux-foundation.org>
Thu, 28 Oct 2010 19:06:51 +0000 (12:06 -0700)
committerLinus Torvalds <torvalds@linux-foundation.org>
Thu, 28 Oct 2010 19:06:51 +0000 (12:06 -0700)
* git://git.kernel.org/pub/scm/linux/kernel/git/lethal/sh-2.6: (32 commits)
  sh: intc: switch irq_desc iteration to new active IRQ iterator.
  sh: fix up cpu hotplug IRQ migration for irq_data changes.
  sh: oprofile: Make sure the backtrace op is available for timer-fallback.
  sh64: oprofile: Fix up kernel stack pointer size mismatch.
  sh: oprofile: Fix up and extend op_name_from_perf_id().
  sh: lockless get_user_pages_fast()
  sh64: _PAGE_SPECIAL support.
  sound: sh: ctrl_in/outX to __raw_read/writeX conversion.
  sh: disable deprecated genirq support.
  sh: update show_interrupts() for irq_data chip lookup.
  sh: intc: irq_data conversion.
  sh64: irq_data conversion.
  sh64: update for IRQ flag handling naming changes.
  rtc: rtc-rs5c313: ctrl_in/outX to __raw_read/writeX conversion.
  sh: mach-se: irq_data conversion.
  input: hp680_ts_input: ctrl_in/outX to __raw_read/writeX conversion.
  input: jornada680_kbd: ctrl_in/outX to __raw_read/writeX conversion.
  sh: hd64461: irq_data conversion.
  sh: mach-x3proto: irq_data conversion.
  sh: mach-systemh: irq_data conversion.
  ...

1  2 
arch/sh/include/asm/pgtable_32.h
arch/sh/include/asm/pgtable_64.h

index 69fdfbf14ea5b00e5dc8ed29cd65b30333a1ee82,ae1a6ef71f378f266b568b3b39e56a84bb6153ac..43528ec656bad5fc13db8d8c359d88c100969d57
@@@ -378,8 -378,6 +378,6 @@@ PTE_BIT_FUNC(low, mkold, &= ~_PAGE_ACCE
  PTE_BIT_FUNC(low, mkyoung, |= _PAGE_ACCESSED);
  PTE_BIT_FUNC(low, mkspecial, |= _PAGE_SPECIAL);
  
- #define __HAVE_ARCH_PTE_SPECIAL
  /*
   * Macro and implementation to make a page protection as uncachable.
   */
@@@ -429,7 -427,10 +427,7 @@@ static inline pte_t pte_modify(pte_t pt
  #define pte_offset_kernel(dir, address) \
        ((pte_t *) pmd_page_vaddr(*(dir)) + pte_index(address))
  #define pte_offset_map(dir, address)          pte_offset_kernel(dir, address)
 -#define pte_offset_map_nested(dir, address)   pte_offset_kernel(dir, address)
 -
  #define pte_unmap(pte)                do { } while (0)
 -#define pte_unmap_nested(pte) do { } while (0)
  
  #ifdef CONFIG_X2TLB
  #define pte_ERROR(e) \
index 10a48111226dbd319315105ed48709d6b3189721,22113f7fc83cd27ee0ae5120fb48137c0d07eb26..42cb9dd52161169c838c57b854fb05dc6a85de81
@@@ -84,7 -84,9 +84,7 @@@ static __inline__ void set_pte(pte_t *p
                ((pte_t *) ((pmd_val(*(dir))) & PAGE_MASK) + pte_index((addr)))
  
  #define pte_offset_map(dir,addr)      pte_offset_kernel(dir, addr)
 -#define pte_offset_map_nested(dir,addr)       pte_offset_kernel(dir, addr)
  #define pte_unmap(pte)                do { } while (0)
 -#define pte_unmap_nested(pte) do { } while (0)
  
  #ifndef __ASSEMBLY__
  #define IOBASE_VADDR  0xff000000
   * anything above the PPN field.
   */
  #define _PAGE_WIRED   _PAGE_EXT(0x001) /* software: wire the tlb entry */
+ #define _PAGE_SPECIAL _PAGE_EXT(0x002)
  
  #define _PAGE_CLEAR_FLAGS     (_PAGE_PRESENT | _PAGE_FILE | _PAGE_SHARED | \
                                 _PAGE_DIRTY | _PAGE_ACCESSED | _PAGE_WIRED)
  /* Default flags for a User page */
  #define _PAGE_TABLE   (_KERNPG_TABLE | _PAGE_USER)
  
- #define _PAGE_CHG_MASK        (PTE_MASK | _PAGE_ACCESSED | _PAGE_DIRTY)
+ #define _PAGE_CHG_MASK        (PTE_MASK | _PAGE_ACCESSED | _PAGE_DIRTY | \
+                        _PAGE_SPECIAL)
  
  /*
   * We have full permissions (Read/Write/Execute/Shared).
@@@ -263,7 -267,7 +265,7 @@@ static inline int pte_dirty(pte_t pte
  static inline int pte_young(pte_t pte)  { return pte_val(pte) & _PAGE_ACCESSED; }
  static inline int pte_file(pte_t pte)   { return pte_val(pte) & _PAGE_FILE; }
  static inline int pte_write(pte_t pte)  { return pte_val(pte) & _PAGE_WRITE; }
- static inline int pte_special(pte_t pte){ return 0; }
+ static inline int pte_special(pte_t pte){ return pte_val(pte) & _PAGE_SPECIAL; }
  
  static inline pte_t pte_wrprotect(pte_t pte)  { set_pte(&pte, __pte(pte_val(pte) & ~_PAGE_WRITE)); return pte; }
  static inline pte_t pte_mkclean(pte_t pte)    { set_pte(&pte, __pte(pte_val(pte) & ~_PAGE_DIRTY)); return pte; }
@@@ -272,8 -276,7 +274,7 @@@ static inline pte_t pte_mkwrite(pte_t p
  static inline pte_t pte_mkdirty(pte_t pte)    { set_pte(&pte, __pte(pte_val(pte) | _PAGE_DIRTY)); return pte; }
  static inline pte_t pte_mkyoung(pte_t pte)    { set_pte(&pte, __pte(pte_val(pte) | _PAGE_ACCESSED)); return pte; }
  static inline pte_t pte_mkhuge(pte_t pte)     { set_pte(&pte, __pte(pte_val(pte) | _PAGE_SZHUGE)); return pte; }
- static inline pte_t pte_mkspecial(pte_t pte)  { return pte; }
+ static inline pte_t pte_mkspecial(pte_t pte)  { set_pte(&pte, __pte(pte_val(pte) | _PAGE_SPECIAL)); return pte; }
  
  /*
   * Conversion functions: convert a page and protection to a page entry.