1. 18 11月, 2010 1 次提交
    • S
      x86: Eliminate bp argument from the stack tracing routines · 9c0729dc
      Soeren Sandmann Pedersen 提交于
      The various stack tracing routines take a 'bp' argument in which the
      caller is supposed to provide the base pointer to use, or 0 if doesn't
      have one. Since bp is garbage whenever CONFIG_FRAME_POINTER is not
      defined, this means all callers in principle should either always pass
      0, or be conditional on CONFIG_FRAME_POINTER.
      
      However, there are only really three use cases for stack tracing:
      
      (a) Trace the current task, including IRQ stack if any
      (b) Trace the current task, but skip IRQ stack
      (c) Trace some other task
      
      In all cases, if CONFIG_FRAME_POINTER is not defined, bp should just
      be 0.  If it _is_ defined, then
      
      - in case (a) bp should be gotten directly from the CPU's register, so
        the caller should pass NULL for regs,
      
      - in case (b) the caller should should pass the IRQ registers to
        dump_trace(),
      
      - in case (c) bp should be gotten from the top of the task's stack, so
        the caller should pass NULL for regs.
      
      Hence, the bp argument is not necessary because the combination of
      task and regs is sufficient to determine an appropriate value for bp.
      
      This patch introduces a new inline function stack_frame(task, regs)
      that computes the desired bp. This function is then called from the
      two versions of dump_stack().
      Signed-off-by: NSoren Sandmann <ssp@redhat.com>
      Acked-by: NSteven Rostedt <rostedt@goodmis.org>
      Cc: Thomas Gleixner <tglx@linutronix.de>
      Cc: Ingo Molnar <mingo@redhat.com>
      Cc: H. Peter Anvin <hpa@zytor.com>
      Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
      Cc: Arjan van de Ven <arjan@infradead.org>,
      Cc: Frederic Weisbecker <fweisbec@gmail.com>,
      Cc: Arnaldo Carvalho de Melo <acme@redhat.com>,
      LKML-Reference: <m3oc9rop28.fsf@dhcp-100-3-82.bos.redhat.com>>
      Signed-off-by: NFrederic Weisbecker <fweisbec@gmail.com>
      9c0729dc
  2. 31 10月, 2010 27 次提交
  3. 30 10月, 2010 12 次提交
    • L
      fs-writeback.c: unify some common code · cdf01dd5
      Linus Torvalds 提交于
      The btrfs merge looks like hell, because it changes fs-writeback.c, and
      the crazy code has this repeated "estimate number of dirty pages"
      counting that involves three different helper functions.  And it's done
      in two different places.
      
      Just unify that whole calculation as a "get_nr_dirty_pages()" helper
      function, and the merge result will look half-way decent.
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      cdf01dd5
    • L
      Merge branch 'audit.b64' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/audit-current · 847f8776
      Linus Torvalds 提交于
      * 'audit.b64' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/audit-current:
        audit mmap
        audit: make link()/linkat() match "attribute change" predicate
        audit: Use rcu for task lookup protection
        audit: Do not send uninitialized data for AUDIT_TTY_GET
        audit: Call tty_audit_push_task() outside preempt disabled
        in untag_chunk() we need to do alloc_chunk() a bit earlier
        audit: make functions static
        Audit: add support to match lsm labels on user audit messages
      847f8776
    • L
      Merge git://git.infradead.org/mtd-2.6 · 79346507
      Linus Torvalds 提交于
      * git://git.infradead.org/mtd-2.6: (82 commits)
        mtd: fix build error in m25p80.c
        mtd: Remove redundant mutex from mtd_blkdevs.c
        MTD: Fix wrong check register_blkdev return value
        Revert "mtd: cleanup Kconfig dependencies"
        mtd: cfi_cmdset_0002: make sector erase command variable
        mtd: cfi_cmdset_0002: add CFI detection for SST 38VF640x chips
        mtd: cfi_util: add support for switching SST 39VF640xB chips into QRY mode
        mtd: cfi_cmdset_0001: use defined value of P_ID_INTEL_PERFORMANCE instead of hardcoded one
        block2mtd: dubious assignment
        P4080/mtd: Fix the freescale lbc issue with 36bit mode
        P4080/eLBC: Make Freescale elbc interrupt common to elbc devices
        mtd: phram: use KBUILD_MODNAME
        mtd: OneNAND: S5PC110: Fix double call suspend & resume function
        mtd: nand: fix MTD_MODE_RAW writes
        jffs2: use kmemdup
        mtd: sm_ftl: cosmetic, use bool when possible
        mtd: r852: remove useless pci powerup/down from suspend/resume routines
        mtd: blktrans: fix a race vs kthread_stop
        mtd: blktrans: kill BKL
        mtd: allow to unload the mtdtrans module if its block devices aren't open
        ...
      
      Fix up trivial whitespace-introduced conflict in drivers/mtd/mtdchar.c
      79346507
    • L
      Merge branch 'devel' of master.kernel.org:/home/rmk/linux-2.6-arm · 706d4b12
      Linus Torvalds 提交于
      * 'devel' of master.kernel.org:/home/rmk/linux-2.6-arm: (215 commits)
        ARM: memblock: setup lowmem mappings using memblock
        ARM: memblock: move meminfo into find_limits directly
        ARM: memblock: convert free_highpages() to use memblock
        ARM: move freeing of highmem pages out of mem_init()
        ARM: memblock: convert memory detail printing to use memblock
        ARM: memblock: use memblock to free memory into arm_bootmem_init()
        ARM: memblock: use memblock when initializing memory allocators
        ARM: ensure membank array is always sorted
        ARM: 6466/1: implement flush_icache_all for the rest of the CPUs
        ARM: 6464/2: fix spinlock recursion in adjust_pte()
        ARM: fix memblock breakage
        ARM: 6465/1: Fix data abort accessing proc_info from __lookup_processor_type
        ARM: 6460/1: ixp2000: fix type of ixp2000_timer_interrupt
        ARM: 6449/1: Fix for compiler warning of uninitialized variable.
        ARM: 6445/1: fixup TCM memory types
        ARM: imx: Add wake functionality to GPIO
        ARM: mx5: Add gpio-keys to mx51 babbage board
        ARM: imx: Add gpio-keys to plat-mxc
        mx31_3ds: Fix spi registration
        mx31_3ds: Fix the logic for detecting the debug board
        ...
      706d4b12
    • V
      ipc: shm: fix information leak to userland · 3af54c9b
      Vasiliy Kulikov 提交于
      The shmid_ds structure is copied to userland with shm_unused{,2,3}
      fields unitialized.  It leads to leaking of contents of kernel stack
      memory.
      Signed-off-by: NVasiliy Kulikov <segooon@gmail.com>
      Acked-by: NAl Viro <viro@ZenIV.linux.org.uk>
      Cc: stable@kernel.org
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      3af54c9b
    • W
      fs/compat.c: fix build on MIPS/s390 · 504b701b
      wu zhangjin 提交于
      The definition of PAGE_CACHE_MASK in <linux/pagemap.h> is needed to use
      MAX_RW_COUNT, and on x86-64 that gets done indirectly through the
      architecture header includes.  But on MIPS and s390 that doesn't happen,
      and we need to make sure that fs/compat.c includes pagemap.h explicitly.
      
      Introduced in commit 435f49a5 ("readv/writev: do the same
      MAX_RW_COUNT truncation that read/write does").
      
      Reported-by: Sachin Sant <sachinp@in.ibm.com> (S390)
      Reported-by: wu zhangjin <wuzhangjin@gmail.com> (MIPS)
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      504b701b
    • A
      audit mmap · 120a795d
      Al Viro 提交于
      Normal syscall audit doesn't catch 5th argument of syscall.  It also
      doesn't catch the contents of userland structures pointed to be
      syscall argument, so for both old and new mmap(2) ABI it doesn't
      record the descriptor we are mapping.  For old one it also misses
      flags.
      Signed-off-by: NAl Viro <viro@zeniv.linux.org.uk>
      120a795d
    • A
      af295132
    • T
      audit: Use rcu for task lookup protection · ab263f47
      Thomas Gleixner 提交于
      Protect the task lookups in audit_receive_msg() with rcu_read_lock()
      instead of tasklist_lock and use lock/unlock_sighand to protect
      against the exit race.
      Signed-off-by: NThomas Gleixner <tglx@linutronix.de>
      Cc: Al Viro <viro@zeniv.linux.org.uk>
      Cc: Eric Paris <eparis@redhat.com>
      Cc: Oleg Nesterov <oleg@redhat.com>
      Signed-off-by: NAl Viro <viro@zeniv.linux.org.uk>
      ab263f47
    • T
      audit: Do not send uninitialized data for AUDIT_TTY_GET · 20703205
      Thomas Gleixner 提交于
      audit_receive_msg() sends uninitialized data for AUDIT_TTY_GET when
      the task was not found.
      
      Send reply only when task was found.
      Signed-off-by: NThomas Gleixner <tglx@linutronix.de>
      Cc: Al Viro <viro@zeniv.linux.org.uk>
      Cc: Eric Paris <eparis@redhat.com>
      Signed-off-by: NAl Viro <viro@zeniv.linux.org.uk>
      20703205
    • T
      audit: Call tty_audit_push_task() outside preempt disabled · 3c80fe4a
      Thomas Gleixner 提交于
      While auditing all tasklist_lock read_lock sites I stumbled over the
      following call chain:
      
      audit_prepare_user_tty()
        read_lock(&tasklist_lock);
        tty_audit_push_task();
           mutex_lock(&buf->mutex);
      
           --> buf->mutex is locked with preemption disabled.
      
      Solve this by acquiring a reference to the task struct under
      rcu_read_lock and call tty_audit_push_task outside of the preempt
      disabled region.
      
      Move all code which needs to be protected by sighand lock into
      tty_audit_push_task() and use lock/unlock_sighand as we do not hold
      tasklist_lock.
      Signed-off-by: NThomas Gleixner <tglx@linutronix.de>
      Cc: Al Viro <viro@zeniv.linux.org.uk>
      Cc: Eric Paris <eparis@redhat.com>
      Cc: Oleg Nesterov <oleg@redhat.com>
      Signed-off-by: NAl Viro <viro@zeniv.linux.org.uk>
      3c80fe4a
    • A
      mtd: fix build error in m25p80.c · 40847437
      Andres Salomon 提交于
      While building an x86 distro kernel, I hit the following:
      
      Kernel: arch/x86/boot/bzImage is ready  (#7)
      ERROR: "of_mtd_parse_partitions" [drivers/mtd/devices/m25p80.ko]
      undefined!
      
      of_mtd_parse_partitions is defined with MTD_OF_PARTS, and that's only
      built on PPC and microblaze.  The code in question should be wrapped w/
      a stricter #ifdef.
      Signed-off-by: NAndres Salomon <dilinger@queued.net>
      Acked-by: NGrant Likely <grant.likely@secretlab.ca>
      Signed-off-by: NDavid Woodhouse <David.Woodhouse@intel.com>
      40847437