08 Jun, 2016

1 commit

  • This patch allows to build the whole kernel with GCC plugins. It was ported from
    grsecurity/PaX. The infrastructure supports building out-of-tree modules and
    building in a separate directory. Cross-compilation is supported too.
    Currently the x86, arm, arm64 and uml architectures enable plugins.

    The directory of the gcc plugins is scripts/gcc-plugins. You can use a file or a directory
    there. The plugins compile with these options:
    * -fno-rtti: gcc is compiled with this option so the plugins must use it too
    * -fno-exceptions: this is inherited from gcc too
    * -fasynchronous-unwind-tables: this is inherited from gcc too
    * -ggdb: it is useful for debugging a plugin (better backtrace on internal
    errors)
    * -Wno-narrowing: to suppress warnings from gcc headers (ipa-utils.h)
    * -Wno-unused-variable: to suppress warnings from gcc headers (gcc_version
    variable, plugin-version.h)

    The infrastructure introduces a new Makefile target called gcc-plugins. It
    supports all gcc versions from 4.5 to 6.0. The scripts/gcc-plugin.sh script
    chooses the proper host compiler (gcc-4.7 can be built by either gcc or g++).
    This script also checks the availability of the included headers in
    scripts/gcc-plugins/gcc-common.h.

    The gcc-common.h header contains frequently included headers for GCC plugins
    and it has a compatibility layer for the supported gcc versions.

    The gcc-generate-*-pass.h headers automatically generate the registration
    structures for GIMPLE, SIMPLE_IPA, IPA and RTL passes.

    Note that 'make clean' keeps the *.so files (only the distclean or mrproper
    targets clean all) because they are needed for out-of-tree modules.

    Based on work created by the PaX Team.

    Signed-off-by: Emese Revfy
    Acked-by: Kees Cook
    Signed-off-by: Michal Marek

    Emese Revfy
     

28 May, 2016

