]> git.karo-electronics.de Git - karo-tx-linux.git/log
karo-tx-linux.git
12 years agox86-olpc-xo15-sci-enable-lid-close-wakeup-control-through-sysfs-fix
Andrew Morton [Fri, 2 Dec 2011 03:06:53 +0000 (14:06 +1100)]
x86-olpc-xo15-sci-enable-lid-close-wakeup-control-through-sysfs-fix

fix sscanf checking

Cc: "H. Peter Anvin" <hpa@zytor.com>
Cc: Andres Salomon <dilinger@queued.net>
Cc: Daniel Drake <dsd@laptop.org>
Cc: Ingo Molnar <mingo@elte.hu>
Cc: Matthew Garrett <mjg@redhat.com>
Cc: Thomas Gleixner <tglx@linutronix.de>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
12 years agox86, olpc-xo15-sci: enable lid close wakeup control through sysfs
Daniel Drake [Fri, 2 Dec 2011 03:06:53 +0000 (14:06 +1100)]
x86, olpc-xo15-sci: enable lid close wakeup control through sysfs

Like most systems, OLPC's ACPI LID switch wakes up the system when the lid
is opened, but not when it is closed.

Under OLPC's opportunistic suspend model, the lid may be closed while the
system was oportunistically suspended with the screen running.  In this
event, we want to wake up to turn the screen off.

Enable control of normal ACPI wakeups through lid close events through a
new sysfs attribute "lid_wake_on_closed".  When set, and when LID wakeups
are enabled through ACPI, the system will wake up on both open and close
lid events.

Signed-off-by: Daniel Drake <dsd@laptop.org>
Cc: Andres Salomon <dilinger@queued.net>
Cc: Matthew Garrett <mjg@redhat.com>
Cc: Ingo Molnar <mingo@elte.hu>
Cc: Thomas Gleixner <tglx@linutronix.de>
Cc: "H. Peter Anvin" <hpa@zytor.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
12 years agoarch/x86/platform/iris/iris.c: register a platform device and a platform driver
Shérab [Fri, 2 Dec 2011 03:06:53 +0000 (14:06 +1100)]
arch/x86/platform/iris/iris.c: register a platform device and a platform driver

This makes the iris driver use the platform API, so it is properly exposed
in /sys.

[akpm@linux-foundation.org: remove commented-out code, add missing space to printk, clean up code layout]
Signed-off-by: Shérab <Sebastien.Hinderer@ens-lyon.org>
Cc: Len Brown <lenb@kernel.org>
Cc: Matthew Garrett <mjg@redhat.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
12 years agoacerhdf: lowered default temp fanon/fanoff values
Peter Feuerer [Fri, 2 Dec 2011 03:06:52 +0000 (14:06 +1100)]
acerhdf: lowered default temp fanon/fanoff values

Due to new supported hardware, of which the actual temperature limits of
processor, harddisk and other components are unknown, it feels safer with
lower fanon / fanoff settings.

It won't change much for most people, already using acerhdf, as they use
their own fanon/fanoff variable settings when loading the module.

Furthermore seems like kernel and userspace tools have been improved to
work more efficient and netbooks don't get so hot anymore.

Signed-off-by: Peter Feuerer <peter@piie.net>
Acked-by: Borislav Petkov <petkovbb@gmail.com>
Cc: Matthew Garrett <mjg@redhat.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
12 years agoacerhdf: add support for new hardware
Peter Feuerer [Fri, 2 Dec 2011 03:06:52 +0000 (14:06 +1100)]
acerhdf: add support for new hardware

Add support for new hardware:
Acer Aspire LT-10Q/531/751/1810/1825,
Acer Travelmate 7730,
Packard Bell ENBFT/DOTVR46

Signed-off-by: Peter Feuerer <peter@piie.net>
Acked-by: Borislav Petkov <petkovbb@gmail.com>
Cc: Matthew Garrett <mjg@redhat.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
12 years agoacerhdf: add support for Aspire 1410 BIOS v1.3314
Clay Carpenter [Fri, 2 Dec 2011 03:06:52 +0000 (14:06 +1100)]
acerhdf: add support for Aspire 1410 BIOS v1.3314

Add support for Aspire 1410 BIOS v1.3314.  Fixes the following error:

acerhdf: unknown (unsupported) BIOS version Acer/Aspire 1410/v1.3314,
please report, aborting!

Signed-off-by: Clay Carpenter <claycarpenter@gmail.com>
Signed-off-by: Peter Feuerer <peter@piie.net>
Cc: Matthew Garrett <mjg@redhat.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
12 years agonet/netfilter/nf_conntrack_netlink.c: fix Oops on container destroy
Alex Bligh [Fri, 2 Dec 2011 03:06:51 +0000 (14:06 +1100)]
net/netfilter/nf_conntrack_netlink.c: fix Oops on container destroy

Problem:

A repeatable Oops can be caused if a container with networking
unshared is destroyed when it has nf_conntrack entries yet to expire.

A copy of the oops follows below. A perl program generating the oops
repeatably is attached inline below.

Analysis:

The oops is called from cleanup_net when the namespace is
destroyed. conntrack iterates through outstanding events and calls
death_by_timeout on each of them, which in turn produces a call to
ctnetlink_conntrack_event. This calls nf_netlink_has_listeners, which
oopses because net->nfnl is NULL.

The perl program generates the container through fork() then
clone(NS_NEWNET). I does not explicitly set up netlink
explicitly set up netlink, but I presume it was set up else net->nfnl
would have been NULL earlier (i.e. when an earlier connection
timed out). This would thus suggest that net->nfnl is made NULL
during the destruction of the container, which I think is done by
nfnetlink_net_exit_batch.

