1. 07 2月, 2009 15 次提交
  2. 14 1月, 2009 1 次提交
  3. 20 12月, 2008 2 次提交
  4. 19 12月, 2008 3 次提交
  5. 17 12月, 2008 1 次提交
    • J
      x86: consolidate __swp_XXX() macros · 1796316a
      Jan Beulich 提交于
      Impact: cleanup, code robustization
      
      The __swp_...() macros silently relied upon which bits are used for
      _PAGE_FILE and _PAGE_PROTNONE. After having changed _PAGE_PROTNONE in
      our Xen kernel to no longer overlap _PAGE_PAT, live locks and crashes
      were reported that could have been avoided if these macros properly
      used the symbolic constants. Since, as pointed out earlier, for Xen
      Dom0 support mainline likewise will need to eliminate the conflict
      between _PAGE_PAT and _PAGE_PROTNONE, this patch does all the necessary
      adjustments, plus it introduces a mechanism to check consistency
      between MAX_SWAPFILES_SHIFT and the actual encoding macros.
      
      This also fixes a latent bug in that x86-64 used a 6-bit mask in
      __swp_type(), and if MAX_SWAPFILES_SHIFT was increased beyond 5 in (the
      seemingly unrelated) linux/swap.h, this would have resulted in a
      collision with _PAGE_FILE.
      
      Non-PAE 32-bit code gets similarly adjusted for its pte_to_pgoff() and
      pgoff_to_pte() calculations.
      Signed-off-by: NJan Beulich <jbeulich@novell.com>
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      1796316a
  6. 23 10月, 2008 2 次提交
  7. 16 10月, 2008 1 次提交
    • S
      x86: fix compat-vdso · f61f1b57
      Suresh Siddha 提交于
      Jeff Chua reported that this patch:
      
      > -#define PTE_IDENT_ATTR  0x007          /* PRESENT+RW+USER */
      > -#define PDE_IDENT_ATTR  0x067          /* PRESENT+RW+USER+DIRTY+ACCESSED */
      > +#define PTE_IDENT_ATTR  0x003          /* PRESENT+RW */
      > +#define PDE_IDENT_ATTR  0x063          /* PRESENT+RW+DIRTY+ACCESSED */
      
      broke kernels with CONFIG_COMPAT_VDSO set with this init segfault:
      
      init[1]: segfault at ffffe01c up b7f0dc28 sp bfc26628 error 5 in ld-2.7.90.so[b7f0b000+1c000]
      
      Include USER bit in the PDE_IDENT_ATTR only, as the protection bits
      are combined from the PDE and PTE entries. This will allow the high
      mapped VDSO page in the case of CONFIG_COMPAT_VDSO to be user
      readable.
      Reported-by: NJeff Chua <jeff.chua.linux@gmail.com>
      Signed-off-by: NSuresh Siddha <suresh.b.siddha@intel.com>
      Tested-by: NJeff Chua <jeff.chua.linux@gmail.com>
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      f61f1b57
  8. 13 10月, 2008 2 次提交
  9. 11 10月, 2008 2 次提交
  10. 10 9月, 2008 1 次提交
    • H
      x86: unsigned long pte_pfn · 91030ca1
      Hugh Dickins 提交于
      pte_pfn() has always been of type unsigned long, even on 32-bit PAE;
      but in the current tip/next/mm tree it works out to be unsigned long
      long on 64-bit, which gives an irritating warning if you try to printk
      a pfn with the usual %lx.
      
      Now use the same pte_pfn() function, moved from pgtable-3level.h
      to pgtable.h, for all models: as suggested by Jeremy Fitzhardinge.
      And pte_page() can well move along with it (remaining a macro to
      avoid dependence on mm_types.h).
      Signed-off-by: NHugh Dickins <hugh@veritas.com>
      Acked-by: NJeremy Fitzhardinge <jeremy@goop.org>
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      91030ca1
  11. 05 9月, 2008 1 次提交
  12. 27 7月, 2008 1 次提交
  13. 23 7月, 2008 2 次提交
  14. 22 7月, 2008 2 次提交
  15. 16 7月, 2008 1 次提交
  16. 09 7月, 2008 1 次提交
  17. 08 7月, 2008 2 次提交
    • J
      x86_32: remove __PAGE_KERNEL(_EXEC) · ef5e94af
      Jeremy Fitzhardinge 提交于
      From: Jeremy Fitzhardinge <jeremy.fitzhardinge@citrix.com>
      
      Older x86-32 processors do not support global mappings (PGD), so must
      only use it if the processor supports it.
      
      The _PAGE_KERNEL* flags always have _PAGE_KERNEL set, since logically
      we always want it set.
      
      This is OK even on processors which do not support PGD, since all
      _PAGE flags are masked with __supported_pte_mask before being turned
      into a real in-pagetable pte.  On 32-bit systems, __supported_pte_mask
      is initialized to not contain _PAGE_GLOBAL, and it is then added if
      the CPU is found to support it.
      
      The x86-32 code used to use __PAGE_KERNEL/__PAGE_KERNEL_EXEC for this
      purpose, but they're now redundant and can be removed.
      Signed-off-by: NJeremy Fitzhardinge <jeremy.fitzhardinge@citrix.com>
      Cc: Stephen Tweedie <sct@redhat.com>
      Cc: Eduardo Habkost <ehabkost@redhat.com>
      Cc: Mark McLoughlin <markmc@redhat.com>
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      ef5e94af
    • J
      x86: always set _PAGE_GLOBAL in _PAGE_KERNEL* flags · 8490638c
      Jeremy Fitzhardinge 提交于
      Consistently set _PAGE_GLOBAL in _PAGE_KERNEL flags.  This makes 32-
      and 64-bit code consistent, and removes some special cases where
      __PAGE_KERNEL* did not have _PAGE_GLOBAL set, causing confusion as a
      result of the inconsistencies.
      
      This patch only affects x86-64, which generally always supports PGD.
      The x86-32 patch is next.
      Signed-off-by: NJeremy Fitzhardinge <jeremy.fitzhardinge@citrix.com>
      Cc: Stephen Tweedie <sct@redhat.com>
      Cc: Eduardo Habkost <ehabkost@redhat.com>
      Cc: Mark McLoughlin <markmc@redhat.com>
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      8490638c