Skip to content

Commit 8bd142c

Browse files
committed
Merge tag 'kvm-arm-for-v4.4-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/kvmarm/kvmarm into kvm-master
KVM/ARM Fixes for v4.4-rc3. Includes some timer fixes, properly unmapping PTEs, an errata fix, and two tweaks to the EL2 panic code.
2 parents d792aba + fbb4574 commit 8bd142c

345 files changed

Lines changed: 4249 additions & 5556 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

Documentation/IPMI.txt

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -587,7 +587,7 @@ used to control it:
587587

588588
modprobe ipmi_watchdog timeout=<t> pretimeout=<t> action=<action type>
589589
preaction=<preaction type> preop=<preop type> start_now=x
590-
nowayout=x ifnum_to_use=n
590+
nowayout=x ifnum_to_use=n panic_wdt_timeout=<t>
591591

592592
ifnum_to_use specifies which interface the watchdog timer should use.
593593
The default is -1, which means to pick the first one registered.
@@ -597,7 +597,9 @@ is the amount of seconds before the reset that the pre-timeout panic will
597597
occur (if pretimeout is zero, then pretimeout will not be enabled). Note
598598
that the pretimeout is the time before the final timeout. So if the
599599
timeout is 50 seconds and the pretimeout is 10 seconds, then the pretimeout
600-
will occur in 40 second (10 seconds before the timeout).
600+
will occur in 40 second (10 seconds before the timeout). The panic_wdt_timeout
601+
is the value of timeout which is set on kernel panic, in order to let actions
602+
such as kdump to occur during panic.
601603

602604
The action may be "reset", "power_cycle", or "power_off", and
603605
specifies what to do when the timer times out, and defaults to
@@ -634,6 +636,7 @@ for configuring the watchdog:
634636
ipmi_watchdog.preop=<preop type>
635637
ipmi_watchdog.start_now=x
636638
ipmi_watchdog.nowayout=x
639+
ipmi_watchdog.panic_wdt_timeout=<t>
637640

638641
The options are the same as the module parameter options.
639642

Documentation/i2c/busses/i2c-i801

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,7 @@ Supported adapters:
3232
* Intel Sunrise Point-LP (PCH)
3333
* Intel DNV (SOC)
3434
* Intel Broxton (SOC)
35+
* Intel Lewisburg (PCH)
3536
Datasheets: Publicly available at the Intel website
3637

3738
On Intel Patsburg and later chipsets, both the normal host SMBus controller

Documentation/kernel-parameters.txt

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1583,9 +1583,6 @@ bytes respectively. Such letter suffixes can also be entirely omitted.
15831583
hwp_only
15841584
Only load intel_pstate on systems which support
15851585
hardware P state control (HWP) if available.
1586-
no_acpi
1587-
Don't use ACPI processor performance control objects
1588-
_PSS and _PPC specified limits.
15891586

15901587
intremap= [X86-64, Intel-IOMMU]
15911588
on enable Interrupt Remapping (default)

MAINTAINERS

