13 Sep, 2012

3 commits

  • ptrace_notify() and get_signal_to_deliver() do unnecessary things
    before task_work_run():

    1. smp_mb__after_clear_bit() is not needed, test_and_clear_bit()
    implies mb().

    2. And we do not need the barrier at all, in this case we only
    care about the "synchronous" works added by the task itself.

    3. No need to clear TIF_NOTIFY_RESUME, and we should not assume
    task_works is the only user of this flag.

    Signed-off-by: Oleg Nesterov
    Signed-off-by: Peter Zijlstra
    Cc: Al Viro
    Cc: Linus Torvalds
    Cc: Andrew Morton
    Cc: Thomas Gleixner
    Link: http://lkml.kernel.org/r/20120826191217.GA4238@redhat.com
    Signed-off-by: Ingo Molnar

    Oleg Nesterov
     
  • ed3e694d "move exit_task_work() past exit_files() et.al" destroyed
    the add/exit synchronization we had, the caller itself should ensure
    task_work_add() can't race with the exiting task.

    However, this is not convenient/simple, and the only user which tries
    to do this is buggy (see the next patch). Unless the task is current,
    there is simply no way to do this in general.

    Change exit_task_work()->task_work_run() to use the dummy "work_exited"
    entry to let task_work_add() know it should fail.

    Signed-off-by: Oleg Nesterov
    Signed-off-by: Peter Zijlstra
    Cc: Al Viro
    Cc: Linus Torvalds
    Cc: Andrew Morton
    Cc: Thomas Gleixner
    Link: http://lkml.kernel.org/r/20120826191211.GA4228@redhat.com
    Signed-off-by: Ingo Molnar

    Oleg Nesterov
     
  • Change task_work's to use llist-like code to avoid pi_lock
    in task_work_add(), this makes it useable under rq->lock.

    task_work_cancel() and task_work_run() still use pi_lock
    to synchronize with each other.

    (This is in preparation for a deadlock fix.)

    Suggested-by: Peter Zijlstra
    Signed-off-by: Oleg Nesterov
    Signed-off-by: Peter Zijlstra
    Cc: Al Viro
    Cc: Linus Torvalds
    Cc: Andrew Morton
    Cc: Thomas Gleixner
    Link: http://lkml.kernel.org/r/20120826191209.GA4221@redhat.com
    Signed-off-by: Ingo Molnar

    Oleg Nesterov
     

02 Sep, 2012

