1. 26 9月, 2006 1 次提交
    • A
      [PATCH] i386: Redo semaphore and rwlock assembly helpers · ecaf45ee
      Andi Kleen 提交于
      - Move them to a pure assembly file. Previously they were in
      a C file that only consisted of inline assembly. Doing it in pure
      assembler is much nicer.
      - Add a frame.i include with FRAME/ENDFRAME macros to easily
      add frame pointers to assembly functions
      - Add dwarf2 annotation to them so that the new dwarf2 unwinder
      doesn't get stuck on them
      - Random cleanups
      
      Includes feedback from Jan Beulich and a UML build fix from Andrew
      Morton.
      
      Cc: jbeulich@novell.com
      Cc: jdike@addtoit.com
      Signed-off-by: NAndi Kleen <ak@suse.de>
      ecaf45ee
  2. 21 9月, 2006 1 次提交
  3. 02 7月, 2006 1 次提交
    • P
      [PATCH] uml: make copy_*_user atomic · 47e5243a
      Paolo 'Blaisorblade' Giarrusso 提交于
      Make __copy_*_user_inatomic really atomic to avoid "Sleeping function called in
      atomic context" warnings, especially from futex code.
      
      This is made by adding another kmap_atomic slot and making copy_*_user_skas
      use kmap_atomic; also copy_*_user() becomes atomic, but that's true and is not
      a problem for i386 (and we can always add might_sleep there as done
      elsewhere).  For TT mode kmap is not used, so there's no need for this.
      
      I've had to use another slot since both KM_USER0 and KM_USER1 are used
      elsewhere and could cause conflicts.  Till now we reused the kmap_atomic slot
      list from the subarch, but that's not needed as that list must contain the
      common ones (used by generic code) + the ones used in architecture specific
      code (and Uml till now used none); so I've taken the i386 one after comparing
      it with ones from other archs, and added KM_UML_USERCOPY.
      Signed-off-by: NPaolo 'Blaisorblade' Giarrusso <blaisorblade@yahoo.it>
      Cc: Jeff Dike <jdike@addtoit.com>
      Signed-off-by: NAndrew Morton <akpm@osdl.org>
      Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
      47e5243a
  4. 01 7月, 2006 1 次提交
  5. 30 6月, 2006 1 次提交
  6. 18 6月, 2006 1 次提交
  7. 06 6月, 2006 2 次提交
  8. 26 4月, 2006 1 次提交
  9. 11 4月, 2006 1 次提交
  10. 01 4月, 2006 4 次提交
  11. 28 3月, 2006 2 次提交
  12. 23 3月, 2006 1 次提交
    • G
      [PATCH] x86: SMP alternatives · 9a0b5817
      Gerd Hoffmann 提交于
      Implement SMP alternatives, i.e.  switching at runtime between different
      code versions for UP and SMP.  The code can patch both SMP->UP and UP->SMP.
      The UP->SMP case is useful for CPU hotplug.
      
      With CONFIG_CPU_HOTPLUG enabled the code switches to UP at boot time and
      when the number of CPUs goes down to 1, and switches to SMP when the number
      of CPUs goes up to 2.
      
      Without CONFIG_CPU_HOTPLUG or on non-SMP-capable systems the code is
      patched once at boot time (if needed) and the tables are released
      afterwards.
      
      The changes in detail:
      
        * The current alternatives bits are moved to a separate file,
          the SMP alternatives code is added there.
      
        * The patch adds some new elf sections to the kernel:
          .smp_altinstructions
      	like .altinstructions, also contains a list
      	of alt_instr structs.
          .smp_altinstr_replacement
      	like .altinstr_replacement, but also has some space to
      	save original instruction before replaving it.
          .smp_locks
      	list of pointers to lock prefixes which can be nop'ed
      	out on UP.
          The first two are used to replace more complex instruction
          sequences such as spinlocks and semaphores.  It would be possible
          to deal with the lock prefixes with that as well, but by handling
          them as special case the table sizes become much smaller.
      
       * The sections are page-aligned and padded up to page size, so they
         can be free if they are not needed.
      
       * Splitted the code to release init pages to a separate function and
         use it to release the elf sections if they are unused.
      Signed-off-by: NGerd Hoffmann <kraxel@suse.de>
      Signed-off-by: NChuck Ebbert <76306.1226@compuserve.com>
      Signed-off-by: NAndrew Morton <akpm@osdl.org>
      Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
      9a0b5817
  13. 02 2月, 2006 3 次提交
  14. 19 1月, 2006 3 次提交
  15. 13 1月, 2006 1 次提交
  16. 11 1月, 2006 1 次提交
  17. 10 1月, 2006 1 次提交
  18. 09 1月, 2006 3 次提交
  19. 23 11月, 2005 1 次提交
  20. 07 11月, 2005 2 次提交
  21. 31 10月, 2005 2 次提交
  22. 30 10月, 2005 1 次提交
    • H
      [PATCH] mm: pte_offset_map_lock loops · 705e87c0
      Hugh Dickins 提交于
      Convert those common loops using page_table_lock on the outside and
      pte_offset_map within to use just pte_offset_map_lock within instead.
      
      These all hold mmap_sem (some exclusively, some not), so at no level can a
      page table be whipped away from beneath them.  But whereas pte_alloc loops
      tested with the "atomic" pmd_present, these loops are testing with pmd_none,
      which on i386 PAE tests both lower and upper halves.
      
      That's now unsafe, so add a cast into pmd_none to test only the vital lower
      half: we lose a little sensitivity to a corrupt middle directory, but not
      enough to worry about.  It appears that i386 and UML were the only
      architectures vulnerable in this way, and pgd and pud no problem.
      Signed-off-by: NHugh Dickins <hugh@veritas.com>
      Signed-off-by: NAndrew Morton <akpm@osdl.org>
      Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
      705e87c0
  23. 28 10月, 2005 2 次提交
  24. 05 10月, 2005 1 次提交
  25. 30 9月, 2005 1 次提交
  26. 23 9月, 2005 1 次提交