Lines changed: 27 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -2449,7 +2449,9 @@ F: drivers/firmware/broadcom/*
24492449

24502450
BROADCOM STB NAND FLASH DRIVER
24512451
M: Brian Norris <computersforpeace@gmail.com>
2452+
M: Kamal Dasu <kdasu.kdev@gmail.com>
24522453
L: linux-mtd@lists.infradead.org
2454+
L: bcm-kernel-feedback-list@broadcom.com
24532455
S: Maintained
24542456
F: drivers/mtd/nand/brcmnand/
24552457

@@ -2546,7 +2548,7 @@ F: arch/c6x/
25462548

25472549
CACHEFILES: FS-CACHE BACKEND FOR CACHING ON MOUNTED FILESYSTEMS
25482550
M: David Howells <dhowells@redhat.com>
2549-
L: linux-cachefs@redhat.com
2551+
L: linux-cachefs@redhat.com (moderated for non-subscribers)
25502552
S: Supported
25512553
F: Documentation/filesystems/caching/cachefiles.txt
25522554
F: fs/cachefiles/
@@ -2929,10 +2931,9 @@ S: Maintained
29292931
F: drivers/platform/x86/compal-laptop.c
29302932

29312933
CONEXANT ACCESSRUNNER USB DRIVER
2932-
M: Simon Arlott <cxacru@fire.lp0.eu>
29332934
L: accessrunner-general@lists.sourceforge.net
29342935
W: http://accessrunner.sourceforge.net/
2935-
S: Maintained
2936+
S: Orphan
29362937
F: drivers/usb/atm/cxacru.c
29372938

29382939
CONFIGFS
@@ -4409,6 +4410,7 @@ K: fmc_d.*register
44094410

44104411
FPGA MANAGER FRAMEWORK
44114412
M: Alan Tull <atull@opensource.altera.com>
4413+
R: Moritz Fischer <moritz.fischer@ettus.com>
44124414
S: Maintained
44134415
F: drivers/fpga/
44144416
F: include/linux/fpga/fpga-mgr.h
@@ -4559,7 +4561,7 @@ F: include/linux/frontswap.h
45594561

45604562
FS-CACHE: LOCAL CACHING FOR NETWORK FILESYSTEMS
45614563
M: David Howells <dhowells@redhat.com>
4562-
L: linux-cachefs@redhat.com
4564+
L: linux-cachefs@redhat.com (moderated for non-subscribers)
45634565
S: Supported
45644566
F: Documentation/filesystems/caching/
45654567
F: fs/fscache/
@@ -5711,13 +5713,6 @@ M: Juanjo Ciarlante <jjciarla@raiz.uncu.edu.ar>
57115713
S: Maintained
57125714
F: net/ipv4/netfilter/ipt_MASQUERADE.c
57135715

5714-
IP1000A 10/100/1000 GIGABIT ETHERNET DRIVER
5715-
M: Francois Romieu <romieu@fr.zoreil.com>
5716-
M: Sorbica Shieh <sorbica@icplus.com.tw>
5717-
L: netdev@vger.kernel.org
5718-
S: Maintained
5719-
F: drivers/net/ethernet/icplus/ipg.*
5720-
57215716
IPATH DRIVER
57225717
M: Mike Marciniszyn <infinipath@intel.com>
57235718
L: linux-rdma@vger.kernel.org
@@ -6923,13 +6918,21 @@ F: drivers/scsi/megaraid.*
69236918
F: drivers/scsi/megaraid/
69246919

69256920
MELLANOX ETHERNET DRIVER (mlx4_en)
6926-
M: Amir Vadai <amirv@mellanox.com>
6921+
M: Eugenia Emantayev <eugenia@mellanox.com>
69276922
L: netdev@vger.kernel.org
69286923
S: Supported
69296924
W: http://www.mellanox.com
69306925
Q: http://patchwork.ozlabs.org/project/netdev/list/
69316926
F: drivers/net/ethernet/mellanox/mlx4/en_*
69326927

6928+
MELLANOX ETHERNET DRIVER (mlx5e)
6929+
M: Saeed Mahameed <saeedm@mellanox.com>
6930+
L: netdev@vger.kernel.org
6931+
S: Supported
6932+
W: http://www.mellanox.com
6933+
Q: http://patchwork.ozlabs.org/project/netdev/list/
6934+
F: drivers/net/ethernet/mellanox/mlx5/core/en_*
6935+
69336936
MELLANOX ETHERNET SWITCH DRIVERS
69346937
M: Jiri Pirko <jiri@mellanox.com>
69356938
M: Ido Schimmel <idosch@mellanox.com>
@@ -7901,6 +7904,18 @@ S: Maintained
79017904
F: net/openvswitch/
79027905
F: include/uapi/linux/openvswitch.h
79037906

7907+
OPERATING PERFORMANCE POINTS (OPP)
7908+
M: Viresh Kumar <vireshk@kernel.org>
7909+
M: Nishanth Menon <nm@ti.com>
7910+
M: Stephen Boyd <sboyd@codeaurora.org>
7911+
L: linux-pm@vger.kernel.org
7912+
S: Maintained
7913+
T: git git://git.kernel.org/pub/scm/linux/kernel/git/vireshk/pm.git
7914+
F: drivers/base/power/opp/
7915+
F: include/linux/pm_opp.h
7916+
F: Documentation/power/opp.txt
7917+
F: Documentation/devicetree/bindings/opp/
7918+
79047919
OPL4 DRIVER
79057920
M: Clemens Ladisch <clemens@ladisch.de>
79067921
L: alsa-devel@alsa-project.org (moderated for non-subscribers)
@@ -9314,7 +9329,6 @@ F: drivers/i2c/busses/i2c-designware-*
93149329
F: include/linux/platform_data/i2c-designware.h
93159330

93169331
SYNOPSYS DESIGNWARE MMC/SD/SDIO DRIVER
9317-
M: Seungwon Jeon <tgih.jun@samsung.com>
93189332
M: Jaehoon Chung <jh80.chung@samsung.com>
93199333
L: linux-mmc@vger.kernel.org
93209334
S: Maintained

Makefile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
VERSION = 4
22
PATCHLEVEL = 4
33
SUBLEVEL = 0
4-
EXTRAVERSION = -rc1
4+
EXTRAVERSION = -rc2
55
NAME = Blurry Fish Butt
66

77
# *DOCUMENTATION*

arch/arm/boot/dts/imx27.dtsi

Lines changed: 12 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -486,7 +486,10 @@
486486
compatible = "fsl,imx27-usb";
487487
reg = <0x10024000 0x200>;
488488
interrupts = <56>;
489-
clocks = <&clks IMX27_CLK_USB_IPG_GATE>;
489+
clocks = <&clks IMX27_CLK_USB_IPG_GATE>,
490+
<&clks IMX27_CLK_USB_AHB_GATE>,
491+
<&clks IMX27_CLK_USB_DIV>;
492+
clock-names = "ipg", "ahb", "per";
490493
fsl,usbmisc = <&usbmisc 0>;
491494
status = "disabled";
492495
};
@@ -495,7 +498,10 @@
495498
compatible = "fsl,imx27-usb";
496499
reg = <0x10024200 0x200>;
497500
interrupts = <54>;
498-
clocks = <&clks IMX27_CLK_USB_IPG_GATE>;
501+
clocks = <&clks IMX27_CLK_USB_IPG_GATE>,
502+
<&clks IMX27_CLK_USB_AHB_GATE>,
503+
<&clks IMX27_CLK_USB_DIV>;
504+
clock-names = "ipg", "ahb", "per";
499505
fsl,usbmisc = <&usbmisc 1>;
500506
dr_mode = "host";
501507
status = "disabled";
@@ -505,7 +511,10 @@
505511
compatible = "fsl,imx27-usb";
506512
reg = <0x10024400 0x200>;
507513
interrupts = <55>;
508-
clocks = <&clks IMX27_CLK_USB_IPG_GATE>;
514+
clocks = <&clks IMX27_CLK_USB_IPG_GATE>,
515+
<&clks IMX27_CLK_USB_AHB_GATE>,
516+
<&clks IMX27_CLK_USB_DIV>;
517+
clock-names = "ipg", "ahb", "per";
509518
fsl,usbmisc = <&usbmisc 2>;
510519
dr_mode = "host";
511520
status = "disabled";
@@ -515,7 +524,6 @@
515524
#index-cells = <1>;
516525
compatible = "fsl,imx27-usbmisc";
517526
reg = <0x10024600 0x200>;
518-
clocks = <&clks IMX27_CLK_USB_AHB_GATE>;
519527
};
520528

521529
sahara2: sahara@10025000 {

arch/arm/kvm/arm.c

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -563,18 +563,13 @@ int kvm_arch_vcpu_ioctl_run(struct kvm_vcpu *vcpu, struct kvm_run *run)
563563
if (vcpu->arch.power_off || vcpu->arch.pause)
564564
vcpu_sleep(vcpu);
565565

566-
/*
567-
* Disarming the background timer must be done in a
568-
* preemptible context, as this call may sleep.
569-
*/
570-
kvm_timer_flush_hwstate(vcpu);
571-
572566
/*
573567
* Preparing the interrupts to be injected also
574568
* involves poking the GIC, which must be done in a
575569
* non-preemptible context.
576570
*/
577571
preempt_disable();
572+
kvm_timer_flush_hwstate(vcpu);
578573
kvm_vgic_flush_hwstate(vcpu);
579574

