1. 15 12月, 2010 1 次提交
    • T
      workqueue: convert cancel_rearming_delayed_work[queue]() users to cancel_delayed_work_sync() · afe2c511
      Tejun Heo 提交于
      cancel_rearming_delayed_work[queue]() has been superceded by
      cancel_delayed_work_sync() quite some time ago.  Convert all the
      in-kernel users.  The conversions are completely equivalent and
      trivial.
      Signed-off-by: NTejun Heo <tj@kernel.org>
      Acked-by: N"David S. Miller" <davem@davemloft.net>
      Acked-by: NGreg Kroah-Hartman <gregkh@suse.de>
      Acked-by: NEvgeniy Polyakov <zbr@ioremap.net>
      Cc: Jeff Garzik <jgarzik@pobox.com>
      Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org>
      Cc: Mauro Carvalho Chehab <mchehab@infradead.org>
      Cc: netdev@vger.kernel.org
      Cc: Anton Vorontsov <cbou@mail.ru>
      Cc: David Woodhouse <dwmw2@infradead.org>
      Cc: "J. Bruce Fields" <bfields@fieldses.org>
      Cc: Neil Brown <neilb@suse.de>
      Cc: Alex Elder <aelder@sgi.com>
      Cc: xfs-masters@oss.sgi.com
      Cc: Christoph Lameter <cl@linux-foundation.org>
      Cc: Pekka Enberg <penberg@cs.helsinki.fi>
      Cc: Andrew Morton <akpm@linux-foundation.org>
      Cc: netfilter-devel@vger.kernel.org
      Cc: Trond Myklebust <Trond.Myklebust@netapp.com>
      Cc: linux-nfs@vger.kernel.org
      afe2c511
  2. 25 11月, 2010 6 次提交
    • D
      mm: remove call to find_vma in pagewalk for non-hugetlbfs · 5f0af70a
      David Sterba 提交于
      Commit d33b9f45 ("mm: hugetlb: fix hugepage memory leak in
      walk_page_range()") introduces a check if a vma is a hugetlbfs one and
      later in 5dc37642 ("mm hugetlb: add hugepage support to pagemap") it is
      moved under #ifdef CONFIG_HUGETLB_PAGE but a needless find_vma call is
      left behind and its result is not used anywhere else in the function.
      
      The side-effect of caching vma for @addr inside walk->mm is neither
      utilized in walk_page_range() nor in called functions.
      Signed-off-by: NDavid Sterba <dsterba@suse.cz>
      Reviewed-by: NNaoya Horiguchi <n-horiguchi@ah.jp.nec.com>
      Acked-by: NAndi Kleen <ak@linux.intel.com>
      Cc: Andy Whitcroft <apw@canonical.com>
      Cc: David Rientjes <rientjes@google.com>
      Cc: Hugh Dickins <hugh.dickins@tiscali.co.uk>
      Cc: Lee Schermerhorn <lee.schermerhorn@hp.com>
      Cc: Matt Mackall <mpm@selenic.com>
      Acked-by: NMel Gorman <mel@csn.ul.ie>
      Cc: Wu Fengguang <fengguang.wu@intel.com>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      5f0af70a
    • K
      mm/page_alloc.c: fix build_all_zonelist() where percpu_alloc() is wrongly... · e9959f0f
      KAMEZAWA Hiroyuki 提交于
      mm/page_alloc.c: fix build_all_zonelist() where percpu_alloc() is wrongly called under stop_machine_run()
      
      During memory hotplug, build_allzonelists() may be called under
      stop_machine_run().  In this function, setup_zone_pageset() is called.
      But it's bug because it will do page allocation under stop_machine_run().
      
      Here is a report from Alok Kataria.
      
        BUG: sleeping function called from invalid context at kernel/mutex.c:94
        in_atomic(): 0, irqs_disabled(): 1, pid: 4, name: migration/0
        Pid: 4, comm: migration/0 Not tainted 2.6.35.6-45.fc14.x86_64 #1
        Call Trace:
         [<ffffffff8103d12b>] __might_sleep+0xeb/0xf0
         [<ffffffff81468245>] mutex_lock+0x24/0x50
         [<ffffffff8110eaa6>] pcpu_alloc+0x6d/0x7ee
         [<ffffffff81048888>] ? load_balance+0xbe/0x60e
         [<ffffffff8103a1b3>] ? rt_se_boosted+0x21/0x2f
         [<ffffffff8103e1cf>] ? dequeue_rt_stack+0x18b/0x1ed
         [<ffffffff8110f237>] __alloc_percpu+0x10/0x12
         [<ffffffff81465e22>] setup_zone_pageset+0x38/0xbe
         [<ffffffff810d6d81>] ? build_zonelists_node.clone.58+0x79/0x8c
         [<ffffffff81452539>] __build_all_zonelists+0x419/0x46c
         [<ffffffff8108ef01>] ? cpu_stopper_thread+0xb2/0x198
         [<ffffffff8108f075>] stop_machine_cpu_stop+0x8e/0xc5
         [<ffffffff8108efe7>] ? stop_machine_cpu_stop+0x0/0xc5
         [<ffffffff8108ef57>] cpu_stopper_thread+0x108/0x198
         [<ffffffff81467a37>] ? schedule+0x5b2/0x5cc
         [<ffffffff8108ee4f>] ? cpu_stopper_thread+0x0/0x198
         [<ffffffff81065f29>] kthread+0x7f/0x87
         [<ffffffff8100aae4>] kernel_thread_helper+0x4/0x10
         [<ffffffff81065eaa>] ? kthread+0x0/0x87
         [<ffffffff8100aae0>] ? kernel_thread_helper+0x0/0x10
        Built 5 zonelists in Node order, mobility grouping on.  Total pages: 289456
        Policy zone: Normal
      
      This patch tries to fix the issue by moving setup_zone_pageset() out from
      stop_machine_run(). It's obviously not necessary to be called under
      stop_machine_run().
      
      [akpm@linux-foundation.org: remove unneeded local]
      Reported-by: NAlok Kataria <akataria@vmware.com>
      Signed-off-by: NKAMEZAWA Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com>
      Cc: Tejun Heo <tj@kernel.org>
      Cc: Petr Vandrovec <petr@vmware.com>
      Cc: Pekka Enberg <penberg@cs.helsinki.fi>
      Reviewed-by: NChristoph Lameter <cl@linux-foundation.org>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      e9959f0f
    • M
      cgroups: make swap accounting default behavior configurable · a42c390c
      Michal Hocko 提交于
      Swap accounting can be configured by CONFIG_CGROUP_MEM_RES_CTLR_SWAP
      configuration option and then it is turned on by default.  There is a boot
      option (noswapaccount) which can disable this feature.
      
      This makes it hard for distributors to enable the configuration option as
      this feature leads to a bigger memory consumption and this is a no-go for
      general purpose distribution kernel.  On the other hand swap accounting
      may be very usuful for some workloads.
      
      This patch adds a new configuration option which controls the default
      behavior (CGROUP_MEM_RES_CTLR_SWAP_ENABLED).  If the option is selected
      then the feature is turned on by default.
      
      It also adds a new boot parameter swapaccount[=1|0] which enhances the
      original noswapaccount parameter semantic by means of enable/disable logic
      (defaults to 1 if no value is provided to be still consistent with
      noswapaccount).
      
      The default behavior is unchanged (if CONFIG_CGROUP_MEM_RES_CTLR_SWAP is
      enabled then CONFIG_CGROUP_MEM_RES_CTLR_SWAP_ENABLED is enabled as well)
      Signed-off-by: NMichal Hocko <mhocko@suse.cz>
      Acked-by: NDaisuke Nishimura <nishimura@mxp.nes.nec.co.jp>
      Cc: Balbir Singh <balbir@linux.vnet.ibm.com>
      Cc: KAMEZAWA Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      a42c390c
    • D
      memcg: avoid deadlock between move charge and try_charge() · b1dd693e
      Daisuke Nishimura 提交于
      __mem_cgroup_try_charge() can be called under down_write(&mmap_sem)(e.g.
      mlock does it). This means it can cause deadlock if it races with move charge:
      
      Ex.1)
                      move charge             |        try charge
        --------------------------------------+------------------------------
          mem_cgroup_can_attach()             |  down_write(&mmap_sem)
            mc.moving_task = current          |    ..
            mem_cgroup_precharge_mc()         |  __mem_cgroup_try_charge()
              mem_cgroup_count_precharge()    |    prepare_to_wait()
                down_read(&mmap_sem)          |    if (mc.moving_task)
                -> cannot aquire the lock     |    -> true
                                              |      schedule()
      
      Ex.2)
                      move charge             |        try charge
        --------------------------------------+------------------------------
          mem_cgroup_can_attach()             |
            mc.moving_task = current          |
            mem_cgroup_precharge_mc()         |
              mem_cgroup_count_precharge()    |
                down_read(&mmap_sem)          |
                ..                            |
                up_read(&mmap_sem)            |
                                              |  down_write(&mmap_sem)
          mem_cgroup_move_task()              |    ..
            mem_cgroup_move_charge()          |  __mem_cgroup_try_charge()
              down_read(&mmap_sem)            |    prepare_to_wait()
              -> cannot aquire the lock       |    if (mc.moving_task)
                                              |    -> true
                                              |      schedule()
      
      To avoid this deadlock, we do all the move charge works (both can_attach() and
      attach()) under one mmap_sem section.
      And after this patch, we set/clear mc.moving_task outside mc.lock, because we
      use the lock only to check mc.from/to.
      Signed-off-by: NDaisuke Nishimura <nishimura@mxp.nes.nec.co.jp>
      Cc: Balbir Singh <balbir@linux.vnet.ibm.com>
      Acked-by: NKAMEZAWA Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com>
      Cc: <stable@kernel.org>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      b1dd693e
    • K
      memcg: fix false positive VM_BUG on non-SMP · 112bc2e1
      Kirill A. Shutemov 提交于
      Fix this:
      
        kernel BUG at mm/memcontrol.c:2155!
        invalid opcode: 0000 [#1]
        last sysfs file:
      
        Pid: 18, comm: sh Not tainted 2.6.37-rc3 #3 /Bochs
        EIP: 0060:[<c10731b2>] EFLAGS: 00000246 CPU: 0
        EIP is at mem_cgroup_move_account+0xe2/0xf0
        EAX: 00000004 EBX: c6f931d4 ECX: c681c300 EDX: c681c000
        ESI: c681c300 EDI: ffffffea EBP: c681c000 ESP: c46f3e30
         DS: 007b ES: 007b FS: 0000 GS: 0033 SS: 0068
        Process sh (pid: 18, ti=c46f2000 task=c6826e60 task.ti=c46f2000)
        Stack:
         00000155 c681c000 0805f000 c46ee180 c46f3e5c c7058820 c1074d37 00000000
         08060000 c46db9a0 c46ec080 c7058820 0805f000 08060000 c46f3e98 c1074c50
         c106c75e c46f3e98 c46ec080 08060000 0805ffff c46db9a0 c46f3e98 c46e0340
        Call Trace:
         [<c1074d37>] ? mem_cgroup_move_charge_pte_range+0xe7/0x130
         [<c1074c50>] ? mem_cgroup_move_charge_pte_range+0x0/0x130
         [<c106c75e>] ? walk_page_range+0xee/0x1d0
         [<c10725d6>] ? mem_cgroup_move_task+0x66/0x90
         [<c1074c50>] ? mem_cgroup_move_charge_pte_range+0x0/0x130
         [<c1072570>] ? mem_cgroup_move_task+0x0/0x90
         [<c1042616>] ? cgroup_attach_task+0x136/0x200
         [<c1042878>] ? cgroup_tasks_write+0x48/0xc0
         [<c1041e9e>] ? cgroup_file_write+0xde/0x220
         [<c101398d>] ? do_page_fault+0x17d/0x3f0
         [<c108a79d>] ? alloc_fd+0x2d/0xd0
         [<c1041dc0>] ? cgroup_file_write+0x0/0x220
         [<c1077ba2>] ? vfs_write+0x92/0xc0
         [<c1077c81>] ? sys_write+0x41/0x70
         [<c1140e3d>] ? syscall_call+0x7/0xb
        Code: 03 00 74 09 8b 44 24 04 e8 1c f1 ff ff 89 73 04 8d 86 b0 00 00 00 b9 01 00 00 00 89 da 31 ff e8 65 f5 ff ff e9 4d ff ff ff 0f 0b <0f> 0b 0f 0b 0f 0b 90 8d b4 26 00 00 00 00 83 ec 10 8b 0d f4 e3
        EIP: [<c10731b2>] mem_cgroup_move_account+0xe2/0xf0 SS:ESP 0068:c46f3e30
        ---[ end trace 7daa1582159b6532 ]---
      
      lock_page_cgroup and unlock_page_cgroup are implemented using
      bit_spinlock.  bit_spinlock doesn't touch the bit if we are on non-SMP
      machine, so we can't use the bit to check whether the lock was taken.
      
      Let's introduce is_page_cgroup_locked based on bit_spin_is_locked instead
      of PageCgroupLocked to fix it.
      
      [akpm@linux-foundation.org: s/is_page_cgroup_locked/page_is_cgroup_locked/]
      Signed-off-by: NKirill A. Shutemov <kirill@shutemov.name>
      Reviewed-by: NJohannes Weiner <hannes@cmpxchg.org>
      Acked-by: NKAMEZAWA Hiroyuki <kamezawa.hiroyu@jp.fujtisu.com>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      112bc2e1
    • S
      nommu: yield CPU while disposing VM · 04c34961
      Steven J. Magnani 提交于
      Depending on processor speed, page size, and the amount of memory a
      process is allowed to amass, cleanup of a large VM may freeze the system
      for many seconds.  This can result in a watchdog timeout.
      
      Make sure other tasks receive some service when cleaning up large VMs.
      Signed-off-by: NSteven J. Magnani <steve@digidescorp.com>
      Cc: Greg Ungerer <gerg@snapgear.com>
      Reviewed-by: NKOSAKI Motohiro <kosaki.motohiro@jp.fujitsu.com>
      Cc: <stable@kernel.org>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      04c34961
  3. 14 11月, 2010 1 次提交
  4. 12 11月, 2010 4 次提交
    • N
      radix-tree: fix RCU bug · 27d20fdd
      Nick Piggin 提交于
      Salman Qazi describes the following radix-tree bug:
      
      In the following case, we get can get a deadlock:
      
      0.  The radix tree contains two items, one has the index 0.
      1.  The reader (in this case find_get_pages) takes the rcu_read_lock.
      2.  The reader acquires slot(s) for item(s) including the index 0 item.
      3.  The non-zero index item is deleted, and as a consequence the other item is
          moved to the root of the tree. The place where it used to be is queued for
          deletion after the readers finish.
      3b. The zero item is deleted, removing it from the direct slot, it remains in
          the rcu-delayed indirect node.
      4.  The reader looks at the index 0 slot, and finds that the page has 0 ref
          count
      5.  The reader looks at it again, hoping that the item will either be freed or
          the ref count will increase. This never happens, as the slot it is looking
          at will never be updated. Also, this slot can never be reclaimed because
          the reader is holding rcu_read_lock and is in an infinite loop.
      
      The fix is to re-use the same "indirect" pointer case that requires a slot
      lookup retry into a general "retry the lookup" bit.
      Signed-off-by: NNick Piggin <npiggin@kernel.dk>
      Reported-by: NSalman Qazi <sqazi@google.com>
      Cc: <stable@kernel.org>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      27d20fdd
    • S
      vmscan: avoid setting zone congested if no page dirty · 1dce071e
      Shaohua Li 提交于
      nr_dirty and nr_congested are increased only when the page is dirty.  So
      if all pages are clean, both them will be zero.  In this case, we should
      not mark the zone congested.
      Signed-off-by: NShaohua Li <shaohua.li@intel.com>
      Reviewed-by: NJohannes Weiner <hannes@cmpxchg.org>
      Reviewed-by: NMinchan Kim <minchan.kim@gmail.com>
      Acked-by: NMel Gorman <mel@csn.ul.ie>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      1dce071e
    • D
      mm/vfs: revalidate page->mapping in do_generic_file_read() · 8d056cb9
      Dave Hansen 提交于
      70 hours into some stress tests of a 2.6.32-based enterprise kernel, we
      ran into a NULL dereference in here:
      
      	int block_is_partially_uptodate(struct page *page, read_descriptor_t *desc,
      	                                        unsigned long from)
      	{
      ---->		struct inode *inode = page->mapping->host;
      
      It looks like page->mapping was the culprit.  (xmon trace is below).
      After closer examination, I realized that do_generic_file_read() does a
      find_get_page(), and eventually locks the page before calling
      block_is_partially_uptodate().  However, it doesn't revalidate the
      page->mapping after the page is locked.  So, there's a small window
      between the find_get_page() and ->is_partially_uptodate() where the page
      could get truncated and page->mapping cleared.
      
      We _have_ a reference, so it can't get reclaimed, but it certainly
      can be truncated.
      
      I think the correct thing is to check page->mapping after the
      trylock_page(), and jump out if it got truncated.  This patch has been
      running in the test environment for a month or so now, and we have not
      seen this bug pop up again.
      
      xmon info:
      
        1f:mon> e
        cpu 0x1f: Vector: 300 (Data Access) at [c0000002ae36f770]
            pc: c0000000001e7a6c: .block_is_partially_uptodate+0xc/0x100
            lr: c000000000142944: .generic_file_aio_read+0x1e4/0x770
            sp: c0000002ae36f9f0
           msr: 8000000000009032
           dar: 0
         dsisr: 40000000
          current = 0xc000000378f99e30
          paca    = 0xc000000000f66300
            pid   = 21946, comm = bash
        1f:mon> r
        R00 = 0025c0500000006d   R16 = 0000000000000000
        R01 = c0000002ae36f9f0   R17 = c000000362cd3af0
        R02 = c000000000e8cd80   R18 = ffffffffffffffff
        R03 = c0000000031d0f88   R19 = 0000000000000001
        R04 = c0000002ae36fa68   R20 = c0000003bb97b8a0
        R05 = 0000000000000000   R21 = c0000002ae36fa68
        R06 = 0000000000000000   R22 = 0000000000000000
        R07 = 0000000000000001   R23 = c0000002ae36fbb0
        R08 = 0000000000000002   R24 = 0000000000000000
        R09 = 0000000000000000   R25 = c000000362cd3a80
        R10 = 0000000000000000   R26 = 0000000000000002
        R11 = c0000000001e7b60   R27 = 0000000000000000
        R12 = 0000000042000484   R28 = 0000000000000001
        R13 = c000000000f66300   R29 = c0000003bb97b9b8
        R14 = 0000000000000001   R30 = c000000000e28a08
        R15 = 000000000000ffff   R31 = c0000000031d0f88
        pc  = c0000000001e7a6c .block_is_partially_uptodate+0xc/0x100
        lr  = c000000000142944 .generic_file_aio_read+0x1e4/0x770
        msr = 8000000000009032   cr  = 22000488
        ctr = c0000000001e7a60   xer = 0000000020000000   trap =  300
        dar = 0000000000000000   dsisr = 40000000
        1f:mon> t
        [link register   ] c000000000142944 .generic_file_aio_read+0x1e4/0x770
        [c0000002ae36f9f0] c000000000142a14 .generic_file_aio_read+0x2b4/0x770 (unreliable)
        [c0000002ae36fb40] c0000000001b03e4 .do_sync_read+0xd4/0x160
        [c0000002ae36fce0] c0000000001b153c .vfs_read+0xec/0x1f0
        [c0000002ae36fd80] c0000000001b1768 .SyS_read+0x58/0xb0
        [c0000002ae36fe30] c00000000000852c syscall_exit+0x0/0x40
        --- Exception: c00 (System Call) at 00000080a840bc54
        SP (fffca15df30) is in userspace
        1f:mon> di c0000000001e7a6c
        c0000000001e7a6c  e9290000      ld      r9,0(r9)
        c0000000001e7a70  418200c0      beq     c0000000001e7b30        # .block_is_partially_uptodate+0xd0/0x100
        c0000000001e7a74  e9440008      ld      r10,8(r4)
        c0000000001e7a78  78a80020      clrldi  r8,r5,32
        c0000000001e7a7c  3c000001      lis     r0,1
        c0000000001e7a80  812900a8      lwz     r9,168(r9)
        c0000000001e7a84  39600001      li      r11,1
        c0000000001e7a88  7c080050      subf    r0,r8,r0
        c0000000001e7a8c  7f805040      cmplw   cr7,r0,r10
        c0000000001e7a90  7d6b4830      slw     r11,r11,r9
        c0000000001e7a94  796b0020      clrldi  r11,r11,32
        c0000000001e7a98  419d00a8      bgt     cr7,c0000000001e7b40    # .block_is_partially_uptodate+0xe0/0x100
        c0000000001e7a9c  7fa55840      cmpld   cr7,r5,r11
        c0000000001e7aa0  7d004214      add     r8,r0,r8
        c0000000001e7aa4  79080020      clrldi  r8,r8,32
        c0000000001e7aa8  419c0078      blt     cr7,c0000000001e7b20    # .block_is_partially_uptodate+0xc0/0x100
      Signed-off-by: NDave Hansen <dave@linux.vnet.ibm.com>
      Reviewed-by: NMinchan Kim <minchan.kim@gmail.com>
      Reviewed-by: NJohannes Weiner <hannes@cmpxchg.org>
      Acked-by: NRik van Riel <riel@redhat.com>
      Cc: <arunabal@in.ibm.com>
      Cc: <sbest@us.ibm.com>
      Cc: Christoph Hellwig <hch@lst.de>
      Cc: Al Viro <viro@zeniv.linux.org.uk>
      Cc: Minchan Kim <minchan.kim@gmail.com>
      Cc: <stable@kernel.org>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      8d056cb9
    • D
      memcg: null dereference on allocation failure · d2e61b8d
      Dan Carpenter 提交于
      The original code had a null dereference if alloc_percpu() failed.  This
      was introduced in commit 711d3d2c ("memcg: cpu hotplug aware percpu
      count updates")
      Signed-off-by: NDan Carpenter <error27@gmail.com>
      Reviewed-by: NBalbir Singh <balbir@linux.vnet.ibm.com>
      Acked-by: NKAMEZAWA Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com>
      Acked-by: NDaisuke Nishimura <nishimura@mxp.nes.nec.co.jp>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      d2e61b8d
  5. 10 11月, 2010 1 次提交
  6. 04 11月, 2010 1 次提交
    • W
      vmstat: fix offset calculation on void* · ff8b16d7
      Wu Fengguang 提交于
      Fix regression introduced by commit 79da826a ("writeback: report
      dirty thresholds in /proc/vmstat").
      
      The incorrect pointer arithmetic can result in problems like this:
      
        BUG: unable to handle kernel paging request at 07c06d16
        IP: [<c050c336>] strnlen+0x6/0x20
        Call Trace:
         [<c050a249>] ? string+0x39/0xe0
         [<c042be6b>] ? __wake_up_common+0x4b/0x80
         [<c050afcc>] ? vsnprintf+0x1ec/0x380
         [<c04b380e>] ? seq_printf+0x2e/0x60
         [<c04829a6>] ? vmstat_show+0x26/0x30
         [<c04b3bb6>] ? seq_read+0xa6/0x380
         [<c04b3b10>] ? seq_read+0x0/0x380
         [<c04d5d2f>] ? proc_reg_read+0x5f/0x90
         [<c049c4a1>] ? vfs_read+0xa1/0x140
         [<c04d5cd0>] ? proc_reg_read+0x0/0x90
         [<c049c981>] ? sys_read+0x41/0x70
         [<c0402bd0>] ? sysenter_do_call+0x12/0x26
      Reported-by: NTetsuo Handa <penguin-kernel@I-love.SAKURA.ne.jp>
      Cc: Michael Rubin <mrubin@google.com>
      Signed-off-by: NWu Fengguang <fengguang.wu@intel.com>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      ff8b16d7
  7. 03 11月, 2010 1 次提交
  8. 30 10月, 2010 1 次提交
    • 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
  9. 29 10月, 2010 2 次提交
  10. 28 10月, 2010 9 次提交
  11. 27 10月, 2010 13 次提交