27 Jul, 2011

6 commits

  • This allows us to move duplicated code in
    (atomic_inc_not_zero() for now) to

    Signed-off-by: Arun Sharma
    Reviewed-by: Eric Dumazet
    Cc: Ingo Molnar
    Cc: David Miller
    Cc: Eric Dumazet
    Acked-by: Mike Frysinger
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Arun Sharma
     
  • When a kernel BUG or oops occurs, ChromeOS intends to panic and
    immediately reboot, with stacktrace and other messages preserved in RAM
    across reboot.

    But the longer we delay, the more likely the user is to poweroff and
    lose the info.

    panic_timeout (seconds before rebooting) is set by panic= boot option or
    sysctl or /proc/sys/kernel/panic; but 0 means wait forever, so at
    present we have to delay at least 1 second.

    Let a negative number mean reboot immediately (with the small cosmetic
    benefit of suppressing that newline-less "Rebooting in %d seconds.."
    message).

    Signed-off-by: Hugh Dickins
    Signed-off-by: Mandeep Singh Baines
    Cc: Huang Ying
    Cc: Andi Kleen
    Cc: Hugh Dickins
    Cc: Olaf Hering
    Cc: Jesse Barnes
    Cc: Dave Airlie
    Cc: Greg Kroah-Hartman
    Cc: Alan Cox
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Hugh Dickins
     
  • Selecting GCOV for UML causing configuration mismatch:

    warning: (GCOV_KERNEL) selects CONSTRUCTORS which has unmet direct dependencies (!UML)

    Constructors are not needed for UML.

    Signed-off-by: Vitaliy Ivanov
    Cc: Peter Oberparleiter
    Acked-by: Richard Weinberger
    Acked-by: WANG Cong
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Vitaliy Ivanov
     
  • Add support for the shm_rmid_forced sysctl. If set to 1, all shared
    memory objects in current ipc namespace will be automatically forced to
    use IPC_RMID.

    The POSIX way of handling shmem allows one to create shm objects and
    call shmdt(), leaving shm object associated with no process, thus
    consuming memory not counted via rlimits.

    With shm_rmid_forced=1 the shared memory object is counted at least for
    one process, so OOM killer may effectively kill the fat process holding
    the shared memory.

    It obviously breaks POSIX - some programs relying on the feature would
    stop working. So set shm_rmid_forced=1 only if you're sure nobody uses
    "orphaned" memory. Use shm_rmid_forced=0 by default for compatability
    reasons.

    The feature was previously impemented in -ow as a configure option.

    [akpm@linux-foundation.org: fix documentation, per Randy]
    [akpm@linux-foundation.org: fix warning]
    [akpm@linux-foundation.org: readability/conventionality tweaks]
    [akpm@linux-foundation.org: fix shm_rmid_forced/shm_forced_rmid confusion, use standard comment layout]
    Signed-off-by: Vasiliy Kulikov
    Cc: Randy Dunlap
    Cc: "Eric W. Biederman"
    Cc: "Serge E. Hallyn"
    Cc: Daniel Lezcano
    Cc: Oleg Nesterov
    Cc: Tejun Heo
    Cc: Ingo Molnar
    Cc: Alan Cox
    Cc: Solar Designer
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Vasiliy Kulikov
     
  • Signed-off-by: Daniel Rebelo de Oliveira
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Daniel Rebelo de Oliveira
     
  • [ This patch has already been accepted as commit 0ac0c0d0f837 but later
    reverted (commit 35926ff5fba8) because it itroduced arch specific
    __node_random which was defined only for x86 code so it broke other
    archs. This is a followup without any arch specific code. Other than
    that there are no functional changes.]

    Some workloads that create a large number of small files tend to assign
    too many pages to node 0 (multi-node systems). Part of the reason is
    that the rotor (in cpuset_mem_spread_node()) used to assign nodes starts
    at node 0 for newly created tasks.

    This patch changes the rotor to be initialized to a random node number
    of the cpuset.

    [akpm@linux-foundation.org: fix layout]
    [Lee.Schermerhorn@hp.com: Define stub numa_random() for !NUMA configuration]
    [mhocko@suse.cz: Make it arch independent]
    [akpm@linux-foundation.org: fix CONFIG_NUMA=y, MAX_NUMNODES>1 build]
    Signed-off-by: Jack Steiner
    Signed-off-by: Lee Schermerhorn
    Signed-off-by: Michal Hocko
    Reviewed-by: KOSAKI Motohiro
    Cc: Christoph Lameter
    Cc: Pekka Enberg
    Cc: Paul Menage
    Cc: Jack Steiner
    Cc: Robin Holt
    Cc: David Rientjes
    Cc: Christoph Lameter
    Cc: David Rientjes
    Cc: Jack Steiner
    Cc: KOSAKI Motohiro
    Cc: Lee Schermerhorn
    Cc: Michal Hocko
    Cc: Paul Menage
    Cc: Pekka Enberg
    Cc: Robin Holt
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Michal Hocko
     