1 commit

  • Pull second batch of KVM updates from Radim Krčmář:
    "General:

    - move kvm_stat tool from QEMU repo into tools/kvm/kvm_stat (kvm_stat
    had nothing to do with QEMU in the first place -- the tool only
    interprets debugfs)

    - expose per-vm statistics in debugfs and support them in kvm_stat
    (KVM always collected per-vm statistics, but they were summarised
    into global statistics)

    x86:

    - fix dynamic APICv (VMX was improperly configured and a guest could
    access host's APIC MSRs, CVE-2016-4440)

    - minor fixes

    ARM changes from Christoffer Dall:

    - new vgic reimplementation of our horribly broken legacy vgic
    implementation. The two implementations will live side-by-side
    (with the new being the configured default) for one kernel release
    and then we'll remove the legacy one.

    - fix for a non-critical issue with virtual abort injection to guests"

    * tag 'for-linus' of git://git.kernel.org/pub/scm/virt/kvm/kvm: (70 commits)
    tools: kvm_stat: Add comments
    tools: kvm_stat: Introduce pid monitoring
    KVM: Create debugfs dir and stat files for each VM
    MAINTAINERS: Add kvm tools
    tools: kvm_stat: Powerpc related fixes
    tools: Add kvm_stat man page
    tools: Add kvm_stat vm monitor script
    kvm:vmx: more complete state update on APICv on/off
    KVM: SVM: Add more SVM_EXIT_REASONS
    KVM: Unify traced vector format
    svm: bitwise vs logical op typo
    KVM: arm/arm64: vgic-new: Synchronize changes to active state
    KVM: arm/arm64: vgic-new: enable build
    KVM: arm/arm64: vgic-new: implement mapped IRQ handling
    KVM: arm/arm64: vgic-new: Wire up irqfd injection
    KVM: arm/arm64: vgic-new: Add vgic_v2/v3_enable
    KVM: arm/arm64: vgic-new: vgic_init: implement map_resources
    KVM: arm/arm64: vgic-new: vgic_init: implement vgic_init
    KVM: arm/arm64: vgic-new: vgic_init: implement vgic_create
    KVM: arm/arm64: vgic-new: vgic_init: implement kvm_vgic_hyp_init
    ...

    Linus Torvalds
     

26 May, 2016

2 commits

  • Pull perf updates from Ingo Molnar:
    "Mostly tooling and PMU driver fixes, but also a number of late updates
    such as the reworking of the call-chain size limiting logic to make
    call-graph recording more robust, plus tooling side changes for the
    new 'backwards ring-buffer' extension to the perf ring-buffer"

    * 'perf-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (34 commits)
    perf record: Read from backward ring buffer
    perf record: Rename variable to make code clear
    perf record: Prevent reading invalid data in record__mmap_read
    perf evlist: Add API to pause/resume
    perf trace: Use the ptr->name beautifier as default for "filename" args
    perf trace: Use the fd->name beautifier as default for "fd" args
    perf report: Add srcline_from/to branch sort keys
    perf evsel: Record fd into perf_mmap
    perf evsel: Add overwrite attribute and check write_backward
    perf tools: Set buildid dir under symfs when --symfs is provided
    perf trace: Only auto set call-graph to "dwarf" when syscalls are being traced
    perf annotate: Sort list of recognised instructions
    perf annotate: Fix identification of ARM blt and bls instructions
    perf tools: Fix usage of max_stack sysctl
    perf callchain: Stop validating callchains by the max_stack sysctl
    perf trace: Fix exit_group() formatting
    perf top: Use machine->kptr_restrict_warned
    perf trace: Warn when trying to resolve kernel addresses with kptr_restrict=1
    perf machine: Do not bail out if not managing to read ref reloc symbol
    perf/x86/intel/p4: Trival indentation fix, remove space
    ...

    Linus Torvalds
     
  • Pull watchdog updates from Wim Van Sebroeck:

    - add support for Fintek F81865 Super-IO chip

    - add support for watchdogs (RWDT and SWDT) found on RCar Gen3 based
    SoCs from Renesas

    - octeon: Handle the FROZEN hot plug notifier actions

    - f71808e_wdt fixes and cleanups

    - some small improvements in code and documentation

    * git://www.linux-watchdog.org/linux-watchdog:
    MAINTAINERS: Add file patterns for watchdog device tree bindings
    Documentation: Add ebc-c384_wdt watchdog-parameters.txt entry
    watchdog: shwdt: Use setup_timer()
    watchdog: cpwd: Use setup_timer()
    arm64: defconfig: enable Renesas Watchdog Timer
    watchdog: renesas-wdt: add driver
    watchdog: remove error message when unable to allocate watchdog device
    watchdog: f71808e_wdt: Fix WDTMOUT_STS register read
    watchdog: f71808e_wdt: Fix typo
    watchdog: f71808e_wdt: Add F81865 support
    watchdog: sp5100_tco: properly check for new register layouts
    watchdog: core: Fix circular locking dependency
    watchdog: core: fix trivial typo in a comment
    watchdog: hpwdt: Adjust documentation to match latest kernel module parameters.
    watchdog: imx2_wdt: add external reset support via dt prop
    watchdog: octeon: Handle the FROZEN hot plug notifier actions.
    watchdog: qcom: Report reboot reason

    Linus Torvalds
     

25 May, 2016

2 commits

  • Pull ARM SoC late DT updates from Arnd Bergmann:
    "This is a collection of a few late fixes and other misc stuff that had
    dependencies on things being merged from other trees.

    The Renesas R-Car power domain handling, and the Nvidia Tegra USB
    support both hand notable changes that required changing the DT
    binding in a way that only provides compatibility with old DT blobs on
    new kernels but not vice versa. As a consequence, the DT changes are
    based on top of the driver changes and are now in this branch.

    For NXP i.MX and Samsung Exynos, the changes in here depend on other
    changes that got merged through the clk maintainer tree"

    * tag 'armsoc-late' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc: (35 commits)
    ARM: dts: exynos: Add support of Bus frequency using VDD_INT for exynos5422-odroidxu3
    ARM: dts: exynos: Add bus nodes using VDD_INT for Exynos542x SoC
    ARM: dts: exynos: Add NoC Probe dt node for Exynos542x SoC
    ARM: dts: exynos: Add support of bus frequency for exynos4412-trats/odroidu3
    ARM: dts: exynos: Expand the voltage range of buck1/3 regulator for exynos4412-odroidu3
    ARM: dts: exynos: Add support of bus frequency using VDD_INT for exynos3250-rinato
    ARM: dts: exynos: Add exynos4412-ppmu-common dtsi to delete duplicate PPMU nodes
    ARM: dts: exynos: Add bus nodes using VDD_MIF for Exynos4210
    ARM: dts: exynos: Add bus nodes using VDD_INT for Exynos4x12
    ARM: dts: exynos: Add bus nodes using VDD_MIF for Exynos4x12
    ARM: dts: exynos: Add bus nodes using VDD_INT for Exynos3250
    ARM: dts: exynos: Add DMC bus frequency for exynos3250-rinato/monk
    ARM: dts: exynos: Add DMC bus node for Exynos3250
    ARM: tegra: Enable XUSB on Nyan
    ARM: tegra: Enable XUSB on Jetson TK1
    ARM: tegra: Enable XUSB on Venice2
    ARM: tegra: Add Tegra124 XUSB controller
    ARM: tegra: Move Tegra124 to the new XUSB pad controller binding
    ARM: dts: r8a7794: Use SYSC "always-on" PM Domain
    ARM: dts: r8a7793: Use SYSC "always-on" PM Domain
    ...

    Linus Torvalds
     
  • Pull asm-generic cleanup from Arnd Bergmann:
    "I have only one patch for asm-generic in this release, this one is
    from James Hogan and updates the generic system call table for
    renameat2 so we don't need to provide both renameat and renameat2 in
    newly added architectures"

    * tag 'asm-generic-4.7' of git://git.kernel.org/pub/scm/linux/kernel/git/arnd/asm-generic:
    asm-generic: Drop renameat syscall from default list

    Linus Torvalds
     

24 May, 2016

2 commits

  • …it/kvmarm/kvmarm into kvm-next

    KVM/ARM Changes for v4.7 take 2

    "The GIC is dead; Long live the GIC"

    This set of changes include the new vgic, which is a reimplementation of
    our horribly broken legacy vgic implementation. The two implementations
    will live side-by-side (with the new being the configured default) for
    one kernel release and then we'll remove it.

    Also fixes a non-critical issue with virtual abort injection to guests.

    Paolo Bonzini
     
  • most architectures are relying on mmap_sem for write in their
    arch_setup_additional_pages. If the waiting task gets killed by the oom
    killer it would block oom_reaper from asynchronous address space reclaim
    and reduce the chances of timely OOM resolving. Wait for the lock in
    the killable mode and return with EINTR if the task got killed while
    waiting.

    Signed-off-by: Michal Hocko
    Acked-by: Andy Lutomirski [x86 vdso]
    Acked-by: Vlastimil Babka
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Michal Hocko
     

21 May, 2016

1 commit

  • Define HAVE_EXIT_THREAD for archs which want to do something in
    exit_thread. For others, let's define exit_thread as an empty inline.

    This is a cleanup before we change the prototype of exit_thread to
    accept a task parameter.

    [akpm@linux-foundation.org: fix mips]
    Signed-off-by: Jiri Slaby
    Cc: "David S. Miller"
    Cc: "H. Peter Anvin"
    Cc: "James E.J. Bottomley"
    Cc: Aurelien Jacquiot
    Cc: Benjamin Herrenschmidt
    Cc: Catalin Marinas
    Cc: Chen Liqin
    Cc: Chris Metcalf
    Cc: Chris Zankel
    Cc: David Howells
    Cc: Fenghua Yu
    Cc: Geert Uytterhoeven
    Cc: Guan Xuetao
    Cc: Haavard Skinnemoen
    Cc: Hans-Christian Egtvedt
    Cc: Heiko Carstens
    Cc: Helge Deller
    Cc: Ingo Molnar
    Cc: Ivan Kokshaysky
    Cc: James Hogan
    Cc: Jeff Dike
    Cc: Jesper Nilsson
    Cc: Jiri Slaby
    Cc: Jonas Bonn
    Cc: Koichi Yasutake
    Cc: Lennox Wu
    Cc: Ley Foon Tan
    Cc: Mark Salter
    Cc: Martin Schwidefsky
    Cc: Matt Turner
    Cc: Max Filippov
    Cc: Michael Ellerman
    Cc: Michal Simek
    Cc: Mikael Starvik
    Cc: Paul Mackerras
    Cc: Peter Zijlstra
    Cc: Ralf Baechle
    Cc: Rich Felker
    Cc: Richard Henderson
    Cc: Richard Kuo
    Cc: Richard Weinberger
    Cc: Russell King
    Cc: Steven Miao
    Cc: Thomas Gleixner
    Cc: Tony Luck
    Cc: Vineet Gupta
    Cc: Will Deacon
    Cc: Yoshinori Sato
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Jiri Slaby
     

20 May, 2016

11 commits

  • When modifying the active state of an interrupt via the MMIO interface,
    we should ensure that the write has the intended effect.

    If a guest sets an interrupt to active, but that interrupt is already
    flushed into a list register on a running VCPU, then that VCPU will
    write the active state back into the struct vgic_irq upon returning from
    the guest and syncing its state. This is a non-benign race, because the
    guest can observe that an interrupt is not active, and it can have a
    reasonable expectations that other VCPUs will not ack any IRQs, and then
    set the state to active, and expect it to stay that way. Currently we
    are not honoring this case.

    Thefore, change both the SACTIVE and CACTIVE mmio handlers to stop the
    world, change the irq state, potentially queue the irq if we're setting
    it to active, and then continue.

    We take this chance to slightly optimize these functions by not stopping
    the world when touching private interrupts where there is inherently no
    possible race.

    Signed-off-by: Christoffer Dall

    Christoffer Dall
     
  • Now that the new VGIC implementation has reached feature parity with
    the old one, add the new files to the build system and add a Kconfig
    option to switch between the two versions.
    We set the default to the new version to get maximum test coverage,
    in case people experience problems they can switch back to the old
    behaviour if needed.

    Signed-off-by: Andre Przywara
    Acked-by: Christoffer Dall

    Andre Przywara
     
  • For some rare corner cases in our VGIC emulation later we have to stop
    the guest to make sure the VGIC state is consistent.
    Provide the necessary framework to pause and resume a guest.

    Signed-off-by: Christoffer Dall
    Signed-off-by: Andre Przywara

    Christoffer Dall
     
  • Rename mmio_{read,write}_bus to kvm_mmio_{read,write}_bus and export
    them out of mmio.c.
    This will be needed later for the new VGIC implementation.

    Signed-off-by: Christoffer Dall
    Signed-off-by: Andre Przywara
    Acked-by: Marc Zyngier
    Reviewed-by: Andre Przywara

    Christoffer Dall
     
  • The EC field of the constructed ESR is conditionally modified by ORing in
    ESR_ELx_EC_DABT_LOW for a data abort. However, ESR_ELx_EC_SHIFT is missing
    from this condition.

    Signed-off-by: Matt Evans
    Acked-by: Marc Zyngier
    Cc:
    Signed-off-by: Christoffer Dall

    Matt Evans
     
  • …ernel/git/acme/linux into perf/core

    Pull perf/core improvements and fixes from Arnaldo Carvalho de Melo:

    User visible changes:

    - Honour the kernel.perf_event_max_stack knob more precisely by not counting
    PERF_CONTEXT_{KERNEL,USER} when deciding when to stop adding entries to
    the perf_sample->ip_callchain[] array (Arnaldo Carvalho de Melo)

    - Fix identation of 'stalled-backend-cycles' in 'perf stat' (Namhyung Kim)

    - Update runtime using 'cpu-clock' event in 'perf stat' (Namhyung Kim)

    - Use 'cpu-clock' for cpu targets in 'perf stat' (Namhyung Kim)

    - Avoid fractional digits for integer scales in 'perf stat' (Andi Kleen)

    - Store vdso buildid unconditionally, as it appears in callchains and
    we're not checking those when creating the build-id table, so we
    end up not being able to resolve VDSO symbols when doing analysis
    on a different machine than the one where recording was done, possibly
    of a different arch even (arm -> x86_64) (He Kuang)

    Infrastructure changes:

    - Generalize max_stack sysctl handler, will be used for configuring
    multiple kernel knobs related to callchains (Arnaldo Carvalho de Melo)

    Cleanups:

    - Introduce DSO__NAME_KALLSYMS and DSO__NAME_KCORE, to stop using
    open coded strings (Masami Hiramatsu)

    Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
    Signed-off-by: Ingo Molnar <mingo@kernel.org>

    Ingo Molnar
     
  • Merge updates from Andrew Morton:

    - fsnotify fix

    - poll() timeout fix

    - a few scripts/ tweaks

    - debugobjects updates

    - the (small) ocfs2 queue

    - Minor fixes to kernel/padata.c

    - Maybe half of the MM queue

    * emailed patches from Andrew Morton : (117 commits)
    mm, page_alloc: restore the original nodemask if the fast path allocation failed
    mm, page_alloc: uninline the bad page part of check_new_page()
    mm, page_alloc: don't duplicate code in free_pcp_prepare
    mm, page_alloc: defer debugging checks of pages allocated from the PCP
    mm, page_alloc: defer debugging checks of freed pages until a PCP drain
    cpuset: use static key better and convert to new API
    mm, page_alloc: inline pageblock lookup in page free fast paths
    mm, page_alloc: remove unnecessary variable from free_pcppages_bulk
    mm, page_alloc: pull out side effects from free_pages_check
    mm, page_alloc: un-inline the bad part of free_pages_check
    mm, page_alloc: check multiple page fields with a single branch
    mm, page_alloc: remove field from alloc_context
    mm, page_alloc: avoid looking up the first zone in a zonelist twice
    mm, page_alloc: shortcut watermark checks for order-0 pages
    mm, page_alloc: reduce cost of fair zone allocation policy retry
    mm, page_alloc: shorten the page allocator fast path
    mm, page_alloc: check once if a zone has isolated pageblocks
    mm, page_alloc: move __GFP_HARDWALL modifications out of the fastpath
    mm, page_alloc: simplify last cpupid reset
    mm, page_alloc: remove unnecessary initialisation from __alloc_pages_nodemask()
    ...

    Linus Torvalds
     
  • I've just discovered that the useful-sounding has_transparent_hugepage()
    is actually an architecture-dependent minefield: on some arches it only
    builds if CONFIG_TRANSPARENT_HUGEPAGE=y, on others it's also there when
    not, but on some of those (arm and arm64) it then gives the wrong
    answer; and on mips alone it's marked __init, which would crash if
    called later (but so far it has not been called later).

    Straighten this out: make it available to all configs, with a sensible
    default in asm-generic/pgtable.h, removing its definitions from those
    arches (arc, arm, arm64, sparc, tile) which are served by the default,
    adding #define has_transparent_hugepage has_transparent_hugepage to
    those (mips, powerpc, s390, x86) which need to override the default at
    runtime, and removing the __init from mips (but maybe that kind of code
    should be avoided after init: set a static variable the first time it's
    called).

    Signed-off-by: Hugh Dickins
    Cc: "Kirill A. Shutemov"
    Cc: Andrea Arcangeli
    Cc: Andres Lagar-Cavilla
    Cc: Yang Shi
    Cc: Ning Qu
    Cc: Mel Gorman
    Cc: Konstantin Khlebnikov
    Acked-by: David S. Miller
    Acked-by: Vineet Gupta [arch/arc]
    Acked-by: Gerald Schaefer [arch/s390]
    Acked-by: Ingo Molnar
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Hugh Dickins
     
  • Update setup_hugepagesz() to call hugetlb_bad_size() when unsupported
    hugepage size is found.

    Signed-off-by: Vaishali Thakkar
    Reviewed-by: Mike Kravetz
    Reviewed-by: Naoya Horiguchi
    Acked-by: Michal Hocko
    Cc: Hillf Danton
    Cc: Yaowei Bai
    Cc: Dominik Dingel
    Cc: Kirill A. Shutemov
    Cc: Paul Gortmaker
    Cc: Dave Hansen
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Vaishali Thakkar
     
  • Pull IOMMU updates from Joerg Roedel:
    "The updates include:

    - rate limiting for the VT-d fault handler

    - remove statistics code from the AMD IOMMU driver. It is unused and
    should be replaced by something more generic if needed

    - per-domain pagesize-bitmaps in IOMMU core code to support systems
    with different types of IOMMUs

    - support for ACPI devices in the AMD IOMMU driver

    - 4GB mode support for Mediatek IOMMU driver

    - ARM-SMMU updates from Will Deacon:
    - support for 64k pages with SMMUv1 implementations (e.g MMU-401)
    - remove open-coded 64-bit MMIO accessors
    - initial support for 16-bit VMIDs, as supported by some ThunderX
    SMMU implementations
    - a couple of errata workarounds for silicon in the field

    - various fixes here and there"

    * tag 'iommu-updates-v4.7' of git://git.kernel.org/pub/scm/linux/kernel/git/joro/iommu: (44 commits)
    iommu/arm-smmu: Use per-domain page sizes.
    iommu/amd: Remove statistics code
    iommu/dma: Finish optimising higher-order allocations
    iommu: Allow selecting page sizes per domain
    iommu: of: enforce const-ness of struct iommu_ops
    iommu: remove unused priv field from struct iommu_ops
    iommu/dma: Implement scatterlist segment merging
    iommu/arm-smmu: Clear cache lock bit of ACR
    iommu/arm-smmu: Support SMMUv1 64KB supplement
    iommu/arm-smmu: Decouple context format from kernel config
    iommu/arm-smmu: Tidy up 64-bit/atomic I/O accesses
    io-64-nonatomic: Add relaxed accessor variants
    iommu/arm-smmu: Work around MMU-500 prefetch errata
    iommu/arm-smmu: Convert ThunderX workaround to new method
    iommu/arm-smmu: Differentiate specific implementations
    iommu/arm-smmu: Workaround for ThunderX erratum #27704
    iommu/arm-smmu: Add support for 16 bit VMID
    iommu/amd: Move get_device_id() and friends to beginning of file
    iommu/amd: Don't use IS_ERR_VALUE to check integer values
    iommu/amd: Signedness bug in acpihid_device_group()
    ...

    Linus Torvalds
     
  • Pull KVM updates from Paolo Bonzini:
    "Small release overall.

    x86:
    - miscellaneous fixes
    - AVIC support (local APIC virtualization, AMD version)

    s390:
    - polling for interrupts after a VCPU goes to halted state is now
    enabled for s390
    - use hardware provided information about facility bits that do not
    need any hypervisor activity, and other fixes for cpu models and
    facilities
    - improve perf output
    - floating interrupt controller improvements.

    MIPS:
    - miscellaneous fixes

    PPC:
    - bugfixes only

    ARM:
    - 16K page size support
    - generic firmware probing layer for timer and GIC

    Christoffer Dall (KVM-ARM maintainer) says:
    "There are a few changes in this pull request touching things
    outside KVM, but they should all carry the necessary acks and it
    made the merge process much easier to do it this way."

    though actually the irqchip maintainers' acks didn't make it into the
    patches. Marc Zyngier, who is both irqchip and KVM-ARM maintainer,
    later acked at http://mid.gmane.org/573351D1.4060303@arm.com ('more
    formally and for documentation purposes')"

    * tag 'for-linus' of git://git.kernel.org/pub/scm/virt/kvm/kvm: (82 commits)
    KVM: MTRR: remove MSR 0x2f8
    KVM: x86: make hwapic_isr_update and hwapic_irr_update look the same
    svm: Manage vcpu load/unload when enable AVIC
    svm: Do not intercept CR8 when enable AVIC
    svm: Do not expose x2APIC when enable AVIC
    KVM: x86: Introducing kvm_x86_ops.apicv_post_state_restore
    svm: Add VMEXIT handlers for AVIC
    svm: Add interrupt injection via AVIC
    KVM: x86: Detect and Initialize AVIC support
    svm: Introduce new AVIC VMCB registers
    KVM: split kvm_vcpu_wake_up from kvm_vcpu_kick
    KVM: x86: Introducing kvm_x86_ops VCPU blocking/unblocking hooks
    KVM: x86: Introducing kvm_x86_ops VM init/destroy hooks
    KVM: x86: Rename kvm_apic_get_reg to kvm_lapic_get_reg
    KVM: x86: Misc LAPIC changes to expose helper functions
    KVM: shrink halt polling even more for invalid wakeups
    KVM: s390: set halt polling to 80 microseconds
    KVM: halt_polling: provide a way to qualify wakeups during poll
    KVM: PPC: Book3S HV: Re-enable XICS fast path for irqfd-generated interrupts
    kvm: Conditionally register IRQ bypass consumer
    ...

    Linus Torvalds
     

19 May, 2016

4 commits

  • Pull ARM SoC defconfig updates from Arnd Bergmann:
    "As usual, a bunch of commits, mostly adding drivers and other options
    to defconfigs.

    We are adding three new defconfig files for the newly added 32-bit
    machines (aspeed and mps2), the rest is mainly housekeeping.

    The changes outside of arch/arm/config/ are for a Kconfig symbol that
    got renamed"

    * tag 'armsoc-defconfig' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc: (63 commits)
    ARM: aspeed: adapt defconfigs for new CONFIG_PRINTK_TIME
    ARM: u8500_defconfig: update sensor config
    ARM: u8500_defconfig: remove staging from defconfig
    ARM: multi_v7_defconfig: Remove unused Kconfig option MACH_UX500_DT
    ARM: at91/defconfig: sama5: add CONFIG_FHANDLE
    arm/configs: Add Aspeed defconfig
    arm/configs/multi_v5: Add Aspeed ast2400
    ARM: at91: sama5: Update defconfig
    ARM: imx_v6_v7_defconfig: add CONFIG_MICREL_PHY
    ARM: imx_v6_v7_defconfig: add CONFIG_I2C_GPIO
    ARM: multi_v7: Enable Tegra XUSB controller in defconfig
    ARM: tegra: Enable XUSB controller in defconfig
    ARM: omap2plus_defconfig: Enable PWM and ir-rx51 as loadable modules
    ARM: multi_v7_defconfig: add the Atmel sama5d2-compatible ADC driver
    ARM: multi_v7_defconfig: add the Atmel Audio microphone interface PDMIC
    ARM: multi_v7_defconfig: add Atmel ISI (Image Sensor Interface) driver
    ARM: multi_v7_defconfig: add Atmel watchdog timers
    ARM: multi_v7_defconfig: add HLCDC drivers as modules
    ARM: at91/defconfig: add PDMIC driver to sama5_defconfig
    ARM: at91/defconfig: add HLCDC driver to sama5_defconfig
    ...

    Linus Torvalds
     
  • Pull ARM 64-bit DT updates from Arnd Bergmann:
    "We continue ramping up platform support for 64-bit ARM machines, with
    111 individual non-merge changesets touching 21 platforms.

    The LG1312 platform is completely new and is the first ARM platform by
    LG that we support in the mainline kernel. Two other SoCs got added
    that are updated versions of existing SoC families, so the port mainly
    consists of new dts files:

    - The Hisilicon Hip06/D03 is the latest server platform from
    Huawei/Hisilicon, and follows the Hip05/D02 platform.

    - Rockchip RK3399 follows the 32-bit RK3288 that is popular in
    low-end Chromebooks and the 64-bit RK3368 that is mainly found in
    chinese Android TV boxes.

    The 96Boards HiKey based on the Hisilicon Hi6220 (Kirin 620) gets a
    long-awaited overhaul with a lot of devices enabled in the DT, so it
    should be much more usable with a mainline kernel now. See also

    https://plus.google.com/111524780435806926688/posts/PeGb2VsNhJd

    A lot of work went into enabling new device drivers on existing
    machines, but we also have a couple of new commercially available
    machines:

    - Google Pixel C laptop based on Tegra210
    - Hardkernel Odroid C2 Based on Amlogic Meson GXBB (S905)
    - Geekbuying GeekBox based on Rockchip RK3368

    And finally, a couple of reference or development platforms that are
    not end-user platforms but are used for trying out the respective SoC
    platforms:

    - Amlogic Meson GXBB P200 and P201 development systems
    - NXP Layerscape 1043A QDS development board
    - Hisilicon Hip06 D03 server board, as mentioned above
    - LG1312 Reference Design
    - RK3399 Evaluation Board"

    * tag 'armsoc-dt64' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc: (104 commits)
    arm64: dts: marvell: add XOR node for Armada 3700 SoC
    dt-bindings: document rockchip rk3399-evb board
    arm64: dts: rockchip: add dts file for RK3399 evaluation board
    arm64: dts: rockchip: add core dtsi file for RK3399 SoCs
    dt-bindings: rockchip-dw-mshc: add description for rk3399
    arm64: dts: marvell: Use a SoC-specific compatible for xHCI on Armada37xx
    arm64: dts: marvell: Rename armada-37xx USB node
    arm64: dts: marvell: Clean up armada-3720-db
    Documentation: arm64: Add Hisilicon Hip06 D03 dts binding
    arm64: dts: Add initial dts for Hisilicon Hip06 D03 board
    arm64: dts: hip05: Add nor flash support
    arm64: dts: hip05: fix its node without msi-cells
    arm64: dts: r8a7795: Don't disable referenced optional clocks
    arm64: dts: salvator-x: populate EXTALR
    arm64: dts: r8a7795: enable PCIe on Salvator-X
    arm64: dts: r8a7795: Add PCIe nodes
    arm64: tegra: Add IOMMU node to GM20B on Tegra210
    arm64: tegra: Add reference clock to GM20B on Tegra210
    dt-bindings: Add documentation for GM20B GPU
    dt-bindings: gk20a: Document iommus property
    ...

    Linus Torvalds
     
  • Pull ARM DT updates from Arnd Bergmann:
    "These are all the updates to device tree files for 32-bit platforms,
    which as usual makes up the bulk of the ARM SoC changes: 462 non-merge
    changesets, 450 files changed, 23340 insertions, 5216 deletions.

    The three platforms that are added with the "soc" branch are here as
    well, and we add some related machine files:

    - For Aspeed AST2400/AST2500, we get the evaluation platform and the
    Tyan Palmetto POWER8 mainboard that uses the AST2400 BMC
    - For Oxnas 810SE, the Western Digital "My Book World Edition" is
    added as the only platform at the moment.
    - For ARM MPS2, the AN385 (Cortex-M3) and AN399 (Cortex-M7) are
    supported

    On the ARM Realview development platform, we now support all machines
    with device tree, previously only the board files were supported,
    which in turn will likely be removed soon.

    Qualcomm IPQ4019 is the second generation ARM based "Internet
    Processor", following the IPQ806x that is used in many high-end WiFi
    routers. This one integrates two ath10k wifi radios that were
    previously on separate chips.

    Other boards that got added for existing chips are:

    Ti OMAP family:
    - Amazon Kindle Fire, first generation, tablet and ebook reader
    - OnRISC Baltos iR 2110 and 3220 embedded industrial PCs
    - TI AM5728 IDK, TI AM3359 ICE-V2, and TI DRA722 Rev C EVM
    development systems

    Samsung EXYNOS platform:
    - Samsung ARTIK5 evaluation board, see

    https://www.artik.io/modules/overview/artik-5/

    NXP i.MX platforms:
    - Ka-Ro electronics TX6S-8034, TX6S-8035, TX6U-8033, TX6U-81xx,
    TX6Q-1036, TX6Q-1110/-1130, TXUL-0010 and TXUL-0011 industrial
    SoM modules
    - Embest MarS Board i.MX6Dual DIY platform
    - Boundary Devices i.MX6 Quad Plus Nitrogen6_MAX and SoloX
    Nitrogen6sx embedded boards
    - Technexion Pico i.MX6UL compute module
    - ZII VF610 Development Board

    Marvell embedded (mvebu, orion, kirkwood) platforms:
    - Linksys Viper (E4200v2 / EA4500) WiFi router
    - Buffalo Kurobox Pro NAS

    Qualcomm Snapdragon:
    - Arrow DragonBoard 600c (96boards) with APQ8064 Snapdragon 600

    Rockchips platform:
    - mqmaker MiQi single-board computer

    Altera SoCFPGA:
    - samtec VIN|ING 1000 vehicle communication interface

    Allwinner Sunxi platforms:
    - Dserve DSRV9703C tablet
    - Difrnce DIT4350 tablet
    - Colorfly E708 Q1 tablet
    - Polaroid MID2809PXE04 tablet
    - Olimex A20 OLinuXino LIME2 single board computer
    - Xunlong Orange Pi 2, Orange Pi One, and Orange Pi PC single board
    computers

    Across many platforms, bug fixes went in to address warnings that dtc
    now emits with 'make dtbs W=1'. Further changes for device enablement
    went into Ti OMAP, bcm283x (Raspberry Pi), bcm47xx (wifi router), Ti
    Davinci, Samsung EXYNOS, Marvell mvebu/kirkwood/orion, NXP i.MX/Vybrid
    NXP LPC18xx, NXP LPC32xx, Renesas shmobile/r-mobile/r-car, Rockchips
    rk3xxx, ST Ux500, ST STi, Atmel AT91/SAMA5, Altera SoCFPGA, Allwinner
    Sunxi, Sigma Designs Tango, NVIDIA Tegra, Socionext Uniphier and ARM
    Versatile Express"

    * tag 'armsoc-dt' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc: (458 commits)
    ARM: dts: tango4: Import watchdog node
    ARM: dts: tango4: Update cpus node for cpufreq
    ARM: dts: tango4: Update DT to match clk driver
    ARM: dts: tango4: Initial thermal support
    arm/dst: Add Aspeed ast2500 device tree
    arm/dts: Add Aspeed ast2400 device tree
    ARM: sun7i: dt: Add pll3 and pll7 clocks
    ARM: dts: sunxi: Add a olinuxino-lime2-emmc
    ARM: dts: at91: sama5d4: add trng node
    ARM: dts: at91: sama5d3: add trng node
    ARM: dts: at91: sama5d2: add trng node
    ARM: dts: at91: at91sam9g45 family: reduce the trng register map size
    ARM: sun4i: dt: Add pll3 and pll7 clocks
    ARM: sun5i: chip: Enable the TV Encoder
    ARM: sun5i: r8: Add display blocks to the DTSI
    ARM: sun5i: a13: Add display and TCON clocks
    ARM: dts: ux500: configure the accelerometers open drain
    ARM: mx5: dts: Enable USB OTG on M53EVK
    ARM: dts: imx6ul-14x14-evk: Add audio support
    ARM: dts: imx6qdl: Remove unneeded unit-addresses
    ...

    Linus Torvalds
     
  • Pull ARM SoC 64-bit changes from Arnd Bergmann:
    "One new platform gets added this time: The Cortex-A53 based LG
    Electronics LG1K platform used in digital TVs.

    The other changes are mostly smaller updates to the defconfig files,
    to enable additional platform specific drivers, as they get merged
    through the subsystem trees"

    * tag 'armsoc-arm64' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc:
    arm64: configs: add options useful for Armada 7K/8K support
    arm64: defconfig: Add Juno SATA controller
    arm64: defconfig: enable freescale/nxp config options
    arm64: defconfig: enable 48-bit virtual addresses
    arm64: defconfig: cleanup the defconfig
    MAINTAINERS: update entry for Marvell ARM platform maintainers
    arm64: marvell: enable AP806 and CP110 syscon driver
    arm64: Kconfig: select sp804 timer for ARCH_HISI
    arm64: defconfig: enable configs for WLAN and TI WL1835 as modules
    arm64: defconfig: enable several common USB network adapters
    arm64: defconfig: add CONFIG_SPI_SPIDEV as module
    arm64: defconfig: Enable the PMIC and regulator for Hi6220 and 96boards HiKey
    arm64: defconfig: Add Renesas R-Car USB 3.0 driver support
    MAINTAINERS: add Chanho Min as ARM/LG1K maintainer
    arm64: defconfig: enable ARCH_LG1K
    arm64: add Kconfig entry for LG1K SoC family
    arm64: defconfig: Enable PL330 DMA controller
    arm64: defconfig: enable basic boot for Amlogic meson

    Linus Torvalds
     

18 May, 2016

2 commits

  • Pull networking updates from David Miller:
    "Highlights:

    1) Support SPI based w5100 devices, from Akinobu Mita.

    2) Partial Segmentation Offload, from Alexander Duyck.

    3) Add GMAC4 support to stmmac driver, from Alexandre TORGUE.

    4) Allow cls_flower stats offload, from Amir Vadai.

    5) Implement bpf blinding, from Daniel Borkmann.

    6) Optimize _ASYNC_ bit twiddling on sockets, unless the socket is
    actually using FASYNC these atomics are superfluous. From Eric
    Dumazet.

    7) Run TCP more preemptibly, also from Eric Dumazet.

    8) Support LED blinking, EEPROM dumps, and rxvlan offloading in mlx5e
    driver, from Gal Pressman.

    9) Allow creating ppp devices via rtnetlink, from Guillaume Nault.

    10) Improve BPF usage documentation, from Jesper Dangaard Brouer.

    11) Support tunneling offloads in qed, from Manish Chopra.

    12) aRFS offloading in mlx5e, from Maor Gottlieb.

    13) Add RFS and RPS support to SCTP protocol, from Marcelo Ricardo
    Leitner.

    14) Add MSG_EOR support to TCP, this allows controlling packet
    coalescing on application record boundaries for more accurate
    socket timestamp sampling. From Martin KaFai Lau.

    15) Fix alignment of 64-bit netlink attributes across the board, from
    Nicolas Dichtel.

    16) Per-vlan stats in bridging, from Nikolay Aleksandrov.

    17) Several conversions of drivers to ethtool ksettings, from Philippe
    Reynes.

    18) Checksum neutral ILA in ipv6, from Tom Herbert.

    19) Factorize all of the various marvell dsa drivers into one, from
    Vivien Didelot

    20) Add VF support to qed driver, from Yuval Mintz"

    * git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next: (1649 commits)
    Revert "phy dp83867: Fix compilation with CONFIG_OF_MDIO=m"
    Revert "phy dp83867: Make rgmii parameters optional"
    r8169: default to 64-bit DMA on recent PCIe chips
    phy dp83867: Make rgmii parameters optional
    phy dp83867: Fix compilation with CONFIG_OF_MDIO=m
    bpf: arm64: remove callee-save registers use for tmp registers
    asix: Fix offset calculation in asix_rx_fixup() causing slow transmissions
    switchdev: pass pointer to fib_info instead of copy
    net_sched: close another race condition in tcf_mirred_release()
    tipc: fix nametable publication field in nl compat
    drivers: net: Don't print unpopulated net_device name
    qed: add support for dcbx.
    ravb: Add missing free_irq() calls to ravb_close()
    qed: Remove a stray tab
    net: ethernet: fec-mpc52xx: use phy_ethtool_{get|set}_link_ksettings
    net: ethernet: fec-mpc52xx: use phydev from struct net_device
    bpf, doc: fix typo on bpf_asm descriptions
    stmmac: hardware TX COE doesn't work when force_thresh_dma_mode is set
    net: ethernet: fs-enet: use phy_ethtool_{get|set}_link_ksettings
    net: ethernet: fs-enet: use phydev from struct net_device
    ...

    Linus Torvalds
     
  • In the current implementation of ARM64 eBPF JIT, R23 and R24 are used for
    tmp registers, which are callee-saved registers. This leads to variable size
    of JIT prologue and epilogue. The latest blinding constant change prefers to
    constant size of prologue and epilogue. AAPCS reserves R9 ~ R15 for temp
    registers which not need to be saved/restored during function call. So, replace
    R23 and R24 to R10 and R11, and remove tmp_used flag to save 2 instructions for
    some jited BPF program.

    CC: Daniel Borkmann
    Acked-by: Zi Shen Lim
    Signed-off-by: Yang Shi
    Acked-by: Catalin Marinas
    Acked-by: Daniel Borkmann
    Signed-off-by: David S. Miller

    Yang Shi
     