1 commit

  • Andreas Bombe reported that the added ktime_t overflow checking added to
    timespec_valid in commit 4e8b14526ca7 ("time: Improve sanity checking of
    timekeeping inputs") was causing problems with X.org because it caused
    timeouts larger then KTIME_T to be invalid.

    Previously, these large timeouts would be clamped to KTIME_MAX and would
    never expire, which is valid.

    This patch splits the ktime_t overflow checking into a new
    timespec_valid_strict function, and converts the timekeeping codes
    internal checking to use this more strict function.

    Reported-and-tested-by: Andreas Bombe
    Cc: Zhouping Liu
    Cc: Ingo Molnar
    Cc: Prarit Bhargava
    Cc: Thomas Gleixner
    Cc: stable@vger.kernel.org
    Signed-off-by: John Stultz
    Signed-off-by: Linus Torvalds

    John Stultz
     

24 Aug, 2012

2 commits

  • Pull perf fixes from Ingo Molnar:
    "This tree contains misc fixlets: a perf script python binding fix, a
    uprobes fix and a syscall tracing fix."

    * 'perf-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
    perf tools: Add missing files to build the python binding
    uprobes: Fix mmap_region()'s mm->mm_rb corruption if uprobe_mmap() fails
    tracing/syscalls: Fix perf syscall tracing when syscall_nr == -1

    Linus Torvalds
     
  • Pull timer fixes from Thomas Gleixner:
    "Mostly small fixes for the fallout of the timekeeping overhaul in 3.6
    along with stable fixes to address an accumulation problem and missing
    sanity checks for RTC readouts and user space provided values."

    * 'timers-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
    time: Avoid making adjustments if we haven't accumulated anything
    time: Avoid potential shift overflow with large shift values
    time: Fix casting issue in timekeeping_forward_now
    time: Ensure we normalize the timekeeper in tk_xtime_add
    time: Improve sanity checking of timekeeping inputs

    Linus Torvalds
     

22 Aug, 2012

6 commits

  • If update_wall_time() is called and the current offset isn't large
    enough to accumulate, avoid re-calling timekeeping_adjust which may
    change the clock freq and can cause 1ns inconsistencies with
    CLOCK_REALTIME_COARSE/CLOCK_MONOTONIC_COARSE.

    Signed-off-by: John Stultz
    Cc: Prarit Bhargava
    Cc: Ingo Molnar
    Cc: stable@vger.kernel.org
    Link: http://lkml.kernel.org/r/1345595449-34965-5-git-send-email-john.stultz@linaro.org
    Signed-off-by: Thomas Gleixner

    John Stultz
     
  • Andreas Schwab noticed that the 1 << tk->shift could overflow if the
    shift value was greater than 30, since 1 would be a 32bit long on
    32bit architectures. This issue was introduced by 1e75fa8be (time:
    Condense timekeeper.xtime into xtime_sec)

    Use 1ULL instead to ensure we don't overflow on the shift.

    Reported-by: Andreas Schwab
    Signed-off-by: John Stultz
    Cc: Prarit Bhargava
    Cc: Ingo Molnar
    Link: http://lkml.kernel.org/r/1345595449-34965-4-git-send-email-john.stultz@linaro.org
    Signed-off-by: Thomas Gleixner

    John Stultz
     
  • arch_gettimeoffset returns a u32 value which when shifted by tk->shift
    can overflow. This issue was introduced with 1e75fa8be (time: Condense
    timekeeper.xtime into xtime_sec)

    Cast it to u64 first.

    Signed-off-by: Andreas Schwab
    Signed-off-by: John Stultz
    Cc: Prarit Bhargava
    Cc: Ingo Molnar
    Link: http://lkml.kernel.org/r/1345595449-34965-3-git-send-email-john.stultz@linaro.org
    Signed-off-by: Thomas Gleixner

    Andreas Schwab
     
  • Andreas noticed problems with resume on specific hardware after commit
    1e75fa8b (time: Condense timekeeper.xtime into xtime_sec) combined
    with commit b44d50dca (time: Fix casting issue in tk_set_xtime and
    tk_xtime_add)

    After some digging I realized we aren't normalizing the timekeeper
    after the add. Add the missing normalize call.

    Reported-by: Andreas Schwab
    Tested-by: Andreas Schwab
    Signed-off-by: John Stultz
    Cc: Prarit Bhargava
    Cc: Ingo Molnar
    Link: http://lkml.kernel.org/r/1345595449-34965-2-git-send-email-john.stultz@linaro.org
    Signed-off-by: Thomas Gleixner

    John Stultz
     
  • Pull audit-tree fixes from Miklos Szeredi:
    "The audit subsystem maintainers (Al and Eric) are not responding to
    repeated resends. Eric did ack them a while ago, but no response
    since then. So I'm sending these directly to you."

    * 'audit-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/mszeredi/vfs:
    audit: clean up refcounting in audit-tree
    audit: fix refcounting in audit-tree
    audit: don't free_chunk() after fsnotify_add_mark()

    Linus Torvalds
     
  • It seems commit 4a9d4b024a31 ("switch fput to task_work_add") re-
    introduced the problem addressed in 944be0b22472 ("close_files(): add
    scheduling point")

    If a server process with a lot of files (say 2 million tcp sockets) is
    killed, we can spend a lot of time in task_work_run() and trigger a soft
    lockup.

    Signed-off-by: Eric Dumazet
    Signed-off-by: Linus Torvalds

    Eric Dumazet
     

21 Aug, 2012

3 commits

  • …rostedt/linux-trace into perf/urgent

    Pull syscall tracing fix from Steve Rostedt.

    Signed-off-by: Ingo Molnar <mingo@kernel.org>

    Ingo Molnar
     
  • This patch fixes:

    https://bugzilla.redhat.com/show_bug.cgi?id=843640

    If mmap_region()->uprobe_mmap() fails, unmap_and_free_vma path
    does unmap_region() but does not remove the soon-to-be-freed vma
    from rb tree. Actually there are more problems but this is how
    William noticed this bug.

    Perhaps we could do do_munmap() + return in this case, but in
    fact it is simply wrong to abort if uprobe_mmap() fails. Until
    at least we move the !UPROBE_COPY_INSN code from
    install_breakpoint() to uprobe_register().

    For example, uprobe_mmap()->install_breakpoint() can fail if the
    probed insn is not supported (remember, uprobe_register()
    succeeds if nobody mmaps inode/offset), mmap() should not fail
    in this case.

    dup_mmap()->uprobe_mmap() is wrong too by the same reason,
    fork() can race with uprobe_register() and fail for no reason if
    it wins the race and does install_breakpoint() first.

    And, if nothing else, both mmap_region() and dup_mmap() return
    success if uprobe_mmap() fails. Change them to ignore the error
    code from uprobe_mmap().

    Reported-and-tested-by: William Cohen
    Signed-off-by: Oleg Nesterov
    Acked-by: Srikar Dronamraju
    Cc: # v3.5
    Cc: Anton Arapov
    Cc: William Cohen
    Cc: Linus Torvalds
    Link: http://lkml.kernel.org/r/20120819171042.GB26957@redhat.com
    Signed-off-by: Ingo Molnar

    Oleg Nesterov
     
  • Pull scheduler fixes from Ingo Molnar.

    * 'sched-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
    sched: Fix migration thread runtime bogosity
    sched,rt: fix isolated CPUs leaving root_task_group indefinitely throttled
    sched,cgroup: Fix up task_groups list
    sched: fix divide by zero at {thread_group,task}_times
    sched, cgroup: Reduce rq->lock hold times for large cgroup hierarchies

    Linus Torvalds
     

19 Aug, 2012

2 commits

  • Merge alpha architecture update from Michael Cree:
    "The Alpha Maintainer, Matt Turner, is currently unavailable, so I have
    collected up patches that have been posted to the linux-alpha mailing
    list over the last couple of months, and are forwarding them to you in
    the hope that you are prepared to accept them via me.

    The patches by Al Viro and myself I have been running against kernels
    for two months now so have had quite a bit of testing. All except one
    patch were intended for the 3.5 kernel but because of Matt's
    unavailability never got forwarded to you."

    * emailed patches from Michael Cree : (9 commits)
    alpha: Fix fall-out from disintegrating asm/system.h
    Redefine ATOMIC_INIT and ATOMIC64_INIT to drop the casts
    alpha: fix fpu.h usage in userspace
    alpha/mm/fault.c: Port OOM changes to do_page_fault
    alpha: take kernel_execve() out of entry.S
    alpha: take a bunch of syscalls into osf_sys.c
    alpha: Use new generic strncpy_from_user() and strnlen_user()
    alpha: Wire up cross memory attach syscalls
    alpha: Don't export SOCK_NONBLOCK to user space.

    Linus Torvalds
     
  • New helper: current_thread_info(). Allows to do a bunch of odd syscalls
    in C. While we are at it, there had never been a reason to do
    osf_getpriority() in assembler. We also get "namespace"-aware (read:
    consistent with getuid(2), etc.) behaviour from getx?id() syscalls now.

    Signed-off-by: Al Viro
    Signed-off-by: Michael Cree
    Acked-by: Matt Turner
    Signed-off-by: Linus Torvalds

    Al Viro
     

18 Aug, 2012

1 commit

  • syscall_get_nr can return -1 in the case that the task is not executing
    a system call.

    This patch fixes perf_syscall_{enter,exit} to check that the syscall
    number is valid before using it as an index into a bitmap.

    Link: http://lkml.kernel.org/r/1345137254-7377-1-git-send-email-will.deacon@arm.com

    Cc: Jason Baron
    Cc: Wade Farnsworth
    Cc: Frederic Weisbecker
    Signed-off-by: Will Deacon
    Signed-off-by: Steven Rostedt

    Will Deacon
     

15 Aug, 2012

4 commits

  • Unexpected behavior could occur if the time is set to a value large
    enough to overflow a 64bit ktime_t (which is something larger then the
    year 2262).

    Also unexpected behavior could occur if large negative offsets are
    injected via adjtimex.

    So this patch improves the sanity check timekeeping inputs by
    improving the timespec_valid() check, and then makes better use of
    timespec_valid() to make sure we don't set the time to an invalid
    negative value or one that overflows ktime_t.

    Note: This does not protect from setting the time close to overflowing
    ktime_t and then letting natural accumulation cause the overflow.

    Reported-by: CAI Qian
    Reported-by: Sasha Levin
    Signed-off-by: John Stultz
    Cc: Peter Zijlstra
    Cc: Prarit Bhargava
    Cc: Zhouping Liu
    Cc: Ingo Molnar
    Cc: stable@vger.kernel.org
    Link: http://lkml.kernel.org/r/1344454580-17031-1-git-send-email-john.stultz@linaro.org
    Signed-off-by: Thomas Gleixner

    John Stultz
     
  • Drop the initial reference by fsnotify_init_mark early instead of
    audit_tree_freeing_mark() at destroy time.

    In the cases we destroy the mark before we drop the initial reference we need to
    get rid of the get_mark that balances the put_mark in audit_tree_freeing_mark().

    Signed-off-by: Miklos Szeredi

    Miklos Szeredi
     
  • Refcounting of fsnotify_mark in audit tree is broken. E.g:

    refcount
    create_chunk
    alloc_chunk 1
    fsnotify_add_mark 2

    untag_chunk
    fsnotify_get_mark 3
    fsnotify_destroy_mark
    audit_tree_freeing_mark 2
    fsnotify_put_mark 1
    fsnotify_put_mark 0
    via destroy_list
    fsnotify_mark_destroy -1

    This was reported by various people as triggering Oops when stopping auditd.

    We could just remove the put_mark from audit_tree_freeing_mark() but that would
    break freeing via inode destruction. So this patch simply omits a put_mark
    after calling destroy_mark or adds a get_mark before.

    The additional get_mark is necessary where there's no other put_mark after
    fsnotify_destroy_mark() since it assumes that the caller is holding a reference
    (or the inode is keeping the mark pinned, not the case here AFAICS).

    Signed-off-by: Miklos Szeredi
    Reported-by: Valentin Avram
    Reported-by: Peter Moody
    Acked-by: Eric Paris
    CC: stable@vger.kernel.org

    Miklos Szeredi
     
  • Don't do free_chunk() after fsnotify_add_mark(). That one does a delayed unref
    via the destroy list and this results in use-after-free.

    Signed-off-by: Miklos Szeredi
    Acked-by: Eric Paris
    CC: stable@vger.kernel.org

    Miklos Szeredi
     

14 Aug, 2012

5 commits

  • Make stop scheduler class do the same accounting as other classes,

    Migration threads can be caught in the act while doing exec balancing,
    leading to the below due to use of unmaintained ->se.exec_start. The
    load that triggered this particular instance was an apparently out of
    control heavily threaded application that does system monitoring in
    what equated to an exec bomb, with one of the VERY frequently migrated
    tasks being ps.

    %CPU PID USER CMD
    99.3 45 root [migration/10]
    97.7 53 root [migration/12]
    97.0 57 root [migration/13]
    90.1 49 root [migration/11]
    89.6 65 root [migration/15]
    88.7 17 root [migration/3]
    80.4 37 root [migration/8]
    78.1 41 root [migration/9]
    44.2 13 root [migration/2]

    Signed-off-by: Mike Galbraith
    Signed-off-by: Peter Zijlstra
    Link: http://lkml.kernel.org/r/1344051854.6739.19.camel@marge.simpson.net
    Signed-off-by: Thomas Gleixner

    Mike Galbraith
     
  • Root task group bandwidth replenishment must service all CPUs, regardless of
    where the timer was last started, and regardless of the isolation mechanism,
    lest 'Quoth the Raven, "Nevermore"' become rt scheduling policy.

    Signed-off-by: Mike Galbraith
    Signed-off-by: Peter Zijlstra
    Link: http://lkml.kernel.org/r/1344326558.6968.25.camel@marge.simpson.net
    Signed-off-by: Thomas Gleixner

    Mike Galbraith
     
  • With multiple instances of task_groups, for_each_rt_rq() is a noop,
    no task groups having been added to the rt.c list instance. This
    renders __enable/disable_runtime() and print_rt_stats() noop, the
    user (non) visible effect being that rt task groups are missing in
    /proc/sched_debug.

    Signed-off-by: Mike Galbraith
    Cc: stable@kernel.org # v3.3+
    Signed-off-by: Peter Zijlstra
    Link: http://lkml.kernel.org/r/1344308413.6846.7.camel@marge.simpson.net
    Signed-off-by: Thomas Gleixner

    Mike Galbraith
     
  • On architectures where cputime_t is 64 bit type, is possible to trigger
    divide by zero on do_div(temp, (__force u32) total) line, if total is a
    non zero number but has lower 32 bit's zeroed. Removing casting is not
    a good solution since some do_div() implementations do cast to u32
    internally.

    This problem can be triggered in practice on very long lived processes:

    PID: 2331 TASK: ffff880472814b00 CPU: 2 COMMAND: "oraagent.bin"
    #0 [ffff880472a51b70] machine_kexec at ffffffff8103214b
    #1 [ffff880472a51bd0] crash_kexec at ffffffff810b91c2
    #2 [ffff880472a51ca0] oops_end at ffffffff814f0b00
    #3 [ffff880472a51cd0] die at ffffffff8100f26b
    #4 [ffff880472a51d00] do_trap at ffffffff814f03f4
    #5 [ffff880472a51d60] do_divide_error at ffffffff8100cfff
    #6 [ffff880472a51e00] divide_error at ffffffff8100be7b
    [exception RIP: thread_group_times+0x56]
    RIP: ffffffff81056a16 RSP: ffff880472a51eb8 RFLAGS: 00010046
    RAX: bc3572c9fe12d194 RBX: ffff880874150800 RCX: 0000000110266fad
    RDX: 0000000000000000 RSI: ffff880472a51eb8 RDI: 001038ae7d9633dc
    RBP: ffff880472a51ef8 R8: 00000000b10a3a64 R9: ffff880874150800
    R10: 00007fcba27ab680 R11: 0000000000000202 R12: ffff880472a51f08
    R13: ffff880472a51f10 R14: 0000000000000000 R15: 0000000000000007
    ORIG_RAX: ffffffffffffffff CS: 0010 SS: 0018
    #7 [ffff880472a51f00] do_sys_times at ffffffff8108845d
    #8 [ffff880472a51f40] sys_times at ffffffff81088524
    #9 [ffff880472a51f80] system_call_fastpath at ffffffff8100b0f2
    RIP: 0000003808caac3a RSP: 00007fcba27ab6d8 RFLAGS: 00000202
    RAX: 0000000000000064 RBX: ffffffff8100b0f2 RCX: 0000000000000000
    RDX: 00007fcba27ab6e0 RSI: 000000000076d58e RDI: 00007fcba27ab6e0
    RBP: 00007fcba27ab700 R8: 0000000000000020 R9: 000000000000091b
    R10: 00007fcba27ab680 R11: 0000000000000202 R12: 00007fff9ca41940
    R13: 0000000000000000 R14: 00007fcba27ac9c0 R15: 00007fff9ca41940
    ORIG_RAX: 0000000000000064 CS: 0033 SS: 002b

    Cc: stable@vger.kernel.org
    Signed-off-by: Stanislaw Gruszka
    Signed-off-by: Peter Zijlstra
    Link: http://lkml.kernel.org/r/20120808092714.GA3580@redhat.com
    Signed-off-by: Thomas Gleixner

    Stanislaw Gruszka
     
  • Peter Portante reported that for large cgroup hierarchies (and or on
    large CPU counts) we get immense lock contention on rq->lock and stuff
    stops working properly.

    His workload was a ton of processes, each in their own cgroup,
    everybody idling except for a sporadic wakeup once every so often.

    It was found that:

    schedule()
    idle_balance()
    load_balance()
    local_irq_save()
    double_rq_lock()
    update_h_load()
    walk_tg_tree(tg_load_down)
    tg_load_down()

    Results in an entire cgroup hierarchy walk under rq->lock for every
    new-idle balance and since new-idle balance isn't throttled this
    results in a lot of work while holding the rq->lock.

    This patch does two things, it removes the work from under rq->lock
    based on the good principle of race and pray which is widely employed
    in the load-balancer as a whole. And secondly it throttles the
    update_h_load() calculation to max once per jiffy.

    I considered excluding update_h_load() for new-idle balance
    all-together, but purely relying on regular balance passes to update
    this data might not work out under some rare circumstances where the
    new-idle busiest isn't the regular busiest for a while (unlikely, but
    a nightmare to debug if someone hits it and suffers).

    Cc: pjt@google.com
    Cc: Larry Woodman
    Cc: Mike Galbraith
    Reported-by: Peter Portante
    Signed-off-by: Peter Zijlstra
    Link: http://lkml.kernel.org/n/tip-aaarrzfpnaam7pqrekofu8a6@git.kernel.org
    Signed-off-by: Thomas Gleixner

    Peter Zijlstra
     

13 Aug, 2012

2 commits

  • Pull power management fixes from Rafael J. Wysocki:

    - Fix for two recent regressions in the generic PM domains framework.

    - Revert of a commit that introduced a resume regression and is
    conceptually incorrect in my opinion.

    - Fix for a return value in pcc-cpufreq.c from Julia Lawall.

    - RTC wakeup signaling fix from Neil Brown.

    - Suppression of compiler warnings for CONFIG_PM_SLEEP unset in ACPI,
    platform/x86 and TPM drivers.

    * tag 'pm-for-3.6-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm:
    tpm_tis / PM: Fix unused function warning for CONFIG_PM_SLEEP
    platform / x86 / PM: Fix unused function warnings for CONFIG_PM_SLEEP
    ACPI / PM: Fix unused function warnings for CONFIG_PM_SLEEP
    Revert "NMI watchdog: fix for lockup detector breakage on resume"
    PM: Make dev_pm_get_subsys_data() always return 0 on success
    drivers/cpufreq/pcc-cpufreq.c: fix error return code
    RTC: Avoid races between RTC alarm wakeup and suspend.

    Linus Torvalds
     
  • While tracking down a weird buffer overflow issue in a program that
    looked to be sane, I started double checking the length returned by
    syslog(SYSLOG_ACTION_READ_ALL, ...) to make sure it wasn't overflowing
    the buffer.

    Sure enough, it was. I saw this in strace:

    11339 syslog(SYSLOG_ACTION_READ_ALL, "[244017.708129] REISERFS (dev"..., 8192) = 8279

    It turns out that the loops that calculate how much space the entries
    will take when they're copied don't include the newlines and prefixes
    that will be included in the final output since prev flags is passed as
    zero.

    This patch properly accounts for it and fixes the overflow.

    CC: stable@kernel.org
    Signed-off-by: Jeff Mahoney
    Signed-off-by: Linus Torvalds

    Jeff Mahoney
     

09 Aug, 2012

1 commit

  • Revert commit 45226e9 (NMI watchdog: fix for lockup detector breakage
    on resume) which breaks resume from system suspend on my SH7372
    Mackerel board (by causing a NULL pointer dereference to happen) and
    is generally wrong, because it abuses the CPU hotplug functionality
    in a shamelessly blatant way.

    The original issue should be addressed through appropriate syscore
    resume callback instead.

    Signed-off-by: Rafael J. Wysocki

    Rafael J. Wysocki
     

05 Aug, 2012

1 commit

  • Tetsuo Handa reported that sporadically the system clock starts
    counting up too quickly which is enough to confuse the hangcheck
    timer to print a bogus stall warning.

    Commit 2a8c0883 "time: Move xtime_nsec adjustment underflow handling
    timekeeping_adjust" overlooked this exit path:

    } else
    return;

    which should really be a proper exit sequence, fixing the bug as a
    side effect.

    Also make the flow more readable by properly balancing curly
    braces.

    Reported-by: Tetsuo Handa wrote:
    Tested-by: Tetsuo Handa wrote:
    Signed-off-by: Ingo Molnar
    Cc: john.stultz@linaro.org
    Cc: a.p.zijlstra@chello.nl
    Cc: richardcochran@gmail.com
    Cc: prarit@redhat.com
    Link: http://lkml.kernel.org/r/20120804192114.GA28347@gmail.com
    Signed-off-by: Ingo Molnar

    Ingo Molnar
     

