1. 10 Oct, 2002 3 commits
    • Andrew Morton's avatar
      [PATCH] move_one_page atomicity fix · d8f299c2
      Andrew Morton authored
      The atomicicty fix for move_one_page() was not quite right.
      
      We only do the page_table_present() test if CONFIG_HIGHPTE=y.  Which is
      fine, but even with CONFIG_HIGHPTE=n, the pte mapping functions still
      do an inc_preempt_count() due to their unconditional kmap_atomic().  So
      we get a might_sleep() warning.
      
      The warning is actually bogus, because those pte's are always in
      direct-mapped memory.
      
      So hm.  Three fixes suggest themselves:
      
      1: Run the page_table_present() test if CONFIG_HIGHMEM.
      
         Rejected: penalises non-pte_highmem setups
      
      2: Make kmap_atomic() not do inc_preempt_count() is the page was
         direct mapped.
      
         Rejected: I don't think we want kmap_atomic side effects to be
         varying according to the page which was passed.
      
      3: Change the pte mapping functions so they don't run kmap_atomic at
         all if CONFIG_HIGHPTE=n
      
         This is what I did.  And guess what?  For CONFIG_HIGHMEM=y,
         CONFIG_HIGHPTE=n this patch shrinks the kernel by 5 kbytes.  Because
         kmap_atomic is inlined.
      
         The lesson: we do way too much damn inlining.
      d8f299c2
    • Andrew Morton's avatar
      [PATCH] mremap use-after-free bugfix · f0f5d073
      Andrew Morton authored
      I have invented a new software development methodology! You send an
      email to Hugh saying "I don't have the foggiest idea why this guy's
      kernel is oopsing" and next morning, you get a patch! I shall patent
      this.
      
      Since 2.5.3, move_vma() has been passing a freed vma into
      move_page_tables().  Fix it to move back to the previous vma in the
      list if we're about to delete this one.
      
      Thanks to Morten Helgesen for patient reporting, diagnosis and testing.
      f0f5d073
    • Ingo Molnar's avatar
      [PATCH] timer cleanups · d4979c79
      Ingo Molnar authored
      This is my latest timer patchset, it makes del_timer_sync() a bit more
      robust wrt.  code that re-adds timers from the timer handler.
      
      Other changes in the patch:
      
       - clean up cascading a bit.
      
       - do not save flags in __run_timer_list - we enter from an irqs-enabled
         tasklet.
      d4979c79
  2. 09 Oct, 2002 37 commits