24 Oct, 2014

11 commits

  • Currently, all group15 instructions are decoded as clflush (e.g., mfence,
    xsave). In addition, the clflush instruction requires no prefix (66/f2/f3)
    would exist. If prefix exists it may encode a different instruction (e.g.,
    clflushopt).

    Creating a group for clflush, and different group for each prefix.

    This has been the case forever, but the next patch needs the cflush group
    in order to fix a bug introduced in 3.17.

    Fixes: 41061cdb98a0bec464278b4db8e894a3121671f5
    Cc: stable@vger.kernel.org
    Signed-off-by: Nadav Amit
    Signed-off-by: Paolo Bonzini

    Nadav Amit
     
  • A failure to decode the instruction can cause a NULL pointer access.
    This is fixed simply by moving the "done" label as close as possible
    to the return.

    This fixes CVE-2014-8481.

    Reported-by: Andy Lutomirski
    Cc: stable@vger.kernel.org
    Fixes: 41061cdb98a0bec464278b4db8e894a3121671f5
    Signed-off-by: Paolo Bonzini

    Paolo Bonzini
     
  • Once an instruction crosses a page boundary, the size read from the second page
    disregards the common case that part of the operand resides on the first page.
    As a result, fetch of long insturctions may fail, and thereby cause the
    decoding to fail as well.

    Cc: stable@vger.kernel.org
    Fixes: 5cfc7e0f5e5e1adf998df94f8e36edaf5d30d38e
    Signed-off-by: Nadav Amit
    Signed-off-by: Paolo Bonzini

    Nadav Amit
     
  • KVM_EXIT_UNKNOWN is a kvm bug, we don't really know whether it was
    triggered by a priveledged application. Let's not kill the guest: WARN
    and inject #UD instead.

    Cc: stable@vger.kernel.org
    Signed-off-by: Michael S. Tsirkin
    Signed-off-by: Paolo Bonzini

    Michael S. Tsirkin
     
  • On systems with invvpid instruction support (corresponding bit in
    IA32_VMX_EPT_VPID_CAP MSR is set) guest invocation of invvpid
    causes vm exit, which is currently not handled and results in
    propagation of unknown exit to userspace.

    Fix this by installing an invvpid vm exit handler.

    This is CVE-2014-3646.

    Cc: stable@vger.kernel.org
    Signed-off-by: Petr Matousek
    Signed-off-by: Paolo Bonzini

    Petr Matousek
     
  • Far jmp/call/ret may fault while loading a new RIP. Currently KVM does not
    handle this case, and may result in failed vm-entry once the assignment is
    done. The tricky part of doing so is that loading the new CS affects the
    VMCS/VMCB state, so if we fail during loading the new RIP, we are left in
    unconsistent state. Therefore, this patch saves on 64-bit the old CS
    descriptor and restores it if loading RIP failed.

    This fixes CVE-2014-3647.

    Cc: stable@vger.kernel.org
    Signed-off-by: Nadav Amit
    Signed-off-by: Paolo Bonzini

    Nadav Amit
     
  • Before changing rip (during jmp, call, ret, etc.) the target should be asserted
    to be canonical one, as real CPUs do. During sysret, both target rsp and rip
    should be canonical. If any of these values is noncanonical, a #GP exception
    should occur. The exception to this rule are syscall and sysenter instructions
    in which the assigned rip is checked during the assignment to the relevant
    MSRs.

    This patch fixes the emulator to behave as real CPUs do for near branches.
    Far branches are handled by the next patch.

    This fixes CVE-2014-3647.

    Cc: stable@vger.kernel.org
    Signed-off-by: Nadav Amit
    Signed-off-by: Paolo Bonzini

    Nadav Amit
     
  • Relative jumps and calls do the masking according to the operand size, and not
    according to the address size as the KVM emulator does today.

    This patch fixes KVM behavior.

    Cc: stable@vger.kernel.org
    Signed-off-by: Nadav Amit
    Signed-off-by: Paolo Bonzini

    Nadav Amit
     
  • There's a race condition in the PIT emulation code in KVM. In
    __kvm_migrate_pit_timer the pit_timer object is accessed without
    synchronization. If the race condition occurs at the wrong time this
    can crash the host kernel.

    This fixes CVE-2014-3611.

    Cc: stable@vger.kernel.org
    Signed-off-by: Andrew Honig
    Signed-off-by: Paolo Bonzini

    Andy Honig
     
  • The previous patch blocked invalid writes directly when the MSR
    is written. As a precaution, prevent future similar mistakes by
    gracefulling handle GPs caused by writes to shared MSRs.

    Cc: stable@vger.kernel.org
    Signed-off-by: Andrew Honig
    [Remove parts obsoleted by Nadav's patch. - Paolo]
    Signed-off-by: Paolo Bonzini

    Andy Honig
     
  • Upon WRMSR, the CPU should inject #GP if a non-canonical value (address) is
    written to certain MSRs. The behavior is "almost" identical for AMD and Intel
    (ignoring MSRs that are not implemented in either architecture since they would
    anyhow #GP). However, IA32_SYSENTER_ESP and IA32_SYSENTER_EIP cause #GP if
    non-canonical address is written on Intel but not on AMD (which ignores the top
    32-bits).

    Accordingly, this patch injects a #GP on the MSRs which behave identically on
    Intel and AMD. To eliminate the differences between the architecutres, the
    value which is written to IA32_SYSENTER_ESP and IA32_SYSENTER_EIP is turned to
    canonical value before writing instead of injecting a #GP.

    Some references from Intel and AMD manuals:

    According to Intel SDM description of WRMSR instruction #GP is expected on
    WRMSR "If the source register contains a non-canonical address and ECX
    specifies one of the following MSRs: IA32_DS_AREA, IA32_FS_BASE, IA32_GS_BASE,
    IA32_KERNEL_GS_BASE, IA32_LSTAR, IA32_SYSENTER_EIP, IA32_SYSENTER_ESP."

    According to AMD manual instruction manual:
    LSTAR/CSTAR (SYSCALL): "The WRMSR instruction loads the target RIP into the
    LSTAR and CSTAR registers. If an RIP written by WRMSR is not in canonical
    form, a general-protection exception (#GP) occurs."
    IA32_GS_BASE and IA32_FS_BASE (WRFSBASE/WRGSBASE): "The address written to the
    base field must be in canonical form or a #GP fault will occur."
    IA32_KERNEL_GS_BASE (SWAPGS): "The address stored in the KernelGSbase MSR must
    be in canonical form."

    This patch fixes CVE-2014-3610.

    Cc: stable@vger.kernel.org
    Signed-off-by: Nadav Amit
    Signed-off-by: Paolo Bonzini

    Nadav Amit
     

22 Oct, 2014

1 commit

  • Pull mailbox framework from Jassi Brar:
    "A framework for Mailbox controllers and clients have been cooking for
    more than a year now.

    Everybody in the CC list had been copied on patchset revisions and
    most of them have made sounds of approval, though just one concrete
    Reviewed-by. The patchset has also been in linux-next for a couple of
    weeks now and no conflict has been reported. The framework has the
    backing of at least 5 platforms, though I can't say if/when they
    upstream their drivers (some businesses have 'changed')"

    (Further acked-by by Arnd Bergmann and Suman Anna in the pull request
    thread)

    * 'mailbox-for-linus' of git://git.linaro.org/landing-teams/working/fujitsu/integration:
    dt: mailbox: add generic bindings
    doc: add documentation for mailbox framework
    mailbox: Introduce framework for mailbox
    mailbox: rename pl320-ipc specific mailbox.h

    Linus Torvalds
     

21 Oct, 2014

5 commits

  • Pull watchdog updates from Wim Van Sebroeck:
    - new Cadence WDT driver
    - new Ricoh RN5T618 watchdog
    - new DA9063 PMIC watchdog driver
    - new Meson WDT driver
    - add restart handling code
    - fixes and improvements

    * git://www.linux-watchdog.org/linux-watchdog: (25 commits)
    watchdog: meson: remove magic value for reboot
    watchdog: Let XILINX_WATCHDOG and TEGRA_WATCHDOG depend on HAS_IOMEM
    watchdog: sunxi: Add A31 watchdog support
    watchdog: sunxi: support parameterized compatible strings
    watchdog: imx2_wdt: add restart handler support
    watchdog: qcom: register a restart notifier
    watchdog: s3c2410: add restart handler
    watchdog: dw_wdt: add restart handler support
    ARM: defconfig: update multi_v7_defconfig
    ARM: meson: add watchdog driver
    ARM: docs: add documentation binding for meson watchdog
    stmp3xxx_rtc_wdt: Add suspend/resume PM support
    watchdog: Add DA9063 PMIC watchdog driver.
    watchdog: add driver for Ricoh RN5T618 watchdog
    watchdog: s3c2410_wdt: Add support for Watchdog device on Exynos7
    watchdog: qcom: document device tree bindings
    watchdog: qcom: add support for KPSS WDT
    watchdog: dw_wdt: initialise TOP_INIT in dw_wdt_set_top()
    devicetree: Add Cadence WDT devicetree bindings documentation
    watchdog: Add Cadence WDT driver
    ...

    Linus Torvalds
     
  • Pull ARC updates from Vineet Gupta:
    "Sorry for the late pull request. Current stuff was ready for a while
    but I was hoping to squeeze in support for almost ready ARC SDP
    platform (and avoid a 2nd pull request), however it seems there are
    still some loose ends which warrant more time.

    - Platform code reduction/moving-up (TB10X no longer needs any
    callbacks)
    - updated boot printing
    - kgdb update for arc gdb 7.5
    - bug fixes (some marked for stable)
    - more code refactoring/consolidation"

    * tag 'arc-3.18-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/vgupta/arc:
    ARC: boot: cpu feature print enhancements
    ARC: boot: consolidate cross-checking of h/w and s/w
    ARC: unbork FPU save/restore
    ARC: remove extraneous __KERNEL__ guards
    ARC: Update order of registers in KGDB to match GDB 7.5
    ARC: Remove unneeded Kconfig entry NO_DMA
    ARC: BUG() dumps stack after @msg (@msg now same as in generic BUG))
    ARC: refactoring: reduce the scope of some local vars
    ARC: remove gcc mpy heuristics
    ARC: RIP @running_on_hw
    ARC: Update comments about uncached address space
    ARC: rename kconfig option for unaligned emulation
    ARC: [nsimosci] Allow "headless" models to boot
    ARC: [arcfpga] Get rid of ARC_BOARD_ANGEL4 and ARC_BOARD_ML509
    ARC: [arcfpga] Remove more dead code
    ARC: [plat*] move code out of .init_machine into common
    ARC: [arcfpga] consolidate machine description, DT
    ARC: Allow SMP kernel to build/boot on UP-only infrastructure

    Linus Torvalds
     
  • Pull more powerpc updates from Michael Ellerman:
    "Here's some more updates for powerpc for 3.18.

    They are a bit late I know, though must are actually bug fixes. In my
    defence I nearly cut the top of my finger off last weekend in a
    gruesome bike maintenance accident, so I spent a good part of the week
    waiting around for doctors. True story, I can send photos if you like :)

    Probably the most interesting fix is the sys_call_table one, which
    enables syscall tracing for powerpc. There's a fix for HMI handling
    for old firmware, more endian fixes for firmware interfaces, more EEH
    fixes, Anton fixed our routine that gets the current stack pointer,
    and a few other misc bits"

    * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mpe/linux: (22 commits)
    powerpc: Only do dynamic DMA zone limits on platforms that need it
    powerpc: sync pseries_le_defconfig with pseries_defconfig
    powerpc: Add printk levels to setup_system output
    powerpc/vphn: NUMA node code expects big-endian
    powerpc/msi: Use WARN_ON() in msi bitmap selftests
    powerpc/msi: Fix the msi bitmap alignment tests
    powerpc/eeh: Block CFG upon frozen Shiner adapter
    powerpc/eeh: Don't collect logs on PE with blocked config space
    powerpc/eeh: Block PCI config access upon frozen PE
    powerpc/pseries: Drop config requests in EEH accessors
    powerpc/powernv: Drop config requests in EEH accessors
    powerpc/eeh: Rename flag EEH_PE_RESET to EEH_PE_CFG_BLOCKED
    powerpc/eeh: Fix condition for isolated state
    powerpc/pseries: Make CPU hotplug path endian safe
    powerpc/pseries: Use dump_stack instead of show_stack
    powerpc: Rename __get_SP() to current_stack_pointer()
    powerpc: Reimplement __get_SP() as a function not a define
    powerpc/numa: Add ability to disable and debug topology updates
    powerpc/numa: check error return from proc_create
    powerpc/powernv: Fallback to old HMI handling behavior for old firmware
    ...

    Linus Torvalds
     
  • Pull s390 updates from Martin Schwidefsky:
    "One patch to enable the BPF system call and three more bug fixes"

    * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/s390/linux:
    s390/uprobes: fix kprobes dependency
    s390: wire up bpf syscall
    s390/mm: fixing calls of pte_unmap_unlock
    s390/hmcdrv: Restrict s390 HMC driver to S390 arch

    Linus Torvalds
     
  • Update the multi_v7_defconfig enabling the watchdog driver for Meson
    SoCs.

    Signed-off-by: Carlo Caione
    Reviewed-by: Guenter Roeck
    Signed-off-by: Wim Van Sebroeck

    Carlo Caione
     

20 Oct, 2014

5 commits

  • Pull ARM SoC fixes from Olof Johansson:
    "A batch of fixes that have come in during the merge window.

    Some of them are defconfig updates for things that have now landed,
    some errata additions and a few general scattered fixes.

    There's also a qcom DT update that adds support for SATA on AP148, and
    basic support for Sony Xperia Z1 and CM-QS600 platforms that seemed
    isolated enough that we could merge it even if it's late"

    * tag 'arm-soc-fixes-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc:
    MAINTAINERS: corrected bcm2835 search
    ARM: dts: Explicitly set dr_mode on exynos5420-arndale-octa
    ARM: dts: Explicitly set dr_mode on exynos Peach boards
    ARM: dts: qcom: add CM-QS600 board
    ARM: dts: qcom: Add initial DTS file for Sony Xperia Z1 phone
    ARM: dts: qcom: Add SATA support on IPQ8064/AP148
    MAINTAINERS: Update Santosh Shilimkar's email id
    ARM: sunxi_defconfig: enable CONFIG_REGULATOR
    ARM: dts: Disable smc91x on n900 until bootloader dependency is removed
    ARM: omap2plus_defconfig: Enable ARM erratum 430973 for omap3
    ARM: exynos_defconfig: enable USB gadget support
    ARM: exynos_defconfig: Enable Maxim 77693 and I2C GPIO drivers
    ARM: mm: Fix ifdef around cpu_*_do_[suspend, resume] ops
    ARM: EXYNOS: Fix build with PM_SLEEP=n and ARM_EXYNOS_CPUIDLE=n
    ARM: SAMSUNG: Restore Samsung PM Debug functionality
    ARM: dts: Fix pull setting in sd4_width8 pin group for exynos4x12
    ARM: exynos_defconfig: Enable SBS battery support
    ARM: exynos_defconfig: Enable Control Groups support
    ARM: exynos_defconfig: Enable Atmel maXTouch support
    ARM: exynos_defconfig: Enable MAX77802

    Linus Torvalds
     
  • Pull audit updates from Eric Paris:
    "So this change across a whole bunch of arches really solves one basic
    problem. We want to audit when seccomp is killing a process. seccomp
    hooks in before the audit syscall entry code. audit_syscall_entry
    took as an argument the arch of the given syscall. Since the arch is
    part of what makes a syscall number meaningful it's an important part
    of the record, but it isn't available when seccomp shoots the
    syscall...

    For most arch's we have a better way to get the arch (syscall_get_arch)
    So the solution was two fold: Implement syscall_get_arch() everywhere
    there is audit which didn't have it. Use syscall_get_arch() in the
    seccomp audit code. Having syscall_get_arch() everywhere meant it was
    a useless flag on the stack and we could get rid of it for the typical
    syscall entry.

    The other changes inside the audit system aren't grand, fixed some
    records that had invalid spaces. Better locking around the task comm
    field. Removing some dead functions and structs. Make some things
    static. Really minor stuff"

    * git://git.infradead.org/users/eparis/audit: (31 commits)
    audit: rename audit_log_remove_rule to disambiguate for trees
    audit: cull redundancy in audit_rule_change
    audit: WARN if audit_rule_change called illegally
    audit: put rule existence check in canonical order
    next: openrisc: Fix build
    audit: get comm using lock to avoid race in string printing
    audit: remove open_arg() function that is never used
    audit: correct AUDIT_GET_FEATURE return message type
    audit: set nlmsg_len for multicast messages.
    audit: use union for audit_field values since they are mutually exclusive
    audit: invalid op= values for rules
    audit: use atomic_t to simplify audit_serial()
    kernel/audit.c: use ARRAY_SIZE instead of sizeof/sizeof[0]
    audit: reduce scope of audit_log_fcaps
    audit: reduce scope of audit_net_id
    audit: arm64: Remove the audit arch argument to audit_syscall_entry
    arm64: audit: Add audit hook in syscall_trace_enter/exit()
    audit: x86: drop arch from __audit_syscall_entry() interface
    sparc: implement is_32bit_task
    sparc: properly conditionalize use of TIF_32BIT
    ...

    Linus Torvalds
     
  • …galak/linux-qcom into fixes

    Merge "qcom DT changes for v3.18-3" from Kumar Gala:

    Qualcomm ARM Based Device Tree Updates for v3.18-3

    * Added Board support for CM-QS600 and Sony Xperia Z1 phone
    * Added SATA support on IPQ8064/AP148

    * tag 'qcom-dt-for-3.18-3' of git://git.kernel.org/pub/scm/linux/kernel/git/galak/linux-qcom:
    ARM: dts: qcom: add CM-QS600 board
    ARM: dts: qcom: Add initial DTS file for Sony Xperia Z1 phone
    ARM: dts: qcom: Add SATA support on IPQ8064/AP148

    Olof Johansson
     
  • …ne/linux-samsung into fixes

    Pull more fixes from Kukjin Kim:

    2nd Samsung fixes for v3.18
    - Explicitly set dr_mode on exynos5800-peach-pi, exynos5420-peach-pit
    and exynos5420-arndale-octa boards, because the USB dwc3 controller
    will not work properly without dr_mode as host on above boards if
    the USB host and gadget are enabled in kernel configuration both.

    * tag 'samsung-fixes-2' of git://git.kernel.org/pub/scm/linux/kernel/git/kgene/linux-samsung:
    ARM: dts: Explicitly set dr_mode on exynos5420-arndale-octa
    ARM: dts: Explicitly set dr_mode on exynos Peach boards

    Signed-off-by: Olof Johansson <olof@lixom.net>

    Olof Johansson
     
  • Pull more perf updates from Ingo Molnar:
    "A second (and last) round of late coming fixes and changes, almost all
    of them in perf tooling:

    User visible tooling changes:

    - Add period data column and make it default in 'perf script' (Jiri
    Olsa)

    - Add a visual cue for toggle zeroing of samples in 'perf top'
    (Taeung Song)

    - Improve callchains when using libunwind (Namhyung Kim)

    Tooling fixes and infrastructure changes:

    - Fix for double free in 'perf stat' when using some specific invalid
    command line combo (Yasser Shalabi)

    - Fix off-by-one bugs in map->end handling (Stephane Eranian)

    - Fix off-by-one bug in maps__find(), also related to map->end
    handling (Namhyung Kim)

    - Make struct symbol->end be the first addr after the symbol range,
    to make it match the convention used for struct map->end. (Arnaldo
    Carvalho de Melo)

    - Fix perf_evlist__add_pollfd() error handling in 'perf kvm stat
    live' (Jiri Olsa)

    - Fix python test build by moving callchain_param to an object linked
    into the python binding (Jiri Olsa)

    - Document sysfs events/ interfaces (Cody P Schafer)

    - Fix typos in perf/Documentation (Masanari Iida)

    - Add missing 'struct option' forward declaration (Arnaldo Carvalho
    de Melo)

    - Add option to copy events when queuing for sorting across cpu
    buffers and enable it for 'perf kvm stat live', to avoid having
    events left in the queue pointing to the ring buffer be rewritten
    in high volume sessions. (Alexander Yarygin, improving work done
    by David Ahern):

    - Do not include a struct hists per perf_evsel, untangling the
    histogram code from perf_evsel, to pave the way for exporting a
    minimalistic tools/lib/api/perf/ library usable by tools/perf and
    initially by the rasd daemon being developed by Borislav Petkov,
    Robert Richter and Jean Pihet. (Arnaldo Carvalho de Melo)

    - Make perf_evlist__open(evlist, NULL, NULL), i.e. without cpu and
    thread maps mean syswide monitoring, reducing the boilerplate for
    tools that only want system wide mode. (Arnaldo Carvalho de Melo)

    - Move exit stuff from perf_evsel__delete to perf_evsel__exit, delete
    should be just a front end for exit + free (Arnaldo Carvalho de
    Melo)

    - Add support to new style format of kernel PMU event. (Kan Liang)

    and other misc fixes"

    * 'perf-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (45 commits)
    perf script: Add period as a default output column
    perf script: Add period data column
    perf evsel: No need to drag util/cgroup.h
    perf evlist: Add missing 'struct option' forward declaration
    perf evsel: Move exit stuff from __delete to __exit
    kprobes/x86: Remove stale ARCH_SUPPORTS_KPROBES_ON_FTRACE define
    perf kvm stat live: Enable events copying
    perf session: Add option to copy events when queueing
    perf Documentation: Fix typos in perf/Documentation
    perf trace: Use thread_{,_set}_priv helpers
    perf kvm: Use thread_{,_set}_priv helpers
    perf callchain: Create an address space per thread
    perf report: Set callchain_param.record_mode for future use
    perf evlist: Fix for double free in tools/perf stat
    perf test: Add test case for pmu event new style format
    perf tools: Add support to new style format of kernel PMU event
    perf tools: Parse the pmu event prefix and suffix
    Revert "perf tools: Default to cpu// for events v5"
    perf Documentation: Remove Ruplicated docs for powerpc cpu specific events
    perf Documentation: sysfs events/ interfaces
    ...

    Linus Torvalds
     

19 Oct, 2014

10 commits

  • This breaks the stack end corruption detection facility.

    What that facility does it write a magic value to "end_of_stack()"
    and checking to see if it gets overwritten.

    "end_of_stack()" is "task_thread_info(p) + 1", which for sparc64 is
    the beginning of the FPU register save area.

    So once the user uses the FPU, the magic value is overwritten and the
    debug checks trigger.

    Fix this by making the size explicit.

    Due to the size we use for the fpsaved[], gsr[], and xfsr[] arrays we
    are limited to 7 levels of FPU state saves. So each FPU register set
    is 256 bytes, allocate 256 * 7 for the fpregs area.

    Reported-by: Meelis Roos
    Signed-off-by: David S. Miller

    David S. Miller
     
  • Every path that ends up at do_sparc64_fault() must install a valid
    FAULT_CODE_* bitmask in the per-thread fault code byte.

    Two paths leading to the label winfix_trampoline (which expects the
    FAULT_CODE_* mask in register %g4) were not doing so:

    1) For pre-hypervisor TLB protection violation traps, if we took
    the 'winfix_trampoline' path we wouldn't have %g4 initialized
    with the FAULT_CODE_* value yet. Resulting in using the
    TLB_TAG_ACCESS register address value instead.

    2) In the TSB miss path, when we notice that we are going to use a
    hugepage mapping, but we haven't allocated the hugepage TSB yet, we
    still have to take the window fixup case into consideration and
    in that particular path we leave %g4 not setup properly.

    Errors on this sort were largely invisible previously, but after
    commit 4ccb9272892c33ef1c19a783cfa87103b30c2784 ("sparc64: sun4v TLB
    error power off events") we now have a fault_code mask bit
    (FAULT_CODE_BAD_RA) that triggers due to this bug.

    FAULT_CODE_BAD_RA triggers because this bit is set in TLB_TAG_ACCESS
    (see #1 above) and thus we get seemingly random bus errors triggered
    for user processes.

    Fixes: 4ccb9272892c ("sparc64: sun4v TLB error power off events")
    Reported-by: Meelis Roos
    Signed-off-by: David S. Miller

    David S. Miller
     
  • Pull slave-dmaengine updates from Vinod Koul:
    "For dmaengine contributions we have:
    - designware cleanup by Andy
    - my series moving device_control users to dmanegine_xxx APIs for
    later removal of device_control API
    - minor fixes spread over drivers mainly mv_xor, pl330, mmp, imx-sdma
    etc"

    * 'for-linus' of git://git.infradead.org/users/vkoul/slave-dma: (60 commits)
    serial: atmel: add missing dmaengine header
    dmaengine: remove FSLDMA_EXTERNAL_START
    dmaengine: freescale: remove FSLDMA_EXTERNAL_START control method
    carma-fpga: move to fsl_dma_external_start()
    carma-fpga: use dmaengine_xxx() API
    dmaengine: freescale: add and export fsl_dma_external_start()
    dmaengine: add dmaengine_prep_dma_sg() helper
    video: mx3fb: use dmaengine_terminate_all() API
    serial: sh-sci: use dmaengine_terminate_all() API
    net: ks8842: use dmaengine_terminate_all() API
    mtd: sh_flctl: use dmaengine_terminate_all() API
    mtd: fsmc_nand: use dmaengine_terminate_all() API
    V4L2: mx3_camer: use dmaengine_pause() API
    dmaengine: coh901318: use dmaengine_terminate_all() API
    pata_arasan_cf: use dmaengine_terminate_all() API
    dmaengine: edma: check for echan->edesc => NULL in edma_dma_pause()
    dmaengine: dw: export probe()/remove() and Co to users
    dmaengine: dw: enable and disable controller when needed
    dmaengine: dw: always export dw_dma_{en,dis}able
    dmaengine: dw: introduce dw_dma_on() helper
    ...

    Linus Torvalds
     
  • Pull second batch of changes for KVM/{arm,arm64} from Marc Zyngier:
    "The most obvious thing is the sizeable MMU changes to support 48bit
    VAs on arm64.

    Summary:

    - support for 48bit IPA and VA (EL2)
    - a number of fixes for devices mapped into guests
    - yet another VGIC fix for BE
    - a fix for CPU hotplug
    - a few compile fixes (disabled VGIC, strict mm checks)"

    [ I'm pulling directly from Marc at the request of Paolo Bonzini, whose
    backpack was stolen at Düsseldorf airport and will do new keys and
    rebuild his web of trust. - Linus ]

    * tag 'kvm-arm-for-3.18-take-2' of git://git.kernel.org/pub/scm/linux/kernel/git/kvmarm/kvmarm:
    arm/arm64: KVM: Fix BE accesses to GICv2 EISR and ELRSR regs
    arm: kvm: STRICT_MM_TYPECHECKS fix for user_mem_abort
    arm/arm64: KVM: Ensure memslots are within KVM_PHYS_SIZE
    arm64: KVM: Implement 48 VA support for KVM EL2 and Stage-2
    arm/arm64: KVM: map MMIO regions at creation time
    arm64: kvm: define PAGE_S2_DEVICE as read-only by default
    ARM: kvm: define PAGE_S2_DEVICE as read-only by default
    arm/arm64: KVM: add 'writable' parameter to kvm_phys_addr_ioremap
    arm/arm64: KVM: fix potential NULL dereference in user_mem_abort()
    arm/arm64: KVM: use __GFP_ZERO not memset() to get zeroed pages
    ARM: KVM: fix vgic-disabled build
    arm: kvm: fix CPU hotplug

    Linus Torvalds
     
  • Pull MIPS updates from Ralf Baechle:
    "This is the MIPS pull request for the next kernel:

    - Zubair's patch series adds CMA support for MIPS. Doing so it also
    touches ARM64 and x86.
    - remove the last instance of IRQF_DISABLED from arch/mips
    - updates to two of the MIPS defconfig files.
    - cleanup of how cache coherency bits are handled on MIPS and
    implement support for write-combining.
    - platform upgrades for Alchemy
    - move MIPS DTS files to arch/mips/boot/dts/"

    * 'upstream' of git://git.linux-mips.org/pub/scm/ralf/upstream-linus: (24 commits)
    MIPS: ralink: remove deprecated IRQF_DISABLED
    MIPS: pgtable.h: Implement the pgprot_writecombine function for MIPS
    MIPS: cpu-probe: Set the write-combine CCA value on per core basis
    MIPS: pgtable-bits: Define the CCA bit for WC writes on Ingenic cores
    MIPS: pgtable-bits: Move the CCA bits out of the core's ifdef blocks
    MIPS: DMA: Add cma support
    x86: use generic dma-contiguous.h
    arm64: use generic dma-contiguous.h
    asm-generic: Add dma-contiguous.h
    MIPS: BPF: Add new emit_long_instr macro
    MIPS: ralink: Move device-trees to arch/mips/boot/dts/
    MIPS: Netlogic: Move device-trees to arch/mips/boot/dts/
    MIPS: sead3: Move device-trees to arch/mips/boot/dts/
    MIPS: Lantiq: Move device-trees to arch/mips/boot/dts/
    MIPS: Octeon: Move device-trees to arch/mips/boot/dts/
    MIPS: Add support for building device-tree binaries
    MIPS: Create common infrastructure for building built-in device-trees
    MIPS: SEAD3: Enable DEVTMPFS
    MIPS: SEAD3: Regenerate defconfigs
    MIPS: Alchemy: DB1300: Add touch penirq support
    ...

    Linus Torvalds
     
  • Pull powerpc fix from Michael Ellerman:
    "There was a bit of a misunderstanding between us and the ARM guys in
    the device tree PCI code, which is breaking virtio on powerpc.

    This is the minimal fix until we can sort it out properly"

    * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mpe/linux:
    powerpc/pci: Fix IO space breakage after of_pci_range_to_resource() change

    Linus Torvalds
     
  • Pull MTD update from Brian Norris:
    "Sorry for delaying this a bit later than usual. There's one mild
    regression from 3.16 that was noticed during the 3.17 cycle, and I
    meant to send a fix for it along with this pull request. I'll
    probably try to queue it up for a later pull request once I've had a
    better look at it, hopefully by -rc2 at the latest.

    Summary for this pull:

    NAND
    - Cleanup for Denali driver
    - Atmel: add support for new page sizes
    - Atmel: fix up 'raw' mode support
    - Atmel: miscellaneous cleanups
    - New timing mode helpers for non-ONFI NAND
    - OMAP: allow driver to be (properly) built as a module
    - bcm47xx: RESET support and other cleanups

    SPI NOR
    - Miscellaneous cleanups, to prepare framework for wider use (some
    further work still pending)
    - Compile-time configuration to select 4K vs. 64K support for flash
    that support both (necessary for using UBIFS on some SPI NOR)

    A few scattered code quality fixes, detected by Coverity

    See the changesets for more"

    * tag 'for-linus-20141015' of git://git.infradead.org/linux-mtd: (59 commits)
    mtd: nand: omap: Correct CONFIG_MTD_NAND_OMAP_BCH help message
    mtd: nand: Force omap_elm to be built as a module if omap2_nand is a module
    mtd: move support for struct flash_platform_data into m25p80
    mtd: spi-nor: add Kconfig option to disable 4K sectors
    mtd: nand: Move ELM driver and rename as omap_elm
    nand: omap2: Replace pr_err with dev_err
    nand: omap2: Remove horrible ifdefs to fix module probe
    mtd: nand: add Hynix's H27UCG8T2ATR-BC to nand_ids table
    mtd: nand: support ONFI timing mode retrieval for non-ONFI NANDs
    mtd: physmap_of: Add non-obsolete map_rom probe
    mtd: physmap_of: Fix ROM support via OF
    MAINTAINERS: add l2-mtd.git, 'next' tree for MTD
    mtd: denali: fix indents and other trivial things
    mtd: denali: remove unnecessary parentheses
    mtd: denali: remove another set-but-unused variable
    mtd: denali: fix include guard and license block of denali.h
    mtd: nand: don't break long print messages
    mtd: bcm47xxnflash: replace some magic numbers
    mtd: bcm47xxnflash: NAND_CMD_RESET support
    mtd: bcm47xxnflash: add cmd_ctrl handler
    ...

    Linus Torvalds
     
  • CR4 isn't constant; at least the TSD and PCE bits can vary.

    TBH, treating CR0 and CR3 as constant scares me a bit, too, but it looks
    like it's correct.

    This adds a branch and a read from cr4 to each vm entry. Because it is
    extremely likely that consecutive entries into the same vcpu will have
    the same host cr4 value, this fixes up the vmcs instead of restoring cr4
    after the fact. A subsequent patch will add a kernel-wide cr4 shadow,
    reducing the overhead in the common case to just two memory reads and a
    branch.

    Signed-off-by: Andy Lutomirski
    Acked-by: Paolo Bonzini
    Cc: stable@vger.kernel.org
    Cc: Petr Matousek
    Cc: Gleb Natapov
    Signed-off-by: Linus Torvalds

    Andy Lutomirski
     
  • Pull networking fixes from David Miller:

    1) Include fixes for netrom and dsa (Fabian Frederick and Florian
    Fainelli)

    2) Fix FIXED_PHY support in stmmac, from Giuseppe CAVALLARO.

    3) Several SKB use after free fixes (vxlan, openvswitch, vxlan,
    ip_tunnel, fou), from Li ROngQing.

    4) fec driver PTP support fixes from Luwei Zhou and Nimrod Andy.

    5) Use after free in virtio_net, from Michael S Tsirkin.

    6) Fix flow mask handling for megaflows in openvswitch, from Pravin B
    Shelar.

    7) ISDN gigaset and capi bug fixes from Tilman Schmidt.

    8) Fix route leak in ip_send_unicast_reply(), from Vasily Averin.

    9) Fix two eBPF JIT bugs on x86, from Alexei Starovoitov.

    10) TCP_SKB_CB() reorganization caused a few regressions, fixed by Cong
    Wang and Eric Dumazet.

    11) Don't overwrite end of SKB when parsing malformed sctp ASCONF
    chunks, from Daniel Borkmann.

    12) Don't call sock_kfree_s() with NULL pointers, this function also has
    the side effect of adjusting the socket memory usage. From Cong Wang.

    * git://git.kernel.org/pub/scm/linux/kernel/git/davem/net: (90 commits)
    bna: fix skb->truesize underestimation
    net: dsa: add includes for ethtool and phy_fixed definitions
    openvswitch: Set flow-key members.
    netrom: use linux/uaccess.h
    dsa: Fix conversion from host device to mii bus
    tipc: fix bug in bundled buffer reception
    ipv6: introduce tcp_v6_iif()
    sfc: add support for skb->xmit_more
    r8152: return -EBUSY for runtime suspend
    ipv4: fix a potential use after free in fou.c
    ipv4: fix a potential use after free in ip_tunnel_core.c
    hyperv: Add handling of IP header with option field in netvsc_set_hash()
    openvswitch: Create right mask with disabled megaflows
    vxlan: fix a free after use
    openvswitch: fix a use after free
    ipv4: dst_entry leak in ip_send_unicast_reply()
    ipv4: clean up cookie_v4_check()
    ipv4: share tcp_v4_save_options() with cookie_v4_check()
    ipv4: call __ip_options_echo() in cookie_v4_check()
    atm: simplify lanai.c by using module_pci_driver
    ...

    Linus Torvalds
     
  • Pull Sparc bugfix from David Miller:
    "Sparc64 AES ctr mode bug fix"

    * git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc:
    sparc64: Fix FPU register corruption with AES crypto offload.

    Linus Torvalds
     