I can see that the various subsystems are deinitialised in the opposite
order to which the relevant register_pernet_subsys calls are called,
and both nf_conntrack and nfnetlink_net_ops register their relevant
subsystems. If nfnetlink_net_ops registered later than nfconntrack,
then its exit routine would have been called first, which would cause
the oops described. I am not sure there is anything to prevent this
happening in a container environment.

Whilst there's perhaps a more complex problem revolving around ordering
of subsystem deinit, it seems to me that missing a netlink event on a
container that is dying is not a disaster. An early check for net->nfnl
being non-NULL in ctnetlink_conntrack_event appears to fix this. There
may remain a potential race condition if it becomes NULL immediately
after being checked (I am not sure any lock is held at this point or
how synchronisation for subsystem deinitialization works).

Patch:

The patch attached should apply on everything from 2.6.26 (if not before)
onwards; it appears to be a problem on all kernels. This was taken against
Ubuntu-3.0.0-11.17 which is very close to 3.0.4. I have torture-tested it
with the above perl script for 15 minutes or so; the perl script hung the
machine within 20 seconds without this patch.

Applicability:

If this is the right solution, it should be applied to all stable kernels
as well as head. Apart from the minor overhead of checking one variable
against NULL, it can never 'do the wrong thing', because if net->nfnl
is NULL, an oops will inevitably result. Therefore, checking is a reasonable
thing to do unless it can be proven than net->nfnl will never be NULL.

Check net->nfnl for NULL in ctnetlink_conntrack_event to avoid Oops on
container destroy

Signed-off-by: Alex Bligh <alex@alex.org.uk>
Cc: Patrick McHardy <kaber@trash.net>
Cc: David Miller <davem@davemloft.net>
Cc: <stable@kernel.org>
Cc: <stable@vger.kernel.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
12 years agocpusets-stall-when-updating-mems_allowed-for-mempolicy-or-disjoint-nodemask-fix
Andrew Morton [Fri, 2 Dec 2011 03:06:51 +0000 (14:06 +1100)]
cpusets-stall-when-updating-mems_allowed-for-mempolicy-or-disjoint-nodemask-fix

stupid temporary hack to make it build with CONFIG_NUMA=n

Cc: David Rientjes <rientjes@google.com>
Cc: KOSAKI Motohiro <kosaki.motohiro@jp.fujitsu.com>
Cc: Miao Xie <miaox@cn.fujitsu.com>
Cc: Paul Menage <paul@paulmenage.org>
Reported-by: Stephen Rothwell <sfr@canb.auug.org.au>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
12 years agocpusets: stall when updating mems_allowed for mempolicy or disjoint nodemask
David Rientjes [Fri, 2 Dec 2011 03:06:51 +0000 (14:06 +1100)]
cpusets: stall when updating mems_allowed for mempolicy or disjoint nodemask