04 Aug, 2012

6 commits


02 Aug, 2012

1 commit

  • Pull second vfs pile from Al Viro:
    "The stuff in there: fsfreeze deadlock fixes by Jan (essentially, the
    deadlock reproduced by xfstests 068), symlink and hardlink restriction
    patches, plus assorted cleanups and fixes.

    Note that another fsfreeze deadlock (emergency thaw one) is *not*
    dealt with - the series by Fernando conflicts a lot with Jan's, breaks
    userland ABI (FIFREEZE semantics gets changed) and trades the deadlock
    for massive vfsmount leak; this is going to be handled next cycle.
    There probably will be another pull request, but that stuff won't be
    in it."

    Fix up trivial conflicts due to unrelated changes next to each other in
    drivers/{staging/gdm72xx/usb_boot.c, usb/gadget/storage_common.c}

    * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs: (54 commits)
    delousing target_core_file a bit
    Documentation: Correct s_umount state for freeze_fs/unfreeze_fs
    fs: Remove old freezing mechanism
    ext2: Implement freezing
    btrfs: Convert to new freezing mechanism
    nilfs2: Convert to new freezing mechanism
    ntfs: Convert to new freezing mechanism
    fuse: Convert to new freezing mechanism
    gfs2: Convert to new freezing mechanism
    ocfs2: Convert to new freezing mechanism
    xfs: Convert to new freezing code
    ext4: Convert to new freezing mechanism
    fs: Protect write paths by sb_start_write - sb_end_write
    fs: Skip atime update on frozen filesystem
    fs: Add freezing handling to mnt_want_write() / mnt_drop_write()
    fs: Improve filesystem freezing handling
    switch the protection of percpu_counter list to spinlock
    nfsd: Push mnt_want_write() outside of i_mutex
    btrfs: Push mnt_want_write() outside of i_mutex
    fat: Push mnt_want_write() outside of i_mutex
    ...

    Linus Torvalds
     

