aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)AuthorFilesLines
2017-03-31Merge tag 'v4.12-rockchip-dts64-symlinks-1' of ↵Arnd Bergmann6-0/+1629
git://git.kernel.org/pub/scm/linux/kernel/git/mmind/linux-rockchip into next/dt64 Pull "Rockchip dts64 updates (using arm/arm64 symlinks) for 4.12 part1" from Heiko Stübner Rockchip dts changes based on the newly created arm/arm64 symlinks. The core addition is the support for the rk3399-based Gru family of ChromeOS devices, like the Kevin board which is the recently released Samsung Chromebook Plus. Additionally the usb3 controllers are added to rk3399 as they're used on Gru devices and even without full type-c support they can at least drive usb2 devices already. * tag 'v4.12-rockchip-dts64-symlinks-1' of git://git.kernel.org/pub/scm/linux/kernel/git/mmind/linux-rockchip: arm64: dts: rockchip: add regulator info for Kevin digitizer arm64: dts: rockchip: describe Gru/Kevin OPPs + CPU regulators arm64: dts: rockchip: add Gru/Kevin DTS dt-bindings: Document rk3399 Gru/Kevin arm64: dts: rockchip: support dwc3 USB for rk3399
2017-03-31Merge tag 'v4.12-rockchip-dts64-1' of ↵Arnd Bergmann2-64/+123
git://git.kernel.org/pub/scm/linux/kernel/git/mmind/linux-rockchip into next/dt64 Pull "Rockchip dts64 updates for 4.12 part1" from Heiko Stübner: Contains various changes for the rk3368 (dma, i2s, disable mailbox per default, mmc-resets) and also removes the wrongly added idle states, that do not match the hardware's capabilities, as well as some general rk3399 pcie fixes as well as also the mmc resets. * tag 'v4.12-rockchip-dts64-1' of git://git.kernel.org/pub/scm/linux/kernel/git/mmind/linux-rockchip: arm64: dts: rockchip: fix PCIe domain number for rk3399 arm64: dts: rockchip: add rk3399 dw-mmc resets arm64: dts: rockchip: add rk3368 dw-mmc resets arm64: dts: rockchip: disable mailbox of RK3368 SoCs per default arm64: dts: rockchip: add i2s nodes support for RK3368 SoCs arm64: dts: rockchip: add dmac nodes for rk3368 SoCs arm64: dts: rockchip: remove wrongly added idle states on rk3368 arm64: dts: rockchip: sort rk3399-pcie by unit address
2017-03-31Merge tag 'arm-soc/for-4.12/devicetree-arm64' of ↵Arnd Bergmann3-29/+53
http://github.com/Broadcom/stblinux into next/dt64 Pull "Broadcom devicetree-arm64 changes for 4.12" from Florian Fainelli: This pull request contains Broadcom ARM64-based SoCs Device Tree updates for 4.12, please pull the following: - Rob enables the cryptographic block on Northstar 2 (SPU) by adding the proper Device Tree nodes - Jon replaces all occurences of: status = "ok" with status = "okay" to better conform to the Device Tree specification * tag 'arm-soc/for-4.12/devicetree-arm64' of http://github.com/Broadcom/stblinux: arm64: dts: NS2: convert "ok" to "okay" arm64: dts: NS2: Add Broadcom SPU driver DT entry
2017-03-31Merge tag 'mvebu-dt64-4.12-1' of git://git.infradead.org/linux-mvebu into ↵Arnd Bergmann8-1/+195
next/dt64 Pull "mvebu dt64 for 4.12 (part 1)" from Gregory CLEMENT: - Add RTC support on Armada 7k/8k - Improve i2c support on Armada 37xx - Add gpio expander and RTC on Armada 3720 board - Improve USB3 support on Armada 37xx - Add network support on Armada 7k/8k * tag 'mvebu-dt64-4.12-1' of git://git.infradead.org/linux-mvebu: arm64: marvell: dts: add PPv2.2 description to Armada 7K/8K ARM64: dts: marvell: armada-3720 add RTC support ARM64: dts: marvell: armada-3720-db: Add phy for USB3 ARM64: dts: marvell: armada-37xx: Add clock resource for USB3 ARM64: dts: marvell: armada-37xx: Fix interrupt mapping for USB3 ARM64: dts: marvell: armada-3720-db: add gpio expander ARM64: dts: marvell: armada37xx: add address and size property for i2c cells arm64: dts: marvell: add RTC description for Armada 7K/8K
2017-03-31Merge tag 'uniphier-dt64-v4.12' of ↵Arnd Bergmann4-15/+22
git://git.kernel.org/pub/scm/linux/kernel/git/masahiroy/linux-uniphier into next/dt64 Pull "UniPhier ARM64 SoC DT updates for v4.12" from Masahiro Yamada: - Fix W=* build warnings - Add pinctrl properties to eMMC nodes - Fix resets properties of USB nodes * tag 'uniphier-dt64-v4.12' of git://git.kernel.org/pub/scm/linux/kernel/git/masahiroy/linux-uniphier: arm64: dts: uniphier: re-order reset deassertion of USB of LD11 arm64: dts: uniphier: add pinctrl property to eMMC node for LD11/LD20 arm64: dts: uniphier: move memory node below aliases node arm64: dts: uniphier: fix no unit name warnings
2017-03-31arm64: dts: move from ARCH_VULCAN to ARCH_THUNDER2Jayachandran C4-12/+14
Move and update device tree files as part of transition from Broadcom Vulcan to Cavium ThunderX2. The changes are to: * rename dts/broadcom/vulcan.dtsi to cavium/thunder2-99xx.dtsi, update cpu cores to be "cavium,thunder2", and update SoC to be "cavium,thunderx2-cn9900" * move SoC dts/broadcom/vulcan-eval.dtsi to cavium/thunder2-99xx.dtsi and update board name string * Update dts/broadcom/Makefile not to build vulcan dtbs * Update dts/cavium/Makefile to build thunder2 dtbs No changes to the dts contents except the updated "compatible" and "model" properties. Signed-off-by: Jayachandran C <[email protected]> Reviewed-by: Matthias Brugger <[email protected]> Signed-off-by: Arnd Bergmann <[email protected]>
2017-03-31dt-bindings: Add arm64 ARCH_THUNDER2 platform documentationJayachandran C2-0/+9
Add documentation for Cavium's ThunderX2 CN99XX ARM64 processor. This SoC will use "cavium,thunderx2-cn9900" as the compatible property. Also add a documentation entry for the "cavium,thunder2" cpu core present in these SoCs. Signed-off-by: Jayachandran C <[email protected]> Acked-by: Rob Herring <[email protected]> Signed-off-by: Arnd Bergmann <[email protected]>
2017-03-23arm64: marvell: dts: add PPv2.2 description to Armada 7K/8KThomas Petazzoni4-0/+115
This commit adds the description of the PPv2.2 hardware block for the Marvell Armada 7K and Armada 8K processors, and their corresponding Armada 7040 and 8040 Development boards. Signed-off-by: Thomas Petazzoni <[email protected]> Signed-off-by: Gregory CLEMENT <[email protected]>
2017-03-23ARM64: dts: marvell: armada-3720 add RTC supportGregory CLEMENT1-0/+6
The Armada 3720 DB board has an RTC on the I2C bus. It's a PT7C4337A from Pericom but which claims to be fully compatible with the ds1337. Signed-off-by: Gregory CLEMENT <[email protected]>
2017-03-23ARM64: dts: marvell: armada-3720-db: Add phy for USB3Gregory CLEMENT1-0/+17
Now that the gpio expander is present in the dts, use it to add an USB3 PHY using one of these gpio as a regulator. Signed-off-by: Gregory CLEMENT <[email protected]>
2017-03-23ARM64: dts: marvell: armada-37xx: Add clock resource for USB3Gregory CLEMENT1-0/+1
Now that clocks are available provide a clock resource for xhci node. Signed-off-by: Gregory CLEMENT <[email protected]>
2017-03-23ARM64: dts: marvell: armada-37xx: Fix interrupt mapping for USB3Gregory CLEMENT1-1/+1
IRQ number for xhci controller was wrong, fix it. Signed-off-by: Gregory CLEMENT <[email protected]>
2017-03-23arm64: dts: rockchip: add regulator info for Kevin digitizerBrian Norris1-0/+4
We need to enable this regulator before the digitizer can be used. Wacom recommended waiting for 100 ms before talking to the HID. Signed-off-by: Brian Norris <[email protected]> [store chip ident as comment until i2c multi-compatibles are sorted] Signed-off-by: Heiko Stuebner <[email protected]>
2017-03-22arm64: dts: rockchip: fix PCIe domain number for rk3399Shawn Lin1-0/+1
It's suggested to fix the domain number for all PCIe host bridges or not set it at all. However, if we don't fix it, the domain number will keep increasing ever when doing unbind/bind test, which makes the bus tree of lspci introduce pointless domain hierarchy. More investigation shows the domain number allocater of PCI doesn't consider the conflict of domain number if we have more than one PCIe port belonging to different domains. So once unbinding/binding one of them and keep others would going to overflow the domain number so that finally it will share the same domain as others, but actually it shouldn't. We should fix the domain number for PCIe or invent new indexing ID mechanisms. However it isn't worth inventing new indexing ID mechanisms personlly, Just look at how other Root Complex drivers did, for instance, broadcom and qualcomm, it seems fixing the domain number was more popular. So this patch gonna fix the domain number of PCIe for rk3399. Signed-off-by: Shawn Lin <[email protected]> Reviewed-by: Brian Norris <[email protected]> Tested-by: Brian Norris <[email protected]> Signed-off-by: Heiko Stuebner <[email protected]>
2017-03-22arm64: dts: rockchip: add rk3399 dw-mmc resetsHeiko Stuebner1-0/+4
dw-mmc got its reset-properties specified, so add the softresets for it on the rk3399. Signed-off-by: Heiko Stuebner <[email protected]> Tested-by: Shawn Lin <[email protected]> Reviewed-by: Shawn Lin <[email protected]>
2017-03-22arm64: dts: rockchip: add rk3368 dw-mmc resetsHeiko Stuebner1-0/+6
dw-mmc got its reset-properties specified, so add the softresets for it on the rk3368. Signed-off-by: Heiko Stuebner <[email protected]> Reviewed-by: Shawn Lin <[email protected]>
2017-03-22arm64: dts: rockchip: disable mailbox of RK3368 SoCs per defaultJianqun Xu1-0/+1
Default to disable mailbox in rk3368 core dts file. Signed-off-by: Jianqun Xu <[email protected]> Signed-off-by: Heiko Stuebner <[email protected]>
2017-03-22arm64: dts: rockchip: add i2s nodes support for RK3368 SoCsJianqun Xu1-0/+38
I2S of RK3368 SoCs keep same as RK3066 SoCs found on Rockchip, add nodes to support them. Signed-off-by: Jianqun Xu <[email protected]> Signed-off-by: Heiko Stuebner <[email protected]>
2017-03-22arm64: dts: rockchip: add dmac nodes for rk3368 SoCsHuibin Hong1-0/+29
Add dmac bus and dmac peri dts nodes for peripherals, such as I2S, SPI, UART and so on. Signed-off-by: Huibin Hong <[email protected]> Signed-off-by: Heiko Stuebner <[email protected]>
2017-03-22arm64: dts: rockchip: remove wrongly added idle states on rk3368Heiko Stuebner1-20/+0
As reported by Lorenzo, the residency/latency values defined in the idle-state for rk3368 "make no sense". When introducing them I simply took the idle-state node from the vendor kernel in error as I didn't look up if these values were sane in the first place. Talking to people and determining why they were used in this way showed that it was meant to make sure the cpu_suspend callback got initialized which at the 3.10 time was somehow required even for wfi-based idle handling. Of course the generic arch_cpu_idle() now does wfi-based idle-handling already and the rk3368 does not implement any other idle states than the default WFI, so these wrong idle-states should go away. Reported-by: Lorenzo Pieralisi <[email protected]> Signed-off-by: Heiko Stuebner <[email protected]> Acked-by: Lorenzo Pieralisi <[email protected]>
2017-03-22arm64: dts: rockchip: describe Gru/Kevin OPPs + CPU regulatorsBrian Norris2-0/+284
Used for Gru/Kevin only, as they're the only ones which have a described CPU regulator. Also, I'm not sure we've validated this table non-Gru boards. At the same time, partially describe PWM regulators for Gru, so cpufreq doesn't think it can crank up the clock speed without changing the voltage. However, we don't yet have the DT bindings to fully describe the Over Voltage Protection (OVP) circuits on these boards. Without that description, we might end up changing the voltage too much, too fast. Add the pwm-regulator descriptions and associate the CPU OPPs, but leave them disabled. Signed-off-by: Brian Norris <[email protected]> [shared gru/kevin parts on a gru device] Tested-by: Enric Balletbo i Serra <[email protected]> [with a bit of reordering] Signed-off-by: Heiko Stuebner <[email protected]>
2017-03-22arm64: dts: rockchip: add Gru/Kevin DTSBrian Norris3-0/+1267
Kevin is part of a family of boards called Gru. As best as possible, the properties shared by the Gru family are placed in rk3399-gru.dtsi, while Kevin-specific bits are in rk3399-gru-kevin.dts. This does not add full support for the base Gru board. Working and tested (to some extent): * EC support -- including keyboard, battery, PWM, and probably more * UART / console * Thermal * Touchscreen * Touchpad * Digitizer (regulator still WIP) * PCIe / Wifi * Bluetooth / Webcam * SD card * eMMC * USB2 on TypeC - This works much of the time, but USB3 devices may or may not detect properly. Waiting on proper extcon support for USB3 over TypeC. - Depends on XHCI/DWC3 fixes for ARM64 that still haven't landed * Backlight Not working: * CPUFreq -- relies on special OVP support for our PWM regulator circuits * EC / extcon support -- and with it, USB3/TypeC/DP * DRM -- won't even build on ARM64, so all display, eDP, etc. is not enabled Not tested: * Audio Signed-off-by: Brian Norris <[email protected]> [shared gru/kevin parts on a gru device] Tested-by: Enric Balletbo i Serra <[email protected]> [with a bit of reordering] Signed-off-by: Heiko Stuebner <[email protected]>
2017-03-22dt-bindings: Document rk3399 Gru/KevinBrian Norris1-0/+20
Gru is a base dev board for a family of devices, including Kevin. Both utilize Rockchip RK3399, and they share much of their design. Signed-off-by: Brian Norris <[email protected]> Acked-by: Rob Herring <[email protected]> [added Samsung Chromebook Plus hint] Signed-off-by: Heiko Stuebner <[email protected]>
2017-03-22arm64: dts: rockchip: support dwc3 USB for rk3399Brian Norris1-0/+54
Add the dwc3 usb needed node information for rk3399. Signed-off-by: Brian Norris <[email protected]> Signed-off-by: Heiko Stuebner <[email protected]>
2017-03-21Merge tag 'renesas-arm64-dt-for-v4.12' of ↵Olof Johansson6-66/+384
https://git.kernel.org/pub/scm/linux/kernel/git/horms/renesas into next/dt64 Renesas ARM64 Based SoC DT Updates for v4.12 Cleanup: * Drop superfluous status update for frequency override from all r8a779[56] boards * Tidyup Audio-DMAC channel for DVC for r8a7795 SoC * Remove unit-address and reg from integrated cache on r8a779[56] SoCs Enhancements: * Add all Cortex-A53 and Cortex-A57 CPU cores to r8a7796 SoC * Add Cortex-A53 CPU cores to r8a7795 SoC * Update memory node to 4 GiB map on h3ulcb board * Upgrade to PSCI v1.0 to support Suspend-to-RAM on r8a779[56] SoCs * Add SCIF1 (DEBUG1) to r8a7796/salvator-x board * Add all SCIF and HSCIF nodes with DMA enabled to r8a7796 SoC * Set drive-strength for ravb pins for r8a7795/salvator-x board * Enable gigabit ethernet on r8a779[56]/salvator-x boards * Enable I2C for DVFS device r8a779[56]/salvator-x boards * tag 'renesas-arm64-dt-for-v4.12' of https://git.kernel.org/pub/scm/linux/kernel/git/horms/renesas: (32 commits) arm64: dts: r8a7796: salvator-x: Drop superfluous status update for frequency override arm64: dts: m3ulcb: Drop superfluous status update for frequency override arm64: dts: r8a7795: salvator-x: Drop superfluous status updates for frequency overrides arm64: dts: h3ulcb: Drop superfluous status update for frequency override arm64: dts: r8a7796: Add Cortex-A53 PMU node arm64: dts: r8a7796: Add Cortex-A53 CPU cores arm64: dts: r8a7796: Add CA53 L2 cache-controller node arm64: dts: r8a7796: Add Cortex-A57 PMU node arm64: dts: r8a7796: Add Cortex-A57 CPU cores arm64: dts: r8a7795: Tidyup Audio-DMAC channel for DVC arm64: dts: r8a7795: salvator-x: Set drive-strength for ravb pins arm64: dts: r8a7796: Remove unit-address and reg from integrated cache arm64: dts: r8a7795: Remove unit-addresses and regs from integrated caches arm64: dts: r8a7796: Upgrade to PSCI v1.0 to support Suspend-to-RAM arm64: dts: r8a7795: Upgrade to PSCI v1.0 to support Suspend-to-RAM arm64: dts: r8a7795: Add Cortex-A53 PMU node arm64: dts: r8a7795: Add Cortex-A53 CPU cores arm64: dts: r8a7796: Enable HSCIF DMA arm64: dts: r8a7796: salvator-x: add SCIF1 (DEBUG1) arm64: dts: r8a7796: Enable SCIF DMA ... Signed-off-by: Olof Johansson <[email protected]>
2017-03-21Merge branch 'shared/dt-symlinks' into next/dt64Olof Johansson4-0/+4
* shared/dt-symlinks: arm64: dts: add arm/arm64 include symlinks ARM: dts: add arm/arm64 include symlinks Signed-off-by: Olof Johansson <[email protected]>
2017-03-21arm64: dts: add arm/arm64 include symlinksHeiko Stuebner2-0/+2
Allow including of dtsi files in an architecture-independent manner. Some dtsi files may be shared between architectures and one suggestion was to have symlinks and let these includes get accessed via a #include <arm64/foo.dtsi> So add the necessary symlinks for arm32. Suggested-by: Olof Johansson <[email protected]> Signed-off-by: Heiko Stuebner <[email protected]> Signed-off-by: Olof Johansson <[email protected]>
2017-03-21ARM: dts: add arm/arm64 include symlinksHeiko Stuebner2-0/+2
Allow including of dtsi files in an architecture-independent manner. Some dtsi files may be shared between architectures and one suggestion was to have symlinks and let these includes get accessed via a #include <arm64/foo.dtsi> So add the necessary symlinks for arm32. Suggested-by: Olof Johansson <[email protected]> Signed-off-by: Heiko Stuebner <[email protected]> Signed-off-by: Olof Johansson <[email protected]>
2017-03-15arm64: dts: NS2: convert "ok" to "okay"Jon Mason2-29/+29
Per e-mail from Sergei Shtylyov, the DT spec dictates it should be "okay" (although "ok" is also recognized). Thus, changing all "ok" to "okay" in NS2 device tree files Suggested-by: Sergei Shtylyov <[email protected]> Signed-off-by: Jon Mason <[email protected]> Signed-off-by: Florian Fainelli <[email protected]>
2017-03-13arm64: dts: r8a7796: salvator-x: Drop superfluous status update for ↵Geert Uytterhoeven1-1/+0
frequency override The scif_clk device node is already enabled in r8a7796.dtsi, so there is no need to update its status again. Signed-off-by: Geert Uytterhoeven <[email protected]> Signed-off-by: Simon Horman <[email protected]>
2017-03-13arm64: dts: m3ulcb: Drop superfluous status update for frequency overrideGeert Uytterhoeven1-1/+0
The scif_clk device node is already enabled in r8a7796.dtsi, so there is no need to update its status again. Signed-off-by: Geert Uytterhoeven <[email protected]> Signed-off-by: Simon Horman <[email protected]>
2017-03-13arm64: dts: r8a7795: salvator-x: Drop superfluous status updates for ↵Geert Uytterhoeven1-2/+0
frequency overrides The scif_clk and pcie_bus_clk device nodes are already enabled in r8a7795.dtsi, so there is no need to update their statuses again. Signed-off-by: Geert Uytterhoeven <[email protected]> Signed-off-by: Simon Horman <[email protected]>
2017-03-13arm64: dts: h3ulcb: Drop superfluous status update for frequency overrideGeert Uytterhoeven1-1/+0
The scif_clk device node is already enabled in r8a7795.dtsi, so there is no need to update its status again. Signed-off-by: Geert Uytterhoeven <[email protected]> Signed-off-by: Simon Horman <[email protected]>
2017-03-12Linux 4.11-rc2Linus Torvalds1-1/+1
2017-03-12Merge branch 'for-linus' of ↵Linus Torvalds11-29/+51
git://git.kernel.org/pub/scm/linux/kernel/git/s390/linux Pull s390 fixes from Martin Schwidefsky: - four patches to get the new cputime code in shape for s390 - add the new statx system call - a few bug fixes * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/s390/linux: s390: wire up statx system call KVM: s390: Fix guest migration for huge guests resulting in panic s390/ipl: always use load normal for CCW-type re-IPL s390/timex: micro optimization for tod_to_ns s390/cputime: provide archicture specific cputime_to_nsecs s390/cputime: reset all accounting fields on fork s390/cputime: remove last traces of cputime_t s390: fix in-kernel program checks s390/crypt: fix missing unlock in ctr_paes_crypt on error path
2017-03-12Merge branch 'x86-urgent-for-linus' of ↵Linus Torvalds12-48/+80
git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip Pull x86 fixes from Thomas Gleixner: - a fix for the kexec/purgatory regression which was introduced in the merge window via an innocent sparse fix. We could have reverted that commit, but on deeper inspection it turned out that the whole machinery is neither documented nor robust. So a proper cleanup was done instead - the fix for the TLB flush issue which was discovered recently - a simple typo fix for a reboot quirk * 'x86-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: x86/tlb: Fix tlb flushing when lguest clears PGE kexec, x86/purgatory: Unbreak it and clean it up x86/reboot/quirks: Fix typo in ASUS EeeBook X205TA reboot quirk
2017-03-12Merge branch 'irq-urgent-for-linus' of ↵Linus Torvalds5-4/+35
git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip Pull irq fixes from Thomas Gleixner: - a workaround for a GIC erratum - a missing stub function for CONFIG_IRQDOMAIN=n - fixes for a couple of type inconsistencies * 'irq-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: irqchip/crossbar: Fix incorrect type of register size irqchip/gicv3-its: Add workaround for QDF2400 ITS erratum 0065 irqdomain: Add empty irq_domain_check_msi_remap irqchip/crossbar: Fix incorrect type of local variables
2017-03-13arm64: dts: uniphier: re-order reset deassertion of USB of LD11Masahiro Yamada1-3/+6
Deassert the bit in the System Control block before the MIO block. Signed-off-by: Masahiro Yamada <[email protected]>
2017-03-12x86/tlb: Fix tlb flushing when lguest clears PGEDaniel Borkmann1-1/+1
Fengguang reported random corruptions from various locations on x86-32 after commits d2852a224050 ("arch: add ARCH_HAS_SET_MEMORY config") and 9d876e79df6a ("bpf: fix unlocking of jited image when module ronx not set") that uses the former. While x86-32 doesn't have a JIT like x86_64, the bpf_prog_lock_ro() and bpf_prog_unlock_ro() got enabled due to ARCH_HAS_SET_MEMORY, whereas Fengguang's test kernel doesn't have module support built in and therefore never had the DEBUG_SET_MODULE_RONX setting enabled. After investigating the crashes further, it turned out that using set_memory_ro() and set_memory_rw() didn't have the desired effect, for example, setting the pages as read-only on x86-32 would still let probe_kernel_write() succeed without error. This behavior would manifest itself in situations where the vmalloc'ed buffer was accessed prior to set_memory_*() such as in case of bpf_prog_alloc(). In cases where it wasn't, the page attribute changes seemed to have taken effect, leading to the conclusion that a TLB invalidate didn't happen. Moreover, it turned out that this issue reproduced with qemu in "-cpu kvm64" mode, but not for "-cpu host". When the issue occurs, change_page_attr_set_clr() did trigger a TLB flush as expected via __flush_tlb_all() through cpa_flush_range(), though. There are 3 variants for issuing a TLB flush: invpcid_flush_all() (depends on CPU feature bits X86_FEATURE_INVPCID, X86_FEATURE_PGE), cr4 based flush (depends on X86_FEATURE_PGE), and cr3 based flush. For "-cpu host" case in my setup, the flush used invpcid_flush_all() variant, whereas for "-cpu kvm64", the flush was cr4 based. Switching the kvm64 case to cr3 manually worked fine, and further investigating the cr4 one turned out that X86_CR4_PGE bit was not set in cr4 register, meaning the __native_flush_tlb_global_irq_disabled() wrote cr4 twice with the same value instead of clearing X86_CR4_PGE in the first write to trigger the flush. It turned out that X86_CR4_PGE was cleared from cr4 during init from lguest_arch_host_init() via adjust_pge(). The X86_FEATURE_PGE bit is also cleared from there due to concerns of using PGE in guest kernel that can lead to hard to trace bugs (see bff672e630a0 ("lguest: documentation V: Host") in init()). The CPU feature bits are cleared in dynamic boot_cpu_data, but they never propagated to __flush_tlb_all() as it uses static_cpu_has() instead of boot_cpu_has() for testing which variant of TLB flushing to use, meaning they still used the old setting of the host kernel. Clearing via setup_clear_cpu_cap(X86_FEATURE_PGE) so this would propagate to static_cpu_has() checks is too late at this point as sections have been patched already, so for now, it seems reasonable to switch back to boot_cpu_has(X86_FEATURE_PGE) as it was prior to commit c109bf95992b ("x86/cpufeature: Remove cpu_has_pge"). This lets the TLB flush trigger via cr3 as originally intended, properly makes the new page attributes visible and thus fixes the crashes seen by Fengguang. Fixes: c109bf95992b ("x86/cpufeature: Remove cpu_has_pge") Reported-by: Fengguang Wu <[email protected]> Signed-off-by: Daniel Borkmann <[email protected]> Cc: [email protected] Cc: Kees Cook <[email protected]> Cc: "David S. Miller" <[email protected]> Cc: [email protected] Cc: Rusty Russell <[email protected]> Cc: Alexei Starovoitov <[email protected]> Cc: Linus Torvalds <[email protected]> Cc: [email protected] Cc: Laura Abbott <[email protected]> Cc: [email protected] Link: http://lkml.kernrl.org/r/[email protected] Link: http://lkml.kernel.org/r/25c41ad9eca164be4db9ad84f768965b7eb19d9e.1489191673.git.daniel@iogearbox.net Signed-off-by: Thomas Gleixner <[email protected]>
2017-03-11Merge tag 'for-linus' of git://git.kernel.org/pub/scm/virt/kvm/kvmLinus Torvalds13-101/+191
Pull KVM fixes from Radim Krčmář: "ARM updates from Marc Zyngier: - vgic updates: - Honour disabling the ITS - Don't deadlock when deactivating own interrupts via MMIO - Correctly expose the lact of IRQ/FIQ bypass on GICv3 - I/O virtualization: - Make KVM_CAP_NR_MEMSLOTS big enough for large guests with many PCIe devices - General bug fixes: - Gracefully handle exception generated with syndroms that the host doesn't understand - Properly invalidate TLBs on VHE systems x86: - improvements in emulation of VMCLEAR, VMX MSR bitmaps, and VCPU reset * tag 'for-linus' of git://git.kernel.org/pub/scm/virt/kvm/kvm: KVM: nVMX: do not warn when MSR bitmap address is not backed KVM: arm64: Increase number of user memslots to 512 KVM: arm/arm64: Remove KVM_PRIVATE_MEM_SLOTS definition that are unused KVM: arm/arm64: Enable KVM_CAP_NR_MEMSLOTS on arm/arm64 KVM: Add documentation for KVM_CAP_NR_MEMSLOTS KVM: arm/arm64: VGIC: Fix command handling while ITS being disabled arm64: KVM: Survive unknown traps from guests arm: KVM: Survive unknown traps from guests KVM: arm/arm64: Let vcpu thread modify its own active state KVM: nVMX: reset nested_run_pending if the vCPU is going to be reset kvm: nVMX: VMCLEAR should not cause the vCPU to shut down KVM: arm/arm64: vgic-v3: Don't pretend to support IRQ/FIQ bypass arm64: KVM: VHE: Clear HCR_TGE when invalidating guest TLBs
2017-03-11Merge tag 'extable-fix' of ↵Linus Torvalds2-0/+3
git://git.kernel.org/pub/scm/linux/kernel/git/paulg/linux Pull extable.h fix from Paul Gortmaker: "Fixup for arch/score after extable.h introduction. It seems that Guenter is the only one on the planet doing builds for arch/score -- we don't have compile coverage for it in linux-next or in the kbuild-bot either. Guenter couldn't even recall where he got his toolchain, but was kind enough to share it with me so I could validate this change and also add arch/score to my build coverage. I sat on this a bit in case there was any other fallout in other arch dirs, but since this still seems to be the only one, I might as well send it on its way" * tag 'extable-fix' of git://git.kernel.org/pub/scm/linux/kernel/git/paulg/linux: score: Fix implicit includes now failing build after extable change
2017-03-11Merge tag 'random_for_linus' of ↵Linus Torvalds3-83/+65
git://git.kernel.org/pub/scm/linux/kernel/git/tytso/random Pull random updates from Ted Ts'o: "Change get_random_{int,log} to use the CRNG used by /dev/urandom and getrandom(2). It's faster and arguably more secure than cut-down MD5 that we had been using. Also do some code cleanup" * tag 'random_for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tytso/random: random: move random_min_urandom_seed into CONFIG_SYSCTL ifdef block random: convert get_random_int/long into get_random_u32/u64 random: use chacha20 for get_random_int/long random: fix comment for unused random_min_urandom_seed random: remove variable limit random: remove stale urandom_init_wait random: remove stale maybe_reseed_primary_crng
2017-03-11score: Fix implicit includes now failing build after extable changeGuenter Roeck2-0/+3
After changing from module.h to extable.h, score builds fail with: arch/score/kernel/traps.c: In function 'do_ri': arch/score/kernel/traps.c:248:4: error: implicit declaration of function 'user_disable_single_step' arch/score/mm/extable.c: In function 'fixup_exception': arch/score/mm/extable.c:32:38: error: dereferencing pointer to incomplete type arch/score/mm/extable.c:34:24: error: dereferencing pointer to incomplete type because extable.h doesn't drag in the same amount of headers as the module.h did. Add in the headers which were implicitly expected. Fixes: 90858794c960 ("module.h: remove extable.h include now users have migrated") Signed-off-by: Guenter Roeck <[email protected]> [PG: tweak commit log; refresh for sched header refactoring.] Signed-off-by: Paul Gortmaker <[email protected]>
2017-03-12arm64: dts: uniphier: add pinctrl property to eMMC node for LD11/LD20Masahiro Yamada2-0/+4
Now everything is ready to enable this pinctrl. Signed-off-by: Masahiro Yamada <[email protected]>
2017-03-11arm64: dts: uniphier: move memory node below aliases nodeMasahiro Yamada2-10/+10
These UniPhier DT files are fine as long as they are compiled in the Linux build system. It is true that Linux is the biggest user of DT, but DT is project neutral from its concept. DT files are often re-used for other projects. Especially for the UniPhier platform, these DT files are re-used for U-Boot as well. If I feed these DT files to the FDTGREP tool in U-Boot, it complains about the node order. FDTGREP spl/u-boot-spl.dtb Error at 'fdt_find_regions': FDT_ERR_BADLAYOUT /aliases node must come before all other nodes Given that DT is not very sensitive to the order of nodes, this is a problem of FDTGREP. I filed a bug report a year ago, but it has not been fixed yet. Differentiating DT is painful. So, I am up-streaming the requirement from the down-stream project. Signed-off-by: Masahiro Yamada <[email protected]>
2017-03-11Merge tag 'tty-4.11-rc2' of ↵Linus Torvalds2-65/+73
git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/tty Pull tty/serial fixes frpm Greg KH: "Here are two bugfixes for tty stuff for 4.11-rc2. One of them resolves the pretty bad bug in the n_hdlc code that Alexander Popov found and fixed and has been reported everywhere. The other just fixes a samsung serial driver issue when DMA fails on some systems. Both have been in linux-next with no reported issues" * tag 'tty-4.11-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/tty: serial: samsung: Continue to work if DMA request fails tty: n_hdlc: get rid of racy n_hdlc.tbuf
2017-03-11Merge tag 'staging-4.11-rc2' of ↵Linus Torvalds2-1/+1
git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging Pull staging driver fixes from Greg KH: "Here are two small build warning fixes for some staging drivers that Arnd has found on his valiant quest to get the kernel to build properly with no warnings. Both of these have been in linux-next this week and resolve the reported issues" * tag 'staging-4.11-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging: staging: octeon: remove unused variable staging/vc04_services: add CONFIG_OF dependency
2017-03-11Merge tag 'usb-4.11-rc2' of ↵Linus Torvalds26-144/+213
git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb Pull USB fixes from Greg KH: "Here is a number of different USB fixes for 4.11-rc2. Seems like there were a lot of unresolved issues that people have been finding for this subsystem, and a bunch of good security auditing happening as well from Johan Hovold. There's the usual batch of gadget driver fixes and xhci issues resolved as well. All of these have been in linux-next with no reported issues" * tag 'usb-4.11-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb: (35 commits) usb: host: xhci-plat: Fix timeout on removal of hot pluggable xhci controllers usb: host: xhci-dbg: HCIVERSION should be a binary number usb: xhci: remove dummy extra_priv_size for size of xhci_hcd struct usb: xhci-mtk: check hcc_params after adding primary hcd USB: serial: digi_acceleport: fix OOB-event processing MAINTAINERS: usb251xb: remove reference inexistent file doc: dt-bindings: usb251xb: mark reg as required usb: usb251xb: dt: add unit suffix to oc-delay and power-on-time usb: usb251xb: remove max_{power,current}_{sp,bp} properties usb-storage: Add ignore-residue quirk for Initio INIC-3619 USB: iowarrior: fix NULL-deref in write USB: iowarrior: fix NULL-deref at probe usb: phy: isp1301: Add OF device ID table usb: ohci-at91: Do not drop unhandled USB suspend control requests USB: serial: safe_serial: fix information leak in completion handler USB: serial: io_ti: fix information leak in completion handler USB: serial: omninet: drop open callback USB: serial: omninet: fix reference leaks at open USB: serial: io_ti: fix NULL-deref in interrupt callback usb: dwc3: gadget: make to increment req->remaining in all cases ...
2017-03-11Merge tag 'pinctrl-v4.11-2' of ↵Linus Torvalds2-6/+21
git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-pinctrl Pull pinctrl fixes from Linus Walleij: "Two smaller pin control fixes for the v4.11 series: - Add a get_direction() function to the qcom driver - Fix two pin names in the uniphier driver" * tag 'pinctrl-v4.11-2' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-pinctrl: pinctrl: uniphier: change pin names of aio/xirq for LD11 pinctrl: qcom: add get_direction function
2017-03-10kexec, x86/purgatory: Unbreak it and clean it upThomas Gleixner10-46/+78
The purgatory code defines global variables which are referenced via a symbol lookup in the kexec code (core and arch). A recent commit addressing sparse warnings made these static and thereby broke kexec_file. Why did this happen? Simply because the whole machinery is undocumented and lacks any form of forward declarations. The variable names are unspecific and lack a prefix, so adding forward declarations creates shadow variables in the core code. Aside of that the code relies on magic constants and duplicate struct definitions with no way to ensure that these things stay in sync. The section placement of the purgatory variables happened by chance and not by design. Unbreak kexec and cleanup the mess: - Add proper forward declarations and document the usage - Use common struct definition - Use the proper common defines instead of magic constants - Add a purgatory_ prefix to have a proper name space - Use ARRAY_SIZE() instead of a homebrewn reimplementation - Add proper sections to the purgatory variables [ From Mike ] Fixes: 72042a8c7b01 ("x86/purgatory: Make functions and variables static") Reported-by: Mike Galbraith <<[email protected]> Signed-off-by: Thomas Gleixner <[email protected]> Cc: Nicholas Mc Guire <[email protected]> Cc: Borislav Petkov <[email protected]> Cc: Vivek Goyal <[email protected]> Cc: "Tobin C. Harding" <[email protected]> Link: http://lkml.kernel.org/r/alpine.DEB.2.20.1703101315140.3681@nanos Signed-off-by: Thomas Gleixner <[email protected]>