17 Oct, 2014

6 commits

  • If kprobes is disabled uprobes will not compile.
    Fix this by including the correct header files.

    Signed-off-by: Jan Willeke
    Signed-off-by: Martin Schwidefsky

    Jan Willeke
     
  • Signed-off-by: Heiko Carstens
    Signed-off-by: Martin Schwidefsky

    Heiko Carstens
     
  • Commit e7dbfe349d12 ("kprobes/x86: Move ftrace-based kprobe code
    into kprobes-ftrace.c") switched from using
    ARCH_SUPPORTS_KPROBES_ON_FTRACE to CONFIG_KPROBES_ON_FTRACE but
    missed removing the define.

    Signed-off-by: Anton Blanchard
    Cc: masami.hiramatsu.pt@hitachi.com
    Cc: ananth@in.ibm.com
    Cc: a.p.zijlstra@chello.nl
    Cc: fweisbec@gmail.com
    Cc: rostedt@goodmis.org
    Cc: linux-kernel@vger.kernel.org
    Signed-off-by: Ingo Molnar

    Anton Blanchard
     
  • Explicitly set the dr_mode for the second dwc3 controller on the
    Arndale Octa board to host mode. This is required to ensure the
    controller is initialized in the right mode if the kernel is build
    with USB gadget support.

    Reported-By: Andreas Faerber
    Signed-off-by: Sjoerd Simons
    Signed-off-by: Kukjin Kim

    Sjoerd Simons
     
  • In case the optional dr_mode property isn't set in the dwc3 nodes the
    the controller will go into OTG mode if both USB host and USB gadget
    functionality are enabled in the kernel configuration. Unfortunately
    this results in USB not working on exynos5420-peach-pit and
    exynos5800-peach-pi with such a kernel configuration unless manually
    change the mode. To resolve that explicitly configure the dual role
    mode as host.

    Signed-off-by: Sjoerd Simons
    Reviewed-by: Andreas Faerber
    Signed-off-by: Kukjin Kim

    Sjoerd Simons
     
  • Scott's patch 1c98025c6c95 "Dynamic DMA zone limits" changed
    dma_direct_alloc_coherent() to start using dev->coherent_dma_mask.

    That seems fair enough, but it exposes the fact that some of the drivers
    we care about on IBM platforms aren't setting the coherent mask.

    The proper fix is to have drivers set the coherent mask and also have
    the platform code honor it.

    For now, just restrict the dynamic DMA zone limits to the platforms that
    need it.

    Signed-off-by: Michael Ellerman
    Acked-by: Scott Wood

    Michael Ellerman
     

16 Oct, 2014

2 commits

  • The EIRSR and ELRSR registers are 32-bit registers on GICv2, and we
    store these as an array of two such registers on the vgic vcpu struct.
    However, we access them as a single 64-bit value or as a bitmap pointer
    in the generic vgic code, which breaks BE support.

    Instead, store them as u64 values on the vgic structure and do the
    word-swapping in the assembly code, which already handles the byte order
    for BE systems.

    Tested-by: Victor Kamensky
    Acked-by: Marc Zyngier
    Signed-off-by: Christoffer Dall

    Christoffer Dall
     
  • CM-QS600 is a APQ8064 based computer on module.
    The details are available at
    http://compulab.co.il/products/computer-on-modules/cm-qs600/

    Signed-off-by: Mike Rapoport
    Acked-by: Igor Grinberg
    Signed-off-by: Kumar Gala

    Mike Rapoport