01 Aug, 2012

2 commits

  • Pull irqdomain changes from Grant Likely:
    "Round of refactoring and enhancements to irq_domain infrastructure.
    This series starts the process of simplifying irqdomain. The ultimate
    goal is to merge LEGACY, LINEAR and TREE mappings into a single
    system, but had to back off from that after some last minute bugs.
    Instead it mainly reorganizes the code and ensures that the reverse
    map gets populated when the irq is mapped instead of the first time it
    is looked up.

    Merging of the irq_domain types is deferred to v3.7

    In other news, this series adds helpers for creating static mappings
    on a linear or tree mapping."

    * tag 'irqdomain-for-linus' of git://git.secretlab.ca/git/linux-2.6:
    irqdomain: Improve diagnostics when a domain mapping fails
    irqdomain: eliminate slow-path revmap lookups
    irqdomain: Fix irq_create_direct_mapping() to test irq_domain type.
    irqdomain: Eliminate dedicated radix lookup functions
    irqdomain: Support for static IRQ mapping and association.
    irqdomain: Always update revmap when setting up a virq
    irqdomain: Split disassociating code into separate function
    irq_domain: correct a minor wrong comment for linear revmap
    irq_domain: Standardise legacy/linear domain selection
    irqdomain: Make ops->map hook optional
    irqdomain: Remove unnecessary test for IRQ_DOMAIN_MAP_LEGACY
    irqdomain: Simple NUMA awareness.
    devicetree: add helper inline for retrieving a node's full name

    Linus Torvalds
     
  • Merge Andrew's second set of patches:
    - MM
    - a few random fixes
    - a couple of RTC leftovers

    * emailed patches from Andrew Morton : (120 commits)
    rtc/rtc-88pm80x: remove unneed devm_kfree
    rtc/rtc-88pm80x: assign ret only when rtc_register_driver fails
    mm: hugetlbfs: close race during teardown of hugetlbfs shared page tables
    tmpfs: distribute interleave better across nodes
    mm: remove redundant initialization
    mm: warn if pg_data_t isn't initialized with zero
    mips: zero out pg_data_t when it's allocated
    memcg: gix memory accounting scalability in shrink_page_list
    mm/sparse: remove index_init_lock
    mm/sparse: more checks on mem_section number
    mm/sparse: optimize sparse_index_alloc
    memcg: add mem_cgroup_from_css() helper
    memcg: further prevent OOM with too many dirty pages
    memcg: prevent OOM with too many dirty pages
    mm: mmu_notifier: fix freed page still mapped in secondary MMU
    mm: memcg: only check anon swapin page charges for swap cache
    mm: memcg: only check swap cache pages for repeated charging
    mm: memcg: split swapin charge function into private and public part
    mm: memcg: remove needless !mm fixup to init_mm when charging
    mm: memcg: remove unneeded shmem charge type
    ...

    Linus Torvalds