06 Jul, 2015

1 commit

  • …linux-platform-drivers-x86

    Pull late x86 platform driver updates from Darren Hart:
    "The following came in a bit later and I wanted them to bake in next a
    few more days before submitting, thus the second pull.

    A new intel_pmc_ipc driver, a symmetrical allocation and free fix in
    dell-laptop, a couple minor fixes, and some updated documentation in
    the dell-laptop comments.

    intel_pmc_ipc:
    - Add Intel Apollo Lake PMC IPC driver

    tc1100-wmi:
    - Delete an unnecessary check before the function call "kfree"

    dell-laptop:
    - Fix allocating & freeing SMI buffer page
    - Show info about WiGig and UWB in debugfs
    - Update information about wireless control"

    * tag 'platform-drivers-x86-v4.2-2' of git://git.infradead.org/users/dvhart/linux-platform-drivers-x86:
    intel_pmc_ipc: Add Intel Apollo Lake PMC IPC driver
    tc1100-wmi: Delete an unnecessary check before the function call "kfree"
    dell-laptop: Fix allocating & freeing SMI buffer page
    dell-laptop: Show info about WiGig and UWB in debugfs
    dell-laptop: Update information about wireless control

    Linus Torvalds
     

05 Jul, 2015

2 commits

  • Pull more vfs updates from Al Viro:
    "Assorted VFS fixes and related cleanups (IMO the most interesting in
    that part are f_path-related things and Eric's descriptor-related
    stuff). UFS regression fixes (it got broken last cycle). 9P fixes.
    fs-cache series, DAX patches, Jan's file_remove_suid() work"

    [ I'd say this is much more than "fixes and related cleanups". The
    file_table locking rule change by Eric Dumazet is a rather big and
    fundamental update even if the patch isn't huge. - Linus ]

    * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs: (49 commits)
    9p: cope with bogus responses from server in p9_client_{read,write}
    p9_client_write(): avoid double p9_free_req()
    9p: forgetting to cancel request on interrupted zero-copy RPC
    dax: bdev_direct_access() may sleep
    block: Add support for DAX reads/writes to block devices
    dax: Use copy_from_iter_nocache
    dax: Add block size note to documentation
    fs/file.c: __fget() and dup2() atomicity rules
    fs/file.c: don't acquire files->file_lock in fd_install()
    fs:super:get_anon_bdev: fix race condition could cause dev exceed its upper limitation
    vfs: avoid creation of inode number 0 in get_next_ino
    namei: make set_root_rcu() return void
    make simple_positive() public
    ufs: use dir_pages instead of ufs_dir_pages()
    pagemap.h: move dir_pages() over there
    remove the pointless include of lglock.h
    fs: cleanup slight list_entry abuse
    xfs: Correctly lock inode when removing suid and file capabilities
    fs: Call security_ops->inode_killpriv on truncate
    fs: Provide function telling whether file_remove_privs() will do anything
    ...

    Linus Torvalds
     
  • Pull kvm fixes from Paolo Bonzini:
    "Except for the preempt notifiers fix, these are all small bugfixes
    that could have been waited for -rc2. Sending them now since I was
    taking care of Peter's patch anyway"

    * tag 'for-linus' of git://git.kernel.org/pub/scm/virt/kvm/kvm:
    kvm: add hyper-v crash msrs values
    KVM: x86: remove data variable from kvm_get_msr_common
    KVM: s390: virtio-ccw: don't overwrite config space values
    KVM: x86: keep track of LVT0 changes under APICv
    KVM: x86: properly restore LVT0
    KVM: x86: make vapics_in_nmi_mode atomic
    sched, preempt_notifier: separate notifier registration from static_key inc/dec

    Linus Torvalds
     

04 Jul, 2015

13 commits

  • Pull x86 fixes from Ingo Molnar:
    "Two FPU rewrite related fixes. This addresses all known x86
    regressions at this stage. Also some other misc fixes"

    * 'x86-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
    x86/fpu: Fix boot crash in the early FPU code
    x86/asm/entry/64: Update path names
    x86/fpu: Fix FPU related boot regression when CPUID masking BIOS feature is enabled
    x86/boot/setup: Clean up the e820_reserve_setup_data() code
    x86/kaslr: Fix typo in the KASLR_FLAG documentation

    Linus Torvalds
     
  • Pull perf updates from Ingo Molnar:
    "This tree includes an x86 PMU scheduling fix, but most changes are
    late breaking tooling fixes and updates:

    User visible fixes:

    - Create config.detected into OUTPUT directory, fixing parallel
    builds sharing the same source directory (Aaro Kiskinen)

    - Allow to specify custom linker command, fixing some MIPS64 builds.
    (Aaro Kiskinen)

    - Fix to show proper convergence stats in 'perf bench numa' (Srikar
    Dronamraju)

    User visible changes:

    - Validate syscall list passed via -e argument to 'perf trace'.
    (Arnaldo Carvalho de Melo)

    - Introduce 'perf stat --per-thread' (Jiri Olsa)

    - Check access permission for --kallsyms and --vmlinux (Li Zhang)

    - Move toggling event logic from 'perf top' and into hists browser,
    allowing freeze/unfreeze with event lists with more than one entry
    (Namhyung Kim)

    - Add missing newlines when dumping PERF_RECORD_FINISHED_ROUND and
    showing the Aggregated stats in 'perf report -D' (Adrian Hunter)

    Infrastructure fixes:

    - Add missing break for PERF_RECORD_ITRACE_START, which caused those
    events samples to be parsed as well as PERF_RECORD_LOST_SAMPLES.
    ITRACE_START only appears when Intel PT or BTS are present, so..
    (Jiri Olsa)

    - Call the perf_session destructor when bailing out in the inject,
    kmem, report, kvm and mem tools (Taeung Song)

    Infrastructure changes:

    - Move stuff out of 'perf stat' and into the lib for further use
    (Jiri Olsa)

    - Reference count the cpu_map and thread_map classes (Jiri Olsa)

    - Set evsel->{cpus,threads} from the evlist, if not set, allowing the
    generalization of some 'perf stat' functions that previously were
    accessing private static evlist variable (Jiri Olsa)

    - Delete an unnecessary check before the calling free_event_desc()
    (Markus Elfring)

    - Allow auxtrace data alignment (Adrian Hunter)

    - Allow events with dot (Andi Kleen)

    - Fix failure to 'perf probe' events on arm (He Kuang)

    - Add testing for Makefile.perf (Jiri Olsa)

    - Add test for make install with prefix (Jiri Olsa)

    - Fix single target build dependency check (Jiri Olsa)

    - Access thread_map entries via accessors, prep patch to hold more
    info per entry, for ongoing 'perf stat --per-thread' work (Jiri
    Olsa)

    - Use __weak definition from compiler.h (Sukadev Bhattiprolu)

    - Split perf_pmu__new_alias() (Sukadev Bhattiprolu)"

    * 'perf-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (54 commits)
    perf tools: Allow to specify custom linker command
    perf tools: Create config.detected into OUTPUT directory
    perf mem: Fill in the missing session freeing after an error occurs
    perf kvm: Fill in the missing session freeing after an error occurs
    perf report: Fill in the missing session freeing after an error occurs
    perf kmem: Fill in the missing session freeing after an error occurs
    perf inject: Fill in the missing session freeing after an error occurs
    perf tools: Add missing break for PERF_RECORD_ITRACE_START
    perf/x86: Fix 'active_events' imbalance
    perf symbols: Check access permission when reading symbol files
    perf stat: Introduce --per-thread option
    perf stat: Introduce print_counters function
    perf stat: Using init_stats instead of memset
    perf stat: Rename print_interval to process_interval
    perf stat: Remove perf_evsel__read_cb function
    perf stat: Move perf_stat initialization counter process code
    perf stat: Move zero_per_pkg into counter process code
    perf stat: Separate counters reading and processing
    perf stat: Introduce read_counters function
    perf stat: Introduce perf_evsel__read function
    ...

    Linus Torvalds
     
  • Jan Kara and Thomas Gleixner reported boot crashes in the FPU
    code:

    general protection fault: 0000 [#1] SMP
    RIP: 0010:[] [] mxcsr_feature_mask_init+0x1c/0x40

    2b:* 0f ae 85 00 fe ff ff fxsave -0x200(%rbp)

    and bisected it down to the following FPU commit:

    91a8c2a5b43f ("x86/fpu: Clean up and fix MXCSR handling")

    The reason is that the on-stack FPU registers state variable,
    used by the FXSAVE instruction, did not have the required
    minimum alignment of 16 bytes, causing the general protection
    fault.

    This is most likely a GCC bug in older GCC versions, but the
    offending commit also added a bogus extra 32-byte alignment
    (which GCC ignored too).

    So fix this bug by making the variable static again, but also
    mark it __initdata this time, because fpu__init_system_mxcsr()
    is now an __init function.

    Reported-and-bisected-by: Jan Kara
    Reported-bisected-and-tested-by: Thomas Gleixner
    Cc: Andy Lutomirski
    Cc: Borislav Petkov
    Cc: Brian Gerst
    Cc: Dave Hansen
    Cc: Denys Vlasenko
    Cc: Fenghua Yu
    Cc: H. Peter Anvin
    Cc: Jan Kara
    Cc: Linus Torvalds
    Cc: Oleg Nesterov
    Cc: Peter Zijlstra
    Cc: Quentin Casasnovas
    Cc: Thomas Gleixner
    Link: http://lkml.kernel.org/r/20150704075819.GA9201@gmail.com
    Signed-off-by: Ingo Molnar

    Ingo Molnar
     
  • Pull user namespace updates from Eric Biederman:
    "Long ago and far away when user namespaces where young it was realized
    that allowing fresh mounts of proc and sysfs with only user namespace
    permissions could violate the basic rule that only root gets to decide
    if proc or sysfs should be mounted at all.

    Some hacks were put in place to reduce the worst of the damage could
    be done, and the common sense rule was adopted that fresh mounts of
    proc and sysfs should allow no more than bind mounts of proc and
    sysfs. Unfortunately that rule has not been fully enforced.

    There are two kinds of gaps in that enforcement. Only filesystems
    mounted on empty directories of proc and sysfs should be ignored but
    the test for empty directories was insufficient. So in my tree
    directories on proc, sysctl and sysfs that will always be empty are
    created specially. Every other technique is imperfect as an ordinary
    directory can have entries added even after a readdir returns and
    shows that the directory is empty. Special creation of directories
    for mount points makes the code in the kernel a smidge clearer about
    it's purpose. I asked container developers from the various container
    projects to help test this and no holes were found in the set of mount
    points on proc and sysfs that are created specially.

    This set of changes also starts enforcing the mount flags of fresh
    mounts of proc and sysfs are consistent with the existing mount of
    proc and sysfs. I expected this to be the boring part of the work but
    unfortunately unprivileged userspace winds up mounting fresh copies of
    proc and sysfs with noexec and nosuid clear when root set those flags
    on the previous mount of proc and sysfs. So for now only the atime,
    read-only and nodev attributes which userspace happens to keep
    consistent are enforced. Dealing with the noexec and nosuid
    attributes remains for another time.

    This set of changes also addresses an issue with how open file
    descriptors from /proc//ns/* are displayed. Recently readlink of
    /proc//fd has been triggering a WARN_ON that has not been
    meaningful since it was added (as all of the code in the kernel was
    converted) and is not now actively wrong.

    There is also a short list of issues that have not been fixed yet that
    I will mention briefly.

    It is possible to rename a directory from below to above a bind mount.
    At which point any directory pointers below the renamed directory can
    be walked up to the root directory of the filesystem. With user
    namespaces enabled a bind mount of the bind mount can be created
    allowing the user to pick a directory whose children they can rename
    to outside of the bind mount. This is challenging to fix and doubly
    so because all obvious solutions must touch code that is in the
    performance part of pathname resolution.

    As mentioned above there is also a question of how to ensure that
    developers by accident or with purpose do not introduce exectuable
    files on sysfs and proc and in doing so introduce security regressions
    in the current userspace that will not be immediately obvious and as
    such are likely to require breaking userspace in painful ways once
    they are recognized"

    * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/ebiederm/user-namespace:
    vfs: Remove incorrect debugging WARN in prepend_path
    mnt: Update fs_fully_visible to test for permanently empty directories
    sysfs: Create mountpoints with sysfs_create_mount_point
    sysfs: Add support for permanently empty directories to serve as mount points.
    kernfs: Add support for always empty directories.
    proc: Allow creating permanently empty directories that serve as mount points
    sysctl: Allow creating permanently empty directories that serve as mountpoints.
    fs: Add helper functions for permanently empty directories.
    vfs: Ignore unlocked mounts in fs_fully_visible
    mnt: Modify fs_fully_visible to deal with locked ro nodev and atime
    mnt: Refactor the logic for mounting sysfs and proc in a user namespace

    Linus Torvalds
     
  • Pull hwspinlock updates from Ohad Ben-Cohen:

    - hwspinlock core DT support from Suman Anna

    - OMAP hwspinlock DT support from Suman Anna

    - QCOM hwspinlock DT support from Bjorn Andersson

    - a new CSR atlas7 hwspinlock driver from Wei Chen

    - CSR atlas7 hwspinlock DT binding document from Wei Chen

    - a tiny QCOM hwspinlock driver fix from Bjorn Andersson

    * tag 'hwspinlock-4.2' of git://git.kernel.org/pub/scm/linux/kernel/git/ohad/hwspinlock:
    hwspinlock: qcom: Correct msb in regmap_field
    DT: hwspinlock: add the CSR atlas7 hwspinlock bindings document
    hwspinlock: add a CSR atlas7 driver
    hwspinlock: qcom: Add support for Qualcomm HW Mutex block
    DT: hwspinlock: Add binding documentation for Qualcomm hwmutex
    hwspinlock/omap: add support for dt nodes
    Documentation: dt: add the omap hwspinlock bindings document
    hwspinlock/core: add device tree support
    Documentation: dt: add common bindings for hwspinlock

    Linus Torvalds
     
  • Pull arm64 fixes (and cleanups) from Catalin Marinas:
    "Various arm64 fixes:

    - suspicious RCU usage warning
    - BPF (out of bounds array read and endianness conversion)
    - perf (of_node usage after of_node_put, cpu_pmu->plat_device
    assignment)
    - huge pmd/pud check for value 0
    - rate-limiting should only take unhandled signals into account

    Clean-up:

    - incorrect use of pgprot_t type
    - unused header include
    - __init annotation to arm_cpuidle_init
    - pr_debug instead of pr_error for disabled GICC entries in
    ACPI/MADT"

    * tag 'arm64-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux:
    arm64: Fix show_unhandled_signal_ratelimited usage
    ARM64 / SMP: Switch pr_err() to pr_debug() for disabled GICC entry
    arm64: cpuidle: add __init section marker to arm_cpuidle_init
    arm64: Don't report clear pmds and puds as huge
    arm64: perf: fix unassigned cpu_pmu->plat_device when probing PMU PPIs
    arm64: perf: Don't use of_node after putting it
    arm64: fix incorrect use of pgprot_t variable
    arm64/hw_breakpoint.c: remove unnecessary header
    arm64: bpf: fix endianness conversion bugs
    arm64: bpf: fix out-of-bounds read in bpf2a64_offset()
    ARM64: smp: Fix suspicious RCU usage with ipi tracepoints

    Linus Torvalds
     
  • Pull nios2 update from Ley Foon Tan:
    "Check number of timer instances"

    * tag 'nios2-v4.2' of git://git.rocketboards.org/linux-socfpga-next:
    nios2: check number of timer instances

    Linus Torvalds
     
  • Added Hyper-V crash msrs values - HV_X64_MSR_CRASH*.

    Signed-off-by: Andrey Smetanin
    Signed-off-by: Denis V. Lunev
    Reviewed-by: Peter Hornyack
    CC: Paolo Bonzini
    CC: Gleb Natapov
    Signed-off-by: Paolo Bonzini

    Andrey Smetanin
     
  • Commit 609e36d372ad ("KVM: x86: pass host_initiated to functions that
    read MSRs") modified kvm_get_msr_common function to use msr_info->data
    instead of data but missed one occurrence. Replace it and remove the
    unused local variable.

    Fixes: 609e36d372ad ("KVM: x86: pass host_initiated to functions that
    read MSRs")
    Signed-off-by: Nicolas Iooss
    Signed-off-by: Paolo Bonzini

    Nicolas Iooss
     
  • Memory-mapped LVT0 register already contains the new value when APICv
    traps so we can't directly detect a change.
    Memorize a bit we are interested in to enable legacy NMI watchdog.

    Suggested-by: Yoshida Nobuo
    Signed-off-by: Radim Krčmář
    Signed-off-by: Paolo Bonzini

    Radim Krčmář
     
  • Legacy NMI watchdog didn't work after migration/resume, because
    vapics_in_nmi_mode was left at 0.

    Cc: stable@vger.kernel.org
    Signed-off-by: Radim Krčmář
    Signed-off-by: Paolo Bonzini

    Radim Krčmář
     
  • Writes were a bit racy, but hard to turn into a bug at the same time.
    (Particularly because modern Linux doesn't use this feature anymore.)

    Signed-off-by: Radim Krčmář
    [Actually the next patch makes it much, much easier to trigger the race
    so I'm including this one for stable@ as well. - Paolo]
    Cc: stable@vger.kernel.org
    Signed-off-by: Paolo Bonzini

    Radim Krčmář
     
  • Commit 86dca36e6ba introduced ratelimited usage for
    'unhandled_signal' messages.
    The commit checks the ratelimit irrespective of whether
    the signal is handled or not, which is wrong and leads
    to false reports like the below in dmesg :

    __do_user_fault: 127 callbacks suppressed

    Do the ratelimit check only if the signal is unhandled.

    Fixes: 86dca36e6ba0 ("arm64: use private ratelimit state along with show_unhandled_signals")
    Cc: Vladimir Murzin
    Signed-off-by: Suzuki K. Poulose
    Signed-off-by: Catalin Marinas

    Suzuki K. Poulose
     

03 Jul, 2015

10 commits

  • It is normal that firmware presents GICC entry or entries (processors)
    with disabled flag in ACPI MADT, taking a system of 16 cpus for example,
    ACPI firmware may present 8 ebabled first with another 8 cpus disabled
    in MADT, the disabled cpus can be hot-added later.

    Firmware may also present more cpus than the hardware actually has, but
    disabled the unused ones, and easily enable it when the hardware has such
    cpus to make the firmware code scalable.

    So that's not an error for disabled cpus in MADT, we can switch pr_err()
    to pr_debug() to make the boot a little quieter by default.

    Since hwid for disabled cpus often are invalid, and we check invalid hwid
    first in the code, for use case that hot add cpus later will be filtered
    out and will not be counted in possible cups, so move this check before
    the hwid one to prepare the code to count for disabeld cpus when cpu
    hot-plug is introduced.

    Signed-off-by: Hanjun Guo
    Reviewed-by: Al Stone
    Signed-off-by: Catalin Marinas

    Hanjun Guo
     
  • Pull ia64 boot noise reduction fix from Tony Luck:
    "Remove some boot noise from a now-invalid check that pages are
    reserved"

    * tag 'please-pull-put_kernel_page' of git://git.kernel.org/pub/scm/linux/kernel/git/aegl/linux:
    [IA64] Drop debug test/printk that some special pages are marked reserved

    Linus Torvalds
     
  • Pull ARM SoC late fixes and dependencies from Kevin Hilman:
    "This is a collection of a few late fixes and other misc stuff that had
    dependencies on things being merged from other trees.

    Other than the fixes, the primary feature being added is the
    conversion of some OMAP drivers to the new generic wakeirq interface"

    * tag 'armsoc-late' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc:
    ARM: multi_v7_defconfig: Enable BRCMNAND driver
    ARM: BCM: Do not select CONFIG_MTD_NAND_BRCMNAND
    ARM: at91/dt: update udc compatible strings
    ARM: at91/dt: trivial: fix USB udc compatible string
    arm64: dts: Add APM X-Gene standby GPIO controller DTS entries
    soc: qcom: spm: Fix idle on THUMB2 kernels
    ARM: dove: fix legacy dove IRQ numbers
    ARM: mvebu: fix suspend to RAM on big-endian configurations
    ARM: mvebu: adjust Armada XP DT spi muxing after pinctrl function rename
    serial: 8250_omap: Move wake-up interrupt to generic wakeirq
    serial: omap: Switch wake-up interrupt to generic wakeirq
    mmc: omap_hsmmc: Change wake-up interrupt to use generic wakeirq

    Linus Torvalds
     
  • In commit 92923ca3aace "mm: meminit: only set page reserved in the memblock region"
    we dropped setting the reserved bits for all pages. This results in some warnings
    on ia64:

    put_kernel_page: page at 0xe000000005588000 not in reserved memory
    put_kernel_page: page at 0xe000000005588000 not in reserved memory
    put_kernel_page: page at 0xe000000005580000 not in reserved memory
    put_kernel_page: page at 0xe000000005580000 not in reserved memory
    put_kernel_page: page at 0xe000000005580000 not in reserved memory
    put_kernel_page: page at 0xe000000005580000 not in reserved memory

    the two different pages match up with two objects from the loaded kernel
    that get mapped by arch/ia64/mm/init.c:setup_gate()

    a000000101588000 D __start_gate_section
    a000000101580000 D empty_zero_page

    In a discussion with Mel Gorman:
    http://lkml.kernel.org/r/20150526102219.GB13750%40suse.de
    he suggested that while the preferred approach might be to
    set the reserved bit for these pages, it would also be OK
    to just drop the test:
    "as it's a debugging check that is ia-64 specific"

    After hunting around a bit and failin to find a good place to mark these
    pages as reserved - I decided to just delete the test.

    Signed-off-by: Tony Luck

    Tony Luck
     
  • Pull init.h/module.h fragility fixes from Paul Gortmaker:
    "Fixup various init.h misuses that are fragile wrt code moving to
    module.h

    What started as a removal of no longer required include
    due to the earlier __cpuinit and __devinit removal led to the
    observation that some module specfic support was living in init.h
    itself, thus preventing the full removal from introducing compile
    regressions.

    This series includes a few final fixups needed prior to the relocation
    of the modular init code from to . These are
    things that weren't easily categorized into any of the other previous
    series categories already requested for pull.

    That said, each fixup branch (including this one) is independent and
    there are no ordering constraints. Only the final code relocation
    (which is NOT in this pull) requires that all my cleanup branches be
    merged first"

    * tag 'module-misc-v4.1-rc8' of git://git.kernel.org/pub/scm/linux/kernel/git/paulg/linux:
    tile: add init.h to usb.c to avoid compile failure
    arm: fix implicit #include in entry asm.
    x86: replace __init_or_module with __init in non-modular vsmp_64.c

    Linus Torvalds
     
  • …scm/linux/kernel/git/paulg/linux

    Pull module_init replacement part two from Paul Gortmaker:
    "Replace module_init with appropriate alternate initcall in non
    modules.

    This series converts non-modular code that is using the module_init()
    call to hook itself into the system to instead use one of our
    alternate priority initcalls.

    Unlike the previous series that used device_initcall and hence was a
    runtime no-op, these commits change to one of the alternate initcalls,
    because (a) we have them and (b) it seems like the right thing to do.

    For example, it would seem logical to use arch_initcall for arch
    specific setup code and fs_initcall for filesystem setup code.

    This does mean however, that changes in the init ordering will be
    taking place, and so there is a small risk that some kind of implicit
    init ordering issue may lie uncovered. But I think it is still better
    to give these ones sensible priorities than to just assign them all to
    device_initcall in order to exactly preserve the old ordering.

    Thad said, we have already made similar changes in core kernel code in
    commit c96d6660dc65 ("kernel: audit/fix non-modular users of
    module_init in core code") without any regressions reported, so this
    type of change isn't without precedent. It has also got the same
    local testing and linux-next coverage as all the other pull requests
    that I'm sending for this merge window have got.

    Once again, there is an unused module_exit function removal that shows
    up as an outlier upon casual inspection of the diffstat"

    * tag 'module_init-alternate_initcall-v4.1-rc8' of git://git.kernel.org/pub/scm/linux/kernel/git/paulg/linux:
    x86: perf_event_intel_pt.c: use arch_initcall to hook in enabling
    x86: perf_event_intel_bts.c: use arch_initcall to hook in enabling
    mm/page_owner.c: use late_initcall to hook in enabling
    lib/list_sort: use late_initcall to hook in self tests
    arm: use subsys_initcall in non-modular pl320 IPC code
    powerpc: don't use module_init for non-modular core hugetlb code
    powerpc: use subsys_initcall for Freescale Local Bus
    x86: don't use module_init for non-modular core bootflag code
    netfilter: don't use module_init/exit in core IPV4 code
    fs/notify: don't use module_init for non-modular inotify_user code
    mm: replace module_init usages with subsys_initcall in nommu.c

    Linus Torvalds
     
  • …/linux/kernel/git/paulg/linux

    Pull module_init replacement part one from Paul Gortmaker:
    "Replace module_init with equivalent device_initcall in non modules.

    This series of commits converts non-modular code that is using the
    module_init() call to hook itself into the system to instead use
    device_initcall().

    The conversion is a runtime no-op, since module_init actually becomes
    __initcall in the non-modular case, and that in turn gets mapped onto
    device_initcall. A couple files show a larger negative diffstat,
    representing ones that had a module_exit function that we remove here
    vs previously relying on the linker to dispose of it.

    We make this conversion now, so that we can relocate module_init from
    init.h into module.h in the future.

    The files changed here are just limited to those that would otherwise
    have to add module.h to obviously non-modular code, in order to avoid
    a compile fail, as testing has shown"

    * tag 'module_init-device_initcall-v4.1-rc8' of git://git.kernel.org/pub/scm/linux/kernel/git/paulg/linux:
    MIPS: don't use module_init in non-modular cobalt/mtd.c file
    drivers/leds: don't use module_init in non-modular leds-cobalt-raq.c
    cris: don't use module_init for non-modular core eeprom.c code
    tty/metag_da: Avoid module_init/module_exit in non-modular code
    drivers/clk: don't use module_init in clk-nomadik.c which is non-modular
    xtensa: don't use module_init for non-modular core network.c code
    sh: don't use module_init in non-modular psw.c code
    mn10300: don't use module_init in non-modular flash.c code
    parisc64: don't use module_init for non-modular core perf code
    parisc: don't use module_init for non-modular core pdc_cons code
    cris: don't use module_init for non-modular core intmem.c code
    ia64: don't use module_init in non-modular sim/simscsi.c code
    ia64: don't use module_init for non-modular core kernel/mca.c code
    arm: don't use module_init in non-modular mach-vexpress/spc.c code
    powerpc: don't use module_init in non-modular 83xx suspend code
    powerpc: use device_initcall for registering rtc devices
    x86: don't use module_init in non-modular devicetree.c code
    x86: don't use module_init in non-modular intel_mid_vrtc.c

    Linus Torvalds
     
  • Pull implicit module.h fixes from Paul Gortmaker:
    "Fix up implicit users that will break later.

    The files changed here are simply modular source files that are
    implicitly relying on being present. We fix them up now,
    so that we can decouple some of the module related init code from the
    core init code in the future.

    The addition of the module.h include to several files here is also a
    no-op from a code generation point of view, else there would already
    be compile issues with these files today.

    There may be lots more implicit includes of in tree, but
    these are the ones that extensive build test coverage has shown that
    must be fixed in order to avoid build breakage fallout for the pending
    module.h init.h code relocation we desire to complete"

    * tag 'module-implicit-v4.1-rc8' of git://git.kernel.org/pub/scm/linux/kernel/git/paulg/linux:
    frv: add module.h to mb93090-mb00/flash.c to avoid compile fail
    drivers/cpufreq: include for modular exynos-cpufreq.c code
    drivers/staging: include for modular android tegra_ion code
    crypto/asymmetric_keys: pkcs7_key_type needs module.h
    sh: mach-highlander/psw.c is tristate and should use module.h
    drivers/regulator: include for modular max77802 code
    drivers/pcmcia: include for modular xxs1500_ss code
    drivers/hsi: include for modular omap_ssi code
    drivers/gpu: include for modular rockchip code
    drivers/gpio: include for modular crystalcove code
    drivers/clk: include for clk-max77xxx modular code

    Linus Torvalds
     
  • Pull __cpuinit removal from Paul Gortmaker:
    "Remove __cpuinit macros and users.

    We removed the __cpuinit stuff in 3.11-rc1 with commit 22f0a2736774
    ("init.h: remove __cpuinit sections from the kernel") but we left some
    no-op stubs as a courtesy to unmerged code.

    Here we get rid of the stubs as well, since (as can be seen in these
    changes) they are enabling use cases to sneak back in, primarily from
    older BSP code that has been living out of tree for some time prior to
    getting mainlined. So we get rid of these "new" users 1st and then
    get rid of the stubs.

    Obviously, getting rid of the stubs can't happen until all the users
    are gone, so I had to keep this together as a series, even though some
    of these commits since got picked up into maintainers trees as well.

    The nature of this change is such that it should have zero impact on
    the generated runtime.

    This is one of several independent cleanup branches aimed at enabling
    better organization in the init.h and module.h code. They have been
    getting coverage in the linux-next tree for the last month, in
    addition to my local testing, which also covers approximately a half
    dozen or more architectures"

    * tag 'cpuinit-v4.1-rc8' of git://git.kernel.org/pub/scm/linux/kernel/git/paulg/linux:
    init: delete the __cpuinit related stubs
    kernel/cpu.c: remove new instance of __cpuinit that crept back in
    sched/core: remove __cpuinit section tag that crept back in.
    mips/mm/tlbex: remove new instance of __cpuinit that crept back in
    mips/c-r4k: remove legacy __cpuinit section that crept in
    mips/bcm77xx: remove legacy __cpuinit sections that crept in
    mips/ath25: remove legacy __cpuinit section that crept in
    arm/mach-hisi: remove legacy __CPUINIT section that crept in
    arm/mach-rockchip: remove legacy __cpuinit section that crept in
    arm/mach-mvebu: remove legacy __cpuinit sections that crept in
    arm/mach-keystone: remove legacy __cpuinit sections that crept in

    Linus Torvalds
     
  • It is not needed after booting, this patch moves the arm_cpuidle_init()
    function to the __init section.

    Signed-off-by: Jisheng Zhang
    Reviewed-by: Krzysztof Kozlowski
    Signed-off-by: Catalin Marinas

    Jisheng Zhang
     

02 Jul, 2015

14 commits

  • Pull devicetree updates from Grant Likely:
    "A whole lot of bug fixes.

    Nothing stands out here except the ability to enable CONFIG_OF on
    every architecture, and an import of a newer version of dtc"

    * tag 'devicetree-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/glikely/linux: (22 commits)
    of/irq: Rename "intc_desc" to "of_intc_desc" to fix OF on sh
    of/irq: Fix pSeries boot failure
    Documentation: DT: Fix a typo in the filename "lantiq,-pinumx.txt"
    of: define of_find_node_by_phandle for !CONFIG_OF
    of/address: use atomic allocation in pci_register_io_range()
    of: Add vendor prefix for Zodiac Inflight Innovations
    dt/fdt: add empty versions of early_init_dt_*_memory_arch
    of: clean-up unnecessary libfdt include paths
    of: make unittest select OF_EARLY_FLATTREE instead of depend on it
    of: make CONFIG_OF user selectable
    MIPS: prepare for user enabling of CONFIG_OF
    of/fdt: fix argument name and add comments of unflatten_dt_node()
    of: return NUMA_NO_NODE from fallback of_node_to_nid()
    tps6507x.txt: Remove executable permission
    of/overlay: Grammar s/an negative/a negative/
    of/fdt: Make fdt blob input parameters of unflatten functions const
    of: add helper function to retrive match data
    of: Grammar s/property exist/property exists/
    of: Move OF flags to be visible even when !CONFIG_OF
    scripts/dtc: Update to upstream version 9d3649bd3be245c9
    ...

    Linus Torvalds
     
  • Pull clock framework updates from Michael Turquette:
    "The changes to the common clock framework for 4.2 are dominated by new
    drivers and updates to existing ones, as usual.

    There are some fixes to the framework itself and several cleanups for
    sparse warnings, etc"

    * tag 'clk-for-linus-4.2' of git://git.kernel.org/pub/scm/linux/kernel/git/clk/linux: (135 commits)
    clk: stm32: Add clock driver for STM32F4[23]xxx devices
    dt-bindings: Document the STM32F4 clock bindings
    cpufreq: exynos: remove Exynos4210 specific cpufreq driver support
    ARM: Exynos: switch to using generic cpufreq driver for Exynos4210
    clk: samsung: exynos4: add cpu clock configuration data and instantiate cpu clock
    clk: samsung: add infrastructure to register cpu clocks
    clk: add CLK_RECALC_NEW_RATES clock flag for Exynos cpu clock support
    doc: dt: add documentation for lpc1850-ccu clk driver
    clk: add lpc18xx ccu clk driver
    doc: dt: add documentation for lpc1850-cgu clk driver
    clk: add lpc18xx cgu clk driver
    clk: keystone: add support for post divider register for main pll
    clk: mvebu: flag the crypto clk as CLK_IGNORE_UNUSED
    clk: cygnus: remove Cygnus dummy clock binding
    clk: cygnus: add clock support for Broadcom Cygnus
    clk: Change bcm clocks build dependency
    clk: iproc: add initial common clock support
    clk: iproc: define Broadcom iProc clock binding
    MAINTAINERS: update email for Michael Turquette
    clk: meson: add some error handling in meson_clk_register_cpu()
    ...

    Linus Torvalds
     
  • Merge third patchbomb from Andrew Morton:

    - the rest of MM

    - scripts/gdb updates

    - ipc/ updates

    - lib/ updates

    - MAINTAINERS updates

    - various other misc things

    * emailed patches from Andrew Morton : (67 commits)
    genalloc: rename of_get_named_gen_pool() to of_gen_pool_get()
    genalloc: rename dev_get_gen_pool() to gen_pool_get()
    x86: opt into HAVE_COPY_THREAD_TLS, for both 32-bit and 64-bit
    MAINTAINERS: add zpool
    MAINTAINERS: BCACHE: Kent Overstreet has changed email address
    MAINTAINERS: move Jens Osterkamp to CREDITS
    MAINTAINERS: remove unused nbd.h pattern
    MAINTAINERS: update brcm gpio filename pattern
    MAINTAINERS: update brcm dts pattern
    MAINTAINERS: update sound soc intel patterns
    MAINTAINERS: remove website for paride
    MAINTAINERS: update Emulex ocrdma email addresses
    bcache: use kvfree() in various places
    libcxgbi: use kvfree() in cxgbi_free_big_mem()
    target: use kvfree() in session alloc and free
    IB/ehca: use kvfree() in ipz_queue_{cd}tor()
    drm/nouveau/gem: use kvfree() in u_free()
    drm: use kvfree() in drm_free_large()
    cxgb4: use kvfree() in t4_free_mem()
    cxgb3: use kvfree() in cxgb_free_mem()
    ...

    Linus Torvalds
     
  • Pull irq fixes from Thomas Gleixner:
    "This contains:

    - a series of fixes for interrupt drivers to prevent a potential race
    when installing a chained interrupt handler

    - a fix for cpumask pointer misuse

    - a fix for using the wrong interrupt number from struct irq_data

    - removal of unused code and outdated comments

    - a few new helper functions which allow us to cleanup the interrupt
    handling code further in 4.3

    I decided against doing the cleanup at the end of this merge window
    and rather do the preparatory steps for 4.3, so we can run the final
    ABI change at the end of the 4.3 merge window with less risk"

    * 'irq-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (26 commits)
    ARM/LPC32xx: Use irq not hwirq for __irq_set_handler_locked()
    genirq: Implement irq_set_handler_locked()/irq_set_chip_handler_name_locked()
    genirq: Introduce helper irq_desc_get_irq()
    genirq: Remove irq_node()
    genirq: Clean up outdated comments related to include/linux/irqdesc.h
    mn10300: Fix incorrect use of irq_data->affinity
    MIPS/ralink: Fix race in installing chained IRQ handler
    MIPS/pci: Fix race in installing chained IRQ handler
    MIPS/ath25: Fix race in installing chained IRQ handler
    MIPS/ath25: Fix race in installing chained IRQ handler
    m68k/psc: Fix race in installing chained IRQ handler
    avr32/at32ap: Fix race in installing chained IRQ handler
    sh/intc: Fix race in installing chained IRQ handler
    sh/intc: Fix potential race in installing chained IRQ handler
    pinctrl/sun4i: Fix race in installing chained IRQ handler
    pinctrl/samsung: Fix race in installing chained IRQ handler
    pinctrl/samsung: Fix race in installing chained IRQ handler
    pinctrl/exynos: Fix race in installing chained IRQ handler
    pinctrl/st: Fix race in installing chained IRQ handler
    pinctrl/adi2: Fix race in installing chained IRQ handler
    ...

    Linus Torvalds
     
  • Pull crypto fixes from Herbert Xu:
    "This fixes the aesni setkey error and removes a couple of unnecessary
    NULL checks in the Intel qat driver"

    * git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6:
    crypto: aesni - fix failing setkey for rfc4106-gcm-aesni
    crypto: qat - Deletion of unnecessary checks before two function calls

    Linus Torvalds
     
  • Pull networking fixes from David Miller:

    1) mlx4 driver bug fixes (TX queue wakeups, csum complete indications)
    from Ido Shamay, Eran Ben Elisha, and Or Gerlitz.

    2) Missing unlock in error path of PTP support in renesas driver, from
    Dan Carpenter.

    3) Add Vitesse 8641 phy IDs to vitesse PHY driver, from Shaohui Xie.

    4) Bnx2x driver bug fixes (linearization of encap packets, scratchpad
    parity error notifications, flow-control and speed settings) from
    Yuval Mintz, Manish Chopra, Shahed Shaikh, and Ariel Elior.

    5) ipv6 extension header parsing in the igb chip has a HW errata,
    disable it. Frm Todd Fujinaka.

    6) Fix PCI link state locking issue in e1000e driver, from Yanir
    Lubetkin.

    7) Cure panics during MTU change in i40e, from Mitch Williams.

    8) Don't leak promisc refs in DSA slave driver, from Gilad Ben-Yossef.

    9) Add missing HAS_DMA dep to VIA Rhine driver, from Geery
    Uytterhoeven.

    10) Make sure DMA map/unmap calls are symmetric in bnx2x driver, from
    Michal Schmidt.

    11) Workaround for MDIO access problems in bcm7xxx devices, from FLorian
    Fainelli.

    12) Fix races in SCTP protocol between OTTB responses and route
    removals, from Alexander Sverdlin.

    13) Fix jumbo frame checksum issue with some mvneta devices, from Simon
    Guinot.

    * git://git.kernel.org/pub/scm/linux/kernel/git/davem/net: (58 commits)
    sock_diag: don't broadcast kernel sockets
    net: mvneta: disable IP checksum with jumbo frames for Armada 370
    ARM: mvebu: update Ethernet compatible string for Armada XP
    net: mvneta: introduce compatible string "marvell, armada-xp-neta"
    api: fix compatibility of linux/in.h with netinet/in.h
    net: icplus: fix typo in constant name
    sis900: Trivial: Fix typos in enums
    stmmac: Trivial: fix typo in constant name
    sctp: Fix race between OOTB responce and route removal
    net-Liquidio: Delete unnecessary checks before the function call "vfree"
    vmxnet3: Bump up driver version number
    amd-xgbe: Add the __GFP_NOWARN flag to Rx buffer allocation
    net: phy: mdio-bcm-unimac: workaround initial read failures for integrated PHYs
    net: bcmgenet: workaround initial read failures for integrated PHYs
    net: phy: bcm7xxx: workaround MDIO management controller initial read
    bnx2x: fix DMA API usage
    net: via: VIA_RHINE and VIA_VELOCITY should depend on HAS_DMA
    net/phy: tune get_phy_c45_ids to support more c45 phy
    bnx2x: fix lockdep splat
    net: fec: don't access RACC register when not available
    ...

    Linus Torvalds
     
  • The Broadcom NAND driver is used by brcmstb, bcm63xx, bcm5301x and
    Cygnus/iProc under mach-bcm, this is enough critical mass to enable it.

    Signed-off-by: Florian Fainelli
    Signed-off-by: Kevin Hilman

    Florian Fainelli
     
  • This reverts 7dc95b40f599293aedf30432749ad25b51549041 ("ARM: BCM: Enable
    NAND support for iProc SoCs") since it creates an unmet dependency for
    MTD_NAND_BRCMNAND which depends on MTD and MTD_NAND, this results in the
    following build failure for brcmnand:

    LD init/built-in.o
    drivers/built-in.o: In function `brcmnand_remove':
    /home/fainelli/dev/linux/drivers/mtd/nand/brcmnand/brcmnand.c:2234:
    undefined reference to `nand_release'
    drivers/built-in.o: In function `brcmnand_init_cs':
    /home/fainelli/dev/linux/drivers/mtd/nand/brcmnand/brcmnand.c:1933:
    undefined reference to `nand_scan_ident'
    /home/fainelli/dev/linux/drivers/mtd/nand/brcmnand/brcmnand.c:1958:
    undefined reference to `nand_scan_tail'
    Makefile:931: recipe for target 'vmlinux' failed
    make: *** [vmlinux] Error 1

    Instead, select this driver an all dependencies on the
    multi_v7_defconfig.

    Signed-off-by: Florian Fainelli
    Signed-off-by: Kevin Hilman

    Florian Fainelli
     
  • Merge "ARM: mvebu: fixes for v4.2" from Gregory Clement:

    mvebu fixes for 4.2 (part 0)

    Fix legacy dove IRQ numbers

    * tag 'mvebu-fixes-4.2-0' of git://git.infradead.org/linux-mvebu:
    ARM: dove: fix legacy dove IRQ numbers
    ARM: mvebu: fix suspend to RAM on big-endian configurations

    Kevin Hilman
     
  • Merge "ARM: mvebu: dt changes for v4.2" from Gregory Clement

    mvebu dt changes for v4.2 (part #3)

    Update Armada XP DT spi muxing after pinctrl function rename which was
    merged in the pinctrl subsystem for 4.2. Without it the spi muxing
    will be broken in 4.2-rc1 for Armada XP.

    * tag 'mvebu-dt-4.2-3' of git://git.infradead.org/linux-mvebu:
    ARM: mvebu: adjust Armada XP DT spi muxing after pinctrl function rename

    Kevin Hilman
     
  • at91sam9g45, at91sam9x5 and sama5 SoCs should not use
    "atmel,at91sam9rl-udc" for their USB device compatible property since
    this compatible is attached to a specific hardware bug fix.

    Signed-off-by: Boris Brezillon
    Acked-by: Alexandre Belloni
    Tested-by: Bo Shen
    Acked-by: Nicolas Ferre
    Cc: #4.0+
    Signed-off-by: Kevin Hilman

    Boris Brezillon
     
  • …ux/kernel/git/tmlind/linux-omap into next/late

    Merge "omap generic wakeirq for v4.2 merge window" from Tony Lindgren:

    Omap driver changes for v4.2 to switch drivers over to Linux generic
    wake IRQ events for omap_hsmmc, 8250_omap and omap-serial
    drivers.

    The generic wake IRQs also fix issues that these drivers potentially
    have with IRQ re-entrancy at least for serial-omap.

    Note that because of dependencies and merge conflicts these are
    based on Rafael's pm-wakeirq and Greg's tty-next branches.

    * tag 'omap-for-v4.2/wakeirq-drivers-v2' of git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap: (148 commits)
    serial: 8250_omap: Move wake-up interrupt to generic wakeirq
    serial: omap: Switch wake-up interrupt to generic wakeirq
    tty: move linux/gsmmux.h to uapi
    doc: dt: add documentation for nxp,lpc1850-uart
    serial: 8250: add LPC18xx/43xx UART driver
    serial: 8250_uniphier: add UniPhier serial driver
    serial: 8250_dw: support ACPI platforms with integrated DMA engine
    serial: of_serial: check the return value of clk_prepare_enable()
    serial: of_serial: use devm_clk_get() instead of clk_get()
    serial: earlycon: Add support for big-endian MMIO accesses
    serial: sirf: use hrtimer for data rx
    serial: sirf: correct the fifo empty_bit
    serial: sirf: fix system hung on console log output
    serial: 8250: remove return statements from void function
    sc16is7xx: use kworker for RS-485 configuration
    sc16is7xx: use kworker to update ier bits
    sc16is7xx: use kworker for md_proc
    sc16is7xx: move RTS delay to workqueue
    sc16is7xx: use kthread_worker for tx_work and irq
    sc16is7xx: use LSR_TEMT_BIT in .tx_empty()
    ...

    Kevin Hilman
     
  • Add standby domain gpio controller for APM X-Gene SoC platform.

    Signed-off-by: Y Vo
    Acked-by: Linus Walleij
    Signed-off-by: Kevin Hilman

    Y Vo
     
  • Pull xen updates from David Vrabel:
    "Xen features and cleanups for 4.2-rc0:

    - add "make xenconfig" to assist in generating configs for Xen guests

    - preparatory cleanups necessary for supporting 64 KiB pages in ARM
    guests

    - automatically use hvc0 as the default console in ARM guests"

    * tag 'for-linus-4.2-rc0-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/xen/tip:
    block/xen-blkback: s/nr_pages/nr_segs/
    block/xen-blkfront: Remove invalid comment
    block/xen-blkfront: Remove unused macro MAXIMUM_OUTSTANDING_BLOCK_REQS
    arm/xen: Drop duplicate define mfn_to_virt
    xen/grant-table: Remove unused macro SPP
    xen/xenbus: client: Fix call of virt_to_mfn in xenbus_grant_ring
    xen: Include xen/page.h rather than asm/xen/page.h
    kconfig: add xenconfig defconfig helper
    kconfig: clarify kvmconfig is for kvm
    xen/pcifront: Remove usage of struct timeval
    xen/tmem: use BUILD_BUG_ON() in favor of BUG_ON()
    hvc_xen: avoid uninitialized variable warning
    xenbus: avoid uninitialized variable warning
    xen/arm: allow console=hvc0 to be omitted for guests
    arm,arm64/xen: move Xen initialization earlier
    arm/xen: Correctly check if the event channel interrupt is present

    Linus Torvalds