17 May, 2016

11 commits

  • Pull ACPI updates from Rafael Wysocki:
    "The new features here are ACPI 6.1 support (and some previously
    missing bits of ACPI 6.0 support) in ACPICA and two new drivers, a
    driver for the ACPI Generic Event Device (GED) feature introduced by
    ACPI 6.1 and the INT3406 thermal driver for display thermal
    management. Also the value returned by the _HRV (hardware revision)
    ACPI object will be exported to user space via sysfs now.

    In addition to that, ACPI on ARM64 will not depend on EXPERT any more.

    The rest is mostly fixes and cleanups and some code reorganization.

    Specifics:

    - In-kernel ACPICA code update to the upstream release 20160422
    adding support for ACPI 6.1 along with some previously missing bits
    of ACPI 6.0 support, making a fair amount of fixes and cleanups and
    reducing divergences between the upstream ACPICA and the in-kernel
    code (Bob Moore, Lv Zheng, Al Stone, Aleksey Makarov, Will Miles)

    - ACPI Generic Event Device (GED) support and a fix for it (Sinan
    Kaya, Paul Gortmaker)

    - INT3406 thermal driver for display thermal management and ACPI
    backlight support code reorganization related to it (Aaron Lu, Arnd
    Bergmann)

    - Support for exporting the value returned by the _HRV (hardware
    revision) ACPI object via sysfs (Betty Dall)

    - Removal of the EXPERT dependency for ACPI on ARM64 (Mark Brown)

    - Rework of the handling of ACPI _OSI mechanism allowing the
    _OSI("Darwin") support to be overridden from the kernel command
    line among other things (Lv Zheng, Chen Yu)

    - Rework of the ACPI tables override mechanism to prepare it for the
    introduction of overlays support going forward (Lv Zheng, Rafael
    Wysocki)

    - Fixes related to the ECDT support and module-level execution of AML
    (Lv Zheng)

    - ACPI PCI interrupts management update to make it work better on
    ARM64 mostly (Sinan Kaya)

    - ACPI SRAT handling update to make the code process all entires in
    the table order regardless of the entry type (Lukasz Anaczkowski)

    - EFI power off support for full-hardware ACPI platforms that don't
    support ACPI S5 (Chen Yu)

    - Fixes and cleanups related to the ACPI core's sysfs interface (Dan
    Carpenter, Betty Dall)

    - acpi_dev_present() API rework to reduce possible confusion related
    to it (Lukas Wunner)

    - Removal of CLK_IS_ROOT from two ACPI drivers (Stephen Boyd)"

    * tag 'acpi-4.7-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm: (82 commits)
    ACPI / video: mark acpi_video_get_levels() inline
    Thermal / ACPI / video: add INT3406 thermal driver
    ACPI / GED: make evged.c explicitly non-modular
    ACPI / tables: Fix DSDT override mechanism
    ACPI / sysfs: fix error code in get_status()
    ACPICA: Update version to 20160422
    ACPICA: Move all ASCII utilities to a common file
    ACPICA: ACPI 2.0, Hardware: Add access_width/bit_offset support for acpi_hw_write()
    ACPICA: ACPI 2.0, Hardware: Add access_width/bit_offset support in acpi_hw_read()
    ACPICA: Executer: Introduce a set of macros to handle bit width mask generation
    ACPICA: Hardware: Add optimized access bit width support
    ACPICA: Utilities: Add ACPI_IS_ALIGNED() macro
    ACPICA: Renamed some #defined flag constants for clarity
    ACPICA: ACPI 6.0, tools/iasl: Add support for new resource descriptors
    ACPICA: ACPI 6.0: Update _BIX support for new package element
    ACPICA: ACPI 6.1: Support for new PCCT subtable
    ACPICA: Refactor evaluate_object to reduce nesting
    ACPICA: Divergence: remove unwanted spaces for typedef
    ACPI,PCI,IRQ: remove SCI penalize function
    ACPI,PCI,IRQ: remove redundant code in acpi_irq_penalty_init()
    ..

    Linus Torvalds
     
  • We will use it to count how many addresses are in the entry->ip[] array,
    excluding PERF_CONTEXT_{KERNEL,USER,etc} entries, so that we can really
    return the number of entries specified by the user via the relevant
    sysctl, kernel.perf_event_max_contexts, or via the per event
    perf_event_attr.sample_max_stack knob.

    This way we keep the perf_sample->ip_callchain->nr meaning, that is the
    number of entries, be it real addresses or PERF_CONTEXT_ entries, while
    honouring the max_stack knobs, i.e. the end result will be max_stack
    entries if we have at least that many entries in a given stack trace.

    Cc: David Ahern
    Cc: Frederic Weisbecker
    Cc: Jiri Olsa
    Cc: Namhyung Kim
    Cc: Peter Zijlstra
    Link: http://lkml.kernel.org/n/tip-s8teto51tdqvlfhefndtat9r@git.kernel.org
    Signed-off-by: Arnaldo Carvalho de Melo

    Arnaldo Carvalho de Melo
     
  • This makes perf_callchain_{user,kernel}() receive the max stack
    as context for the perf_callchain_entry, instead of accessing
    the global sysctl_perf_event_max_stack.

    Cc: Adrian Hunter
    Cc: Alexander Shishkin
    Cc: Alexei Starovoitov
    Cc: Brendan Gregg
    Cc: David Ahern
    Cc: Frederic Weisbecker
    Cc: He Kuang
    Cc: Jiri Olsa
    Cc: Linus Torvalds
    Cc: Masami Hiramatsu
    Cc: Milian Wolff
    Cc: Namhyung Kim
    Cc: Peter Zijlstra
    Cc: Stephane Eranian
    Cc: Thomas Gleixner
    Cc: Vince Weaver
    Cc: Wang Nan
    Cc: Zefan Li
    Link: http://lkml.kernel.org/n/tip-kolmn1yo40p7jhswxwrc7rrd@git.kernel.org
    Signed-off-by: Arnaldo Carvalho de Melo

    Arnaldo Carvalho de Melo
     
  • Pull arm64 perf updates from Will Deacon:
    "The main addition here is support for Broadcom's Vulcan core using the
    architected ID registers for discovering supported events.

    - Support for the PMU in Broadcom's Vulcan CPU

    - Dynamic event detection using the PMCEIDn_EL0 ID registers"

    * tag 'arm64-perf' of git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux:
    arm64: perf: don't expose CHAIN event in sysfs
    arm64/perf: Add Broadcom Vulcan PMU support
    arm64/perf: Filter common events based on PMCEIDn_EL0
    arm64/perf: Access pmu register using _sys_reg
    arm64/perf: Define complete ARMv8 recommended implementation defined events
    arm64/perf: Changed events naming as per the ARM ARM
    arm64: dts: Add Broadcom Vulcan PMU in dts
    Documentation: arm64: pmu: Add Broadcom Vulcan PMU binding

    Linus Torvalds
     
  • Pull arm64 updates from Will Deacon:

    - virt_to_page/page_address optimisations

    - support for NUMA systems described using device-tree

    - support for hibernate/suspend-to-disk

    - proper support for maxcpus= command line parameter

    - detection and graceful handling of AArch64-only CPUs

    - miscellaneous cleanups and non-critical fixes

    * tag 'arm64-upstream' of git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux: (92 commits)
    arm64: do not enforce strict 16 byte alignment to stack pointer
    arm64: kernel: Fix incorrect brk randomization
    arm64: cpuinfo: Missing NULL terminator in compat_hwcap_str
    arm64: secondary_start_kernel: Remove unnecessary barrier
    arm64: Ensure pmd_present() returns false after pmd_mknotpresent()
    arm64: Replace hard-coded values in the pmd/pud_bad() macros
    arm64: Implement pmdp_set_access_flags() for hardware AF/DBM
    arm64: Fix typo in the pmdp_huge_get_and_clear() definition
    arm64: mm: remove unnecessary EXPORT_SYMBOL_GPL
    arm64: always use STRICT_MM_TYPECHECKS
    arm64: kvm: Fix kvm teardown for systems using the extended idmap
    arm64: kaslr: increase randomization granularity
    arm64: kconfig: drop CONFIG_RTC_LIB dependency
    arm64: make ARCH_SUPPORTS_DEBUG_PAGEALLOC depend on !HIBERNATION
    arm64: hibernate: Refuse to hibernate if the boot cpu is offline
    arm64: kernel: Add support for hibernate/suspend-to-disk
    PM / Hibernate: Call flush_icache_range() on pages restored in-place
    arm64: Add new asm macro copy_page
    arm64: Promote KERNEL_START/KERNEL_END definitions to a header file
    arm64: kernel: Include _AC definition in page.h
    ...

    Linus Torvalds
     
  • Pull perf updates from Ingo Molnar:
    "Bigger kernel side changes:

    - Add backwards writing capability to the perf ring-buffer code,
    which is preparation for future advanced features like robust
    'overwrite support' and snapshot mode. (Wang Nan)

    - Add pause and resume ioctls for the perf ringbuffer (Wang Nan)

    - x86 Intel cstate code cleanups and reorgnization (Thomas Gleixner)

    - x86 Intel uncore and CPU PMU driver updates (Kan Liang, Peter
    Zijlstra)

    - x86 AUX (Intel PT) related enhancements and updates (Alexander
    Shishkin)

    - x86 MSR PMU driver enhancements and updates (Huang Rui)

    - ... and lots of other changes spread out over 40+ commits.

    Biggest tooling side changes:

    - 'perf trace' features and enhancements. (Arnaldo Carvalho de Melo)

    - BPF tooling updates (Wang Nan)

    - 'perf sched' updates (Jiri Olsa)

    - 'perf probe' updates (Masami Hiramatsu)

    - ... plus 200+ other enhancements, fixes and cleanups to tools/

    The merge commits, the shortlog and the changelogs contain a lot more
    details"

    * 'perf-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (249 commits)
    perf/core: Disable the event on a truncated AUX record
    perf/x86/intel/pt: Generate PMI in the STOP region as well
    perf buildid-cache: Use lsdir() for looking up buildid caches
    perf symbols: Use lsdir() for the search in kcore cache directory
    perf tools: Use SBUILD_ID_SIZE where applicable
    perf tools: Fix lsdir to set errno correctly
    perf trace: Move seccomp args beautifiers to tools/perf/trace/beauty/
    perf trace: Move flock op beautifier to tools/perf/trace/beauty/
    perf build: Add build-test for debug-frame on arm/arm64
    perf build: Add build-test for libunwind cross-platforms support
    perf script: Fix export of callchains with recursion in db-export
    perf script: Fix callchain addresses in db-export
    perf script: Fix symbol insertion behavior in db-export
    perf symbols: Add dso__insert_symbol function
    perf scripting python: Use Py_FatalError instead of die()
    perf tools: Remove xrealloc and ALLOC_GROW
    perf help: Do not use ALLOC_GROW in add_cmd_list
    perf pmu: Make pmu_formats_string to check return value of strbuf
    perf header: Make topology checkers to check return value of strbuf
    perf tools: Make alias handler to check return value of strbuf
    ...

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

    - Drop the unused EFI_SYSTEM_TABLES efi.flags bit and ensure the
    ARM/arm64 EFI System Table mapping is read-only (Ard Biesheuvel)

    - Add a comment to explain that one of the code paths in the x86/pat
    code is only executed for EFI boot (Matt Fleming)

    - Improve Secure Boot status checks on arm64 and handle unexpected
    errors (Linn Crosetto)

    - Remove the global EFI memory map variable 'memmap' as the same
    information is already available in efi::memmap (Matt Fleming)

    - Add EFI Memory Attribute table support for ARM/arm64 (Ard
    Biesheuvel)

    - Add EFI GOP framebuffer support for ARM/arm64 (Ard Biesheuvel)

    - Add EFI Bootloader Control driver for storing reboot(2) data in EFI
    variables for consumption by bootloaders (Jeremy Compostella)

    - Add Core EFI capsule support (Matt Fleming)

    - Add EFI capsule char driver (Kweh, Hock Leong)

    - Unify EFI memory map code for ARM and arm64 (Ard Biesheuvel)

    - Add generic EFI support for detecting when firmware corrupts CPU
    status register bits (like IRQ flags) when performing EFI runtime
    service calls (Mark Rutland)

    ... and other misc cleanups"

    * 'efi-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (46 commits)
    efivarfs: Make efivarfs_file_ioctl() static
    efi: Merge boolean flag arguments
    efi/capsule: Move 'capsule' to the stack in efi_capsule_supported()
    efibc: Fix excessive stack footprint warning
    efi/capsule: Make efi_capsule_pending() lockless
    efi: Remove unnecessary (and buggy) .memmap initialization from the Xen EFI driver
    efi/runtime-wrappers: Remove ARCH_EFI_IRQ_FLAGS_MASK #ifdef
    x86/efi: Enable runtime call flag checking
    arm/efi: Enable runtime call flag checking
    arm64/efi: Enable runtime call flag checking
    efi/runtime-wrappers: Detect firmware IRQ flag corruption
    efi/runtime-wrappers: Remove redundant #ifdefs
    x86/efi: Move to generic {__,}efi_call_virt()
    arm/efi: Move to generic {__,}efi_call_virt()
    arm64/efi: Move to generic {__,}efi_call_virt()
    efi/runtime-wrappers: Add {__,}efi_call_virt() templates
    efi/arm-init: Reserve rather than unmap the memory map for ARM as well
    efi: Add misc char driver interface to update EFI firmware
    x86/efi: Force EFI reboot to process pending capsules
    efi: Add 'capsule' update support
    ...

    Linus Torvalds
     
  • This patch adds recently added constant blinding helpers into the
    arm64 eBPF JIT. In the bpf_int_jit_compile() path, requirements are
    to utilize bpf_jit_blind_constants()/bpf_jit_prog_release_other()
    pair for rewriting the program into a blinded one, and to map the
    BPF_REG_AX register to a CPU register. The mapping is on x9.

    Signed-off-by: Daniel Borkmann
    Acked-by: Zi Shen Lim
    Acked-by: Yang Shi
    Tested-by: Yang Shi
    Signed-off-by: David S. Miller

    Daniel Borkmann
     
  • Since the blinding is strictly only called from inside eBPF JITs,
    we need to change signatures for bpf_int_jit_compile() and
    bpf_prog_select_runtime() first in order to prepare that the
    eBPF program we're dealing with can change underneath. Hence,
    for call sites, we need to return the latest prog. No functional
    change in this patch.

    Signed-off-by: Daniel Borkmann
    Acked-by: Alexei Starovoitov
    Signed-off-by: David S. Miller

    Daniel Borkmann
     
  • There is never such a situation, where bpf_int_jit_compile() is
    called with either prog as NULL or len as 0, so the tests are
    unnecessary and confusing as people would just copy them. s390
    doesn't have them, so no change is needed there.

    Signed-off-by: Daniel Borkmann
    Acked-by: Alexei Starovoitov
    Signed-off-by: David S. Miller

    Daniel Borkmann
     
  • Split the HAVE_BPF_JIT into two for distinguishing cBPF and eBPF JITs.

    Current cBPF ones:

    # git grep -n HAVE_CBPF_JIT arch/
    arch/arm/Kconfig:44: select HAVE_CBPF_JIT
    arch/mips/Kconfig:18: select HAVE_CBPF_JIT if !CPU_MICROMIPS
    arch/powerpc/Kconfig:129: select HAVE_CBPF_JIT
    arch/sparc/Kconfig:35: select HAVE_CBPF_JIT

    Current eBPF ones:

    # git grep -n HAVE_EBPF_JIT arch/
    arch/arm64/Kconfig:61: select HAVE_EBPF_JIT
    arch/s390/Kconfig:126: select HAVE_EBPF_JIT if PACK_STACK && HAVE_MARCH_Z196_FEATURES
    arch/x86/Kconfig:94: select HAVE_EBPF_JIT if X86_64

    Later code also needs this facility to check for eBPF JITs.

    Signed-off-by: Daniel Borkmann
    Acked-by: Alexei Starovoitov
    Signed-off-by: David S. Miller

    Daniel Borkmann
     