26 Jul, 2011

8 commits

  • * Merge akpm patch series: (122 commits)
    drivers/connector/cn_proc.c: remove unused local
    Documentation/SubmitChecklist: add RCU debug config options
    reiserfs: use hweight_long()
    reiserfs: use proper little-endian bitops
    pnpacpi: register disabled resources
    drivers/rtc/rtc-tegra.c: properly initialize spinlock
    drivers/rtc/rtc-twl.c: check return value of twl_rtc_write_u8() in twl_rtc_set_time()
    drivers/rtc: add support for Qualcomm PMIC8xxx RTC
    drivers/rtc/rtc-s3c.c: support clock gating
    drivers/rtc/rtc-mpc5121.c: add support for RTC on MPC5200
    init: skip calibration delay if previously done
    misc/eeprom: add eeprom access driver for digsy_mtc board
    misc/eeprom: add driver for microwire 93xx46 EEPROMs
    checkpatch.pl: update $logFunctions
    checkpatch: make utf-8 test --strict
    checkpatch.pl: add ability to ignore various messages
    checkpatch: add a "prefer __aligned" check
    checkpatch: validate signature styles and To: and Cc: lines
    checkpatch: add __rcu as a sparse modifier
    checkpatch: suggest using min_t or max_t
    ...

    Did this as a merge because of (trivial) conflicts in
    - Documentation/feature-removal-schedule.txt
    - arch/xtensa/include/asm/uaccess.h
    that were just easier to fix up in the merge than in the patch series.

    Linus Torvalds
     
  • If CONFIG_IKCONFIG=m but CONFIG_IKCONFIG_PROC=n we get a module that has
    no MODULE_LICENSE definition. Move the MODULE_*() definitions outside the
    CONFIG_IKCONFIG_PROC #ifdef to prevent this configuration from tainting
    the kernel.

    Signed-off-by: Stephen Boyd
    Acked-by: Randy Dunlap
    Acked-by: WANG Cong
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Stephen Boyd
     
  • It is not necessary to share the same notifier.h.

    This patch already moves register_reboot_notifier() and
    unregister_reboot_notifier() from kernel/notifier.c to kernel/sys.c.

    [amwang@redhat.com: make allyesconfig succeed on ppc64]
    Signed-off-by: WANG Cong
    Cc: David Miller
    Cc: "Rafael J. Wysocki"
    Cc: Greg KH
    Signed-off-by: WANG Cong
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Amerigo Wang
     
  • devres uses the pointer value as key after it's freed, which is safe but
    triggers spurious use-after-free warnings on some static analysis tools.
    Rearrange code to avoid such warnings.

    Signed-off-by: Maxin B. John
    Reviewed-by: Rolf Eike Beer
    Acked-by: Tejun Heo
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Maxin B John
     
  • I haven't reproduced it myself but the fail scenario is that on such
    machines (notably ARM and some embedded powerpc), if you manage to hit
    that futex path on a writable page whose dirty bit has gone from the PTE,
    you'll livelock inside the kernel from what I can tell.

    It will go in a loop of trying the atomic access, failing, trying gup to
    "fix it up", getting succcess from gup, go back to the atomic access,
    failing again because dirty wasn't fixed etc...

    So I think you essentially hang in the kernel.

    The scenario is probably rare'ish because affected architecture are
    embedded and tend to not swap much (if at all) so we probably rarely hit
    the case where dirty is missing or young is missing, but I think Shan has
    a piece of SW that can reliably reproduce it using a shared writable
    mapping & fork or something like that.

    On archs who use SW tracking of dirty & young, a page without dirty is
    effectively mapped read-only and a page without young unaccessible in the
    PTE.

    Additionally, some architectures might lazily flush the TLB when relaxing
    write protection (by doing only a local flush), and expect a fault to
    invalidate the stale entry if it's still present on another processor.

    The futex code assumes that if the "in_atomic()" access -EFAULT's, it can
    "fix it up" by causing get_user_pages() which would then be equivalent to
    taking the fault.

    However that isn't the case. get_user_pages() will not call
    handle_mm_fault() in the case where the PTE seems to have the right
    permissions, regardless of the dirty and young state. It will eventually
    update those bits ... in the struct page, but not in the PTE.

    Additionally, it will not handle the lazy TLB flushing that can be
    required by some architectures in the fault case.

    Basically, gup is the wrong interface for the job. The patch provides a
    more appropriate one which boils down to just calling handle_mm_fault()
    since what we are trying to do is simulate a real page fault.

    The futex code currently attempts to write to user memory within a
    pagefault disabled section, and if that fails, tries to fix it up using
    get_user_pages().

    This doesn't work on archs where the dirty and young bits are maintained
    by software, since they will gate access permission in the TLB, and will
    not be updated by gup().

    In addition, there's an expectation on some archs that a spurious write
    fault triggers a local TLB flush, and that is missing from the picture as
    well.

    I decided that adding those "features" to gup() would be too much for this
    already too complex function, and instead added a new simpler
    fixup_user_fault() which is essentially a wrapper around handle_mm_fault()
    which the futex code can call.

    [akpm@linux-foundation.org: coding-style fixes]
    [akpm@linux-foundation.org: fix some nits Darren saw, fiddle comment layout]
    Signed-off-by: Benjamin Herrenschmidt
    Reported-by: Shan Hai
    Tested-by: Shan Hai
    Cc: David Laight
    Acked-by: Peter Zijlstra
    Cc: Darren Hart
    Cc:
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Benjamin Herrenschmidt
     
  • …linux/kernel/git/mmarek/kbuild-2.6

    * 'kbuild' of git://git.kernel.org/pub/scm/linux/kernel/git/mmarek/kbuild-2.6:
    genksyms: Use same type in loop comparison
    kbuild: silence generated makefile message
    kernel: prevent unnecessary rebuilding due to config_data.gz
    headers_install: fix __packed in exported kernel headers
    dtc: regen parser
    dtc: migrate parser to implicit rules
    kconfig: regen parser
    kconfig: migrate parser to implicit rules
    kconfig/zconf.l: do not ask to generate backup
    kconfig: kill no longer needed reference to YYDEBUG
    kconfig: constify `kconf_id_lookup'
    genksym: regen parser
    genksyms: migrate parser to implicit rules
    genksyms: drop -Wno-uninitialized from HOSTCFLAGS_parse.tab.o
    genksyms: pass hash and lookup functions name and target language though the input file
    kbuild: simplify the %_shipped rule
    kbuild: add implicit rules for parser generation
    kbuild: add `baseprereq'
    kbuild: Fix reference to vermagic.h

    * 'packaging' of git://git.kernel.org/pub/scm/linux/kernel/git/mmarek/kbuild-2.6:
    package: Makefile: fix perf target bug

    * 'misc' of git://git.kernel.org/pub/scm/linux/kernel/git/mmarek/kbuild-2.6:
    gitignore: ignore debian build directory

    Linus Torvalds
     
  • * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial: (43 commits)
    fs: Merge split strings
    treewide: fix potentially dangerous trailing ';' in #defined values/expressions
    uwb: Fix misspelling of neighbourhood in comment
    net, netfilter: Remove redundant goto in ebt_ulog_packet
    trivial: don't touch files that are removed in the staging tree
    lib/vsprintf: replace link to Draft by final RFC number
    doc: Kconfig: `to be' -> `be'
    doc: Kconfig: Typo: square -> squared
    doc: Konfig: Documentation/power/{pm => apm-acpi}.txt
    drivers/net: static should be at beginning of declaration
    drivers/media: static should be at beginning of declaration
    drivers/i2c: static should be at beginning of declaration
    XTENSA: static should be at beginning of declaration
    SH: static should be at beginning of declaration
    MIPS: static should be at beginning of declaration
    ARM: static should be at beginning of declaration
    rcu: treewide: Do not use rcu_read_lock_held when calling rcu_dereference_check
    Update my e-mail address
    PCIe ASPM: forcedly -> forcibly
    gma500: push through device driver tree
    ...

    Fix up trivial conflicts:
    - arch/arm/mach-ep93xx/dma-m2p.c (deleted)
    - drivers/gpio/gpio-ep93xx.c (renamed and context nearby)
    - drivers/net/r8169.c (just context changes)

    Linus Torvalds
     
  • * 'for-3.1/core' of git://git.kernel.dk/linux-block: (24 commits)
    block: strict rq_affinity
    backing-dev: use synchronize_rcu_expedited instead of synchronize_rcu
    block: fix patch import error in max_discard_sectors check
    block: reorder request_queue to remove 64 bit alignment padding
    CFQ: add think time check for group
    CFQ: add think time check for service tree
    CFQ: move think time check variables to a separate struct
    fixlet: Remove fs_excl from struct task.
    cfq: Remove special treatment for metadata rqs.
    block: document blk_plug list access
    block: avoid building too big plug list
    compat_ioctl: fix make headers_check regression
    block: eliminate potential for infinite loop in blkdev_issue_discard
    compat_ioctl: fix warning caused by qemu
    block: flush MEDIA_CHANGE from drivers on close(2)
    blk-throttle: Make total_nr_queued unsigned
    block: Add __attribute__((format(printf...) and fix fallout
    fs/partitions/check.c: make local symbols static
    block:remove some spare spaces in genhd.c
    block:fix the comment error in blkdev.h
    ...

    Linus Torvalds
     

25 Jul, 2011

2 commits

  • * git://git.kernel.org/pub/scm/linux/kernel/git/rusty/linux-2.6-for-linus:
    modpost: Fix modpost's license checking V3
    module: add /sys/module//uevent files
    module: change attr callbacks to take struct module_kobject
    modules: make arch's use default loader hooks
    modules: add default loader hook implementations
    param: fix return value handling in param_set_*

    Linus Torvalds
     
  • * 'kvm-updates/3.1' of git://git.kernel.org/pub/scm/virt/kvm/kvm: (143 commits)
    KVM: IOMMU: Disable device assignment without interrupt remapping
    KVM: MMU: trace mmio page fault
    KVM: MMU: mmio page fault support
    KVM: MMU: reorganize struct kvm_shadow_walk_iterator
    KVM: MMU: lockless walking shadow page table
    KVM: MMU: do not need atomicly to set/clear spte
    KVM: MMU: introduce the rules to modify shadow page table
    KVM: MMU: abstract some functions to handle fault pfn
    KVM: MMU: filter out the mmio pfn from the fault pfn
    KVM: MMU: remove bypass_guest_pf
    KVM: MMU: split kvm_mmu_free_page
    KVM: MMU: count used shadow pages on prepareing path
    KVM: MMU: rename 'pt_write' to 'emulate'
    KVM: MMU: cleanup for FNAME(fetch)
    KVM: MMU: optimize to handle dirty bit
    KVM: MMU: cache mmio info on page fault path
    KVM: x86: introduce vcpu_mmio_gva_to_gpa to cleanup the code
    KVM: MMU: do not update slot bitmap if spte is nonpresent
    KVM: MMU: fix walking shadow page table
    KVM guest: KVM Steal time registration
    ...

    Linus Torvalds
     

24 Jul, 2011

4 commits

  • Userspace wants to manage module parameters with udev rules.
    This currently only works for loaded modules, but not for
    built-in ones.

    To allow access to the built-in modules we need to
    re-trigger all module load events that happened before any
    userspace was running. We already do the same thing for all
    devices, subsystems(buses) and drivers.

    This adds the currently missing /sys/module//uevent files
    to all module entries.

    Signed-off-by: Kay Sievers
    Signed-off-by: Rusty Russell (split & trivial fix)

    Kay Sievers
     
  • This simplifies the next patch, where we have an attribute on a
    builtin module (ie. module == NULL).

    Signed-off-by: Kay Sievers
    Signed-off-by: Rusty Russell (split into 2)

    Kay Sievers
     
  • The module loader code allows architectures to hook into the code by
    providing a small number of entry points that each arch must implement.
    This patch provides __weakly linked generic implementations of these
    entry points for architectures that don't need to do anything special.

    Signed-off-by: Jonas Bonn
    Signed-off-by: Rusty Russell

    Jonas Bonn
     
  • In STANDARD_PARAM_DEF, param_set_* handles the case in which strtolfn
    returns -EINVAL but it may return -ERANGE. If it returns -ERANGE,
    param_set_* may set uninitialized value to the paramerter. We should handle
    both cases.

    The one of the cases in which strtolfn() returns -ERANGE is following:

    *Type of module parameter is long
    *Set the parameter more than LONG_MAX

    Signed-off-by: Satoru Moriya
    Signed-off-by: Rusty Russell

    Satoru Moriya
     

23 Jul, 2011

12 commits

  • * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs-2.6: (107 commits)
    vfs: use ERR_CAST for err-ptr tossing in lookup_instantiate_filp
    isofs: Remove global fs lock
    jffs2: fix IN_DELETE_SELF on overwriting rename() killing a directory
    fix IN_DELETE_SELF on overwriting rename() on ramfs et.al.
    mm/truncate.c: fix build for CONFIG_BLOCK not enabled
    fs:update the NOTE of the file_operations structure
    Remove dead code in dget_parent()
    AFS: Fix silly characters in a comment
    switch d_add_ci() to d_splice_alias() in "found negative" case as well
    simplify gfs2_lookup()
    jfs_lookup(): don't bother with . or ..
    get rid of useless dget_parent() in btrfs rename() and link()
    get rid of useless dget_parent() in fs/btrfs/ioctl.c
    fs: push i_mutex and filemap_write_and_wait down into ->fsync() handlers
    drivers: fix up various ->llseek() implementations
    fs: handle SEEK_HOLE/SEEK_DATA properly in all fs's that define their own llseek
    Ext4: handle SEEK_HOLE/SEEK_DATA generically
    Btrfs: implement our own ->llseek
    fs: add SEEK_HOLE and SEEK_DATA flags
    reiserfs: make reiserfs default to barrier=flush
    ...

    Fix up trivial conflicts in fs/xfs/linux-2.6/xfs_super.c due to the new
    shrinker callout for the inode cache, that clashed with the xfs code to
    start the periodic workers later.

    Linus Torvalds
     
  • * 'x86-mtrr-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:
    x86, mtrr: Use pci_dev->revision
    x86, mtrr: use stop_machine APIs for doing MTRR rendezvous
    stop_machine: implement stop_machine_from_inactive_cpu()
    stop_machine: reorganize stop_cpus() implementation
    x86, mtrr: lock stop machine during MTRR rendezvous sequence

    Linus Torvalds
     
  • …l/git/tip/linux-2.6-tip

    * 'timers-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:
    time: Fix stupid KERN_WARN compile issue
    rtc: Avoid accumulating time drift in suspend/resume
    time: Avoid accumulating time drift in suspend/resume
    time: Catch invalid timespec sleep values in __timekeeping_inject_sleeptime

    Linus Torvalds
     
  • …/git/tip/linux-2.6-tip

    * 'sched-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip: (24 commits)
    sched: Cleanup duplicate local variable in [enqueue|dequeue]_task_fair
    sched: Replace use of entity_key()
    sched: Separate group-scheduling code more clearly
    sched: Reorder root_domain to remove 64 bit alignment padding
    sched: Do not attempt to destroy uninitialized rt_bandwidth
    sched: Remove unused function cpu_cfs_rq()
    sched: Fix (harmless) typo 'CONFG_FAIR_GROUP_SCHED'
    sched, cgroup: Optimize load_balance_fair()
    sched: Don't update shares twice on on_rq parent
    sched: update correct entity's runtime in check_preempt_wakeup()
    xtensa: Use generic config PREEMPT definition
    h8300: Use generic config PREEMPT definition
    m32r: Use generic PREEMPT config
    sched: Skip autogroup when looking for all rt sched groups
    sched: Simplify mutex_spin_on_owner()
    sched: Remove rcu_read_lock() from wake_affine()
    sched: Generalize sleep inside spinlock detection
    sched: Make sleeping inside spinlock detection working in !CONFIG_PREEMPT
    sched: Isolate preempt counting in its own config option
    sched: Remove pointless in_atomic() definition check
    ...

    Linus Torvalds
     
  • …git/tip/linux-2.6-tip

    * 'perf-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip: (123 commits)
    perf: Remove the nmi parameter from the oprofile_perf backend
    x86, perf: Make copy_from_user_nmi() a library function
    perf: Remove perf_event_attr::type check
    x86, perf: P4 PMU - Fix typos in comments and style cleanup
    perf tools: Make test use the preset debugfs path
    perf tools: Add automated tests for events parsing
    perf tools: De-opt the parse_events function
    perf script: Fix display of IP address for non-callchain path
    perf tools: Fix endian conversion reading event attr from file header
    perf tools: Add missing 'node' alias to the hw_cache[] array
    perf probe: Support adding probes on offline kernel modules
    perf probe: Add probed module in front of function
    perf probe: Introduce debuginfo to encapsulate dwarf information
    perf-probe: Move dwarf library routines to dwarf-aux.{c, h}
    perf probe: Remove redundant dwarf functions
    perf probe: Move strtailcmp to string.c
    perf probe: Rename DIE_FIND_CB_FOUND to DIE_FIND_CB_END
    tracing/kprobe: Update symbol reference when loading module
    tracing/kprobes: Support module init function probing
    kprobes: Return -ENOENT if probe point doesn't exist
    ...

    Linus Torvalds
     
  • * 'core-rcu-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:
    rcu: Fix wrong check in list_splice_init_rcu()
    net,rcu: Convert call_rcu(xt_rateest_free_rcu) to kfree_rcu()
    sysctl,rcu: Convert call_rcu(free_head) to kfree
    vmalloc,rcu: Convert call_rcu(rcu_free_vb) to kfree_rcu()
    vmalloc,rcu: Convert call_rcu(rcu_free_va) to kfree_rcu()
    ipc,rcu: Convert call_rcu(ipc_immediate_free) to kfree_rcu()
    ipc,rcu: Convert call_rcu(free_un) to kfree_rcu()
    security,rcu: Convert call_rcu(sel_netport_free) to kfree_rcu()
    security,rcu: Convert call_rcu(sel_netnode_free) to kfree_rcu()
    ia64,rcu: Convert call_rcu(sn_irq_info_free) to kfree_rcu()
    block,rcu: Convert call_rcu(disk_free_ptbl_rcu_cb) to kfree_rcu()
    scsi,rcu: Convert call_rcu(fc_rport_free_rcu) to kfree_rcu()
    audit_tree,rcu: Convert call_rcu(__put_tree) to kfree_rcu()
    security,rcu: Convert call_rcu(whitelist_item_free) to kfree_rcu()
    md,rcu: Convert call_rcu(free_conf) to kfree_rcu()

    Linus Torvalds
     
  • …l/git/tip/linux-2.6-tip

    * 'core-printk-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:
    lockdep: Fix trace_[soft,hard]irqs_[on,off]() recursion
    printk: Fix console_sem vs logbuf_lock unlock race
    printk: Release console_sem after logbuf_lock

    Linus Torvalds
     
  • …el/git/tip/linux-2.6-tip

    * 'core-locking-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:
    lockdep: Fix lockdep_no_validate against IRQ states
    mutex: Make mutex_destroy() an inline function
    plist: Remove the need to supply locks to plist heads
    lockup detector: Fix reference to the non-existent CONFIG_DETECT_SOFTLOCKUP option

    Linus Torvalds
     
  • * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/suspend-2.6: (51 commits)
    PM: Improve error code of pm_notifier_call_chain()
    PM: Add "RTC" to PM trace time stamps to avoid confusion
    PM / Suspend: Export suspend_set_ops, suspend_valid_only_mem
    PM / Suspend: Add .suspend_again() callback to suspend_ops
    PM / OPP: Introduce function to free cpufreq table
    ARM / shmobile: Return -EBUSY from A4LC power off if A3RV is active
    PM / Domains: Take .power_off() error code into account
    ARM / shmobile: Use genpd_queue_power_off_work()
    ARM / shmobile: Use pm_genpd_poweroff_unused()
    PM / Domains: Introduce function to power off all unused PM domains
    OMAP: PM: disable idle on suspend for GPIO and UART
    OMAP: PM: omap_device: add API to disable idle on suspend
    OMAP: PM: omap_device: add system PM methods for PM domain handling
    OMAP: PM: omap_device: conditionally use PM domain runtime helpers
    PM / Runtime: Add new helper function: pm_runtime_status_suspended()
    PM / Domains: Queue up power off work only if it is not pending
    PM / Domains: Improve handling of wakeup devices during system suspend
    PM / Domains: Do not restore all devices on power off error
    PM / Domains: Allow callbacks to execute all runtime PM helpers
    PM / Domains: Do not execute device callbacks under locks
    ...

    Linus Torvalds
     
  • * 'for-3.1' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/wq:
    workqueue: separate out drain_workqueue() from destroy_workqueue()
    workqueue: remove cancel_rearming_delayed_work[queue]()

    Linus Torvalds
     
  • * 'ptrace' of git://git.kernel.org/pub/scm/linux/kernel/git/oleg/misc: (39 commits)
    ptrace: do_wait(traced_leader_killed_by_mt_exec) can block forever
    ptrace: fix ptrace_signal() && STOP_DEQUEUED interaction
    connector: add an event for monitoring process tracers
    ptrace: dont send SIGSTOP on auto-attach if PT_SEIZED
    ptrace: mv send-SIGSTOP from do_fork() to ptrace_init_task()
    ptrace_init_task: initialize child->jobctl explicitly
    has_stopped_jobs: s/task_is_stopped/SIGNAL_STOP_STOPPED/
    ptrace: make former thread ID available via PTRACE_GETEVENTMSG after PTRACE_EVENT_EXEC stop
    ptrace: wait_consider_task: s/same_thread_group/ptrace_reparented/
    ptrace: kill real_parent_is_ptracer() in in favor of ptrace_reparented()
    ptrace: ptrace_reparented() should check same_thread_group()
    redefine thread_group_leader() as exit_signal >= 0
    do not change dead_task->exit_signal
    kill task_detached()
    reparent_leader: check EXIT_DEAD instead of task_detached()
    make do_notify_parent() __must_check, update the callers
    __ptrace_detach: avoid task_detached(), check do_notify_parent()
    kill tracehook_notify_death()
    make do_notify_parent() return bool
    ptrace: s/tracehook_tracer_task()/ptrace_parent()/
    ...

    Linus Torvalds
     
  • * git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next: (1287 commits)
    icmp: Fix regression in nexthop resolution during replies.
    net: Fix ppc64 BPF JIT dependencies.
    acenic: include NET_SKB_PAD headroom to incoming skbs
    ixgbe: convert to ndo_fix_features
    ixgbe: only enable WoL for magic packet by default
    ixgbe: remove ifdef check for non-existent define
    ixgbe: Pass staterr instead of re-reading status and error bits from descriptor
    ixgbe: Move interrupt related values out of ring and into q_vector
    ixgbe: add structure for containing RX/TX rings to q_vector
    ixgbe: inline the ixgbe_maybe_stop_tx function
    ixgbe: Update ATR to use recorded TX queues instead of CPU for routing
    igb: Fix for DH89xxCC near end loopback test
    e1000: always call e1000_check_for_link() on e1000_ce4100 MACs.
    netxen: add fw version compatibility check
    be2net: request native mode each time the card is reset
    ipv4: Constrain UFO fragment sizes to multiples of 8 bytes
    virtio_net: Fix panic in virtnet_remove
    ipv6: make fragment identifications less predictable
    ipv6: unshare inetpeers
    can: make function can_get_bittiming static
    ...

    Linus Torvalds
     

22 Jul, 2011

8 commits

  • No need to define a new "cfs_rq" variable in the "for" block.
    Just use the one at the top of the function.

    Signed-off-by: Lin Ming
    Cc: Peter Zijlstra
    Link: http://lkml.kernel.org/r/1311297271.3938.1352.camel@minggr.sh.intel.com
    Signed-off-by: Ingo Molnar

    Lin Ming
     
  • Conflicts:
    net/bluetooth/l2cap_core.c

    David S. Miller
     
  • David S. Miller
     
  • Thomas noticed that a lock marked with lockdep_set_novalidate_class()
    will still trigger warnings for IRQ inversions. Cure this by skipping
    those when marking irq state.

    Reported-and-tested-by: Thomas Gleixner
    Signed-off-by: Peter Zijlstra
    Link: http://lkml.kernel.org/n/tip-2dp5vmpsxeraqm42kgww6ge2@git.kernel.org
    Signed-off-by: Ingo Molnar

    Peter Zijlstra
     
  • PMU type id can be allocated dynamically, so perf_event_attr::type check
    when copying attribute from userspace to kernel is not valid.

    Signed-off-by: Lin Ming
    Cc: Robert Richter
    Signed-off-by: Peter Zijlstra
    Link: http://lkml.kernel.org/r/1309421396-17438-4-git-send-email-ming.m.lin@intel.com
    Signed-off-by: Ingo Molnar

    Lin Ming
     
  • "entity_key()" is only used in "__enqueue_entity()" and
    its only function is to subtract a tasks vruntime by
    its groups minvruntime.
    Before this patch a rbtree enqueue-decision is done by
    comparing two tasks in the style:

    "if (entity_key(cfs_rq, se) < entity_key(cfs_rq, entry))"

    which would be

    "if (se->vruntime-cfs_rq->min_vruntime < entry->vruntime-cfs_rq->min_vruntime)"

    or (if reducing cfs_rq->min_vruntime out)

    "if (se->vruntime < entry->vruntime)"

    which is

    "if (entity_before(se, entry))"

    So we do not need "entity_key()".
    If "entity_before()" is inline we will also save one subtraction (only one,
    because "entity_key(cfs_rq, se)" was cached in "key")

    Signed-off-by: Stephan Baerwolf
    Signed-off-by: Peter Zijlstra
    Link: http://lkml.kernel.org/n/tip-ns12mnd2h5w8rb9agd8hnsfk@git.kernel.org
    Signed-off-by: Ingo Molnar

    Stephan Baerwolf
     
  • Clean up cfs/rt runqueue initialization by moving group scheduling
    related code into the corresponding functions.

    Also, keep group scheduling as an add-on, so that things are only done
    additionally, i. e. remove the init_*_rq() calls from init_tg_*_entry().
    (This removes a redundant initalization during sched_init()).

    In case of group scheduling rt_rq->highest_prio.curr is now initialized
    twice, but adding another #ifdef seems not worth it.

    Signed-off-by: Jan H. Schönherr
    Signed-off-by: Peter Zijlstra
    Link: http://lkml.kernel.org/r/1310661163-16606-1-git-send-email-schnhrr@cs.tu-berlin.de
    Signed-off-by: Ingo Molnar

    Jan H. Schönherr
     
  • Reorder root_domain to remove 8 bytes of alignment padding on 64 bit
    builds, this shrinks the size from 1736 to 1728 bytes, therefore using
    one fewer cachelines.

    Signed-off-by: Richard Kennedy
    Signed-off-by: Peter Zijlstra
    Link: http://lkml.kernel.org/r/1310726492.1977.5.camel@castor.rsk
    Signed-off-by: Ingo Molnar

    Richard Kennedy