580575
local_irq_disable();

arch/arm/kvm/mmu.c

Lines changed: 7 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -98,6 +98,11 @@ static void kvm_flush_dcache_pud(pud_t pud)
9898
__kvm_flush_dcache_pud(pud);
9999
}
100100

101+
static bool kvm_is_device_pfn(unsigned long pfn)
102+
{
103+
return !pfn_valid(pfn);
104+
}
105+
101106
/**
102107
* stage2_dissolve_pmd() - clear and flush huge PMD entry
103108
* @kvm: pointer to kvm structure.
@@ -213,7 +218,7 @@ static void unmap_ptes(struct kvm *kvm, pmd_t *pmd,
213218
kvm_tlb_flush_vmid_ipa(kvm, addr);
214219

215220
/* No need to invalidate the cache for device mappings */
216-
if ((pte_val(old_pte) & PAGE_S2_DEVICE) != PAGE_S2_DEVICE)
221+
if (!kvm_is_device_pfn(__phys_to_pfn(addr)))
217222
kvm_flush_dcache_pte(old_pte);
218223

219224
put_page(virt_to_page(pte));
@@ -305,8 +310,7 @@ static void stage2_flush_ptes(struct kvm *kvm, pmd_t *pmd,
305310

306311
pte = pte_offset_kernel(pmd, addr);
307312
do {
308-
if (!pte_none(*pte) &&
309-
(pte_val(*pte) & PAGE_S2_DEVICE) != PAGE_S2_DEVICE)
313+
if (!pte_none(*pte) && !kvm_is_device_pfn(__phys_to_pfn(addr)))
310314
kvm_flush_dcache_pte(*pte);
311315
} while (pte++, addr += PAGE_SIZE, addr != end);
312316
}
@@ -1037,11 +1041,6 @@ static bool kvm_is_write_fault(struct kvm_vcpu *vcpu)
10371041
return kvm_vcpu_dabt_iswrite(vcpu);
10381042
}
10391043