16 May, 2016

2 commits

  • * acpi-pci:
    ACPI,PCI,IRQ: remove SCI penalize function
    ACPI,PCI,IRQ: remove redundant code in acpi_irq_penalty_init()
    ACPI,PCI,IRQ: reduce static IRQ array size to 16
    ACPI,PCI,IRQ: reduce resource requirements

    * acpi-misc:
    ACPI / sysfs: fix error code in get_status()
    ACPI / device_sysfs: Clean up checkpatch errors
    ACPI / device_sysfs: Change _SUN and _STA show functions error return to EIO
    ACPI / device_sysfs: Add sysfs support for _HRV hardware revision
    arm64: defconfig: Enable ACPI
    ACPI / ARM64: Remove EXPERT dependency for ACPI on ARM64
    ACPI / ARM64: Don't enable ACPI by default on ARM64
    acer-wmi: Use acpi_dev_found()
    eeepc-wmi: Use acpi_dev_found()
    ACPI / utils: Rename acpi_dev_present()

    * acpi-tools:
    tools/power/acpi: close file only if it is open

    Rafael J. Wysocki
     
  • The nf_conntrack_core.c fix in 'net' is not relevant in 'net-next'
    because we no longer have a per-netns conntrack hash.

    The ip_gre.c conflict as well as the iwlwifi ones were cases of
    overlapping changes.

    Conflicts:
    drivers/net/wireless/intel/iwlwifi/mvm/tx.c
    net/ipv4/ip_gre.c
    net/netfilter/nf_conntrack_core.c

    Signed-off-by: David S. Miller

    David S. Miller
     

