01 May, 2013

13 commits

  • With the goal of allowing tmem backends (zcache, ramster, Xen tmem) to
    be built/loaded as modules rather than built-in and enabled by a boot
    parameter, this patch provides "lazy initialization", allowing backends
    to register to frontswap even after swapon was run. Before a backend
    registers all calls to init are recorded and the creation of tmem_pools
    delayed until a backend registers or until a frontswap store is
    attempted.

    Signed-off-by: Stefan Hengelein
    Signed-off-by: Florian Schmaus
    Signed-off-by: Andor Daam
    Signed-off-by: Dan Magenheimer
    [v1: Fixes per Seth Jennings suggestions]
    [v2: Removed FRONTSWAP_HAS_.. ]
    [v3: Fix up per Bob Liu recommendations]
    [v4: Fix up per Andrew's comments]
    Signed-off-by: Konrad Rzeszutek Wilk
    Signed-off-by: Bob Liu
    Cc: Wanpeng Li
    Cc: Dan Magenheimer
    Cc: Minchan Kim
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Dan Magenheimer
     
  • Call cond_resched() in shrink_dcache_parent() to maintain interactivity.

    Before this patch:

    void shrink_dcache_parent(struct dentry * parent)
    {
    while ((found = select_parent(parent, &dispose)) != 0)
    shrink_dentry_list(&dispose);
    }

    select_parent() populates the dispose list with dentries which
    shrink_dentry_list() then deletes. select_parent() carefully uses
    need_resched() to avoid doing too much work at once. But neither
    shrink_dcache_parent() nor its called functions call cond_resched(). So
    once need_resched() is set select_parent() will return single dentry
    dispose list which is then deleted by shrink_dentry_list(). This is
    inefficient when there are a lot of dentry to process. This can cause
    softlockup and hurts interactivity on non preemptable kernels.

    This change adds cond_resched() in shrink_dcache_parent(). The benefit
    of this is that need_resched() is quickly cleared so that future calls
    to select_parent() are able to efficiently return a big batch of dentry.

    These additional cond_resched() do not seem to impact performance, at
    least for the workload below.

    Here is a program which can cause soft lockup if other system activity
    sets need_resched().

    int main()
    {
    struct rlimit rlim;
    int i;
    int f[100000];
    char buf[20];
    struct timeval t1, t2;
    double diff;

    /* cleanup past run */
    system("rm -rf x");

    /* boost nfile rlimit */
    rlim.rlim_cur = 200000;
    rlim.rlim_max = 200000;
    if (setrlimit(RLIMIT_NOFILE, &rlim))
    err(1, "setrlimit");

    /* make directory for files */
    if (mkdir("x", 0700))
    err(1, "mkdir");

    if (gettimeofday(&t1, NULL))
    err(1, "gettimeofday");

    /* populate directory with open files */
    for (i = 0; i < 100000; i++) {
    snprintf(buf, sizeof(buf), "x/%d", i);
    f[i] = open(buf, O_CREAT);
    if (f[i] == -1)
    err(1, "open");
    }

    /* close some of the files */
    for (i = 0; i < 85000; i++)
    close(f[i]);

    /* unlink all files, even open ones */
    system("rm -rf x");

    if (gettimeofday(&t2, NULL))
    err(1, "gettimeofday");

    diff = (((double)t2.tv_sec * 1000000 + t2.tv_usec) -
    ((double)t1.tv_sec * 1000000 + t1.tv_usec));

    printf("done: %g elapsed\n", diff/1e6);
    return 0;
    }

    Signed-off-by: Greg Thelen
    Signed-off-by: Dave Chinner
    Cc:
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Greg Thelen
     
  • Its only caller evict() has promised a non-NULL inode->i_bdev.

    Signed-off-by: Yan Hong
    Cc: Al Viro
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Yan Hong
     
  • When we run the crackerjack testsuite, the inotify_add_watch test is
    stalled.

    This is caused by the invalid mask 0 - the task is waiting for the event
    but it never comes. inotify_add_watch() should return -EINVAL as it did
    before commit 676a0675cf92 ("inotify: remove broken mask checks causing
    unmount to be EINVAL"). That commit removes the invalid mask check, but
    that check is needed.

    Check the mask's ALL_INOTIFY_BITS before the inotify_arg_to_mask() call.
    If none are set, just return -EINVAL.

    Because IN_UNMOUNT is in ALL_INOTIFY_BITS, this change will not trigger
    the problem that above commit fixed.

    [akpm@linux-foundation.org: fix build]
    Signed-off-by: Zhao Hongjiang
    Acked-by: Jim Somerville
    Cc: Paul Gortmaker
    Cc: Jerome Marchand
    Cc: Eric Paris
    Cc:
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Zhao Hongjiang
     
  • Fix the following compilation warnings:

    mm/slab.c: In function `kmem_cache_init_late':
    mm/slab.c:1778:2: warning: statement with no effect [-Wunused-value]

    mm/page_cgroup.c: In function `page_cgroup_init':
    mm/page_cgroup.c:305:2: warning: statement with no effect [-Wunused-value]

    Signed-off-by: Vincent Stehlé
    Cc: David Rientjes
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Vincent Stehlé
     
  • Remove unused local `us', which broke the build. Also nuke an unneeded
    cast.

    Repairs commit 191648d03d20 ("usb: storage: Convert US_DEBUGP to
    usb_stor_dbg").

    Cc: Joe Perches
    Acked-by: David Rientjes
    Cc: Greg KH
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Andrew Morton
     
  • Pull arm64 update from Catalin Marinas:
    "Main features:

    - Versatile Express SoC (model) support - DT files and Kconfig
    entries (there are no arch/arm64/mach-* directories). The bulk of
    the code has already been moved to drivers/ as part of the ARM SoC
    clean-up.

    - Basic multi-cluster support (CPU logical map initialised from the
    DT)

    - Simple earlyprintk support for UART 8250/16550 and FastModel
    console output

    - Optimised kernel library bitops and string functions.

    - Automatic initialisation of the irqchip and clocks via DT"

    * tag 'arm64-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/cmarinas/linux-aarch64: (26 commits)
    arm64: Use acquire/release semantics instead of explicit DMB
    arm64: klib: bitops: fix unpredictable stxr usage
    arm64: vexpress: Enable ARMv8 RTSM model (SoC) support
    arm64: vexpress: Add dts files for the ARMv8 RTSM models
    arm64: Survive invalid cpu enable-methods
    arm64: mm: Correct show_pte behaviour
    arm64: Fix compat types affecting struct compat_stat
    arm64: Execute DSB during thread switching for TLB/cache maintenance
    arm64: compiling issue, need add include/asm/vga.h file
    arm64: smp: honour #address-size when parsing CPU reg property
    arm64: Define cmpxchg64 and cmpxchg64_local for outside use
    arm64: Define readq and writeq for driver module using
    arm64: Fix task tracing
    arm64: add explicit symbols to ESR_EL1 decoding
    arm64: Use irqchip_init() for interrupt controller initialisation
    arm64: psci: Use the MPIDR values from cpu_logical_map for cpu ids.
    arm64: klib: Optimised atomic bitops
    arm64: klib: Optimised string functions
    arm64: klib: Optimised memory functions
    arm64: head: match all affinity levels in the pen of the secondaries
    ...

    Linus Torvalds
     
  • Pull arch/metag update from James Hogan:

    - Various fixes for the interrupting perf counter handling in metag's
    perf backend.

    - Add OProfile support based on perf.

    - Sets up cache partitions for SMP so bootloader doesn't have to.

    - Patch from Paul Bolle to remove ARCH_POPULATES_NODE_MAP again
    (touches microblaze too).

    - Add TLS pointer regset to metag ptrace api.

    - Add exported metag DSP extended context handling header .

    - Increase defconfig log buffer size to 128KiB.

    - Various fixes, typos, missing exports.

    * tag 'metag-for-v3.10-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/jhogan/metag:
    metag: defconfigs: increase log buffer 8KiB => 128KiB
    metag: avoid unnecessary builtin dtb rebuilds
    metag: add exported for extended context handling
    metag: export _metag_da_present and cpu_2_hwthread_id
    metag: ptrace: Implement NT_METAG_TLS
    memblock: Kill ARCH_POPULATES_NODE_MAP once more
    metag: cachepart: fix get_global_dcache_size() typo
    metag: cachepart: take into account small cache bits
    metag: smp: copy cache partition and enable GCOn
    metag: OProfile support
    metag: perf: prepare for use by oprofile
    metag: perf: don't reset TXTACTCYC
    metag: perf: use hard_processor_id() to get thread
    metag: perf: fix frequency sampling (dynamic period)
    metag: perf: add missing prev_count updates
    metag: perf: fixes for interrupting perf counters
    metag: perf: fix wrap handling in delta calculation
    metag: perf: fix core internal / perf channel mux

    Linus Torvalds
     
  • Pull m68k update from Geert Uytterhoeven.

    * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/geert/linux-m68k:
    m68k: Remove inline strlen() implementation
    m68k/atari: USB - add platform devices for EtherNAT/NetUSBee ISP1160 HCD
    m68k: Implement ndelay() based on the existing udelay() logic
    m68k/atari: EtherNAT - add interrupt chip definition for CPLD interrupts
    m68k/atari: EtherNEC - add platform device support
    m68k/atari: EtherNAT - platform device and IRQ support code
    m68k/atari: use dedicated irq_chip for timer D interrupts
    m68k/atari: ROM port ISA adapter support
    m68k: Add missing cmpxchg64() if CONFIG_RMW_INSNS=y

    Linus Torvalds
     
  • Pull edac fixes from Mauro Carvalho Chehab:
    "Two edac fixes:

    - i7300_edac currently reports a wrong number of DIMMs when the
    memory controller is in single channel mode

    - on some Sandy Bridge machines, the EDAC driver bails out as one of
    the PCI IDs used by the driver is hidden by BIOS. As the driver
    uses it only to detect the type of memory, make it optional at the
    driver"

    * 'linux_next' of git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-edac:
    edac: sb_edac.c should not require prescence of IMC_DDRIO device
    i7300_edac: Fix memory detection in single mode

    Linus Torvalds
     
  • Pull media update from Mauro Carvalho Chehab:

    - OF documentation and patches at core and drivers, to be used by for
    embedded media systems

    - some I2C drivers used on go7007 were rewritten/promoted from staging:
    sony-btf-mpx, tw2804, tw9903, tw9906, wis-ov7640, wis-uda1342

    - add fimc-is driver (Exynos)

    - add a new radio driver: radio-si476x

    - add a two new tuners: r820t and tuner_it913x

    - split camera code on em28xx driver and add more models

    - the cypress firmware load is used outside dvb usb drivers. So, move
    it to a common directory to make easier to re-use it

    - siano media driver updated to work with sms2270 devices

    - several work done in order to promote go7007 and solo6x1x out of
    staging (still, there are some pending issues)

    - several API compliance fixes at v4l2 drivers that don't behave as
    expected

    - as usual, lots of driver fixes, improvements, cleanups and new device
    addition at the existing drivers.

    * 'v4l_for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-media: (831 commits)
    [media] cx88: make core less verbose
    [media] em28xx: fix oops at em28xx_dvb_bus_ctrl()
    [media] s5c73m3: fix indentation of the help section in Kconfig
    [media] cx25821-alsa: get rid of a __must_check warning
    [media] cx25821-video: declare cx25821_vidioc_s_std as static
    [media] cx25821-video: remove maxw from cx25821_vidioc_try_fmt_vid_cap
    [media] r820t: Remove a warning for an unused value
    [media] dib0090: Fix a warning at dib0090_set_EFUSE
    [media] dib8000: fix a warning
    [media] dib8000: Fix sub-channel range
    [media] dib8000: store dtv_property_cache in a temp var
    [media] dib8000: warning fix: declare internal functions as static
    [media] r820t: quiet gcc warning on n_ring
    [media] r820t: memory leak in release()
    [media] r820t: precendence bug in r820t_xtal_check()
    [media] videodev2.h: Remove the unused old V4L1 buffer types
    [media] anysee: Grammar s/report the/report to/
    [media] anysee: Initialize ret = 0 in anysee_frontend_attach()
    [media] media: videobuf2: fix the length check for mmap
    [media] em28xx: save isoc endpoint number for DVB only if endpoint has alt settings with xMaxPacketSize != 0
    ...

    Linus Torvalds
     
  • Pull HID updates from Jiri Kosina:

    - hid driver transport cleanup, finalizing the long-desired decoupling
    of core from transport layers, by Benjamin Tissoires and Henrik
    Rydberg

    - support for hybrid finger/pen multitouch HID devices, by Benjamin
    Tissoires

    - fix for long-standing issue in Logitech unifying driver sometimes not
    inializing properly due to device specifics, by Andrew de los Reyes

    - Wii remote driver updates to support 2nd generation of devices, by
    David Herrmann

    - support for Apple IR remote

    - roccat driver now supports new devices (Roccat Kone Pure, IskuFX), by
    Stefan Achatz

    - debugfs locking fixes in hid debug interface, by Jiri Kosina

    * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/hid: (43 commits)
    HID: protect hid_debug_list
    HID: debug: break out hid_dump_report() into hid-debug
    HID: Add PID for Japanese version of NE4K keyboard
    HID: hid-lg4ff add support for new version of DFGT wheel
    HID: icade: u16 which never < 0
    HID: clarify Magic Mouse Kconfig description
    HID: appleir: add support for Apple ir devices
    HID: roccat: added media key support for Kone
    HID: hid-lenovo-tpkbd: remove doubled hid_get_drvdata
    HID: i2c-hid: fix length for set/get report in i2c hid
    HID: wiimote: parse reduced status reports
    HID: wiimote: add 2nd generation Wii Remote IDs
    HID: wiimote: use unique battery names
    HID: hidraw: warn if userspace headers are outdated
    HID: multitouch: force BTN_STYLUS for pen devices
    HID: multitouch: append " Pen" to the name of the stylus input
    HID: multitouch: add handling for pen in dual-sensors device
    HID: multitouch: change touch sensor detection in mt_input_configured()
    HID: multitouch: do not map usage from non used reports
    HID: multitouch: breaks out touch handling in specific functions
    ...

    Linus Torvalds
     
  • Pull trivial tree updates from Jiri Kosina:
    "Usual stuff, mostly comment fixes, typo fixes, printk fixes and small
    code cleanups"

    * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial: (45 commits)
    mm: Convert print_symbol to %pSR
    gfs2: Convert print_symbol to %pSR
    m32r: Convert print_symbol to %pSR
    iostats.txt: add easy-to-find description for field 6
    x86 cmpxchg.h: fix wrong comment
    treewide: Fix typo in printk and comments
    doc: devicetree: Fix various typos
    docbook: fix 8250 naming in device-drivers
    pata_pdc2027x: Fix compiler warning
    treewide: Fix typo in printks
    mei: Fix comments in drivers/misc/mei
    treewide: Fix typos in kernel messages
    pm44xx: Fix comment for "CONFIG_CPU_IDLE"
    doc: Fix typo "CONFIG_CGROUP_CGROUP_MEMCG_SWAP"
    mmzone: correct "pags" to "pages" in comment.
    kernel-parameters: remove outdated 'noresidual' parameter
    Remove spurious _H suffixes from ifdef comments
    sound: Remove stray pluses from Kconfig file
    radio-shark: Fix printk "CONFIG_LED_CLASS"
    doc: put proper reference to CONFIG_MODULE_SIG_ENFORCE
    ...

    Linus Torvalds
     

30 Apr, 2013

27 commits

  • Pull x86 RAS changes from Ingo Molnar:

    - Add an Intel CMCI hotplug fix

    - Add AMD family 16h EDAC support

    - Make the AMD MCE banks code more flexible for virtual environments

    * 'x86-ras-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
    amd64_edac: Add Family 16h support
    x86/mce: Rework cmci_rediscover() to play well with CPU hotplug
    x86, MCE, AMD: Use MCG_CAP MSR to find out number of banks on AMD
    x86, MCE, AMD: Replace shared_bank array with is_shared_bank() helper

    Linus Torvalds
     
  • Pull x86 platform changes from Ingo Molnar:
    "Small fixes and cleanups all over the map"

    * 'x86-platform-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
    x86/setup: Drop unneeded include
    x86/olpc/xo1/sci: Don't call input_free_device() after input_unregister_device()
    x86/platform/intel/mrst: Remove cast for kmalloc() return value
    x86/platform/uv: Replace kmalloc() & memset with kzalloc()

    Linus Torvalds
     
  • Pull x86 paravirt update from Ingo Molnar:
    "Various paravirtualization related changes - the biggest one makes
    guest support optional via CONFIG_HYPERVISOR_GUEST"

    * 'x86-paravirt-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
    x86, wakeup, sleep: Use pvops functions for changing GDT entries
    x86, xen, gdt: Remove the pvops variant of store_gdt.
    x86-32, gdt: Store/load GDT for ACPI S3 or hibernation/resume path is not needed
    x86-64, gdt: Store/load GDT for ACPI S3 or hibernate/resume path is not needed.
    x86: Make Linux guest support optional
    x86, Kconfig: Move PARAVIRT_DEBUG into the paravirt menu

    Linus Torvalds
     
  • Pull x86 mm changes from Ingo Molnar:
    "Misc smaller changes all over the map"

    * 'x86-mm-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
    x86/iommu/dmar: Remove warning for HPET scope type
    x86/mm/gart: Drop unnecessary check
    x86/mm/hotplug: Put kernel_physical_mapping_remove() declaration in CONFIG_MEMORY_HOTREMOVE
    x86/mm/fixmap: Remove unused FIX_CYCLONE_TIMER
    x86/mm/numa: Simplify some bit mangling
    x86/mm: Re-enable DEBUG_TLBFLUSH for X86_32
    x86/mm/cpa: Cleanup split_large_page() and its callee
    x86: Drop always empty .text..page_aligned section

    Linus Torvalds
     
  • Pull perparatory x86 kasrl changes from Ingo Molnar:
    "This contains changes from the ongoing KASLR work, by Kees Cook.

    The main changes are the use of a read-only IDT on x86 (which
    decouples the userspace visible virtual IDT address from the physical
    address), and a rework of ELF relocation support, in preparation of
    random, boot-time kernel image relocation."

    * 'x86-kaslr-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
    x86, relocs: Refactor the relocs tool to merge 32- and 64-bit ELF
    x86, relocs: Build separate 32/64-bit tools
    x86, relocs: Add 64-bit ELF support to relocs tool
    x86, relocs: Consolidate processing logic
    x86, relocs: Generalize ELF structure names
    x86: Use a read-only IDT alias on all CPUs

    Linus Torvalds
     
  • Pull x86 debug update from Ingo Molnar:
    "Two small changes: a documentation update and a constification"

    * 'x86-debug-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
    x86, early-printk: Update earlyprintk documentation (and kill x86 copy)
    x86: Constify a few items

    Linus Torvalds
     
  • Pull x86 cpuid changes from Ingo Molnar:
    "The biggest change is x86 CPU bug handling refactoring and cleanups,
    by Borislav Petkov"

    * 'x86-cpu-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
    x86, CPU, AMD: Drop useless label
    x86, AMD: Correct {rd,wr}msr_amd_safe warnings
    x86: Fold-in trivial check_config function
    x86, cpu: Convert AMD Erratum 400
    x86, cpu: Convert AMD Erratum 383
    x86, cpu: Convert Cyrix coma bug detection
    x86, cpu: Convert FDIV bug detection
    x86, cpu: Convert F00F bug detection
    x86, cpu: Expand cpufeature facility to include cpu bugs

    Linus Torvalds
     
  • Pull x86 cleanups from Ingo Molnar:
    "Misc smaller cleanups"

    * 'x86-cleanups-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
    x86/lib: Fix spelling, put space between a numeral and its units
    x86/lib: Fix spelling in the comments
    x86, quirks: Shut-up a long-standing gcc warning
    x86, msr: Unify variable names
    x86-64, docs, mm: Add vsyscall range to virtual address space layout
    x86: Drop KERNEL_IMAGE_START
    x86_64: Use __BOOT_DS instead_of __KERNEL_DS for safety

    Linus Torvalds
     
  • Pull extable dmesg fixlet from Ingo Molnar:
    "Small tweak to reduce kmsg boot time spam"

    * 'x86-asm-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
    extable: Flip the sorting message

    Linus Torvalds
     
  • Pull core timer updates from Ingo Molnar:
    "The main changes in this cycle's merge are:

    - Implement shadow timekeeper to shorten in kernel reader side
    blocking, by Thomas Gleixner.

    - Posix timers enhancements by Pavel Emelyanov:

    - allocate timer ID per process, so that exact timer ID allocations
    can be re-created be checkpoint/restore code.

    - debuggability and tooling (/proc/PID/timers, etc.) improvements.

    - suspend/resume enhancements by Feng Tang: on certain new Intel Atom
    processors (Penwell and Cloverview), there is a feature that the
    TSC won't stop in S3 state, so the TSC value won't be reset to 0
    after resume. This can be taken advantage of by the generic via
    the CLOCK_SOURCE_SUSPEND_NONSTOP flag: instead of using the RTC to
    recover/approximate sleep time, the main (and precise) clocksource
    can be used.

    - Fix /proc/timer_list for 4096 CPUs by Nathan Zimmer: on so many
    CPUs the file goes beyond 4MB of size and thus the current
    simplistic seqfile approach fails. Convert /proc/timer_list to a
    proper seq_file with its own iterator.

    - Cleanups and refactorings of the core timekeeping code by John
    Stultz.

    - International Atomic Clock time is managed by the NTP code
    internally currently but not exposed externally. Separate the TAI
    code out and add CLOCK_TAI support and TAI support to the hrtimer
    and posix-timer code, by John Stultz.

    - Add deep idle support enhacement to the broadcast clockevents core
    timer code, by Daniel Lezcano: add an opt-in CLOCK_EVT_FEAT_DYNIRQ
    clockevents feature (which will be utilized by future clockevents
    driver updates), which allows the use of IRQ affinities to avoid
    spurious wakeups of idle CPUs - the right CPU with an expiring
    timer will be woken.

    - Add new ARM bcm281xx clocksource driver, by Christian Daudt

    - ... various other fixes and cleanups"

    * 'timers-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (52 commits)
    clockevents: Set dummy handler on CPU_DEAD shutdown
    timekeeping: Update tk->cycle_last in resume
    posix-timers: Remove unused variable
    clockevents: Switch into oneshot mode even if broadcast registered late
    timer_list: Convert timer list to be a proper seq_file
    timer_list: Split timer_list_show_tickdevices
    posix-timers: Show sigevent info in proc file
    posix-timers: Introduce /proc/PID/timers file
    posix timers: Allocate timer id per process (v2)
    timekeeping: Make sure to notify hrtimers when TAI offset changes
    hrtimer: Fix ktime_add_ns() overflow on 32bit architectures
    hrtimer: Add expiry time overflow check in hrtimer_interrupt
    timekeeping: Shorten seq_count region
    timekeeping: Implement a shadow timekeeper
    timekeeping: Delay update of clock->cycle_last
    timekeeping: Store cycle_last value in timekeeper struct as well
    ntp: Remove ntp_lock, using the timekeeping locks to protect ntp state
    timekeeping: Simplify tai updating from do_adjtimex
    timekeeping: Hold timekeepering locks in do_adjtimex and hardpps
    timekeeping: Move ADJ_SETOFFSET to top level do_adjtimex()
    ...

    Linus Torvalds
     
  • This patch changes the test_and_*_bit functions to use the
    load-acquire/store-release instructions instead of explicit DMB.

    Signed-off-by: Catalin Marinas

    Catalin Marinas
     
  • We're currently relying on unpredictable behaviour in our testops
    (test_and_*_bit), as stxr is unpredictable when the status register and
    the source register are the same

    This patch changes reallocates the status register so as to bring us back into
    the realm of predictable behaviour. Boot tested on an AEMv8 model.

    Signed-off-by: Mark Rutland
    Signed-off-by: Catalin Marinas

    Mark Rutland
     
  • Pull SMP/hotplug changes from Ingo Molnar:
    "This is a pretty large, multi-arch series unifying and generalizing
    the various disjunct pieces of idle routines that architectures have
    historically copied from each other and have grown in random, wildly
    inconsistent and sometimes buggy directions:

    101 files changed, 455 insertions(+), 1328 deletions(-)

    this went through a number of review and test iterations before it was
    committed, it was tested on various architectures, was exposed to
    linux-next for quite some time - nevertheless it might cause problems
    on architectures that don't read the mailing lists and don't regularly
    test linux-next.

    This cat herding excercise was motivated by the -rt kernel, and was
    brought to you by Thomas "the Whip" Gleixner."

    * 'smp-hotplug-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (40 commits)
    idle: Remove GENERIC_IDLE_LOOP config switch
    um: Use generic idle loop
    ia64: Make sure interrupts enabled when we "safe_halt()"
    sparc: Use generic idle loop
    idle: Remove unused ARCH_HAS_DEFAULT_IDLE
    bfin: Fix typo in arch_cpu_idle()
    xtensa: Use generic idle loop
    x86: Use generic idle loop
    unicore: Use generic idle loop
    tile: Use generic idle loop
    tile: Enter idle with preemption disabled
    sh: Use generic idle loop
    score: Use generic idle loop
    s390: Use generic idle loop
    powerpc: Use generic idle loop
    parisc: Use generic idle loop
    openrisc: Use generic idle loop
    mn10300: Use generic idle loop
    mips: Use generic idle loop
    microblaze: Use generic idle loop
    ...

    Linus Torvalds
     
  • Pull scheduler changes from Ingo Molnar:
    "The main changes in this development cycle were:

    - full dynticks preparatory work by Frederic Weisbecker

    - factor out the cpu time accounting code better, by Li Zefan

    - multi-CPU load balancer cleanups and improvements by Joonsoo Kim

    - various smaller fixes and cleanups"

    * 'sched-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (45 commits)
    sched: Fix init NOHZ_IDLE flag
    sched: Prevent to re-select dst-cpu in load_balance()
    sched: Rename load_balance_tmpmask to load_balance_mask
    sched: Move up affinity check to mitigate useless redoing overhead
    sched: Don't consider other cpus in our group in case of NEWLY_IDLE
    sched: Explicitly cpu_idle_type checking in rebalance_domains()
    sched: Change position of resched_cpu() in load_balance()
    sched: Fix wrong rq's runnable_avg update with rt tasks
    sched: Document task_struct::personality field
    sched/cpuacct/UML: Fix header file dependency bug on the UML build
    cgroup: Kill subsys.active flag
    sched/cpuacct: No need to check subsys active state
    sched/cpuacct: Initialize cpuacct subsystem earlier
    sched/cpuacct: Initialize root cpuacct earlier
    sched/cpuacct: Allocate per_cpu cpuusage for root cpuacct statically
    sched/cpuacct: Clean up cpuacct.h
    sched/cpuacct: Remove redundant NULL checks in cpuacct_acount_field()
    sched/cpuacct: Remove redundant NULL checks in cpuacct_charge()
    sched/cpuacct: Add cpuacct_acount_field()
    sched/cpuacct: Add cpuacct_init()
    ...

    Linus Torvalds
     
  • Pull perf updates from Ingo Molnar:
    "Features:

    - Add "uretprobes" - an optimization to uprobes, like kretprobes are
    an optimization to kprobes. "perf probe -x file sym%return" now
    works like kretprobes. By Oleg Nesterov.

    - Introduce per core aggregation in 'perf stat', from Stephane
    Eranian.

    - Add memory profiling via PEBS, from Stephane Eranian.

    - Event group view for 'annotate' in --stdio, --tui and --gtk, from
    Namhyung Kim.

    - Add support for AMD NB and L2I "uncore" counters, by Jacob Shin.

    - Add Ivy Bridge-EP uncore support, by Zheng Yan

    - IBM zEnterprise EC12 oprofile support patchlet from Robert Richter.

    - Add perf test entries for checking breakpoint overflow signal
    handler issues, from Jiri Olsa.

    - Add perf test entry for for checking number of EXIT events, from
    Namhyung Kim.

    - Add perf test entries for checking --cpu in record and stat, from
    Jiri Olsa.

    - Introduce perf stat --repeat forever, from Frederik Deweerdt.

    - Add --no-demangle to report/top, from Namhyung Kim.

    - PowerPC fixes plus a couple of cleanups/optimizations in uprobes
    and trace_uprobes, by Oleg Nesterov.

    Various fixes and refactorings:

    - Fix dependency of the python binding wrt libtraceevent, from
    Naohiro Aota.

    - Simplify some perf_evlist methods and to allow 'stat' to share code
    with 'record' and 'trace', by Arnaldo Carvalho de Melo.

    - Remove dead code in related to libtraceevent integration, from
    Namhyung Kim.

    - Revert "perf sched: Handle PERF_RECORD_EXIT events" to get 'perf
    sched lat' back working, by Arnaldo Carvalho de Melo

    - We don't use Newt anymore, just plain libslang, by Arnaldo Carvalho
    de Melo.

    - Kill a bunch of die() calls, from Namhyung Kim.

    - Fix build on non-glibc systems due to libio.h absence, from Cody P
    Schafer.

    - Remove some perf_session and tracing dead code, from David Ahern.

    - Honor parallel jobs, fix from Borislav Petkov

    - Introduce tools/lib/lk library, initially just removing duplication
    among tools/perf and tools/vm. from Borislav Petkov

    ... and many more I missed to list, see the shortlog and git log for
    more details."

    * 'perf-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (136 commits)
    perf/x86/intel/P4: Robistify P4 PMU types
    perf/x86/amd: Fix AMD NB and L2I "uncore" support
    perf/x86/amd: Remove old-style NB counter support from perf_event_amd.c
    perf/x86: Check all MSRs before passing hw check
    perf/x86/amd: Add support for AMD NB and L2I "uncore" counters
    perf/x86/intel: Add Ivy Bridge-EP uncore support
    perf/x86/intel: Fix SNB-EP CBO and PCU uncore PMU filter management
    perf/x86: Avoid kfree() in CPU_{STARTING,DYING}
    uprobes/perf: Avoid perf_trace_buf_prepare/submit if ->perf_events is empty
    uprobes/tracing: Don't pass addr=ip to perf_trace_buf_submit()
    uprobes/tracing: Change create_trace_uprobe() to support uretprobes
    uprobes/tracing: Make seq_printf() code uretprobe-friendly
    uprobes/tracing: Make register_uprobe_event() paths uretprobe-friendly
    uprobes/tracing: Make uprobe_{trace,perf}_print() uretprobe-friendly
    uprobes/tracing: Introduce is_ret_probe() and uretprobe_dispatcher()
    uprobes/tracing: Introduce uprobe_{trace,perf}_print() helpers
    uprobes/tracing: Generalize struct uprobe_trace_entry_head
    uprobes/tracing: Kill the pointless local_save_flags/preempt_count calls
    uprobes/tracing: Kill the pointless seq_print_ip_sym() call
    uprobes/tracing: Kill the pointless task_pt_regs() calls
    ...

    Linus Torvalds
     
  • Pull RCU updates from Ingo Molnar:
    "The main changes in this cycle are mostly related to preparatory work
    for the full-dynticks work:

    - Remove restrictions on no-CBs CPUs, make RCU_FAST_NO_HZ take
    advantage of numbered callbacks, do callback accelerations based on
    numbered callbacks. Posted to LKML at
    https://lkml.org/lkml/2013/3/18/960

    - RCU documentation updates. Posted to LKML at
    https://lkml.org/lkml/2013/3/18/570

    - Miscellaneous fixes. Posted to LKML at
    https://lkml.org/lkml/2013/3/18/594"

    * 'core-rcu-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (24 commits)
    rcu: Make rcu_accelerate_cbs() note need for future grace periods
    rcu: Abstract rcu_start_future_gp() from rcu_nocb_wait_gp()
    rcu: Rename n_nocb_gp_requests to need_future_gp
    rcu: Push lock release to rcu_start_gp()'s callers
    rcu: Repurpose no-CBs event tracing to future-GP events
    rcu: Rearrange locking in rcu_start_gp()
    rcu: Make RCU_FAST_NO_HZ take advantage of numbered callbacks
    rcu: Accelerate RCU callbacks at grace-period end
    rcu: Export RCU_FAST_NO_HZ parameters to sysfs
    rcu: Distinguish "rcuo" kthreads by RCU flavor
    rcu: Add event tracing for no-CBs CPUs' grace periods
    rcu: Add event tracing for no-CBs CPUs' callback registration
    rcu: Introduce proper blocking to no-CBs kthreads GP waits
    rcu: Provide compile-time control for no-CBs CPUs
    rcu: Tone down debugging during boot-up and shutdown.
    rcu: Add softirq-stall indications to stall-warning messages
    rcu: Documentation update
    rcu: Make bugginess of code sample more evident
    rcu: Fix hlist_bl_set_first_rcu() annotation
    rcu: Delete unused rcu_node "wakemask" field
    ...

    Linus Torvalds
     
  • During the 3.10 merge, a conflict happened and the resolution was
    almost, but not quite, correct. An if statement was reversed.

    Signed-off-by: Steven Rostedt
    [ Duh. That was just silly of me - Linus ]
    Signed-off-by: Linus Torvalds

    Steven Rostedt
     
  • …t/rostedt/linux-kconfig

    Pull localmodconfig changes from Steven Rostedt:
    "A bug was recently found in the make localmodconfig where it would
    miss dependencies of config files are include in other config files
    inside an if statement.

    Also added a debug print that helped in solving this bug."

    * tag 'localmodconfig-v3.10' of git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/linux-kconfig:
    localmodconfig: Process source kconfig files as they are found
    localmodconfig: Add debug prints for dependencies of module configs

    Linus Torvalds
     
  • * patchwork: (831 commits)
    [media] cx88: make core less verbose
    [media] em28xx: fix oops at em28xx_dvb_bus_ctrl()
    [media] s5c73m3: fix indentation of the help section in Kconfig
    [media] cx25821-alsa: get rid of a __must_check warning
    [media] cx25821-video: declare cx25821_vidioc_s_std as static
    [media] cx25821-video: remove maxw from cx25821_vidioc_try_fmt_vid_cap
    [media] r820t: Remove a warning for an unused value
    [media] dib0090: Fix a warning at dib0090_set_EFUSE
    [media] dib8000: fix a warning
    [media] dib8000: Fix sub-channel range
    [media] dib8000: store dtv_property_cache in a temp var
    [media] dib8000: warning fix: declare internal functions as static
    [media] r820t: quiet gcc warning on n_ring
    [media] r820t: memory leak in release()
    [media] r820t: precendence bug in r820t_xtal_check()
    [media] videodev2.h: Remove the unused old V4L1 buffer types
    [media] anysee: Grammar s/report the/report to/
    [media] anysee: Initialize ret = 0 in anysee_frontend_attach()
    [media] media: videobuf2: fix the length check for mmap
    [media] em28xx: save isoc endpoint number for DVB only if endpoint has alt settings with xMaxPacketSize != 0
    ...

    Conflicts:
    drivers/media/pci/cx25821/cx25821-video.c
    drivers/media/platform/Kconfig

    Mauro Carvalho Chehab
     
  • Linux 3.9

    * tag 'v3.9': (1099 commits)
    Linux 3.9
    vm: add no-mmu vm_iomap_memory() stub
    efivars: only check for duplicates on the registered list
    TTY: fix atime/mtime regression
    aio: fix possible invalid memory access when DEBUG is enabled
    parisc: use spin_lock_irqsave/spin_unlock_irqrestore for PTE updates
    parisc: disable -mlong-calls compiler option for kernel modules
    parisc: uaccess: fix compiler warnings caused by __put_user casting
    parisc: Change kunmap macro to static inline function
    parisc: Provide __ucmpdi2 to resolve undefined references in 32 bit builds.
    sparc64: Fix missing put_cpu_var() in tlb_batch_add_one() when not batching.
    Revert "gpio: pxa: set initcall level to module init"
    efi: Check EFI revision in setup_efi_vars
    x86, efi: Fix a build warning
    Revert "MIPS: page.h: Provide more readable definition for PAGE_MASK."
    kernel/hz.bc: ignore.
    Linux 3.9-rc8
    events: Protect access via task_subsys_state_check()
    net: fix incorrect credentials passing
    x86, microcode: Verify the family before dispatching microcode patching
    ...

    Mauro Carvalho Chehab
     
  • Jiri Kosina
     
  • Conflicts:
    drivers/hid/Kconfig

    Jiri Kosina
     
  • Conflicts:
    drivers/hid/hid-multitouch.c

    Jiri Kosina
     
  • …ansport-cleanups', 'for-3.10/i2c-hid' and 'for-3.10/logitech' into for-linus

    Jiri Kosina
     
  • Accesses to hid_device->hid_debug_list are not serialized properly, which
    could result in SMP concurrency issues when HID debugfs events are accessesed
    by multiple userspace processess.

    Serialize all the list operations by a mutex.

    Spotted by Al Viro.

    Signed-off-by: Jiri Kosina

    Jiri Kosina
     
  • No semantic changes, but hid_dump_report should be in hid-debug.c, not
    in hid-core.c

    Signed-off-by: Benjamin Tissoires
    Signed-off-by: Jiri Kosina

    Benjamin Tissoires
     
  • Merge second batch of fixes from Andrew Morton:

    - various misc bits

    - some printk updates

    - a new "SRAM" driver.

    - MAINTAINERS updates

    - the backlight driver queue

    - checkpatch updates

    - a few init/ changes

    - a huge number of drivers/rtc changes

    - fatfs updates

    - some lib/idr.c work

    - some renaming of the random driver interfaces

    * emailed patches from Andrew Morton : (285 commits)
    net: rename random32 to prandom
    net/core: remove duplicate statements by do-while loop
    net/core: rename random32() to prandom_u32()
    net/netfilter: rename random32() to prandom_u32()
    net/sched: rename random32() to prandom_u32()
    net/sunrpc: rename random32() to prandom_u32()
    scsi: rename random32() to prandom_u32()
    lguest: rename random32() to prandom_u32()
    uwb: rename random32() to prandom_u32()
    video/uvesafb: rename random32() to prandom_u32()
    mmc: rename random32() to prandom_u32()
    drbd: rename random32() to prandom_u32()
    kernel/: rename random32() to prandom_u32()
    mm/: rename random32() to prandom_u32()
    lib/: rename random32() to prandom_u32()
    x86: rename random32() to prandom_u32()
    x86: pageattr-test: remove srandom32 call
    uuid: use prandom_bytes()
    raid6test: use prandom_bytes()
    sctp: convert sctp_assoc_set_id() to use idr_alloc_cyclic()
    ...

    Linus Torvalds