1040-
static bool kvm_is_device_pfn(unsigned long pfn)
1041-
{
1042-
return !pfn_valid(pfn);
1043-
}
1044-
10451044
/**
10461045
* stage2_wp_ptes - write protect PMD range
10471046
* @pmd: pointer to pmd entry

arch/arm/net/bpf_jit_32.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1061,7 +1061,7 @@ void bpf_jit_compile(struct bpf_prog *fp)
10611061
}
10621062
build_epilogue(&ctx);
10631063

1064-
flush_icache_range((u32)ctx.target, (u32)(ctx.target + ctx.idx));
1064+
flush_icache_range((u32)header, (u32)(ctx.target + ctx.idx));
10651065

10661066
#if __LINUX_ARM_ARCH__ < 7
10671067
if (ctx.imm_count)

arch/arm64/Kconfig

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -316,6 +316,27 @@ config ARM64_ERRATUM_832075
316316

317317
If unsure, say Y.
318318

319+
config ARM64_ERRATUM_834220
320+
bool "Cortex-A57: 834220: Stage 2 translation fault might be incorrectly reported in presence of a Stage 1 fault"
321+
depends on KVM
322+
default y
323+
help
324+
This option adds an alternative code sequence to work around ARM
325+
erratum 834220 on Cortex-A57 parts up to r1p2.
326+
327+
Affected Cortex-A57 parts might report a Stage 2 translation
328+
fault as the result of a Stage 1 fault for load crossing a
329+
page boundary when there is a permission or device memory
330+
alignment fault at Stage 1 and a translation fault at Stage 2.
331+
332+
The workaround is to verify that the Stage 1 translation
333+
doesn't generate a fault before handling the Stage 2 fault.
334+
Please note that this does not necessarily enable the workaround,
335+
as it depends on the alternative framework, which will only patch
336+
the kernel if an affected CPU is detected.
337+
338+
If unsure, say Y.
339+
319340
config ARM64_ERRATUM_845719
320341
bool "Cortex-A53: 845719: a load might read incorrect data"
321342
depends on COMPAT

0 commit comments

Comments
 (0)