15 May, 2016

1 commit

  • Pull networking fixes from David Miller:

    1) Fix mvneta/bm dependencies, from Arnd Bergmann.

    2) RX completion hw bug workaround in bnxt_en, from Michael Chan.

    3) Kernel pointer leak in nf_conntrack, from Linus.

    4) Hoplimit route attribute limits not enforced properly, from Paolo
    Abeni.

    5) qlcnic driver NULL deref fix from Dan Carpenter.

    * git://git.kernel.org/pub/scm/linux/kernel/git/davem/net:
    arm64: bpf: jit JMP_JSET_{X,K}
    net/route: enforce hoplimit max value
    nf_conntrack: avoid kernel pointer value leak in slab name
    drivers: net: xgene: fix register offset
    drivers: net: xgene: fix statistics counters race condition
    drivers: net: xgene: fix ununiform latency across queues
    drivers: net: xgene: fix sharing of irqs
    drivers: net: xgene: fix IPv4 forward crash
    xen-netback: fix extra_info handling in xenvif_tx_err()
    net: mvneta: bm: fix dependencies again
    bnxt_en: Add workaround to detect bad opaque in rx completion (part 2)
    bnxt_en: Add workaround to detect bad opaque in rx completion (part 1)
    qlcnic: potential NULL dereference in qlcnic_83xx_get_minidump_template()

    Linus Torvalds