1. 24 6月, 2005 1 次提交
  2. 22 6月, 2005 3 次提交
  3. 21 6月, 2005 1 次提交
  4. 20 6月, 2005 4 次提交
  5. 18 6月, 2005 1 次提交
  6. 14 6月, 2005 1 次提交
  7. 01 6月, 2005 1 次提交
    • R
      [PATCH] flush icache in correct context · ae92ef8a
      Roman Zippel 提交于
      flush_icache_range() is used in two different situation - in binfmt_elf.c &
      co for user space mappings and module.c for kernel modules.  On m68k
      flush_icache_range() doesn't know which data to flush, as it has separate
      address spaces and the pointer argument can be valid in either address
      space.
      
      First I considered splitting flush_icache_range(), but this patch is
      simpler.  Setting the correct context gives flush_icache_range() enough
      information to flush the correct data.
      Signed-off-by: NAndrew Morton <akpm@osdl.org>
      Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
      ae92ef8a
  8. 29 5月, 2005 1 次提交
    • J
      [PATCH] drop note_interrupt() for per-CPU for proper scaling · b60c1f6f
      John Hawkes 提交于
      The "unhandled interrupts" catcher, note_interrupt(), increments a global
      desc->irq_count and grossly damages scaling of very large systems, e.g.,
      >192p ia64 Altix, because of this highly contented cacheline, especially
      for timer interrupts.  384p is severely crippled, and 512p is unuseable.
      
      All calls to note_interrupt() can be disabled by booting with "noirqdebug",
      but this disables the useful interrupt checking for all interrupts.
      
      I propose eliminating note_interrupt() for all per-CPU interrupts.  This
      was the behavior of linux-2.6.10 and earlier, but in 2.6.11 a code
      restructuring added a call to note_interrupt() for per-CPU interrupts.
      Besides, note_interrupt() is a bit racy for concurrent CPU calls anyway, as
      the desc->irq_count++ increment isn't atomic (which, if done, would make
      scaling even worse).
      Signed-off-by: NJohn Hawkes <hawkes@sgi.com>
      Signed-off-by: NAndrew Morton <akpm@osdl.org>
      Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
      b60c1f6f
  9. 27 5月, 2005 2 次提交
    • P
      [PATCH] cpuset exit NULL dereference fix · 2efe86b8
      Paul Jackson 提交于
      There is a race in the kernel cpuset code, between the code
      to handle notify_on_release, and the code to remove a cpuset.
      The notify_on_release code can end up trying to access a
      cpuset that has been removed.  In the most common case, this
      causes a NULL pointer dereference from the routine cpuset_path.
      However all manner of bad things are possible, in theory at least.
      
      The existing code decrements the cpuset use count, and if the
      count goes to zero, processes the notify_on_release request,
      if appropriate.  However, once the count goes to zero, unless we
      are holding the global cpuset_sem semaphore, there is nothing to
      stop another task from immediately removing the cpuset entirely,
      and recycling its memory.
      
      The obvious fix would be to always hold the cpuset_sem
      semaphore while decrementing the use count and dealing with
      notify_on_release.  However we don't want to force a global
      semaphore into the mainline task exit path, as that might create
      a scaling problem.
      
      The actual fix is almost as easy - since this is only an issue
      for cpusets using notify_on_release, which the top level big
      cpusets don't normally need to use, only take the cpuset_sem
      for cpusets using notify_on_release.
      
      This code has been run for hours without a hiccup, while running
      a cpuset create/destroy stress test that could crash the existing
      kernel in seconds.  This patch applies to the current -linus
      git kernel.
      Signed-off-by: NPaul Jackson <pj@sgi.com>
      Acked-by: NSimon Derr <simon.derr@bull.net>
      Acked-by: NDinakar Guniguntala <dino@in.ibm.com>
      Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
      2efe86b8
    • D
  10. 26 5月, 2005 1 次提交
    • D
      AUDIT: Defer freeing aux items until audit_free_context() · 7551ced3
      David Woodhouse 提交于
      While they were all just simple blobs it made sense to just free them
      as we walked through and logged them. Now that there are pointers to
      other objects which need refcounting, we might as well revert to
      _only_ logging them in audit_log_exit(), and put the code to free them
      properly in only one place -- in audit_free_aux().
      Signed-off-by: NDavid Woodhouse <dwmw2@infradead.org>
      ----------------------------------------------------------
      7551ced3
  11. 25 5月, 2005 1 次提交
  12. 24 5月, 2005 2 次提交
  13. 22 5月, 2005 2 次提交
    • D
      AUDIT: Assign serial number to non-syscall messages · bfb4496e
      David Woodhouse 提交于
      Move audit_serial() into audit.c and use it to generate serial numbers 
      on messages even when there is no audit context from syscall auditing.  
      This allows us to disambiguate audit records when more than one is 
      generated in the same millisecond.
      
      Based on a patch by Steve Grubb after he observed the problem.
      Signed-off-by: NDavid Woodhouse <dwmw2@infradead.org>
      bfb4496e
    • S
      [PATCH] spin_unlock_bh() and preempt_check_resched() · 10f02d1c
      Samuel Thibault 提交于
      In _spin_unlock_bh(lock):
      	do { \
      		_raw_spin_unlock(lock); \
      		preempt_enable(); \
      		local_bh_enable(); \
      		__release(lock); \
      	} while (0)
      
      there is no reason for using preempt_enable() instead of a simple
      preempt_enable_no_resched()
      
      Since we know bottom halves are disabled, preempt_schedule() will always
      return at once (preempt_count!=0), and hence preempt_check_resched() is
      useless here...
      
      This fixes it by using "preempt_enable_no_resched()" instead of the
      "preempt_enable()", and thus avoids the useless preempt_check_resched()
      just before re-enabling bottom halves.
      Signed-off-by: NSamuel Thibault <samuel.thibault@ens-lyon.org>
      Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
      10f02d1c
  14. 21 5月, 2005 4 次提交
  15. 19 5月, 2005 4 次提交
    • D
      AUDIT: Honour audit_backlog_limit again. · fb19b4c6
      David Woodhouse 提交于
      The limit on the number of outstanding audit messages was inadvertently
      removed with the switch to queuing skbs directly for sending by a kernel
      thread. Put it back again.
      Signed-off-by: NDavid Woodhouse <dwmw2@infradead.org>
      fb19b4c6
    • D
      AUDIT: Quis Custodiet Ipsos Custodes? · 7ca00264
      David Woodhouse 提交于
      Nobody does. Really, it gets very silly if auditd is recording its
      own actions.
      Signed-off-by: NDavid Woodhouse <dwmw2@infradead.org>
      7ca00264
    • D
      AUDIT: Send netlink messages from a separate kernel thread · b7d11258
      David Woodhouse 提交于
      netlink_unicast() will attempt to reallocate and will free messages if
      the socket's rcvbuf limit is reached unless we give it an infinite 
      timeout. So do that, from a kernel thread which is dedicated to spewing
      stuff up the netlink socket.
      Signed-off-by: NDavid Woodhouse <dwmw2@infradead.org>
      b7d11258
    • S
      AUDIT: Clean up logging of untrusted strings · 168b7173
      Steve Grubb 提交于
      * If vsnprintf returns -1, it will mess up the sk buffer space accounting. 
      This is fixed by not calling skb_put with bogus len values.
      
      * audit_log_hex was a loop that called audit_log_vformat with %02X for each 
      character. This is very inefficient since conversion from unsigned character 
      to Ascii representation is essentially masking, shifting, and byte lookups. 
      Also, the length of the converted string is well known - it's twice the 
      original. Fixed by rewriting the function.
      
      * audit_log_untrustedstring had no comments. This makes it hard for 
      someone to understand what the string format will be.
      
      * audit_log_d_path was never fixed to use untrustedstring. This could mess
      up user space parsers. This was fixed to make a temp buffer, call d_path, 
      and log temp buffer using untrustedstring. 
      
      From: Steve Grubb <sgrubb@redhat.com>
      Signed-off-by: NDavid Woodhouse <dwmw2@infradead.org>
      168b7173
  16. 18 5月, 2005 2 次提交
  17. 17 5月, 2005 4 次提交
  18. 14 5月, 2005 3 次提交
  19. 13 5月, 2005 1 次提交
  20. 11 5月, 2005 1 次提交
    • C
      Add audit_log_type · c1b773d8
      Chris Wright 提交于
      Add audit_log_type to allow callers to specify type and pid when logging.
      Convert audit_log to wrapper around audit_log_type.  Could have
      converted all audit_log callers directly, but common case is default
      of type AUDIT_KERNEL and pid 0.  Update audit_log_start to take type
      and pid values when creating a new audit_buffer.  Move sequences that
      did audit_log_start, audit_log_format, audit_set_type, audit_log_end,
      to simply call audit_log_type directly.  This obsoletes audit_set_type
      and audit_set_pid, so remove them.
      Signed-off-by: NChris Wright <chrisw@osdl.org>
      Signed-off-by: NDavid Woodhouse <dwmw2@infradead.org>
      c1b773d8