02 Apr, 2014

10 commits

  • Pull ACPI and power management updates from Rafael Wysocki:
    "The majority of this material spent some time in linux-next, some of
    it even several weeks. There are a few relatively fresh commits in
    it, but they are mostly fixes and simple cleanups.

    ACPI took the lead this time, both in terms of the number of commits
    and the number of modified lines of code, cpufreq follows and there
    are a few changes in the PM core and in cpuidle too.

    A new feature that already got some LWN.net's attention is the device
    PM QoS extension allowing latency tolerance requirements to be
    propagated from leaf devices to their ancestors with hardware
    interfaces for specifying latency tolerance. That should help systems
    with hardware-driven power management to avoid going too far with it
    in cases when there are latency tolerance constraints.

    There also are some significant changes in the ACPI core related to
    the way in which hotplug notifications are handled. They affect PCI
    hotplug (ACPIPHP) and the ACPI dock station code too. The bottom line
    is that all those notification now go through the root notify handler
    and are propagated to the interested subsystems by means of callbacks
    instead of having to install a notify handler for each device object
    that we can potentially get hotplug notifications for.

    In addition to that ACPICA will now advertise "Windows 2013"
    compatibility for _OSI, because some systems out there don't work
    correctly if that is not done (some of them don't even boot).

    On the system suspend side of things, all of the device suspend and
    resume callbacks, except for ->prepare() and ->complete(), are now
    going to be executed asynchronously as that turns out to speed up
    system suspend and resume on some platforms quite significantly and we
    have a few more optimizations in that area.

    Apart from that, there are some new device IDs and fixes and cleanups
    all over. In particular, the system suspend and resume handling by
    cpufreq should be improved and the cpuidle menu governor should be a
    bit more robust now.

    Specifics:

    - Device PM QoS support for latency tolerance constraints on systems
    with hardware interfaces allowing such constraints to be specified.
    That is necessary to prevent hardware-driven power management from
    becoming overly aggressive on some systems and to prevent power
    management features leading to excessive latencies from being used
    in some cases.

    - Consolidation of the handling of ACPI hotplug notifications for
    device objects. This causes all device hotplug notifications to go
    through the root notify handler (that was executed for all of them
    anyway before) that propagates them to individual subsystems, if
    necessary, by executing callbacks provided by those subsystems
    (those callbacks are associated with struct acpi_device objects
    during device enumeration). As a result, the code in question
    becomes both smaller in size and more straightforward and all of
    those changes should not affect users.

    - ACPICA update, including fixes related to the handling of _PRT in
    cases when it is broken and the addition of "Windows 2013" to the
    list of supported "features" for _OSI (which is necessary to
    support systems that work incorrectly or don't even boot without
    it). Changes from Bob Moore and Lv Zheng.

    - Consolidation of ACPI _OST handling from Jiang Liu.

    - ACPI battery and AC fixes allowing unusual system configurations to
    be handled by that code from Alexander Mezin.

    - New device IDs for the ACPI LPSS driver from Chiau Ee Chew.

    - ACPI fan and thermal optimizations related to system suspend and
    resume from Aaron Lu.

    - Cleanups related to ACPI video from Jean Delvare.

    - Assorted ACPI fixes and cleanups from Al Stone, Hanjun Guo, Lan
    Tianyu, Paul Bolle, Tomasz Nowicki.

    - Intel RAPL (Running Average Power Limits) driver cleanups from
    Jacob Pan.

    - intel_pstate fixes and cleanups from Dirk Brandewie.

    - cpufreq fixes related to system suspend/resume handling from Viresh
    Kumar.

    - cpufreq core fixes and cleanups from Viresh Kumar, Stratos
    Karafotis, Saravana Kannan, Rashika Kheria, Joe Perches.

    - cpufreq drivers updates from Viresh Kumar, Zhuoyu Zhang, Rob
    Herring.

    - cpuidle fixes related to the menu governor from Tuukka Tikkanen.

    - cpuidle fix related to coupled CPUs handling from Paul Burton.

    - Asynchronous execution of all device suspend and resume callbacks,
    except for ->prepare and ->complete, during system suspend and
    resume from Chuansheng Liu.

    - Delayed resuming of runtime-suspended devices during system suspend
    for the PCI bus type and ACPI PM domain.

    - New set of PM helper routines to allow device runtime PM callbacks
    to be used during system suspend and resume more easily from Ulf
    Hansson.

    - Assorted fixes and cleanups in the PM core from Geert Uytterhoeven,
    Prabhakar Lad, Philipp Zabel, Rashika Kheria, Sebastian Capella.

    - devfreq fix from Saravana Kannan"

    * tag 'pm+acpi-3.15-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm: (162 commits)
    PM / devfreq: Rewrite devfreq_update_status() to fix multiple bugs
    PM / sleep: Correct whitespace errors in
    intel_pstate: Set core to min P state during core offline
    cpufreq: Add stop CPU callback to cpufreq_driver interface
    cpufreq: Remove unnecessary braces
    cpufreq: Fix checkpatch errors and warnings
    cpufreq: powerpc: add cpufreq transition latency for FSL e500mc SoCs
    MAINTAINERS: Reorder maintainer addresses for PM and ACPI
    PM / Runtime: Update runtime_idle() documentation for return value meaning
    video / output: Drop display output class support
    fujitsu-laptop: Drop unneeded include
    acer-wmi: Stop selecting VIDEO_OUTPUT_CONTROL
    ACPI / gpu / drm: Stop selecting VIDEO_OUTPUT_CONTROL
    ACPI / video: fix ACPI_VIDEO dependencies
    cpufreq: remove unused notifier: CPUFREQ_{SUSPENDCHANGE|RESUMECHANGE}
    cpufreq: Do not allow ->setpolicy drivers to provide ->target
    cpufreq: arm_big_little: set 'physical_cluster' for each CPU
    cpufreq: arm_big_little: make vexpress driver depend on bL core driver
    ACPI / button: Add ACPI Button event via netlink routine
    ACPI: Remove duplicate definitions of PREFIX
    ...

    Linus Torvalds
     
  • Pull irq code updates from Thomas Gleixner:
    "The irq department proudly presents:

    - Another tree wide sweep of irq infrastructure abuse. Clear winner
    of the trainwreck engineering contest was:
    #include "../../../kernel/irq/settings.h"

    - Tree wide update of irq_set_affinity() callbacks which miss a cpu
    online check when picking a single cpu out of the affinity mask.

    - Tree wide consolidation of interrupt statistics.

    - Updates to the threaded interrupt infrastructure to allow explicit
    wakeup of the interrupt thread and a variant of synchronize_irq()
    which synchronizes only the hard interrupt handler. Both are
    needed to replace the homebrewn thread handling in the mmc/sdhci
    code.

    - New irq chip callbacks to allow proper support for GPIO based irqs.
    The GPIO based interrupts need to request/release GPIO resources
    from request/free_irq.

    - A few new ARM interrupt chips. No revolutionary new hardware, just
    differently wreckaged variations of the scheme.

    - Small improvments, cleanups and updates all over the place"

    I was hoping that that trainwreck engineering contest was a April Fools'
    joke. But no.

    * 'irq-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (68 commits)
    irqchip: sun7i/sun6i: Disable NMI before registering the handler
    ARM: sun7i/sun6i: dts: Fix IRQ number for sun6i NMI controller
    ARM: sun7i/sun6i: irqchip: Update the documentation
    ARM: sun7i/sun6i: dts: Add NMI irqchip support
    ARM: sun7i/sun6i: irqchip: Add irqchip driver for NMI controller
    genirq: Export symbol no_action()
    arm: omap: Fix typo in ams-delta-fiq.c
    m68k: atari: Fix the last kernel_stat.h fallout
    irqchip: sun4i: Simplify sun4i_irq_ack
    irqchip: sun4i: Use handle_fasteoi_irq for all interrupts
    genirq: procfs: Make smp_affinity values go+r
    softirq: Add linux/irq.h to make it compile again
    m68k: amiga: Add linux/irq.h to make it compile again
    irqchip: sun4i: Don't ack IRQs > 0, fix acking of IRQ 0
    irqchip: sun4i: Fix a comment about mask register initialization
    irqchip: sun4i: Fix irq 0 not working
    genirq: Add a new IRQCHIP_EOI_THREADED flag
    genirq: Document IRQCHIP_ONESHOT_SAFE flag
    ARM: sunxi: dt: Convert to the new irq controller compatibles
    irqchip: sunxi: Change compatibles
    ...

    Linus Torvalds
     
  • Pull timer changes from Thomas Gleixner:
    "This assorted collection provides:

    - A new timer based timer broadcast feature for systems which do not
    provide a global accessible timer device. That allows those
    systems to put CPUs into deep idle states where the per cpu timer
    device stops.

    - A few NOHZ_FULL related improvements to the timer wheel

    - The usual updates to timer devices found in ARM SoCs

    - Small improvements and updates all over the place"

    * 'timers-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (44 commits)
    tick: Remove code duplication in tick_handle_periodic()
    tick: Fix spelling mistake in tick_handle_periodic()
    x86: hpet: Use proper destructor for delayed work
    workqueue: Provide destroy_delayed_work_on_stack()
    clocksource: CMT, MTU2, TMU and STI should depend on GENERIC_CLOCKEVENTS
    timer: Remove code redundancy while calling get_nohz_timer_target()
    hrtimer: Rearrange comments in the order struct members are declared
    timer: Use variable head instead of &work_list in __run_timers()
    clocksource: exynos_mct: silence a static checker warning
    arm: zynq: Add support for cpufreq
    arm: zynq: Don't use arm_global_timer with cpufreq
    clocksource/cadence_ttc: Overhaul clocksource frequency adjustment
    clocksource/cadence_ttc: Call clockevents_update_freq() with IRQs enabled
    clocksource: Add Kconfig entries for CMT, MTU2, TMU and STI
    sh: Remove Kconfig entries for TMU, CMT and MTU2
    ARM: shmobile: Remove CMT, TMU and STI Kconfig entries
    clocksource: armada-370-xp: Use atomic access for shared registers
    clocksource: orion: Use atomic access for shared registers
    clocksource: timer-keystone: Delete unnecessary variable
    clocksource: timer-keystone: introduce clocksource driver for Keystone
    ...

    Linus Torvalds
     
  • Pull x86 iommu quirk fix from Thomas Gleixner:
    "A quirk for the iommu quirk to include silicon which was assumed not
    to be out in the wild.

    This time with the correct logic applied"

    * 'x86-iommu-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
    x86: Adjust irq remapping quirk for older revisions of 5500/5520 chipsets

    Linus Torvalds
     
  • Pull x86 threadinfo changes from Ingo Molnar:
    "The main change here is the consolidation/unification of 32 and 64 bit
    thread_info handling methods, from Steve Rostedt"

    * 'x86-threadinfo-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
    x86, threadinfo: Redo "x86: Use inline assembler to get sp"
    x86: Clean up dumpstack_64.c code
    x86: Keep thread_info on thread stack in x86_32
    x86: Prepare removal of previous_esp from i386 thread_info structure
    x86: Nuke GET_THREAD_INFO_WITH_ESP() macro for i386
    x86: Nuke the supervisor_stack field in i386 thread_info

    Linus Torvalds
     
  • Pull timer updates from Ingo Molnar:
    "The main purpose is to fix a full dynticks bug related to
    virtualization, where steal time accounting appears to be zero in
    /proc/stat even after a few seconds of competing guests running busy
    loops in a same host CPU. It's not a regression though as it was
    there since the beginning.

    The other commits are preparatory work to fix the bug and various
    cleanups"

    * 'timers-nohz-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
    arch: Remove stub cputime.h headers
    sched: Remove needless round trip nsecs tick conversion of steal time
    cputime: Fix jiffies based cputime assumption on steal accounting
    cputime: Bring cputime -> nsecs conversion
    cputime: Default implementation of nsecs -> cputime conversion
    cputime: Fix nsecs_to_cputime() return type cast

    Linus Torvalds
     
  • Pull x86 cpufeature update from Ingo Molnar:
    "Two refinements to clflushopt support"

    * 'x86-cpufeature-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
    x86, cpufeature: If we disable CLFLUSH, we should disable CLFLUSHOPT
    x86, cpufeature: Rename X86_FEATURE_CLFLSH to X86_FEATURE_CLFLUSH

    Linus Torvalds
     
  • Pull x86 reboot changes from Ingo Molnar:
    "Refine the reboot logic around the CF9 and EFI reboot methods, to make
    it more robust. The expectation is for no working system to break,
    and for a couple of reboot-force systems to start rebooting
    automatically again"

    * 'x86-reboot-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
    x86, reboot: Only use CF9_COND automatically, not CF9
    x86, reboot: Add EFI and CF9 reboot methods into the default list

    Linus Torvalds
     
  • Pull x86 mm change from Ingo Molnar:
    "A micro-optimization for acpi_numa_slit_init()"

    * 'x86-mm-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
    x86/mm: Avoid duplicated pxm_to_node() calls

    Linus Torvalds
     
  • Pull AVR32 updates from Hans-Christian Egtvedt.

    * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/egtvedt/linux-avr32:
    avr32: replace simple_strtoul() with kstrtoul()
    arch/avr32/mm/cache.c: export symbol flush_icache_range() for module using
    avr32: remove cpu_data macro to fix compiles

    Linus Torvalds
     

01 Apr, 2014

26 commits

  • simple_strtoul() is marked for obsoletion; use the newer and more
    pleasant kstrtoul() in its place.

    Cc: Alexey Dobriyan
    Cc: Haavard Skinnemoen
    Cc: Hans-Christian Egtvedt
    Signed-off-by: Ramkumar Ramachandra
    Signed-off-by: Hans-Christian Egtvedt

    Ramkumar Ramachandra
     
  • Pull libata updates from Tejun Heo:
    "A lot of activities on libata side this time.

    - A lot of changes around ahci. Various embedded platforms are
    implementing ahci controllers. Some were built atop ahci_platform,
    others were doing their own things. Hans made some structural
    changes to libahci and librarized ahci_platform so that ahci
    platform drivers can share more common code. A couple platform
    drivers are added on top of that and several are added to replace
    older drivers which were doing their own things (older ones are
    scheduled to be removed).

    - Dan finishes the patchset to make libata PM operations
    asynchronous. Combined with one patch being routed through scsi,
    this should speed resume measurably.

    - Various fixes and cleanups from Bartlomiej and others"

    * 'for-3.15' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/libata: (61 commits)
    ata: fix Marvell SATA driver dependencies
    ata: fix ARASAN CompactFlash PATA driver dependencies
    ata: remove superfluous casts
    ata: sata_highbank: remove superfluous cast
    ata: fix Calxeda Highbank SATA driver dependencies
    ata: fix R-Car SATA driver dependencies
    ARM: davinci: da850: update SATA AHCI support
    ata: add new-style AHCI platform driver for DaVinci DA850 AHCI controller
    ata: move library code from ahci_platform.c to libahci_platform.c
    ata: ahci_platform: fix ahci_platform_data->suspend method handling
    libata: remove unused ata_sas_port_async_resume() stub
    libata.h: add stub for ata_sas_port_resume
    libata: async resume
    libata, libsas: kill pm_result and related cleanup
    ata: Fix compiler warning with APM X-Gene host controller driver
    arm64: Add APM X-Gene SoC AHCI SATA host controller DTS entries
    ata: Add APM X-Gene SoC AHCI SATA host controller driver
    Documentation: Add documentation for the APM X-Gene SoC SATA host controller DTS binding
    arm64: Add APM X-Gene SoC 15Gbps Multi-purpose PHY DTS entries
    ata: ahci_sunxi: fix code formatting
    ...

    Linus Torvalds
     
  • Pull workqueue changes from Tejun Heo:
    "PREPARE_[DELAYED_]WORK() were used to change the work function of work
    items without fully reinitializing it; however, this makes workqueue
    consider the work item as a different one from before and allows the
    work item to start executing before the previous instance is finished
    which can lead to extremely subtle issues which are painful to debug.

    The interface has never been popular. This pull request contains
    patches to remove existing usages and kill the interface. As one of
    the changes was routed during the last devel cycle and another
    depended on a pending change in nvme, for-3.15 contains a couple merge
    commits.

    In addition, interfaces which were deprecated quite a while ago -
    __cancel_delayed_work() and WQ_NON_REENTRANT - are removed too"

    * 'for-3.15' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/wq:
    workqueue: remove deprecated WQ_NON_REENTRANT
    workqueue: Spelling s/instensive/intensive/
    workqueue: remove PREPARE_[DELAYED_]WORK()
    staging/fwserial: don't use PREPARE_WORK
    afs: don't use PREPARE_WORK
    nvme: don't use PREPARE_WORK
    usb: don't use PREPARE_DELAYED_WORK
    floppy: don't use PREPARE_[DELAYED_]WORK
    ps3-vuart: don't use PREPARE_WORK
    wireless/rt2x00: don't use PREPARE_WORK in rt2800usb.c
    workqueue: Remove deprecated __cancel_delayed_work()

    Linus Torvalds
     
  • Pull percpu changes from Tejun Heo:
    "The percpu allocation is now popular enough for the extremely naive
    range allocator to cause scalability issues.

    The existing allocator linearly scanned the allocation map on both
    alloc and free without making use of hint or anything. Al
    reimplemented the range allocator so that it can use binary search
    instead of linear scan during free and alloc path uses simple hinting
    to avoid scanning in common cases. Combined, the new allocator
    resolves the scalability issue percpu allocator was showing during
    container benchmark workload"

    * 'for-3.15' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/percpu:
    percpu: renew the max_contig if we merge the head and previous block
    percpu: allocation size should be even
    percpu: speed alloc_pcpu_area() up
    percpu: store offsets instead of lengths in ->map[]
    perpcu: fold pcpu_split_block() into the only caller

    Linus Torvalds
     
  • Pull ARM64 updates from Catalin Marinas:
    - KGDB support for arm64
    - PCI I/O space extended to 16M (in preparation of PCIe support
    patches)
    - Dropping ZONE_DMA32 in favour of ZONE_DMA (we only need one for the
    time being), together with swiotlb late initialisation to correctly
    setup the bounce buffer
    - DMA API cache maintenance support (not all ARMv8 platforms have
    hardware cache coherency)
    - Crypto extensions advertising via ELF_HWCAP2 for compat user space
    - Perf support for dwarf unwinding in compat mode
    - asm/tlb.h converted to the generic mmu_gather code
    - asm-generic rwsem implementation
    - Code clean-up

    * tag 'arm64-upstream' of git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux: (42 commits)
    arm64: Remove pgprot_dmacoherent()
    arm64: Support DMA_ATTR_WRITE_COMBINE
    arm64: Implement custom mmap functions for dma mapping
    arm64: Fix __range_ok macro
    arm64: Fix duplicated Kconfig entries
    arm64: mm: Route pmd thp functions through pte equivalents
    arm64: rwsem: use asm-generic rwsem implementation
    asm-generic: rwsem: de-PPCify rwsem.h
    arm64: enable generic CPU feature modalias matching for this architecture
    arm64: smp: make local symbol static
    arm64: debug: make local symbols static
    ARM64: perf: support dwarf unwinding in compat mode
    ARM64: perf: add support for frame pointer unwinding in compat mode
    ARM64: perf: add support for perf registers API
    arm64: Add boot time configuration of Intermediate Physical Address size
    arm64: Do not synchronise I and D caches for special ptes
    arm64: Make DMA coherent and strongly ordered mappings not executable
    arm64: barriers: add dmb barrier
    arm64: topology: Implement basic CPU topology support
    arm64: advertise ARMv8 extensions to 32-bit compat ELF binaries
    ...

    Linus Torvalds
     
  • Pull ia64 updates from Tony Luck:
    "Miscellaneous ia64 fixes for 3.15 merge window"

    * tag 'please-pull-misc-3.15' of git://git.kernel.org/pub/scm/linux/kernel/git/aegl/linux:
    [IA64] Keep format strings from leaking into printk
    Fix warning in make defconfig
    [IA64] sba_iommu: fix section mismatch To: linux-kernel@vger.kernel.org

    Linus Torvalds
     
  • Pull m68k updates from Geert Uytterhoeven.

    * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/geert/linux-m68k:
    m68k: Update defconfigs for v3.14-rc1
    [SCSI] atari_scsi: Fix sleep_on race
    m68k: head.S - Remove bogus L prefix in comment
    m68k: Remove dead code
    m68k: Remove CONSOLE_PENGUIN macro, adopt CONFIG_LOGO

    Linus Torvalds
     
  • Pull s390 updates from Martin Schwidefsky:
    "There are two memory management related changes, the CMMA support for
    KVM to avoid swap-in of freed pages and the split page table lock for
    the PMD level. These two come with common code changes in mm/.

    A fix for the long standing theoretical TLB flush problem, this one
    comes with a common code change in kernel/sched/.

    Another set of changes is Heikos uaccess work, included is the initial
    set of patches with more to come.

    And fixes and cleanups as usual"

    * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/s390/linux: (36 commits)
    s390/con3270: optionally disable auto update
    s390/mm: remove unecessary parameter from pgste_ipte_notify
    s390/mm: remove unnecessary parameter from gmap_do_ipte_notify
    s390/mm: fixing comment so that parameter name match
    s390/smp: limit number of cpus in possible cpu mask
    hypfs: Add clarification for "weight_min" attribute
    s390: update defconfigs
    s390/ptrace: add support for PTRACE_SINGLEBLOCK
    s390/perf: make print_debug_cf() static
    s390/topology: Remove call to update_cpu_masks()
    s390/compat: remove compat exec domain
    s390: select CONFIG_TTY for use of tty in unconditional keyboard driver
    s390/appldata_os: fix cpu array size calculation
    s390/checksum: remove memset() within csum_partial_copy_from_user()
    s390/uaccess: remove copy_from_user_real()
    s390/sclp_early: Return correct HSA block count also for zero
    s390: add some drivers/subsystems to the MAINTAINERS file
    s390: improve debug feature usage
    s390/airq: add support for irq ranges
    s390/mm: enable split page table lock for PMD level
    ...

    Linus Torvalds
     
  • Pull s390 compat wrapper rework from Heiko Carstens:
    "S390 compat system call wrapper simplification work.

    The intention of this work is to get rid of all hand written assembly
    compat system call wrappers on s390, which perform proper sign or zero
    extension, or pointer conversion of compat system call parameters.
    Instead all of this should be done with C code eg by using Al's
    COMPAT_SYSCALL_DEFINEx() macro.

    Therefore all common code and s390 specific compat system calls have
    been converted to the COMPAT_SYSCALL_DEFINEx() macro.

    In order to generate correct code all compat system calls may only
    have eg compat_ulong_t parameters, but no unsigned long parameters.
    Those patches which change parameter types from unsigned long to
    compat_ulong_t parameters are separate in this series, but shouldn't
    cause any harm.

    The only compat system calls which intentionally have 64 bit
    parameters (preadv64 and pwritev64) in support of the x86/32 ABI
    haven't been changed, but are now only available if an architecture
    defines __ARCH_WANT_COMPAT_SYS_PREADV64/PWRITEV64.

    System calls which do not have a compat variant but still need proper
    zero extension on s390, like eg "long sys_brk(unsigned long brk)" will
    get a proper wrapper function with the new s390 specific
    COMPAT_SYSCALL_WRAPx() macro:

    COMPAT_SYSCALL_WRAP1(brk, unsigned long, brk);

    which generates the following code (simplified):

    asmlinkage long sys_brk(unsigned long brk);
    asmlinkage long compat_sys_brk(long brk)
    {
    return sys_brk((u32)brk);
    }

    Given that the C file which contains all the COMPAT_SYSCALL_WRAP lines
    includes both linux/syscall.h and linux/compat.h, it will generate
    build errors, if the declaration of sys_brk() doesn't match, or if
    there exists a non-matching compat_sys_brk() declaration.

    In addition this will intentionally result in a link error if
    somewhere else a compat_sys_brk() function exists, which probably
    should have been used instead. Two more BUILD_BUG_ONs make sure the
    size and type of each compat syscall parameter can be handled
    correctly with the s390 specific macros.

    I converted the compat system calls step by step to verify the
    generated code is correct and matches the previous code. In fact it
    did not always match, however that was always a bug in the hand
    written asm code.

    In result we get less code, less bugs, and much more sanity checking"

    * 'compat' of git://git.kernel.org/pub/scm/linux/kernel/git/s390/linux: (44 commits)
    s390/compat: add copyright statement
    compat: include linux/unistd.h within linux/compat.h
    s390/compat: get rid of compat wrapper assembly code
    s390/compat: build error for large compat syscall args
    mm/compat: convert to COMPAT_SYSCALL_DEFINE with changing parameter types
    kexec/compat: convert to COMPAT_SYSCALL_DEFINE with changing parameter types
    net/compat: convert to COMPAT_SYSCALL_DEFINE with changing parameter types
    ipc/compat: convert to COMPAT_SYSCALL_DEFINE with changing parameter types
    fs/compat: convert to COMPAT_SYSCALL_DEFINE with changing parameter types
    ipc/compat: convert to COMPAT_SYSCALL_DEFINE
    fs/compat: convert to COMPAT_SYSCALL_DEFINE
    security/compat: convert to COMPAT_SYSCALL_DEFINE
    mm/compat: convert to COMPAT_SYSCALL_DEFINE
    net/compat: convert to COMPAT_SYSCALL_DEFINE
    kernel/compat: convert to COMPAT_SYSCALL_DEFINE
    fs/compat: optional preadv64/pwrite64 compat system calls
    ipc/compat_sys_msgrcv: change msgtyp type from long to compat_long_t
    s390/compat: partial parameter conversion within syscall wrappers
    s390/compat: automatic zero, sign and pointer conversion of syscalls
    s390/compat: add sync_file_range and fallocate compat syscalls
    ...

    Linus Torvalds
     
  • Pull x86 LTO changes from Peter Anvin:
    "More infrastructure work in preparation for link-time optimization
    (LTO). Most of these changes is to make sure symbols accessed from
    assembly code are properly marked as visible so the linker doesn't
    remove them.

    My understanding is that the changes to support LTO are still not
    upstream in binutils, but are on the way there. This patchset should
    conclude the x86-specific changes, and remaining patches to actually
    enable LTO will be fed through the Kbuild tree (other than keeping up
    with changes to the x86 code base, of course), although not
    necessarily in this merge window"

    * 'x86-asmlinkage-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (25 commits)
    Kbuild, lto: Handle basic LTO in modpost
    Kbuild, lto: Disable LTO for asm-offsets.c
    Kbuild, lto: Add a gcc-ld script to let run gcc as ld
    Kbuild, lto: add ld-version and ld-ifversion macros
    Kbuild, lto: Drop .number postfixes in modpost
    Kbuild, lto, workaround: Don't warn for initcall_reference in modpost
    lto: Disable LTO for sys_ni
    lto: Handle LTO common symbols in module loader
    lto, workaround: Add workaround for initcall reordering
    lto: Make asmlinkage __visible
    x86, lto: Disable LTO for the x86 VDSO
    initconst, x86: Fix initconst mistake in ts5500 code
    initconst: Fix initconst mistake in dcdbas
    asmlinkage: Make trace_hardirqs_on/off_caller visible
    asmlinkage, x86: Fix 32bit memcpy for LTO
    asmlinkage Make __stack_chk_failed and memcmp visible
    asmlinkage: Mark rwsem functions that can be called from assembler asmlinkage
    asmlinkage: Make main_extable_sort_needed visible
    asmlinkage, mutex: Mark __visible
    asmlinkage: Make trace_hardirq visible
    ...

    Linus Torvalds
     
  • Commit 03bbcb2e7e2 (iommu/vt-d: add quirk for broken interrupt
    remapping on 55XX chipsets) properly disables irq remapping on the
    5500/5520 chipsets that don't correctly perform that feature.

    However, when I wrote it, I followed the errata sheet linked in that
    commit too closely, and explicitly tied the activation of the quirk to
    revision 0x13 of the chip, under the assumption that earlier revisions
    were not in the field. Recently a system was reported to be suffering
    from this remap bug and the quirk hadn't triggered, because the
    revision id register read at a lower value that 0x13, so the quirk
    test failed improperly. Given this, it seems only prudent to adjust
    this quirk so that any revision less than 0x13 has the quirk asserted.

    [ tglx: Removed the 0x12 comparison of pci id 3405 as this is covered
    by the
    Cc: Ingo Molnar
    Cc: "H. Peter Anvin"
    Cc: x86@kernel.org
    Cc: stable@vger.kernel.org
    Link: http://lkml.kernel.org/r/1394649873-14913-1-git-send-email-nhorman@tuxdriver.com
    Signed-off-by: Thomas Gleixner

    Neil Horman
     
  • Pull x86 kaslr update from Ingo Molnar:
    "This adds kernel module load address randomization"

    * 'x86-kaslr-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
    x86, kaslr: fix module lock ordering problem
    x86, kaslr: randomize module base load address

    Linus Torvalds
     
  • Pull x86 hyperv change from Ingo Molnar:
    "Skip the timer_irq_works() check on hyperv systems"

    * 'x86-hyperv-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
    x86, hyperv: Bypass the timer_irq_works() check

    Linus Torvalds
     
  • Pull x86 hashing changes from Ingo Molnar:
    "Small fixes and cleanups to the librarized arch_fast_hash() methods,
    used by the net/openvswitch code"

    * 'x86-hash-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
    x86, hash: Simplify switch, add __init annotation
    x86, hash: Swap arguments passed to crc32_u32()
    x86, hash: Fix build failure with older binutils

    Linus Torvalds
     
  • Pull x86 EFI changes from Ingo Molnar:
    "The main changes:

    - Add debug code to the dump EFI pagetable - Borislav Petkov

    - Make 1:1 runtime mapping robust when booting on machines with lots
    of memory - Borislav Petkov

    - Move the EFI facilities bits out of 'x86_efi_facility' and into
    efi.flags which is the standard architecture independent place to
    keep EFI state, by Matt Fleming.

    - Add 'EFI mixed mode' support: this allows 64-bit kernels to be
    booted from 32-bit firmware. This needs a bootloader that supports
    the 'EFI handover protocol'. By Matt Fleming"

    * 'x86-efi-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (31 commits)
    x86, efi: Abstract x86 efi_early calls
    x86/efi: Restore 'attr' argument to query_variable_info()
    x86/efi: Rip out phys_efi_get_time()
    x86/efi: Preserve segment registers in mixed mode
    x86/boot: Fix non-EFI build
    x86, tools: Fix up compiler warnings
    x86/efi: Re-disable interrupts after calling firmware services
    x86/boot: Don't overwrite cr4 when enabling PAE
    x86/efi: Wire up CONFIG_EFI_MIXED
    x86/efi: Add mixed runtime services support
    x86/efi: Firmware agnostic handover entry points
    x86/efi: Split the boot stub into 32/64 code paths
    x86/efi: Add early thunk code to go from 64-bit to 32-bit
    x86/efi: Build our own EFI services pointer table
    efi: Add separate 32-bit/64-bit definitions
    x86/efi: Delete dead code when checking for non-native
    x86/mm/pageattr: Always dump the right page table in an oops
    x86, tools: Consolidate #ifdef code
    x86/boot: Cleanup header.S by removing some #ifdefs
    efi: Use NULL instead of 0 for pointer
    ...

    Linus Torvalds
     
  • Pull x86 debug cleanup from Ingo Molnar:
    "A single trivial cleanup"

    * 'x86-debug-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
    i386: Remove unneeded test of 'task' in dump_trace() (again)

    Linus Torvalds
     
  • Pull x86 cpu handling changes from Ingo Molnar:
    "Bigger changes:

    - Intel CPU hardware-enablement: new vector instructions support
    (AVX-512), by Fenghua Yu.

    - Support the clflushopt instruction and use it in appropriate
    places. clflushopt is similar to clflush but with more relaxed
    ordering, by Ross Zwisler.

    - MSR accessor cleanups, by Borislav Petkov.

    - 'forcepae' boot flag for those who have way too much time to spend
    on way too old Pentium-M systems and want to live way too
    dangerously, by Chris Bainbridge"

    * 'x86-cpu-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
    x86, cpu: Add forcepae parameter for booting PAE kernels on PAE-disabled Pentium M
    Rename TAINT_UNSAFE_SMP to TAINT_CPU_OUT_OF_SPEC
    x86, intel: Make MSR_IA32_MISC_ENABLE bit constants systematic
    x86, Intel: Convert to the new bit access MSR accessors
    x86, AMD: Convert to the new bit access MSR accessors
    x86: Add another set of MSR accessor functions
    x86: Use clflushopt in drm_clflush_virt_range
    x86: Use clflushopt in drm_clflush_page
    x86: Use clflushopt in clflush_cache_range
    x86: Add support for the clflushopt instruction
    x86, AVX-512: Enable AVX-512 States Context Switch
    x86, AVX-512: AVX-512 Feature Detection

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

    * 'x86-cleanups-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
    x86, pageattr: Correct WBINVD spelling in comment
    x86, crash: Unify ifdef
    x86, boot: Correct max ramdisk size name

    Linus Torvalds
     
  • Pull x86 build change from Ingo Molnar:
    "Explicitly disable x87 FPU instructions, to catch mistaken floating
    point use at build time, instead of crashing or misbehaving during run
    time"

    * 'x86-build-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
    x86: Disable generation of traditional x87 instructions

    Linus Torvalds
     
  • Pull x86 apic changes from Ingo Molnar:
    "An xAPIC CPU hotplug race fix, plus cleanups and minor fixes"

    * 'x86-apic-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
    x86/apic: Plug racy xAPIC access of CPU hotplug code
    x86/apic: Always define nox2apic and define it as initdata
    x86/apic: Remove unused function prototypes
    x86/apic: Switch wait_for_init_deassert() to a bool flag
    x86/apic: Only use default_wait_for_init_deassert()

    Linus Torvalds
     
  • Pull x86 acpi numa fix from Ingo Molnar:
    "A single NUMA CPU hotplug fix"

    * 'x86-acpi-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
    x86, acpi: Fix bug in associating hot-added CPUs with corresponding NUMA node

    Linus Torvalds
     
  • Pull scheduler changes from Ingo Molnar:
    "Bigger changes:

    - sched/idle restructuring: they are WIP preparation for deeper
    integration between the scheduler and idle state selection, by
    Nicolas Pitre.

    - add NUMA scheduling pseudo-interleaving, by Rik van Riel.

    - optimize cgroup context switches, by Peter Zijlstra.

    - RT scheduling enhancements, by Thomas Gleixner.

    The rest is smaller changes, non-urgnt fixes and cleanups"

    * 'sched-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (68 commits)
    sched: Clean up the task_hot() function
    sched: Remove double calculation in fix_small_imbalance()
    sched: Fix broken setscheduler()
    sparc64, sched: Remove unused sparc64_multi_core
    sched: Remove unused mc_capable() and smt_capable()
    sched/numa: Move task_numa_free() to __put_task_struct()
    sched/fair: Fix endless loop in idle_balance()
    sched/core: Fix endless loop in pick_next_task()
    sched/fair: Push down check for high priority class task into idle_balance()
    sched/rt: Fix picking RT and DL tasks from empty queue
    trace: Replace hardcoding of 19 with MAX_NICE
    sched: Guarantee task priority in pick_next_task()
    sched/idle: Remove stale old file
    sched: Put rq's sched_avg under CONFIG_FAIR_GROUP_SCHED
    cpuidle/arm64: Remove redundant cpuidle_idle_call()
    cpuidle/powernv: Remove redundant cpuidle_idle_call()
    sched, nohz: Exclude isolated cores from load balancing
    sched: Fix select_task_rq_fair() description comments
    workqueue: Replace hardcoding of -20 and 19 with MIN_NICE and MAX_NICE
    sys: Replace hardcoding of -20 and 19 with MIN_NICE and MAX_NICE
    ...

    Linus Torvalds
     
  • Pull perf changes from Ingo Molnar:
    "Main changes:

    Kernel side changes:

    - Add SNB/IVB/HSW client uncore memory controller support (Stephane
    Eranian)

    - Fix various x86/P4 PMU driver bugs (Don Zickus)

    Tooling, user visible changes:

    - Add several futex 'perf bench' microbenchmarks (Davidlohr Bueso)

    - Speed up thread map generation (Don Zickus)

    - Introduce 'perf kvm --list-cmds' command line option for use by
    scripts (Ramkumar Ramachandra)

    - Print the evsel name in the annotate stdio output, prep to fix
    support outputting annotation for multiple events, not just for the
    first one (Arnaldo Carvalho de Melo)

    - Allow setting preferred callchain method in .perfconfig (Jiri Olsa)

    - Show in what binaries/modules 'perf probe's are set (Masami
    Hiramatsu)

    - Support distro-style debuginfo for uprobe in 'perf probe' (Masami
    Hiramatsu)

    Tooling, internal changes and fixes:

    - Use tid in mmap/mmap2 events to find maps (Don Zickus)

    - Record the reason for filtering an address_location (Namhyung Kim)

    - Apply all filters to an addr_location (Namhyung Kim)

    - Merge al->filtered with hist_entry->filtered in report/hists
    (Namhyung Kim)

    - Fix memory leak when synthesizing thread records (Namhyung Kim)

    - Use ui__has_annotation() in 'report' (Namhyung Kim)

    - hists browser refactorings to reuse code accross UIs (Namhyung Kim)

    - Add support for the new DWARF unwinder library in elfutils (Jiri
    Olsa)

    - Fix build race in the generation of bison files (Jiri Olsa)

    - Further streamline the feature detection display, trimming it a bit
    to show just the libraries detected, using VF=1 gets a more verbose
    output, showing the less interesting feature checks as well (Jiri
    Olsa).

    - Check compatible symtab type before loading dso (Namhyung Kim)

    - Check return value of filename__read_debuglink() (Stephane Eranian)

    - Move some hashing and fs related code from tools/perf/util/ to
    tools/lib/ so that it can be used by more tools/ living utilities
    (Borislav Petkov)

    - Prepare DWARF unwinding code for using an elfutils alternative
    unwinding library (Jiri Olsa)

    - Fix DWARF unwind max_stack processing (Jiri Olsa)

    - Add dwarf unwind 'perf test' entry (Jiri Olsa)

    - 'perf probe' improvements including memory leak fixes, sharing the
    intlist class with other tools, uprobes/kprobes code sharing and
    use of ref_reloc_sym (Masami Hiramatsu)

    - Shorten sample symbol resolving by adding cpumode to struct
    addr_location (Arnaldo Carvalho de Melo)

    - Fix synthesizing mmaps for threads (Don Zickus)

    - Fix invalid output on event group stdio report (Namhyung Kim)

    - Fixup header alignment in 'perf sched latency' output (Ramkumar
    Ramachandra)

    - Fix off-by-one error in 'perf timechart record' argv handling
    (Ramkumar Ramachandra)

    Tooling, cleanups:

    - Remove unused thread__find_map function (Jiri Olsa)

    - Remove unused simple_strtoul() function (Ramkumar Ramachandra)

    Tooling, documentation updates:

    - Update function names in debug messages (Ramkumar Ramachandra)

    - Update some code references in design.txt (Ramkumar Ramachandra)

    - Clarify load-latency information in the 'perf mem' docs (Andi
    Kleen)

    - Clarify x86 register naming in 'perf probe' docs (Andi Kleen)"

    * 'perf-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (96 commits)
    perf tools: Remove unused simple_strtoul() function
    perf tools: Update some code references in design.txt
    perf evsel: Update function names in debug messages
    perf tools: Remove thread__find_map function
    perf annotate: Print the evsel name in the stdio output
    perf report: Use ui__has_annotation()
    perf tools: Fix memory leak when synthesizing thread records
    perf tools: Use tid in mmap/mmap2 events to find maps
    perf report: Merge al->filtered with hist_entry->filtered
    perf symbols: Apply all filters to an addr_location
    perf symbols: Record the reason for filtering an address_location
    perf sched: Fixup header alignment in 'latency' output
    perf timechart: Fix off-by-one error in 'record' argv handling
    perf machine: Factor machine__find_thread to take tid argument
    perf tools: Speed up thread map generation
    perf kvm: introduce --list-cmds for use by scripts
    perf ui hists: Pass evsel to hpp->header/width functions explicitly
    perf symbols: Introduce thread__find_cpumode_addr_location
    perf session: Change header.misc dump from decimal to hex
    perf ui/tui: Reuse generic __hpp__fmt() code
    ...

    Linus Torvalds
     
  • Pull hweight type fix from Ingo Molnar:
    "This lone commit makes sure that __const_hweight8() is unsigned, which
    addresses a build warning if code is built with -Wsign-compare.

    I hope the type cast in this cleanup is fine - another option would be
    to eliminate the double unary negation and use a construct with more
    obvious integer type characteristics, along the lines of:

    ((w) & (1ULL << 1) ? 1U : 0U)

    or so"

    * 'core-types-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
    bitops: Fix signedness of compile-time hweight implementations

    Linus Torvalds
     
  • Pull RCU updates from Ingo Molnar:
    "Main changes:

    - Torture-test changes, including refactoring of rcutorture and
    introduction of a vestigial locktorture.

    - Real-time latency fixes.

    - Documentation updates.

    - Miscellaneous fixes"

    * 'core-rcu-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (77 commits)
    rcu: Provide grace-period piggybacking API
    rcu: Ensure kernel/rcu/rcu.h can be sourced/used stand-alone
    rcu: Fix sparse warning for rcu_expedited from kernel/ksysfs.c
    notifier: Substitute rcu_access_pointer() for rcu_dereference_raw()
    Documentation/memory-barriers.txt: Clarify release/acquire ordering
    rcutorture: Save kvm.sh output to log
    rcutorture: Add a lock_busted to test the test
    rcutorture: Place kvm-test-1-run.sh output into res directory
    rcutorture: Rename TREE_RCU-Kconfig.txt
    locktorture: Add kvm-recheck.sh plug-in for locktorture
    rcutorture: Gracefully handle NULL cleanup hooks
    locktorture: Add vestigial locktorture configuration
    rcutorture: Introduce "rcu" directory level underneath configs
    rcutorture: Rename kvm-test-1-rcu.sh
    rcutorture: Remove RCU dependencies from ver_functions.sh API
    rcutorture: Create CFcommon file for common Kconfig parameters
    rcutorture: Create config files for scripted test-the-test testing
    rcutorture: Add an rcu_busted to test the test
    locktorture: Add a lock-torture kernel module
    rcutorture: Abstract kvm-recheck.sh
    ...

    Linus Torvalds
     
  • Pull core locking updates from Ingo Molnar:
    "The biggest change is the MCS spinlock generalization changes from Tim
    Chen, Peter Zijlstra, Jason Low et al. There's also lockdep
    fixes/enhancements from Oleg Nesterov, in particular a false negative
    fix related to lockdep_set_novalidate_class() usage"

    * 'core-locking-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (22 commits)
    locking/mutex: Fix debug checks
    locking/mutexes: Add extra reschedule point
    locking/mutexes: Introduce cancelable MCS lock for adaptive spinning
    locking/mutexes: Unlock the mutex without the wait_lock
    locking/mutexes: Modify the way optimistic spinners are queued
    locking/mutexes: Return false if task need_resched() in mutex_can_spin_on_owner()
    locking: Move mcs_spinlock.h into kernel/locking/
    m68k: Skip futex_atomic_cmpxchg_inatomic() test
    futex: Allow architectures to skip futex_atomic_cmpxchg_inatomic() test
    Revert "sched/wait: Suppress Sparse 'variable shadowing' warning"
    lockdep: Change lockdep_set_novalidate_class() to use _and_name
    lockdep: Change mark_held_locks() to check hlock->check instead of lockdep_no_validate
    lockdep: Don't create the wrong dependency on hlock->check == 0
    lockdep: Make held_lock->check and "int check" argument bool
    locking/mcs: Allow architecture specific asm files to be used for contended case
    locking/mcs: Order the header files in Kbuild of each architecture in alphabetical order
    sched/wait: Suppress Sparse 'variable shadowing' warning
    hung_task/Documentation: Fix hung_task_warnings description
    locking/mcs: Allow architectures to hook in to contended paths
    locking/mcs: Micro-optimize the MCS code, add extra comments
    ...

    Linus Torvalds
     

31 Mar, 2014

4 commits

  • Signed-off-by: Geert Uytterhoeven

    Geert Uytterhoeven
     
  • It is advisable to disable the NMI before registering the IRQ handler as
    registering the IRQ handler unmasks the IRQ on the GIC, so if U-Boot has
    left the NMI enabled and the NMI pin is active we will immediately get
    an interrupt before any driver has claimed the downstream interrupt of
    the NMI.

    Signed-off-by: Hans de Goede
    Signed-off-by: Carlo Caione
    Cc: maxime.ripard@free-electrons.com
    Cc: linux-arm-kernel@lists.infradead.org
    Cc: linux-sunxi@googlegroups.com
    Link: http://lkml.kernel.org/r/1395939759-11135-3-git-send-email-carlo@caione.org
    Signed-off-by: Thomas Gleixner

    Hans de Goede
     
  • The IRQ line used in sun6i-a31.dtsi for the NMI controller is wrong.
    This causes a IRQ storm since the NMI controller is repeatedly fired.
    This patch fixes this problem assigning the correct IRQ number to the
    NMI controller.

    Signed-off-by: Hans de Goede
    Signed-off-by: Carlo Caione
    Cc: maxime.ripard@free-electrons.com
    Cc: linux-arm-kernel@lists.infradead.org
    Cc: linux-sunxi@googlegroups.com
    Link: http://lkml.kernel.org/r/1395939759-11135-2-git-send-email-carlo@caione.org
    Signed-off-by: Thomas Gleixner

    Hans de Goede
     
  • Need export symbol flush_icache_range() to modules, just like another
    platforms have done, or can not pass compiling.

    The related error (with allmodconfig under avr32):

    ERROR: "flush_icache_range" [drivers/misc/lkdtm.ko] undefined!
    make[1]: *** [__modpost] Error 1
    make: *** [modules] Error 2

    Signed-off-by: Chen Gang
    Acked-by: Hans-Christian Egtvedt

    Chen Gang