c0ff7453bb5c ("cpuset,mm: fix no node to alloc memory when changing
cpuset's mems") adds get_mems_allowed() to prevent the set of allowed
nodes from changing for a thread.  This causes any update to a set of
allowed nodes to stall until put_mems_allowed() is called.

This stall is unncessary, however, if at least one node remains unchanged
in the update to the set of allowed nodes.  This was addressed by
89e8a244b97e ("cpusets: avoid looping when storing to mems_allowed if one
node remains set"), but it's still possible that an empty nodemask may be
read from a mempolicy because the old nodemask may be remapped to the new
nodemask during rebind.  To prevent this, only avoid the stall if there is
no mempolicy for the thread being changed.

This is a temporary solution until all reads from mempolicy nodemasks can
be guaranteed to not be empty without the get_mems_allowed()
synchronization.

Also moves the check for nodemask intersection inside task_lock() so that
tsk->mems_allowed cannot change.  This ensures that nothing can set this
tsk's mems_allowed out from under us and also protects tsk->mempolicy.

Reported-by: Miao Xie <miaox@cn.fujitsu.com>
Signed-off-by: David Rientjes <rientjes@google.com>
Cc: KOSAKI Motohiro <kosaki.motohiro@jp.fujitsu.com>
Cc: Paul Menage <paul@paulmenage.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
12 years agomm: Ensure that pfn_valid() is called once per pageblock when reserving pageblocks
Michal Hocko [Fri, 2 Dec 2011 03:06:50 +0000 (14:06 +1100)]
mm: Ensure that pfn_valid() is called once per pageblock when reserving pageblocks

setup_zone_migrate_reserve expects that zone->start_pfn starts
at pageblock_nr_pages aligned pfn otherwise we could access
beyond an existing memblock resulting in the following panic if
CONFIG_HOLES_IN_ZONE is not configured and we do not check pfn_valid:

IP: [<c02d331d>] setup_zone_migrate_reserve+0xcd/0x180
*pdpt = 0000000000000000 *pde = f000ff53f000ff53
Oops: 0000 [#1] SMP
Modules linked in:
Supported: Yes

Pid: 1, comm: swapper Not tainted 3.0.7-0.7-pae #1 VMware, Inc.
VMware Virtual Platform/440BX Desktop Reference Platform
EIP: 0060:[<c02d331d>] EFLAGS: 00010006 CPU: 0
EIP is at setup_zone_migrate_reserve+0xcd/0x180
EAX: 000c0000 EBX: f5801fc0 ECX: 000c0000 EDX: 00000000
ESI: 000c01fe EDI: 000c01fe EBP: 00140000 ESP: f2475f58
DS: 007b ES: 007b FS: 00d8 GS: 0000 SS: 0068
Process swapper (pid: 1, ti=f2474000 task=f2472cd0 task.ti=f2474000)
Stack:
f4000800 00000000 f4000800 000006b8 00000000 000c6cd5 c02d389c 000003b2
00036aa9 00000292 f4000830 c08cfe78 00000000 00000000 c08a76f5 c02d3a1f
c08a771c c08cfe78 c020111b 35310001 00000000 00000000 00000100 f24730c4
Call Trace:
[<c02d389c>] __setup_per_zone_wmarks+0xec/0x160
[<c02d3a1f>] setup_per_zone_wmarks+0xf/0x20
[<c08a771c>] init_per_zone_wmark_min+0x27/0x86
[<c020111b>] do_one_initcall+0x2b/0x160
[<c086639d>] kernel_init+0xbe/0x157
[<c05cae26>] kernel_thread_helper+0x6/0xd
Code: a5 39 f5 89 f7 0f 46 fd 39 cf 76 40 8b 03 f6 c4 08 74 32 eb 91 90 89 c8 c1 e8 0e 0f be 80 80 2f 86 c0 8b 14 85 60 2f 86 c0 89 c8 <2b> 82 b4 12 00 00 c1 e0 05 03 82 ac 12 00 00 8b 00 f6 c4 08 0f
EIP: [<c02d331d>] setup_zone_migrate_reserve+0xcd/0x180 SS:ESP 0068:f2475f58
CR2: 00000000000012b4
---[ end trace 93d72a36b9146f22 ]---

We crashed in pageblock_is_reserved() when accessing pfn 0xc0000 because
highstart_pfn = 0x36ffe.

The issue was introduced in 3.0-rc1 by 6d3163ce ("mm: check if any page in
a pageblock is reserved before marking it MIGRATE_RESERVE").

Make sure that start_pfn is always aligned to pageblock_nr_pages to ensure
that pfn_valid s always called at the start of each pageblock.
Architectures with holes in pageblocks will be correctly handled by
pfn_valid_within in pageblock_is_reserved.

Signed-off-by: Michal Hocko <mhocko@suse.cz>
Signed-off-by: Mel Gorman <mgorman@suse.de>
Tested-by: Dang Bo <bdang@vmware.com>
Cc: Andrea Arcangeli <aarcange@redhat.com>
Cc: David Rientjes <rientjes@google.com>
Cc: Arve Hjnnevg <arve@android.com>
Cc: KOSAKI Motohiro <kosaki.motohiro@jp.fujitsu.com>
Cc: John Stultz <john.stultz@linaro.org>
Cc: Dave Hansen <dave@linux.vnet.ibm.com>
Cc: <stable@vger.kernel.org> [3.0+]
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
12 years agomm/migrate.c: pair unlock_page() and lock_page() when migrating huge pages
Hillf Danton [Fri, 2 Dec 2011 03:06:50 +0000 (14:06 +1100)]
mm/migrate.c: pair unlock_page() and lock_page() when migrating huge pages

Avoid unlocking and unlocked page if we failed to lock it.

Signed-off-by: Hillf Danton <dhillf@gmail.com>
Cc: Naoya Horiguchi <n-horiguchi@ah.jp.nec.com>
Cc: Andrea Arcangeli <aarcange@redhat.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
12 years agothp: set compound tail page _count to zero
Youquan Song [Fri, 2 Dec 2011 03:06:50 +0000 (14:06 +1100)]
thp: set compound tail page _count to zero

70b50f94f1644 ("mm: thp: tail page refcounting fix") keeps all
page_tail->_count zero at all times.  But the current kernel does not set
page_tail->_count to zero if a 1GB page is utilized.  So when an IOMMU 1GB
page is used at KVM, it wil result in a kernel oops because a tail page's
_count does not equal zero.

kernel BUG at include/linux/mm.h:386!
invalid opcode: 0000 [#1] SMP
Call Trace:
 [<ffffffff81072f7f>] gup_pud_range+0xb8/0x19d
 [<ffffffff8107312f>] get_user_pages_fast+0xcb/0x192
 [<ffffffff810bc450>] ? trace_hardirqs_off+0xd/0xf
 [<ffffffff81006a24>] hva_to_pfn+0x119/0x2f2
 [<ffffffff81006c29>] gfn_to_pfn_memslot+0x2c/0x2e
 [<ffffffff8100b909>] kvm_iommu_map_pages+0xfd/0x1c1
 [<ffffffff8100ba49>] kvm_iommu_map_memslots+0x7c/0xbd
 [<ffffffff8100b9cd>] ? kvm_iommu_map_pages+0x1c1/0x1c1
 [<ffffffff8100bb34>] kvm_iommu_map_guest+0xaa/0xbf
 [<ffffffff8100aeb0>] kvm_vm_ioctl_assigned_device+0x2ef/0xa47
 [<ffffffff8100ac6d>] ? kvm_vm_ioctl_assigned_device+0xac/0xa47
 [<ffffffff8104f2a6>] ? native_sched_clock+0x32/0x6b
 [<ffffffff810b0c02>] ? sched_clock_cpu+0x45/0xd4
 [<ffffffff810bc450>] ? trace_hardirqs_off+0xd/0xf
 [<ffffffff810b0cd2>] ? local_clock+0x41/0x5a
 [<ffffffff810bc8a1>] ? lock_release_holdtime+0x2c/0x129
 [<ffffffff8115762d>] ? cmpxchg_double_slab+0xd0/0x12b
 [<ffffffff81248f47>] ? avc_has_perm_noaudit+0x388/0x399
 [<ffffffff8104f2a6>] ? native_sched_clock+0x32/0x6b
 [<ffffffff8104f2e8>] ? sched_clock+0x9/0xd
 [<ffffffff81007dcb>] kvm_vm_ioctl+0x36c/0x3a2
 [<ffffffff8104f2a6>] ? native_sched_clock+0x32/0x6b
 [<ffffffff8104f2e8>] ? sched_clock+0x9/0xd
 [<ffffffff81174b10>] do_vfs_ioctl+0x49e/0x4e4
 [<ffffffff81174bb0>] sys_ioctl+0x5a/0x7c
 [<ffffffff81500e02>] system_call_fastpath+0x16/0x1b
RIP  [<ffffffff81072d13>] gup_huge_pud+0xf2/0x159

Signed-off-by: Youquan Song <youquan.song@intel.com>
Reviewed-by: Andrea Arcangeli <aarcange@redhat.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
12 years agothp: add compound tail page _mapcount when mapped
Youquan Song [Fri, 2 Dec 2011 03:06:49 +0000 (14:06 +1100)]
thp: add compound tail page _mapcount when mapped

With the 3.2-rc kernel, the IOMMU 2M page in KVM works.  While I try to us
IOMMU 1GB page in KVM, I encounter a oops and 1GB page total fail to be
used.  The root cause is that 1GB page allocation calls gup_huge_pud()
while 2M page calls gup_huge_pmd.  If compound pages are used and the page
is tail page, gup_huge_pmd increase _mapcount to record tail page are
mapped while gup_huge_pud does not include this process.  So when the
mapped page is relesed, it will result in kernel oops because the page
does not mark mapped.

This patch add tail process for compound page in 1GB huge page which keeps
the same process as 2M page.

Reproduce like:
1. Add grub boot option: hugepagesz=1G hugepages=8
2. mount -t hugetlbfs -o pagesize=1G hugetlbfs /dev/hugepages
3.qemu-kvm -m 2048 -hda os-kvm.img -cpu kvm64 -smp 4 -mem-path /dev/hugepages
 -net none -device pci-assign,host=07:00.1

kernel BUG at mm/swap.c:114!
invalid opcode: 0000 [#1] SMP
Call Trace:
 [<ffffffff81127482>] put_page+0x15/0x37
 [<ffffffff810067c4>] kvm_release_pfn_clean+0x31/0x36
 [<ffffffff8100b69c>] kvm_iommu_put_pages+0x94/0xb1
 [<ffffffff8100b739>] kvm_iommu_unmap_memslots+0x80/0xb6
 [<ffffffff8100b6b9>] ? kvm_iommu_put_pages+0xb1/0xb1
 [<ffffffff81425cf3>] ? intel_iommu_attach_device+0x13b/0x144
 [<ffffffff8100bc03>] kvm_assign_device+0xba/0x117
 [<ffffffff8100aec2>] kvm_vm_ioctl_assigned_device+0x301/0xa47
 [<ffffffff8100ac6d>] ? kvm_vm_ioctl_assigned_device+0xac/0xa47
 [<ffffffff8104f2a6>] ? native_sched_clock+0x32/0x6b
 [<ffffffff810b0be2>] ? sched_clock_cpu+0x45/0xd4
 [<ffffffff810bc430>] ? trace_hardirqs_off+0xd/0xf
 [<ffffffff810b0cb2>] ? local_clock+0x41/0x5a
 [<ffffffff810bc881>] ? lock_release_holdtime+0x2c/0x129
 [<ffffffff8115760d>] ? cmpxchg_double_slab+0xd0/0x12b
 [<ffffffff81248f27>] ? avc_has_perm_noaudit+0x388/0x399
 [<ffffffff8104f2a6>] ? native_sched_clock+0x32/0x6b
 [<ffffffff8104f2e8>] ? sched_clock+0x9/0xd
 [<ffffffff81007dcb>] kvm_vm_ioctl+0x36c/0x3a2
 [<ffffffff8104f2a6>] ? native_sched_clock+0x32/0x6b
 [<ffffffff8104f2e8>] ? sched_clock+0x9/0xd
 [<ffffffff81174af0>] do_vfs_ioctl+0x49e/0x4e4
 [<ffffffff81174b90>] sys_ioctl+0x5a/0x7c
 [<ffffffff81500dc2>] system_call_fastpath+0x16/0x1b
RIP  [<ffffffff811273d9>] put_compound_page+0xd4/0x168

Signed-off-by: Youquan Song <youquan.song@intel.com>
Reviewed-by: Andrea Arcangeli <aarcange@redhat.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
12 years agoprintk: avoid double lock acquire
Peter Zijlstra [Fri, 2 Dec 2011 03:06:49 +0000 (14:06 +1100)]
printk: avoid double lock acquire

Commit 4f2a8d3cf5e ("printk: Fix console_sem vs logbuf_lock unlock race")
introduced another silly bug where we would want to acquire an already
held lock.  Avoid this.

Reported-by: Andrea Arcangeli <aarcange@redhat.com>
Signed-off-by: Peter Zijlstra <a.p.zijlstra@chello.nl>
Cc: Ingo Molnar <mingo@elte.hu>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
12 years agomemcg: update maintainers
KAMEZAWA Hiroyuki [Fri, 2 Dec 2011 03:06:49 +0000 (14:06 +1100)]
memcg: update maintainers

More players joined to memory cgroup developments and Johannes' great work
changed internal design of memory cgroup dramatically.  And he will do
more works.  Michal Hokko did many bug fixes and know memory cgroup very
well.  Daisuke Nishimura helped us very much but he seems busy now.
Thanks to his works.

Signed-off-by: KAMEZAWA Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com>
Acked-by: Michal Hocko <mhocko@suse.cz>
Acked-by: Johannes Weiner <hannes@cmpxchg.org>
Acked-by: Daisuke Nishimura <nishimura@mxp.nes.nec.co.jp>
Cc: Balbir Singh <bsingharora@gmail.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
12 years agodrivers/rtc/rtc-s3c.c: fix driver clock enable/disable balance issues
Jonghwan Choi [Fri, 2 Dec 2011 03:06:48 +0000 (14:06 +1100)]
drivers/rtc/rtc-s3c.c: fix driver clock enable/disable balance issues

If an error occurs after the clock is enabled, the enable/disable state
can become unbalanced.

Signed-off-by: Jonghwan Choi <jhbird.choi@samsung.com>
Cc: Alessandro Zummo <a.zummo@towertech.it>
Acked-by: Kukjin Kim <kgene.kim@samsung.com>
Cc: <stable@vger.kernel.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
12 years agoCREDITS: update Kees's expired fingerprint and fix details
Kees Cook [Fri, 2 Dec 2011 03:06:48 +0000 (14:06 +1100)]
CREDITS: update Kees's expired fingerprint and fix details

Small clean-up for my CREDITS entry; the GPG fingerprint was not up to
date, so I fixed other details at the same time too.

Signed-off-by: Kees Cook <kees@outflux.net>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
12 years agothp: reduce khugepaged freezing latency
Andrea Arcangeli [Fri, 2 Dec 2011 03:06:48 +0000 (14:06 +1100)]
thp: reduce khugepaged freezing latency

Use wait_event_freezable_timeout() instead of
schedule_timeout_interruptible() to avoid missing freezer wakeups.  A
try_to_freeze() would have been needed in the khugepaged_alloc_hugepage
tight loop too in case of the allocation failing repeatedly, and
wait_event_freezable_timeout will provide it too.

khugepaged would still freeze just fine by trying again the next minute
but it's better if it freezes immediately.

Reported-by: Jiri Slaby <jslaby@suse.cz>
Signed-off-by: Andrea Arcangeli <aarcange@redhat.com>
Tested-by: Jiri Slaby <jslaby@suse.cz>
Cc: Tejun Heo <tj@kernel.org>
Cc: Oleg Nesterov <oleg@redhat.com>
Cc: "Srivatsa S. Bhat" <srivatsa.bhat@linux.vnet.ibm.com>
Cc: "Rafael J. Wysocki" <rjw@suse.com
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
12 years agofs/proc/meminfo.c: fix compilation error
Claudio Scordino [Fri, 2 Dec 2011 03:06:47 +0000 (14:06 +1100)]
fs/proc/meminfo.c: fix compilation error

Fix the error message "directives may not be used inside a macro argument"
which appears when the kernel is compiled for the cris architecture.

Signed-off-by: Claudio Scordino <claudio@evidence.eu.com>
Cc: Andrea Arcangeli <aarcange@redhat.com>
Cc: <stable@vger.kernel.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
12 years agovmscan: use atomic-long for shrinker batching
Konstantin Khlebnikov [Fri, 2 Dec 2011 03:06:45 +0000 (14:06 +1100)]
vmscan: use atomic-long for shrinker batching

Use atomic-long operations instead of looping around cmpxchg().

[akpm@linux-foundation.org: massage atomic.h inclusions]
Signed-off-by: Konstantin Khlebnikov <khlebnikov@openvz.org>
Cc: Dave Chinner <david@fromorbit.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
12 years agovmscan: fix initial shrinker size handling
Konstantin Khlebnikov [Fri, 2 Dec 2011 03:06:44 +0000 (14:06 +1100)]
vmscan: fix initial shrinker size handling

A shrinker function can return -1, means that it cannot do anything
without a risk of deadlock.  For example prune_super() does this if it
cannot grab a superblock refrence, even if nr_to_scan=0.  Currently we
interpret this -1 as a ULONG_MAX size shrinker and evaluate `total_scan'
according to this.  So the next time around this shrinker can cause really
big pressure.  Let's skip such shrinkers instead.

Also make total_scan signed, otherwise the check (total_scan < 0) below
never works.

Signed-off-by: Konstantin Khlebnikov <khlebnikov@openvz.org>
Cc: Dave Chinner <david@fromorbit.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
12 years agoMerge remote-tracking branch 'kvmtool/master'
Stephen Rothwell [Tue, 6 Dec 2011 03:38:17 +0000 (14:38 +1100)]
Merge remote-tracking branch 'kvmtool/master'

Conflicts:
include/net/9p/9p.h
scripts/kconfig/Makefile

12 years agoMerge remote-tracking branch 'kmap_atomic/kmap_atomic'
Stephen Rothwell [Tue, 6 Dec 2011 02:53:37 +0000 (13:53 +1100)]
Merge remote-tracking branch 'kmap_atomic/kmap_atomic'

12 years agoMerge remote-tracking branch 'vhost/linux-next'
Stephen Rothwell [Tue, 6 Dec 2011 02:46:59 +0000 (13:46 +1100)]
Merge remote-tracking branch 'vhost/linux-next'

Conflicts:
arch/hexagon/Kconfig
arch/m68k/Kconfig

12 years agoMerge remote-tracking branch 'pinctrl/for-next'
Stephen Rothwell [Tue, 6 Dec 2011 02:45:34 +0000 (13:45 +1100)]
Merge remote-tracking branch 'pinctrl/for-next'

12 years agoMerge remote-tracking branch 'writeback/writeback-for-next'
Stephen Rothwell [Tue, 6 Dec 2011 02:39:13 +0000 (13:39 +1100)]
Merge remote-tracking branch 'writeback/writeback-for-next'

12 years agoMerge remote-tracking branch 'tmem/tmem'
Stephen Rothwell [Tue, 6 Dec 2011 02:33:51 +0000 (13:33 +1100)]
Merge remote-tracking branch 'tmem/tmem'

Conflicts:
mm/swapfile.c

12 years agoMerge remote-tracking branch 'char-misc/char-misc-next'
Stephen Rothwell [Tue, 6 Dec 2011 02:32:18 +0000 (13:32 +1100)]
Merge remote-tracking branch 'char-misc/char-misc-next'

12 years agoMerge remote-tracking branch 'staging/staging-next'
Stephen Rothwell [Tue, 6 Dec 2011 02:30:42 +0000 (13:30 +1100)]
Merge remote-tracking branch 'staging/staging-next'

Conflicts:
drivers/hid/hid-hyperv.c
drivers/staging/hv/Kconfig
drivers/staging/hv/Makefile
drivers/staging/iio/adc/ad799x_core.c
drivers/staging/iio/industrialio-core.c

12 years agoMerge remote-tracking branch 'usb/usb-next'
Stephen Rothwell [Tue, 6 Dec 2011 02:26:22 +0000 (13:26 +1100)]
Merge remote-tracking branch 'usb/usb-next'

12 years agoMerge remote-tracking branch 'tty/tty-next'
Stephen Rothwell [Tue, 6 Dec 2011 02:24:29 +0000 (13:24 +1100)]
Merge remote-tracking branch 'tty/tty-next'

Conflicts:
drivers/tty/serial/Kconfig
drivers/tty/serial/Makefile

12 years agoMerge remote-tracking branch 'driver-core/driver-core-next'
Stephen Rothwell [Tue, 6 Dec 2011 02:18:17 +0000 (13:18 +1100)]
Merge remote-tracking branch 'driver-core/driver-core-next'

12 years agoMerge remote-tracking branch 'hsi/for-next'
Stephen Rothwell [Tue, 6 Dec 2011 02:16:47 +0000 (13:16 +1100)]
Merge remote-tracking branch 'hsi/for-next'

12 years agoMerge remote-tracking branch 'regmap/for-next'
Stephen Rothwell [Tue, 6 Dec 2011 02:15:16 +0000 (13:15 +1100)]
Merge remote-tracking branch 'regmap/for-next'

12 years agoMerge remote-tracking branch 'namespace/master'
Stephen Rothwell [Tue, 6 Dec 2011 02:13:44 +0000 (13:13 +1100)]
Merge remote-tracking branch 'namespace/master'

12 years agoMerge remote-tracking branch 'sysctl/master'
Stephen Rothwell [Tue, 6 Dec 2011 02:12:12 +0000 (13:12 +1100)]
Merge remote-tracking branch 'sysctl/master'

12 years agoMerge remote-tracking branch 'xen-two/linux-next'
Stephen Rothwell [Tue, 6 Dec 2011 02:06:09 +0000 (13:06 +1100)]
Merge remote-tracking branch 'xen-two/linux-next'

Conflicts:
arch/x86/xen/Kconfig

12 years agoMerge remote-tracking branch 'xen/upstream/xen'
Stephen Rothwell [Tue, 6 Dec 2011 02:04:45 +0000 (13:04 +1100)]
Merge remote-tracking branch 'xen/upstream/xen'

Conflicts:
arch/x86/xen/Kconfig

12 years agoMerge remote-tracking branch 'kmemleak/kmemleak'
Stephen Rothwell [Tue, 6 Dec 2011 01:58:00 +0000 (12:58 +1100)]
Merge remote-tracking branch 'kmemleak/kmemleak'

12 years agoMerge remote-tracking branch 'uprobes/for-next'
Stephen Rothwell [Tue, 6 Dec 2011 01:51:07 +0000 (12:51 +1100)]
Merge remote-tracking branch 'uprobes/for-next'

12 years agoMerge remote-tracking branch 'tip/auto-latest'
Stephen Rothwell [Tue, 6 Dec 2011 01:44:15 +0000 (12:44 +1100)]
Merge remote-tracking branch 'tip/auto-latest'

Conflicts:
arch/mips/kernel/perf_event_mipsxx.c

12 years agoMerge remote-tracking branch 'edac-amd/for-next'
Stephen Rothwell [Tue, 6 Dec 2011 01:42:47 +0000 (12:42 +1100)]
Merge remote-tracking branch 'edac-amd/for-next'

12 years agoMerge remote-tracking branch 'fsnotify/for-next'
Stephen Rothwell [Tue, 6 Dec 2011 01:39:44 +0000 (12:39 +1100)]
Merge remote-tracking branch 'fsnotify/for-next'

12 years agoMerge remote-tracking branch 'apm/for-next'
Stephen Rothwell [Tue, 6 Dec 2011 01:38:18 +0000 (12:38 +1100)]
Merge remote-tracking branch 'apm/for-next'

12 years agoMerge remote-tracking branch 'pm/linux-next'
Stephen Rothwell [Tue, 6 Dec 2011 01:31:32 +0000 (12:31 +1100)]
Merge remote-tracking branch 'pm/linux-next'

12 years agoMerge remote-tracking branch 'trivial/for-next'
Stephen Rothwell [Tue, 6 Dec 2011 01:27:56 +0000 (12:27 +1100)]
Merge remote-tracking branch 'trivial/for-next'

Conflicts:
arch/powerpc/platforms/40x/Kconfig
net/mac80211/work.c

12 years agoMerge remote-tracking branch 'osd/linux-next'
Stephen Rothwell [Tue, 6 Dec 2011 01:27:46 +0000 (12:27 +1100)]
Merge remote-tracking branch 'osd/linux-next'

12 years agoMerge remote-tracking branch 'cputime/cputime'
Stephen Rothwell [Tue, 6 Dec 2011 01:21:36 +0000 (12:21 +1100)]
Merge remote-tracking branch 'cputime/cputime'

12 years agoMerge remote-tracking branch 'iommu/next'
Stephen Rothwell [Tue, 6 Dec 2011 01:20:13 +0000 (12:20 +1100)]
Merge remote-tracking branch 'iommu/next'

12 years agoMerge remote-tracking branch 'watchdog/linux-next'
Stephen Rothwell [Tue, 6 Dec 2011 01:18:44 +0000 (12:18 +1100)]
Merge remote-tracking branch 'watchdog/linux-next'

12 years agoMerge remote-tracking branch 'security/next'
Stephen Rothwell [Tue, 6 Dec 2011 01:16:02 +0000 (12:16 +1100)]
Merge remote-tracking branch 'security/next'

Conflicts:
lib/Makefile

12 years agoMerge remote-tracking branch 'regulator/for-next'
Stephen Rothwell [Tue, 6 Dec 2011 01:14:35 +0000 (12:14 +1100)]
Merge remote-tracking branch 'regulator/for-next'

12 years agoMerge remote-tracking branch 'fbdev/fbdev-next'
Stephen Rothwell [Tue, 6 Dec 2011 01:13:05 +0000 (12:13 +1100)]
Merge remote-tracking branch 'fbdev/fbdev-next'

12 years agoMerge remote-tracking branch 'drm/drm-next'
Stephen Rothwell [Tue, 6 Dec 2011 01:11:32 +0000 (12:11 +1100)]
Merge remote-tracking branch 'drm/drm-next'

12 years agoMerge remote-tracking branch 'md/for-next'
Stephen Rothwell [Tue, 6 Dec 2011 01:09:54 +0000 (12:09 +1100)]
Merge remote-tracking branch 'md/for-next'

12 years agoMerge remote-tracking branch 'slab/for-next'
Stephen Rothwell [Tue, 6 Dec 2011 01:08:29 +0000 (12:08 +1100)]
Merge remote-tracking branch 'slab/for-next'

12 years agoMerge remote-tracking branch 'kgdb/kgdb-next'
Stephen Rothwell [Tue, 6 Dec 2011 01:08:20 +0000 (12:08 +1100)]
Merge remote-tracking branch 'kgdb/kgdb-next'

12 years agoMerge remote-tracking branch 'mmc/mmc-next'
Stephen Rothwell [Tue, 6 Dec 2011 01:06:50 +0000 (12:06 +1100)]
Merge remote-tracking branch 'mmc/mmc-next'

12 years agoMerge remote-tracking branch 'battery/master'
Stephen Rothwell [Tue, 6 Dec 2011 01:05:24 +0000 (12:05 +1100)]
Merge remote-tracking branch 'battery/master'

12 years agoMerge remote-tracking branch 'block/for-next'
Stephen Rothwell [Tue, 6 Dec 2011 01:03:02 +0000 (12:03 +1100)]
Merge remote-tracking branch 'block/for-next'

12 years agoMerge remote-tracking branch 'input/next'
Stephen Rothwell [Tue, 6 Dec 2011 01:01:30 +0000 (12:01 +1100)]
Merge remote-tracking branch 'input/next'

Conflicts:
drivers/input/keyboard/samsung-keypad.c

12 years agoMerge branch 'quilt/rr'
Stephen Rothwell [Tue, 6 Dec 2011 01:00:08 +0000 (12:00 +1100)]
Merge branch 'quilt/rr'

12 years agoMerge remote-tracking branch 'cpufreq/next'
Stephen Rothwell [Tue, 6 Dec 2011 00:58:49 +0000 (11:58 +1100)]
Merge remote-tracking branch 'cpufreq/next'

12 years agoMerge remote-tracking branch 'sound-asoc/for-next'
Stephen Rothwell [Tue, 6 Dec 2011 00:57:23 +0000 (11:57 +1100)]
Merge remote-tracking branch 'sound-asoc/for-next'

Conflicts:
arch/arm/mach-s3c64xx/mach-crag6410.c

12 years agoMerge remote-tracking branch 'sound/for-next'
Stephen Rothwell [Tue, 6 Dec 2011 00:55:50 +0000 (11:55 +1100)]
Merge remote-tracking branch 'sound/for-next'

12 years agoMerge remote-tracking branch 'crypto/master'
Stephen Rothwell [Tue, 6 Dec 2011 00:54:17 +0000 (11:54 +1100)]
Merge remote-tracking branch 'crypto/master'

12 years agoMerge remote-tracking branch 'l2-mtd/master'
Stephen Rothwell [Tue, 6 Dec 2011 00:52:47 +0000 (11:52 +1100)]
Merge remote-tracking branch 'l2-mtd/master'

12 years agoMerge remote-tracking branch 'mtd/master'
Stephen Rothwell [Tue, 6 Dec 2011 00:51:28 +0000 (11:51 +1100)]
Merge remote-tracking branch 'mtd/master'

12 years agoMerge remote-tracking branch 'bluetooth/master'
Stephen Rothwell [Tue, 6 Dec 2011 00:49:57 +0000 (11:49 +1100)]
Merge remote-tracking branch 'bluetooth/master'

12 years agoMerge remote-tracking branch 'wireless-next/master'
Stephen Rothwell [Tue, 6 Dec 2011 00:48:14 +0000 (11:48 +1100)]
Merge remote-tracking branch 'wireless-next/master'

Conflicts:
drivers/net/wireless/iwlwifi/iwl-agn.c

12 years agoMerge remote-tracking branch 'net-next/master'
Stephen Rothwell [Tue, 6 Dec 2011 00:42:17 +0000 (11:42 +1100)]
Merge remote-tracking branch 'net-next/master'

Conflicts:
drivers/net/wireless/iwlwifi/iwl-agn.c

12 years agoMerge remote-tracking branch 'slave-dma/next'
Stephen Rothwell [Tue, 6 Dec 2011 00:38:36 +0000 (11:38 +1100)]
Merge remote-tracking branch 'slave-dma/next'

Conflicts:
drivers/dma/pl330.c

12 years agoMerge remote-tracking branch 'target-merge/for-next-merge'
Stephen Rothwell [Tue, 6 Dec 2011 00:37:11 +0000 (11:37 +1100)]
Merge remote-tracking branch 'target-merge/for-next-merge'

12 years agoMerge remote-tracking branch 'dlm/next'
Stephen Rothwell [Tue, 6 Dec 2011 00:35:42 +0000 (11:35 +1100)]
Merge remote-tracking branch 'dlm/next'

12 years agoMerge remote-tracking branch 'ubi/linux-next'
Stephen Rothwell [Tue, 6 Dec 2011 00:34:23 +0000 (11:34 +1100)]
Merge remote-tracking branch 'ubi/linux-next'

12 years agoMerge remote-tracking branch 'libata/NEXT'
Stephen Rothwell [Tue, 6 Dec 2011 00:32:54 +0000 (11:32 +1100)]
Merge remote-tracking branch 'libata/NEXT'

12 years agoMerge remote-tracking branch 'kconfig/for-next'
Stephen Rothwell [Tue, 6 Dec 2011 00:32:50 +0000 (11:32 +1100)]
Merge remote-tracking branch 'kconfig/for-next'

12 years agoMerge remote-tracking branch 'kbuild/for-next'
Stephen Rothwell [Tue, 6 Dec 2011 00:31:26 +0000 (11:31 +1100)]
Merge remote-tracking branch 'kbuild/for-next'

12 years agoMerge remote-tracking branch 'v4l-dvb/master'
Stephen Rothwell [Tue, 6 Dec 2011 00:28:07 +0000 (11:28 +1100)]
Merge remote-tracking branch 'v4l-dvb/master'

Conflicts:
drivers/staging/media/as102/as102_drv.h

12 years agoMerge remote-tracking branch 'hwmon-staging/hwmon-next'
Stephen Rothwell [Tue, 6 Dec 2011 00:26:47 +0000 (11:26 +1100)]
Merge remote-tracking branch 'hwmon-staging/hwmon-next'

12 years agoMerge branch 'quilt/jdelvare-hwmon'
Stephen Rothwell [Tue, 6 Dec 2011 00:25:30 +0000 (11:25 +1100)]
Merge branch 'quilt/jdelvare-hwmon'

12 years agoMerge remote-tracking branch 'bjdooks-i2c/next-i2c'
Stephen Rothwell [Tue, 6 Dec 2011 00:24:12 +0000 (11:24 +1100)]
Merge remote-tracking branch 'bjdooks-i2c/next-i2c'

Conflicts:
drivers/i2c/busses/i2c-designware-platdrv.c

12 years agoMerge remote-tracking branch 'hid/for-next'
Stephen Rothwell [Tue, 6 Dec 2011 00:22:39 +0000 (11:22 +1100)]
Merge remote-tracking branch 'hid/for-next'

12 years agoMerge commit 'refs/next/20111205/pci'
Stephen Rothwell [Tue, 6 Dec 2011 00:16:35 +0000 (11:16 +1100)]
Merge commit 'refs/next/20111205/pci'

12 years agoMerge remote-tracking branch 'xfs/master'
Stephen Rothwell [Tue, 6 Dec 2011 00:08:16 +0000 (11:08 +1100)]
Merge remote-tracking branch 'xfs/master'

12 years agoMerge remote-tracking branch 'ubifs/linux-next'
Stephen Rothwell [Tue, 6 Dec 2011 00:06:58 +0000 (11:06 +1100)]
Merge remote-tracking branch 'ubifs/linux-next'

12 years agoMerge remote-tracking branch 'nfsd/nfsd-next'
Stephen Rothwell [Tue, 6 Dec 2011 00:05:35 +0000 (11:05 +1100)]
Merge remote-tracking branch 'nfsd/nfsd-next'

12 years agoMerge remote-tracking branch 'nfs/linux-next'
Stephen Rothwell [Tue, 6 Dec 2011 00:04:18 +0000 (11:04 +1100)]
Merge remote-tracking branch 'nfs/linux-next'

12 years agoMerge remote-tracking branch 'logfs/master'
Stephen Rothwell [Tue, 6 Dec 2011 00:03:00 +0000 (11:03 +1100)]
Merge remote-tracking branch 'logfs/master'

Conflicts:
fs/logfs/file.c

12 years agoMerge remote-tracking branch 'gfs2/master'
Stephen Rothwell [Tue, 6 Dec 2011 00:01:25 +0000 (11:01 +1100)]
Merge remote-tracking branch 'gfs2/master'

12 years agoMerge remote-tracking branch 'ecryptfs/next'
Stephen Rothwell [Tue, 6 Dec 2011 00:01:20 +0000 (11:01 +1100)]
Merge remote-tracking branch 'ecryptfs/next'

12 years agoMerge remote-tracking branch 'cifs/master'
Stephen Rothwell [Tue, 6 Dec 2011 00:00:03 +0000 (11:00 +1100)]
Merge remote-tracking branch 'cifs/master'

12 years agoMerge remote-tracking branch 'xtensa/master'
Stephen Rothwell [Mon, 5 Dec 2011 23:58:39 +0000 (10:58 +1100)]
Merge remote-tracking branch 'xtensa/master'

12 years agoMerge remote-tracking branch 'tile/master'
Stephen Rothwell [Mon, 5 Dec 2011 23:53:12 +0000 (10:53 +1100)]
Merge remote-tracking branch 'tile/master'

12 years agoMerge remote-tracking branch 's390/features'
Stephen Rothwell [Mon, 5 Dec 2011 23:51:52 +0000 (10:51 +1100)]
Merge remote-tracking branch 's390/features'

12 years agoMerge remote-tracking branch '52xx-and-virtex/powerpc/next'
Stephen Rothwell [Mon, 5 Dec 2011 23:51:35 +0000 (10:51 +1100)]
Merge remote-tracking branch '52xx-and-virtex/powerpc/next'

12 years agoMerge remote-tracking branch '4xx/next'
Stephen Rothwell [Mon, 5 Dec 2011 23:50:18 +0000 (10:50 +1100)]
Merge remote-tracking branch '4xx/next'

12 years agoMerge remote-tracking branch 'powerpc/next'
Stephen Rothwell [Mon, 5 Dec 2011 23:47:52 +0000 (10:47 +1100)]
Merge remote-tracking branch 'powerpc/next'

12 years agoMerge remote-tracking branch 'parisc/for-next'
Stephen Rothwell [Mon, 5 Dec 2011 23:46:29 +0000 (10:46 +1100)]
Merge remote-tracking branch 'parisc/for-next'

12 years agoMerge remote-tracking branch 'mips/mips-for-linux-next'
Stephen Rothwell [Mon, 5 Dec 2011 23:44:40 +0000 (10:44 +1100)]
Merge remote-tracking branch 'mips/mips-for-linux-next'