aboutsummaryrefslogtreecommitdiffstats
path: root/arch
diff options
context:
space:
mode:
authorIngo Molnar <mingo@kernel.org>2015-09-30 03:29:27 -0400
committerIngo Molnar <mingo@kernel.org>2015-09-30 03:29:27 -0400
commitccf79c238f1a06a801b4c4449b9bc8a42be2c7bc (patch)
treee9b0f1a4c2f324c6fb107e276b09894ae480baa6 /arch
parent1e034743e918d195d339af340ae933727c072bce (diff)
parent9ffecb10283508260936b96022d4ee43a7798b4c (diff)
Merge tag 'v4.3-rc3' into x86/urgent, before applying dependent fix
Signed-off-by: Ingo Molnar <mingo@kernel.org>
Diffstat (limited to 'arch')
-rw-r--r--arch/alpha/kernel/pci.c7
-rw-r--r--arch/arm/boot/dts/am335x-phycore-som.dtsi4
-rw-r--r--arch/arm/boot/dts/am57xx-beagle-x15.dts46
-rw-r--r--arch/arm/boot/dts/dm8148-evm.dts4
-rw-r--r--arch/arm/boot/dts/dm8148-t410.dts6
-rw-r--r--arch/arm/boot/dts/dm814x.dtsi8
-rw-r--r--arch/arm/boot/dts/dra7.dtsi5
-rw-r--r--arch/arm/boot/dts/omap2430.dtsi3
-rw-r--r--arch/arm/boot/dts/omap3-beagle.dts2
-rw-r--r--arch/arm/boot/dts/omap3-igep.dtsi6
-rw-r--r--arch/arm/boot/dts/omap3-igep0020-common.dtsi6
-rw-r--r--arch/arm/boot/dts/omap3.dtsi25
-rw-r--r--arch/arm/boot/dts/omap4.dtsi3
-rw-r--r--arch/arm/boot/dts/omap5-uevm.dts4
-rw-r--r--arch/arm/boot/dts/omap5.dtsi3
-rw-r--r--arch/arm/boot/dts/rk3288-veyron.dtsi1
-rw-r--r--arch/arm/boot/dts/stih407.dtsi82
-rw-r--r--arch/arm/boot/dts/stih410.dtsi82
-rw-r--r--arch/arm/configs/omap2plus_defconfig5
-rw-r--r--arch/arm/include/asm/kvm_host.h1
-rw-r--r--arch/arm/include/asm/unistd.h2
-rw-r--r--arch/arm/include/uapi/asm/unistd.h2
-rw-r--r--arch/arm/kernel/calls.S2
-rw-r--r--arch/arm/mach-omap2/Kconfig6
-rw-r--r--arch/arm/mach-omap2/board-generic.c7
-rw-r--r--arch/arm/mach-omap2/id.c8
-rw-r--r--arch/arm/mach-omap2/io.c1
-rw-r--r--arch/arm/mach-omap2/omap_device.c3
-rw-r--r--arch/arm/mach-omap2/pm.h3
-rw-r--r--arch/arm/mach-omap2/soc.h2
-rw-r--r--arch/arm/mach-omap2/timer.c8
-rw-r--r--arch/arm/mach-omap2/vc.c2
-rw-r--r--arch/arm/mach-pxa/balloon3.c2
-rw-r--r--arch/arm/mach-pxa/include/mach/addr-map.h7
-rw-r--r--arch/arm/mach-pxa/pxa3xx.c21
-rw-r--r--arch/arm/mm/alignment.c30
-rw-r--r--arch/arm/plat-pxa/ssp.c1
-rw-r--r--arch/arm64/boot/dts/mediatek/mt8173.dtsi2
-rw-r--r--arch/arm64/boot/dts/rockchip/rk3368.dtsi2
-rw-r--r--arch/arm64/include/asm/kvm_host.h1
-rw-r--r--arch/frv/mb93090-mb00/pci-vdk.c2
-rw-r--r--arch/ia64/pci/pci.c5
-rw-r--r--arch/microblaze/pci/pci-common.c9
-rw-r--r--arch/mips/include/asm/kvm_host.h1
-rw-r--r--arch/mips/pci/pci.c6
-rw-r--r--arch/mn10300/unit-asb2305/pci.c1
-rw-r--r--arch/powerpc/include/asm/kvm_host.h1
-rw-r--r--arch/powerpc/include/asm/systbl.h1
-rw-r--r--arch/powerpc/include/asm/unistd.h2
-rw-r--r--arch/powerpc/include/uapi/asm/unistd.h1
-rw-r--r--arch/powerpc/kernel/pci-common.c8
-rw-r--r--arch/powerpc/kvm/book3s.c6
-rw-r--r--arch/powerpc/kvm/book3s_hv.c6
-rw-r--r--arch/powerpc/kvm/book3s_hv_rmhandlers.S1
-rw-r--r--arch/s390/configs/zfcpdump_defconfig5
-rw-r--r--arch/s390/include/asm/kvm_host.h1
-rw-r--r--arch/s390/include/asm/unistd.h20
-rw-r--r--arch/s390/include/uapi/asm/unistd.h21
-rw-r--r--arch/s390/kernel/compat_signal.c27
-rw-r--r--arch/s390/kernel/compat_wrapper.c70
-rw-r--r--arch/s390/kernel/entry.S2
-rw-r--r--arch/s390/kernel/perf_cpum_cf.c12
-rw-r--r--arch/s390/kernel/swsusp.S38
-rw-r--r--arch/s390/kernel/syscalls.S121
-rw-r--r--arch/s390/kernel/vtime.c12
-rw-r--r--arch/x86/include/asm/efi.h10
-rw-r--r--arch/x86/include/asm/kvm_host.h1
-rw-r--r--arch/x86/include/asm/msr-index.h1
-rw-r--r--arch/x86/kvm/mmu.c25
-rw-r--r--arch/x86/kvm/svm.c4
-rw-r--r--arch/x86/kvm/x86.c2
-rw-r--r--arch/x86/pci/common.c1
-rw-r--r--arch/xtensa/kernel/pci.c4
73 files changed, 477 insertions, 365 deletions
diff --git a/arch/alpha/kernel/pci.c b/arch/alpha/kernel/pci.c
index cded02c890aa..5f387ee5b5c5 100644
--- a/arch/alpha/kernel/pci.c
+++ b/arch/alpha/kernel/pci.c
@@ -242,7 +242,12 @@ pci_restore_srm_config(void)
242 242
243void pcibios_fixup_bus(struct pci_bus *bus) 243void pcibios_fixup_bus(struct pci_bus *bus)
244{ 244{
245 struct pci_dev *dev; 245 struct pci_dev *dev = bus->self;
246
247 if (pci_has_flag(PCI_PROBE_ONLY) && dev &&
248 (dev->class >> 8) == PCI_CLASS_BRIDGE_PCI) {
249 pci_read_bridge_bases(bus);
250 }
246 251
247 list_for_each_entry(dev, &bus->devices, bus_list) { 252 list_for_each_entry(dev, &bus->devices, bus_list) {
248 pdev_save_srm_config(dev); 253 pdev_save_srm_config(dev);
diff --git a/arch/arm/boot/dts/am335x-phycore-som.dtsi b/arch/arm/boot/dts/am335x-phycore-som.dtsi
index 4d28fc3aac69..5dd084f3c81c 100644
--- a/arch/arm/boot/dts/am335x-phycore-som.dtsi
+++ b/arch/arm/boot/dts/am335x-phycore-som.dtsi
@@ -252,10 +252,10 @@
252 }; 252 };
253 253
254 vdd1_reg: regulator@2 { 254 vdd1_reg: regulator@2 {
255 /* VDD_MPU voltage limits 0.95V - 1.26V with +/-4% tolerance */ 255 /* VDD_MPU voltage limits 0.95V - 1.325V with +/-4% tolerance */
256 regulator-name = "vdd_mpu"; 256 regulator-name = "vdd_mpu";
257 regulator-min-microvolt = <912500>; 257 regulator-min-microvolt = <912500>;
258 regulator-max-microvolt = <1312500>; 258 regulator-max-microvolt = <1378000>;
259 regulator-boot-on; 259 regulator-boot-on;
260 regulator-always-on; 260 regulator-always-on;
261 }; 261 };
diff --git a/arch/arm/boot/dts/am57xx-beagle-x15.dts b/arch/arm/boot/dts/am57xx-beagle-x15.dts
index 3a05b94f59ed..568adf5efde0 100644
--- a/arch/arm/boot/dts/am57xx-beagle-x15.dts
+++ b/arch/arm/boot/dts/am57xx-beagle-x15.dts
@@ -98,13 +98,6 @@
98 pinctrl-0 = <&extcon_usb1_pins>; 98 pinctrl-0 = <&extcon_usb1_pins>;
99 }; 99 };
100 100
101 extcon_usb2: extcon_usb2 {
102 compatible = "linux,extcon-usb-gpio";
103 id-gpio = <&gpio7 24 GPIO_ACTIVE_HIGH>;
104 pinctrl-names = "default";
105 pinctrl-0 = <&extcon_usb2_pins>;
106 };
107
108 hdmi0: connector { 101 hdmi0: connector {
109 compatible = "hdmi-connector"; 102 compatible = "hdmi-connector";
110 label = "hdmi"; 103 label = "hdmi";
@@ -326,12 +319,6 @@
326 >; 319 >;
327 }; 320 };
328 321
329 extcon_usb2_pins: extcon_usb2_pins {
330 pinctrl-single,pins = <
331 0x3e8 (PIN_INPUT_PULLUP | MUX_MODE14) /* uart1_ctsn.gpio7_24 */
332 >;
333 };
334
335 tpd12s015_pins: pinmux_tpd12s015_pins { 322 tpd12s015_pins: pinmux_tpd12s015_pins {
336 pinctrl-single,pins = < 323 pinctrl-single,pins = <
337 0x3b0 (PIN_OUTPUT | MUX_MODE14) /* gpio7_10 CT_CP_HPD */ 324 0x3b0 (PIN_OUTPUT | MUX_MODE14) /* gpio7_10 CT_CP_HPD */
@@ -432,7 +419,7 @@
432 }; 419 };
433 420
434 ldo3_reg: ldo3 { 421 ldo3_reg: ldo3 {
435 /* VDDA_1V8_PHY */ 422 /* VDDA_1V8_PHYA */
436 regulator-name = "ldo3"; 423 regulator-name = "ldo3";
437 regulator-min-microvolt = <1800000>; 424 regulator-min-microvolt = <1800000>;
438 regulator-max-microvolt = <1800000>; 425 regulator-max-microvolt = <1800000>;
@@ -440,6 +427,15 @@
440 regulator-boot-on; 427 regulator-boot-on;
441 }; 428 };
442 429
430 ldo4_reg: ldo4 {
431 /* VDDA_1V8_PHYB */
432 regulator-name = "ldo4";
433 regulator-min-microvolt = <1800000>;
434 regulator-max-microvolt = <1800000>;
435 regulator-always-on;
436 regulator-boot-on;
437 };
438
443 ldo9_reg: ldo9 { 439 ldo9_reg: ldo9 {
444 /* VDD_RTC */ 440 /* VDD_RTC */
445 regulator-name = "ldo9"; 441 regulator-name = "ldo9";
@@ -495,6 +491,14 @@
495 gpio-controller; 491 gpio-controller;
496 #gpio-cells = <2>; 492 #gpio-cells = <2>;
497 }; 493 };
494
495 extcon_usb2: tps659038_usb {
496 compatible = "ti,palmas-usb-vid";
497 ti,enable-vbus-detection;
498 ti,enable-id-detection;
499 id-gpios = <&gpio7 24 GPIO_ACTIVE_HIGH>;
500 };
501
498 }; 502 };
499 503
500 tmp102: tmp102@48 { 504 tmp102: tmp102@48 {
@@ -517,7 +521,8 @@
517 mcp_rtc: rtc@6f { 521 mcp_rtc: rtc@6f {
518 compatible = "microchip,mcp7941x"; 522 compatible = "microchip,mcp7941x";
519 reg = <0x6f>; 523 reg = <0x6f>;
520 interrupts = <GIC_SPI 2 IRQ_TYPE_EDGE_RISING>; /* IRQ_SYS_1N */ 524 interrupts-extended = <&crossbar_mpu GIC_SPI 2 IRQ_TYPE_EDGE_RISING>,
525 <&dra7_pmx_core 0x424>;
521 526
522 pinctrl-names = "default"; 527 pinctrl-names = "default";
523 pinctrl-0 = <&mcp79410_pins_default>; 528 pinctrl-0 = <&mcp79410_pins_default>;
@@ -579,7 +584,6 @@
579 pinctrl-0 = <&mmc1_pins_default>; 584 pinctrl-0 = <&mmc1_pins_default>;
580 585
581 vmmc-supply = <&ldo1_reg>; 586 vmmc-supply = <&ldo1_reg>;
582 vmmc_aux-supply = <&vdd_3v3>;
583 bus-width = <4>; 587 bus-width = <4>;
584 cd-gpios = <&gpio6 27 0>; /* gpio 219 */ 588 cd-gpios = <&gpio6 27 0>; /* gpio 219 */
585}; 589};
@@ -623,6 +627,14 @@
623}; 627};
624 628
625&usb2 { 629&usb2 {
630 /*
631 * Stand alone usage is peripheral only.
632 * However, with some resistor modifications
633 * this port can be used via expansion connectors
634 * as "host" or "dual-role". If so, provide
635 * the necessary dr_mode override in the expansion
636 * board's DT.
637 */
626 dr_mode = "peripheral"; 638 dr_mode = "peripheral";
627}; 639};
628 640
@@ -681,7 +693,7 @@
681 693
682&hdmi { 694&hdmi {
683 status = "ok"; 695 status = "ok";
684 vdda-supply = <&ldo3_reg>; 696 vdda-supply = <&ldo4_reg>;
685 697
686 pinctrl-names = "default"; 698 pinctrl-names = "default";
687 pinctrl-0 = <&hdmi_pins>; 699 pinctrl-0 = <&hdmi_pins>;
diff --git a/arch/arm/boot/dts/dm8148-evm.dts b/arch/arm/boot/dts/dm8148-evm.dts
index 92bacd3c8fab..109fd4711647 100644
--- a/arch/arm/boot/dts/dm8148-evm.dts
+++ b/arch/arm/boot/dts/dm8148-evm.dts
@@ -19,10 +19,10 @@
19 19
20&cpsw_emac0 { 20&cpsw_emac0 {
21 phy_id = <&davinci_mdio>, <0>; 21 phy_id = <&davinci_mdio>, <0>;
22 phy-mode = "mii"; 22 phy-mode = "rgmii";
23}; 23};
24 24
25&cpsw_emac1 { 25&cpsw_emac1 {
26 phy_id = <&davinci_mdio>, <1>; 26 phy_id = <&davinci_mdio>, <1>;
27 phy-mode = "mii"; 27 phy-mode = "rgmii";
28}; 28};
diff --git a/arch/arm/boot/dts/dm8148-t410.dts b/arch/arm/boot/dts/dm8148-t410.dts
index 8c4bbc7573df..79838dd8dee7 100644
--- a/arch/arm/boot/dts/dm8148-t410.dts
+++ b/arch/arm/boot/dts/dm8148-t410.dts
@@ -8,7 +8,7 @@
8#include "dm814x.dtsi" 8#include "dm814x.dtsi"
9 9
10/ { 10/ {
11 model = "DM8148 EVM"; 11 model = "HP t410 Smart Zero Client";
12 compatible = "hp,t410", "ti,dm8148"; 12 compatible = "hp,t410", "ti,dm8148";
13 13
14 memory { 14 memory {
@@ -19,10 +19,10 @@
19 19
20&cpsw_emac0 { 20&cpsw_emac0 {
21 phy_id = <&davinci_mdio>, <0>; 21 phy_id = <&davinci_mdio>, <0>;
22 phy-mode = "mii"; 22 phy-mode = "rgmii";
23}; 23};
24 24
25&cpsw_emac1 { 25&cpsw_emac1 {
26 phy_id = <&davinci_mdio>, <1>; 26 phy_id = <&davinci_mdio>, <1>;
27 phy-mode = "mii"; 27 phy-mode = "rgmii";
28}; 28};
diff --git a/arch/arm/boot/dts/dm814x.dtsi b/arch/arm/boot/dts/dm814x.dtsi
index 972c9c9e885b..7988b42e5764 100644
--- a/arch/arm/boot/dts/dm814x.dtsi
+++ b/arch/arm/boot/dts/dm814x.dtsi
@@ -181,9 +181,9 @@
181 ti,hwmods = "timer3"; 181 ti,hwmods = "timer3";
182 }; 182 };
183 183
184 control: control@160000 { 184 control: control@140000 {
185 compatible = "ti,dm814-scm", "simple-bus"; 185 compatible = "ti,dm814-scm", "simple-bus";
186 reg = <0x160000 0x16d000>; 186 reg = <0x140000 0x16d000>;
187 #address-cells = <1>; 187 #address-cells = <1>;
188 #size-cells = <1>; 188 #size-cells = <1>;
189 ranges = <0 0x160000 0x16d000>; 189 ranges = <0 0x160000 0x16d000>;
@@ -321,9 +321,9 @@
321 mac-address = [ 00 00 00 00 00 00 ]; 321 mac-address = [ 00 00 00 00 00 00 ];
322 }; 322 };
323 323
324 phy_sel: cpsw-phy-sel@0x48160650 { 324 phy_sel: cpsw-phy-sel@48140650 {
325 compatible = "ti,am3352-cpsw-phy-sel"; 325 compatible = "ti,am3352-cpsw-phy-sel";
326 reg= <0x48160650 0x4>; 326 reg= <0x48140650 0x4>;
327 reg-names = "gmii-sel"; 327 reg-names = "gmii-sel";
328 }; 328 };
329 }; 329 };
diff --git a/arch/arm/boot/dts/dra7.dtsi b/arch/arm/boot/dts/dra7.dtsi
index 5d65db9ebc2b..e289c706d27d 100644
--- a/arch/arm/boot/dts/dra7.dtsi
+++ b/arch/arm/boot/dts/dra7.dtsi
@@ -120,9 +120,10 @@
120 reg = <0x0 0x1400>; 120 reg = <0x0 0x1400>;
121 #address-cells = <1>; 121 #address-cells = <1>;
122 #size-cells = <1>; 122 #size-cells = <1>;
123 ranges = <0 0x0 0x1400>;
123 124
124 pbias_regulator: pbias_regulator { 125 pbias_regulator: pbias_regulator {
125 compatible = "ti,pbias-omap"; 126 compatible = "ti,pbias-dra7", "ti,pbias-omap";
126 reg = <0xe00 0x4>; 127 reg = <0xe00 0x4>;
127 syscon = <&scm_conf>; 128 syscon = <&scm_conf>;
128 pbias_mmc_reg: pbias_mmc_omap5 { 129 pbias_mmc_reg: pbias_mmc_omap5 {
@@ -1417,7 +1418,7 @@
1417 ti,irqs-safe-map = <0>; 1418 ti,irqs-safe-map = <0>;
1418 }; 1419 };
1419 1420
1420 mac: ethernet@4a100000 { 1421 mac: ethernet@48484000 {
1421 compatible = "ti,dra7-cpsw","ti,cpsw"; 1422 compatible = "ti,dra7-cpsw","ti,cpsw";
1422 ti,hwmods = "gmac"; 1423 ti,hwmods = "gmac";
1423 clocks = <&dpll_gmac_ck>, <&gmac_gmii_ref_clk_div>; 1424 clocks = <&dpll_gmac_ck>, <&gmac_gmii_ref_clk_div>;
diff --git a/arch/arm/boot/dts/omap2430.dtsi b/arch/arm/boot/dts/omap2430.dtsi
index 2390f387c271..798dda072b2a 100644
--- a/arch/arm/boot/dts/omap2430.dtsi
+++ b/arch/arm/boot/dts/omap2430.dtsi
@@ -56,6 +56,7 @@
56 reg = <0x270 0x240>; 56 reg = <0x270 0x240>;
57 #address-cells = <1>; 57 #address-cells = <1>;
58 #size-cells = <1>; 58 #size-cells = <1>;
59 ranges = <0 0x270 0x240>;
59 60
60 scm_clocks: clocks { 61 scm_clocks: clocks {
61 #address-cells = <1>; 62 #address-cells = <1>;
@@ -63,7 +64,7 @@
63 }; 64 };
64 65
65 pbias_regulator: pbias_regulator { 66 pbias_regulator: pbias_regulator {
66 compatible = "ti,pbias-omap"; 67 compatible = "ti,pbias-omap2", "ti,pbias-omap";
67 reg = <0x230 0x4>; 68 reg = <0x230 0x4>;
68 syscon = <&scm_conf>; 69 syscon = <&scm_conf>;
69 pbias_mmc_reg: pbias_mmc_omap2430 { 70 pbias_mmc_reg: pbias_mmc_omap2430 {
diff --git a/arch/arm/boot/dts/omap3-beagle.dts b/arch/arm/boot/dts/omap3-beagle.dts
index a5474113cd50..67659a0ed13e 100644
--- a/arch/arm/boot/dts/omap3-beagle.dts
+++ b/arch/arm/boot/dts/omap3-beagle.dts
@@ -202,7 +202,7 @@
202 202
203 tfp410_pins: pinmux_tfp410_pins { 203 tfp410_pins: pinmux_tfp410_pins {
204 pinctrl-single,pins = < 204 pinctrl-single,pins = <
205 0x194 (PIN_OUTPUT | MUX_MODE4) /* hdq_sio.gpio_170 */ 205 0x196 (PIN_OUTPUT | MUX_MODE4) /* hdq_sio.gpio_170 */
206 >; 206 >;
207 }; 207 };
208 208
diff --git a/arch/arm/boot/dts/omap3-igep.dtsi b/arch/arm/boot/dts/omap3-igep.dtsi
index d5e5cd449b16..2230e1c03320 100644
--- a/arch/arm/boot/dts/omap3-igep.dtsi
+++ b/arch/arm/boot/dts/omap3-igep.dtsi
@@ -78,12 +78,6 @@
78 >; 78 >;
79 }; 79 };
80 80
81 smsc9221_pins: pinmux_smsc9221_pins {
82 pinctrl-single,pins = <
83 0x1a2 (PIN_INPUT | MUX_MODE4) /* mcspi1_cs2.gpio_176 */
84 >;
85 };
86
87 i2c1_pins: pinmux_i2c1_pins { 81 i2c1_pins: pinmux_i2c1_pins {
88 pinctrl-single,pins = < 82 pinctrl-single,pins = <
89 0x18a (PIN_INPUT | MUX_MODE0) /* i2c1_scl.i2c1_scl */ 83 0x18a (PIN_INPUT | MUX_MODE0) /* i2c1_scl.i2c1_scl */
diff --git a/arch/arm/boot/dts/omap3-igep0020-common.dtsi b/arch/arm/boot/dts/omap3-igep0020-common.dtsi
index e458c2185e3c..5ad688c57a00 100644
--- a/arch/arm/boot/dts/omap3-igep0020-common.dtsi
+++ b/arch/arm/boot/dts/omap3-igep0020-common.dtsi
@@ -156,6 +156,12 @@
156 OMAP3_CORE1_IOPAD(0x217a, PIN_INPUT | MUX_MODE0) /* uart2_rx.uart2_rx */ 156 OMAP3_CORE1_IOPAD(0x217a, PIN_INPUT | MUX_MODE0) /* uart2_rx.uart2_rx */
157 >; 157 >;
158 }; 158 };
159
160 smsc9221_pins: pinmux_smsc9221_pins {
161 pinctrl-single,pins = <
162 OMAP3_CORE1_IOPAD(0x21d2, PIN_INPUT | MUX_MODE4) /* mcspi1_cs2.gpio_176 */
163 >;
164 };
159}; 165};
160 166
161&omap3_pmx_core2 { 167&omap3_pmx_core2 {
diff --git a/arch/arm/boot/dts/omap3.dtsi b/arch/arm/boot/dts/omap3.dtsi
index 69a40cfc1f29..8a2b25332b8c 100644
--- a/arch/arm/boot/dts/omap3.dtsi
+++ b/arch/arm/boot/dts/omap3.dtsi
@@ -113,10 +113,22 @@
113 }; 113 };
114 114
115 scm_conf: scm_conf@270 { 115 scm_conf: scm_conf@270 {
116 compatible = "syscon"; 116 compatible = "syscon", "simple-bus";
117 reg = <0x270 0x330>; 117 reg = <0x270 0x330>;
118 #address-cells = <1>; 118 #address-cells = <1>;
119 #size-cells = <1>; 119 #size-cells = <1>;
120 ranges = <0 0x270 0x330>;
121
122 pbias_regulator: pbias_regulator {
123 compatible = "ti,pbias-omap3", "ti,pbias-omap";
124 reg = <0x2b0 0x4>;
125 syscon = <&scm_conf>;
126 pbias_mmc_reg: pbias_mmc_omap2430 {
127 regulator-name = "pbias_mmc_omap2430";
128 regulator-min-microvolt = <1800000>;
129 regulator-max-microvolt = <3000000>;
130 };
131 };
120 132
121 scm_clocks: clocks { 133 scm_clocks: clocks {
122 #address-cells = <1>; 134 #address-cells = <1>;
@@ -202,17 +214,6 @@
202 dma-requests = <96>; 214 dma-requests = <96>;
203 }; 215 };
204 216
205 pbias_regulator: pbias_regulator {
206 compatible = "ti,pbias-omap";
207 reg = <0x2b0 0x4>;
208 syscon = <&scm_conf>;
209 pbias_mmc_reg: pbias_mmc_omap2430 {
210 regulator-name = "pbias_mmc_omap2430";
211 regulator-min-microvolt = <1800000>;
212 regulator-max-microvolt = <3000000>;
213 };
214 };
215
216 gpio1: gpio@48310000 { 217 gpio1: gpio@48310000 {
217 compatible = "ti,omap3-gpio"; 218 compatible = "ti,omap3-gpio";
218 reg = <0x48310000 0x200>; 219 reg = <0x48310000 0x200>;
diff --git a/arch/arm/boot/dts/omap4.dtsi b/arch/arm/boot/dts/omap4.dtsi
index abc4473e6f8a..5a206c100ce2 100644
--- a/arch/arm/boot/dts/omap4.dtsi
+++ b/arch/arm/boot/dts/omap4.dtsi
@@ -196,9 +196,10 @@
196 reg = <0x5a0 0x170>; 196 reg = <0x5a0 0x170>;
197 #address-cells = <1>; 197 #address-cells = <1>;
198 #size-cells = <1>; 198 #size-cells = <1>;
199 ranges = <0 0x5a0 0x170>;
199 200
200 pbias_regulator: pbias_regulator { 201 pbias_regulator: pbias_regulator {
201 compatible = "ti,pbias-omap"; 202 compatible = "ti,pbias-omap4", "ti,pbias-omap";
202 reg = <0x60 0x4>; 203 reg = <0x60 0x4>;
203 syscon = <&omap4_padconf_global>; 204 syscon = <&omap4_padconf_global>;
204 pbias_mmc_reg: pbias_mmc_omap4 { 205 pbias_mmc_reg: pbias_mmc_omap4 {
diff --git a/arch/arm/boot/dts/omap5-uevm.dts b/arch/arm/boot/dts/omap5-uevm.dts
index 3cc8f357d5b8..3cb030f9d2c4 100644
--- a/arch/arm/boot/dts/omap5-uevm.dts
+++ b/arch/arm/boot/dts/omap5-uevm.dts
@@ -174,8 +174,8 @@
174 174
175 i2c5_pins: pinmux_i2c5_pins { 175 i2c5_pins: pinmux_i2c5_pins {
176 pinctrl-single,pins = < 176 pinctrl-single,pins = <
177 0x184 (PIN_INPUT | MUX_MODE0) /* i2c5_scl */ 177 0x186 (PIN_INPUT | MUX_MODE0) /* i2c5_scl */
178 0x186 (PIN_INPUT | MUX_MODE0) /* i2c5_sda */ 178 0x188 (PIN_INPUT | MUX_MODE0) /* i2c5_sda */
179 >; 179 >;
180 }; 180 };
181 181
diff --git a/arch/arm/boot/dts/omap5.dtsi b/arch/arm/boot/dts/omap5.dtsi
index 4205a8ac9ddb..4c04389dab32 100644
--- a/arch/arm/boot/dts/omap5.dtsi
+++ b/arch/arm/boot/dts/omap5.dtsi
@@ -185,9 +185,10 @@
185 reg = <0x5a0 0xec>; 185 reg = <0x5a0 0xec>;
186 #address-cells = <1>; 186 #address-cells = <1>;
187 #size-cells = <1>; 187 #size-cells = <1>;
188 ranges = <0 0x5a0 0xec>;
188 189
189 pbias_regulator: pbias_regulator { 190 pbias_regulator: pbias_regulator {
190 compatible = "ti,pbias-omap"; 191 compatible = "ti,pbias-omap5", "ti,pbias-omap";
191 reg = <0x60 0x4>; 192 reg = <0x60 0x4>;
192 syscon = <&omap5_padconf_global>; 193 syscon = <&omap5_padconf_global>;
193 pbias_mmc_reg: pbias_mmc_omap5 { 194 pbias_mmc_reg: pbias_mmc_omap5 {
diff --git a/arch/arm/boot/dts/rk3288-veyron.dtsi b/arch/arm/boot/dts/rk3288-veyron.dtsi
index 2fa7a0dc83f7..275c78ccc0f3 100644
--- a/arch/arm/boot/dts/rk3288-veyron.dtsi
+++ b/arch/arm/boot/dts/rk3288-veyron.dtsi
@@ -158,6 +158,7 @@
158}; 158};
159 159
160&hdmi { 160&hdmi {
161 ddc-i2c-bus = <&i2c5>;
161 status = "okay"; 162 status = "okay";
162}; 163};
163 164
diff --git a/arch/arm/boot/dts/stih407.dtsi b/arch/arm/boot/dts/stih407.dtsi
index 3efa3b2ebe90..6b914e4bb099 100644
--- a/arch/arm/boot/dts/stih407.dtsi
+++ b/arch/arm/boot/dts/stih407.dtsi
@@ -103,48 +103,46 @@
103 <&clk_s_d0_quadfs 0>, 103 <&clk_s_d0_quadfs 0>,
104 <&clk_s_d2_quadfs 0>, 104 <&clk_s_d2_quadfs 0>,
105 <&clk_s_d2_quadfs 0>; 105 <&clk_s_d2_quadfs 0>;
106 ranges; 106 };
107 107
108 sti-hdmi@8d04000 { 108 sti-hdmi@8d04000 {
109 compatible = "st,stih407-hdmi"; 109 compatible = "st,stih407-hdmi";
110 reg = <0x8d04000 0x1000>; 110 reg = <0x8d04000 0x1000>;
111 reg-names = "hdmi-reg"; 111 reg-names = "hdmi-reg";
112 interrupts = <GIC_SPI 106 IRQ_TYPE_NONE>; 112 interrupts = <GIC_SPI 106 IRQ_TYPE_NONE>;
113 interrupt-names = "irq"; 113 interrupt-names = "irq";
114 clock-names = "pix", 114 clock-names = "pix",
115 "tmds", 115 "tmds",
116 "phy", 116 "phy",
117 "audio", 117 "audio",
118 "main_parent", 118 "main_parent",
119 "aux_parent"; 119 "aux_parent";
120 120
121 clocks = <&clk_s_d2_flexgen CLK_PIX_HDMI>, 121 clocks = <&clk_s_d2_flexgen CLK_PIX_HDMI>,
122 <&clk_s_d2_flexgen CLK_TMDS_HDMI>, 122 <&clk_s_d2_flexgen CLK_TMDS_HDMI>,
123 <&clk_s_d2_flexgen CLK_REF_HDMIPHY>, 123 <&clk_s_d2_flexgen CLK_REF_HDMIPHY>,
124 <&clk_s_d0_flexgen CLK_PCM_0>, 124 <&clk_s_d0_flexgen CLK_PCM_0>,
125 <&clk_s_d2_quadfs 0>, 125 <&clk_s_d2_quadfs 0>,
126 <&clk_s_d2_quadfs 1>; 126 <&clk_s_d2_quadfs 1>;
127 127
128 hdmi,hpd-gpio = <&pio5 3>; 128 hdmi,hpd-gpio = <&pio5 3>;
129 reset-names = "hdmi"; 129 reset-names = "hdmi";
130 resets = <&softreset STIH407_HDMI_TX_PHY_SOFTRESET>; 130 resets = <&softreset STIH407_HDMI_TX_PHY_SOFTRESET>;
131 ddc = <&hdmiddc>; 131 ddc = <&hdmiddc>;
132 132 };
133 }; 133
134 134 sti-hda@8d02000 {
135 sti-hda@8d02000 { 135 compatible = "st,stih407-hda";
136 compatible = "st,stih407-hda"; 136 reg = <0x8d02000 0x400>, <0x92b0120 0x4>;
137 reg = <0x8d02000 0x400>, <0x92b0120 0x4>; 137 reg-names = "hda-reg", "video-dacs-ctrl";
138 reg-names = "hda-reg", "video-dacs-ctrl"; 138 clock-names = "pix",
139 clock-names = "pix", 139 "hddac",
140 "hddac", 140 "main_parent",
141 "main_parent", 141 "aux_parent";
142 "aux_parent"; 142 clocks = <&clk_s_d2_flexgen CLK_PIX_HDDAC>,
143 clocks = <&clk_s_d2_flexgen CLK_PIX_HDDAC>, 143 <&clk_s_d2_flexgen CLK_HDDAC>,
144 <&clk_s_d2_flexgen CLK_HDDAC>, 144 <&clk_s_d2_quadfs 0>,
145 <&clk_s_d2_quadfs 0>, 145 <&clk_s_d2_quadfs 1>;
146 <&clk_s_d2_quadfs 1>;
147 };
148 }; 146 };
149 }; 147 };
150 }; 148 };
diff --git a/arch/arm/boot/dts/stih410.dtsi b/arch/arm/boot/dts/stih410.dtsi
index 6f40bc99c22f..8c6e61a27234 100644
--- a/arch/arm/boot/dts/stih410.dtsi
+++ b/arch/arm/boot/dts/stih410.dtsi
@@ -178,48 +178,46 @@
178 <&clk_s_d0_quadfs 0>, 178 <&clk_s_d0_quadfs 0>,
179 <&clk_s_d2_quadfs 0>, 179 <&clk_s_d2_quadfs 0>,
180 <&clk_s_d2_quadfs 0>; 180 <&clk_s_d2_quadfs 0>;
181 ranges; 181 };
182 182
183 sti-hdmi@8d04000 { 183 sti-hdmi@8d04000 {
184 compatible = "st,stih407-hdmi"; 184 compatible = "st,stih407-hdmi";
185 reg = <0x8d04000 0x1000>; 185 reg = <0x8d04000 0x1000>;
186 reg-names = "hdmi-reg"; 186 reg-names = "hdmi-reg";
187 interrupts = <GIC_SPI 106 IRQ_TYPE_NONE>; 187 interrupts = <GIC_SPI 106 IRQ_TYPE_NONE>;
188 interrupt-names = "irq"; 188 interrupt-names = "irq";
189 clock-names = "pix", 189 clock-names = "pix",
190 "tmds", 190 "tmds",
191 "phy", 191 "phy",
192 "audio", 192 "audio",
193 "main_parent", 193 "main_parent",
194 "aux_parent"; 194 "aux_parent";
195 195
196 clocks = <&clk_s_d2_flexgen CLK_PIX_HDMI>, 196 clocks = <&clk_s_d2_flexgen CLK_PIX_HDMI>,
197 <&clk_s_d2_flexgen CLK_TMDS_HDMI>, 197 <&clk_s_d2_flexgen CLK_TMDS_HDMI>,
198 <&clk_s_d2_flexgen CLK_REF_HDMIPHY>, 198 <&clk_s_d2_flexgen CLK_REF_HDMIPHY>,
199 <&clk_s_d0_flexgen CLK_PCM_0>, 199 <&clk_s_d0_flexgen CLK_PCM_0>,
200 <&clk_s_d2_quadfs 0>, 200 <&clk_s_d2_quadfs 0>,
201 <&clk_s_d2_quadfs 1>; 201 <&clk_s_d2_quadfs 1>;
202 202
203 hdmi,hpd-gpio = <&pio5 3>; 203 hdmi,hpd-gpio = <&pio5 3>;
204 reset-names = "hdmi"; 204 reset-names = "hdmi";
205 resets = <&softreset STIH407_HDMI_TX_PHY_SOFTRESET>; 205 resets = <&softreset STIH407_HDMI_TX_PHY_SOFTRESET>;
206 ddc = <&hdmiddc>; 206 ddc = <&hdmiddc>;
207 207 };
208 }; 208
209 209 sti-hda@8d02000 {
210 sti-hda@8d02000 { 210 compatible = "st,stih407-hda";
211 compatible = "st,stih407-hda"; 211 reg = <0x8d02000 0x400>, <0x92b0120 0x4>;
212 reg = <0x8d02000 0x400>, <0x92b0120 0x4>; 212 reg-names = "hda-reg", "video-dacs-ctrl";
213 reg-names = "hda-reg", "video-dacs-ctrl"; 213 clock-names = "pix",
214 clock-names = "pix", 214 "hddac",
215 "hddac", 215 "main_parent",
216 "main_parent", 216 "aux_parent";
217 "aux_parent"; 217 clocks = <&clk_s_d2_flexgen CLK_PIX_HDDAC>,
218 clocks = <&clk_s_d2_flexgen CLK_PIX_HDDAC>, 218 <&clk_s_d2_flexgen CLK_HDDAC>,
219 <&clk_s_d2_flexgen CLK_HDDAC>, 219 <&clk_s_d2_quadfs 0>,
220 <&clk_s_d2_quadfs 0>, 220 <&clk_s_d2_quadfs 1>;
221 <&clk_s_d2_quadfs 1>;
222 };
223 }; 221 };
224 }; 222 };
225 223
diff --git a/arch/arm/configs/omap2plus_defconfig b/arch/arm/configs/omap2plus_defconfig
index 50c84e1876fc..3f15a5cae167 100644
--- a/arch/arm/configs/omap2plus_defconfig
+++ b/arch/arm/configs/omap2plus_defconfig
@@ -240,7 +240,8 @@ CONFIG_SSI_PROTOCOL=m
240CONFIG_PINCTRL_SINGLE=y 240CONFIG_PINCTRL_SINGLE=y
241CONFIG_DEBUG_GPIO=y 241CONFIG_DEBUG_GPIO=y
242CONFIG_GPIO_SYSFS=y 242CONFIG_GPIO_SYSFS=y
243CONFIG_GPIO_PCF857X=m 243CONFIG_GPIO_PCA953X=m
244CONFIG_GPIO_PCF857X=y
244CONFIG_GPIO_TWL4030=y 245CONFIG_GPIO_TWL4030=y
245CONFIG_GPIO_PALMAS=y 246CONFIG_GPIO_PALMAS=y
246CONFIG_W1=m 247CONFIG_W1=m
@@ -350,6 +351,8 @@ CONFIG_USB_MUSB_HDRC=m
350CONFIG_USB_MUSB_OMAP2PLUS=m 351CONFIG_USB_MUSB_OMAP2PLUS=m
351CONFIG_USB_MUSB_AM35X=m 352CONFIG_USB_MUSB_AM35X=m
352CONFIG_USB_MUSB_DSPS=m 353CONFIG_USB_MUSB_DSPS=m
354CONFIG_USB_INVENTRA_DMA=y
355CONFIG_USB_TI_CPPI41_DMA=y
353CONFIG_USB_DWC3=m 356CONFIG_USB_DWC3=m
354CONFIG_USB_TEST=m 357CONFIG_USB_TEST=m
355CONFIG_AM335X_PHY_USB=y 358CONFIG_AM335X_PHY_USB=y
diff --git a/arch/arm/include/asm/kvm_host.h b/arch/arm/include/asm/kvm_host.h
index 3df1e975f72a..c4072d9f32c7 100644
--- a/arch/arm/include/asm/kvm_host.h
+++ b/arch/arm/include/asm/kvm_host.h
@@ -33,6 +33,7 @@
33#define KVM_PRIVATE_MEM_SLOTS 4 33#define KVM_PRIVATE_MEM_SLOTS 4
34#define KVM_COALESCED_MMIO_PAGE_OFFSET 1 34#define KVM_COALESCED_MMIO_PAGE_OFFSET 1
35#define KVM_HAVE_ONE_REG 35#define KVM_HAVE_ONE_REG
36#define KVM_HALT_POLL_NS_DEFAULT 500000
36 37
37#define KVM_VCPU_MAX_FEATURES 2 38#define KVM_VCPU_MAX_FEATURES 2
38 39
diff --git a/arch/arm/include/asm/unistd.h b/arch/arm/include/asm/unistd.h
index 32640c431a08..7cba573c2cc9 100644
--- a/arch/arm/include/asm/unistd.h
+++ b/arch/arm/include/asm/unistd.h
@@ -19,7 +19,7 @@
19 * This may need to be greater than __NR_last_syscall+1 in order to 19 * This may need to be greater than __NR_last_syscall+1 in order to
20 * account for the padding in the syscall table 20 * account for the padding in the syscall table
21 */ 21 */
22#define __NR_syscalls (388) 22#define __NR_syscalls (392)
23 23
24/* 24/*
25 * *NOTE*: This is a ghost syscall private to the kernel. Only the 25 * *NOTE*: This is a ghost syscall private to the kernel. Only the
diff --git a/arch/arm/include/uapi/asm/unistd.h b/arch/arm/include/uapi/asm/unistd.h
index 0c3f5a0dafd3..7a2a32a1d5a8 100644
--- a/arch/arm/include/uapi/asm/unistd.h
+++ b/arch/arm/include/uapi/asm/unistd.h
@@ -414,6 +414,8 @@
414#define __NR_memfd_create (__NR_SYSCALL_BASE+385) 414#define __NR_memfd_create (__NR_SYSCALL_BASE+385)
415#define __NR_bpf (__NR_SYSCALL_BASE+386) 415#define __NR_bpf (__NR_SYSCALL_BASE+386)
416#define __NR_execveat (__NR_SYSCALL_BASE+387) 416#define __NR_execveat (__NR_SYSCALL_BASE+387)
417#define __NR_userfaultfd (__NR_SYSCALL_BASE+388)
418#define __NR_membarrier (__NR_SYSCALL_BASE+389)
417 419
418/* 420/*
419 * The following SWIs are ARM private. 421 * The following SWIs are ARM private.
diff --git a/arch/arm/kernel/calls.S b/arch/arm/kernel/calls.S
index 05745eb838c5..fde6c88d560c 100644
--- a/arch/arm/kernel/calls.S
+++ b/arch/arm/kernel/calls.S
@@ -397,6 +397,8 @@
397/* 385 */ CALL(sys_memfd_create) 397/* 385 */ CALL(sys_memfd_create)
398 CALL(sys_bpf) 398 CALL(sys_bpf)
399 CALL(sys_execveat) 399 CALL(sys_execveat)
400 CALL(sys_userfaultfd)
401 CALL(sys_membarrier)
400#ifndef syscalls_counted 402#ifndef syscalls_counted
401.equ syscalls_padding, ((NR_syscalls + 3) & ~3) - NR_syscalls 403.equ syscalls_padding, ((NR_syscalls + 3) & ~3) - NR_syscalls
402#define syscalls_counted 404#define syscalls_counted
diff --git a/arch/arm/mach-omap2/Kconfig b/arch/arm/mach-omap2/Kconfig
index 07d2e100caab..b3a0dff67e3f 100644
--- a/arch/arm/mach-omap2/Kconfig
+++ b/arch/arm/mach-omap2/Kconfig
@@ -44,10 +44,11 @@ config SOC_OMAP5
44 select ARM_CPU_SUSPEND if PM 44 select ARM_CPU_SUSPEND if PM
45 select ARM_GIC 45 select ARM_GIC
46 select HAVE_ARM_SCU if SMP 46 select HAVE_ARM_SCU if SMP
47 select HAVE_ARM_TWD if SMP
48 select HAVE_ARM_ARCH_TIMER 47 select HAVE_ARM_ARCH_TIMER
49 select ARM_ERRATA_798181 if SMP 48 select ARM_ERRATA_798181 if SMP
49 select OMAP_INTERCONNECT
50 select OMAP_INTERCONNECT_BARRIER 50 select OMAP_INTERCONNECT_BARRIER
51 select PM_OPP if PM
51 52
52config SOC_AM33XX 53config SOC_AM33XX
53 bool "TI AM33XX" 54 bool "TI AM33XX"
@@ -70,10 +71,13 @@ config SOC_DRA7XX
70 select ARCH_OMAP2PLUS 71 select ARCH_OMAP2PLUS
71 select ARM_CPU_SUSPEND if PM 72 select ARM_CPU_SUSPEND if PM
72 select ARM_GIC 73 select ARM_GIC
74 select HAVE_ARM_SCU if SMP
73 select HAVE_ARM_ARCH_TIMER 75 select HAVE_ARM_ARCH_TIMER
74 select IRQ_CROSSBAR 76 select IRQ_CROSSBAR
75 select ARM_ERRATA_798181 if SMP 77 select ARM_ERRATA_798181 if SMP
78 select OMAP_INTERCONNECT
76 select OMAP_INTERCONNECT_BARRIER 79 select OMAP_INTERCONNECT_BARRIER
80 select PM_OPP if PM
77 81
78config ARCH_OMAP2PLUS 82config ARCH_OMAP2PLUS
79 bool 83 bool
diff --git a/arch/arm/mach-omap2/board-generic.c b/arch/arm/mach-omap2/board-generic.c
index 24c9afc9e8a7..6133eaac685d 100644
--- a/arch/arm/mach-omap2/board-generic.c
+++ b/arch/arm/mach-omap2/board-generic.c
@@ -20,13 +20,6 @@
20 20
21#include "common.h" 21#include "common.h"
22 22
23#if !(defined(CONFIG_ARCH_OMAP2) || defined(CONFIG_ARCH_OMAP3))
24#define intc_of_init NULL
25#endif
26#ifndef CONFIG_ARCH_OMAP4
27#define gic_of_init NULL
28#endif
29
30static const struct of_device_id omap_dt_match_table[] __initconst = { 23static const struct of_device_id omap_dt_match_table[] __initconst = {
31 { .compatible = "simple-bus", }, 24 { .compatible = "simple-bus", },
32 { .compatible = "ti,omap-infra", }, 25 { .compatible = "ti,omap-infra", },
diff --git a/arch/arm/mach-omap2/id.c b/arch/arm/mach-omap2/id.c
index e3f713ffb06b..54a5ba54d2ff 100644
--- a/arch/arm/mach-omap2/id.c
+++ b/arch/arm/mach-omap2/id.c
@@ -653,8 +653,12 @@ void __init dra7xxx_check_revision(void)
653 omap_revision = DRA752_REV_ES1_0; 653 omap_revision = DRA752_REV_ES1_0;
654 break; 654 break;
655 case 1: 655 case 1:
656 default:
657 omap_revision = DRA752_REV_ES1_1; 656 omap_revision = DRA752_REV_ES1_1;
657 break;
658 case 2:
659 default:
660 omap_revision = DRA752_REV_ES2_0;
661 break;
658 } 662 }
659 break; 663 break;
660 664
@@ -674,7 +678,7 @@ void __init dra7xxx_check_revision(void)
674 /* Unknown default to latest silicon rev as default*/ 678 /* Unknown default to latest silicon rev as default*/
675 pr_warn("%s: unknown idcode=0x%08x (hawkeye=0x%08x,rev=0x%x)\n", 679 pr_warn("%s: unknown idcode=0x%08x (hawkeye=0x%08x,rev=0x%x)\n",
676 __func__, idcode, hawkeye, rev); 680 __func__, idcode, hawkeye, rev);
677 omap_revision = DRA752_REV_ES1_1; 681 omap_revision = DRA752_REV_ES2_0;
678 } 682 }
679 683
680 sprintf(soc_name, "DRA%03x", omap_rev() >> 16); 684 sprintf(soc_name, "DRA%03x", omap_rev() >> 16);
diff --git a/arch/arm/mach-omap2/io.c b/arch/arm/mach-omap2/io.c
index 980c9372e6fd..3eaeaca5da05 100644
--- a/arch/arm/mach-omap2/io.c
+++ b/arch/arm/mach-omap2/io.c
@@ -676,6 +676,7 @@ void __init am43xx_init_early(void)
676void __init am43xx_init_late(void) 676void __init am43xx_init_late(void)
677{ 677{
678 omap_common_late_init(); 678 omap_common_late_init();
679 omap2_clk_enable_autoidle_all();
679} 680}
680#endif 681#endif
681 682
diff --git a/arch/arm/mach-omap2/omap_device.c b/arch/arm/mach-omap2/omap_device.c
index 4cb8fd9f741f..72ebc4c16bae 100644
--- a/arch/arm/mach-omap2/omap_device.c
+++ b/arch/arm/mach-omap2/omap_device.c
@@ -901,7 +901,8 @@ static int __init omap_device_late_idle(struct device *dev, void *data)
901 if (od->hwmods[i]->flags & HWMOD_INIT_NO_IDLE) 901 if (od->hwmods[i]->flags & HWMOD_INIT_NO_IDLE)
902 return 0; 902 return 0;
903 903
904 if (od->_driver_status != BUS_NOTIFY_BOUND_DRIVER) { 904 if (od->_driver_status != BUS_NOTIFY_BOUND_DRIVER &&
905 od->_driver_status != BUS_NOTIFY_BIND_DRIVER) {
905 if (od->_state == OMAP_DEVICE_STATE_ENABLED) { 906 if (od->_state == OMAP_DEVICE_STATE_ENABLED) {
906 dev_warn(dev, "%s: enabled but no driver. Idling\n", 907 dev_warn(dev, "%s: enabled but no driver. Idling\n",
907 __func__); 908 __func__);
diff --git a/arch/arm/mach-omap2/pm.h b/arch/arm/mach-omap2/pm.h
index 425bfcd67db6..b668719b9b25 100644
--- a/arch/arm/mach-omap2/pm.h
+++ b/arch/arm/mach-omap2/pm.h
@@ -103,7 +103,8 @@ static inline void enable_omap3630_toggle_l2_on_restore(void) { }
103#define PM_OMAP4_ROM_SMP_BOOT_ERRATUM_GICD (1 << 0) 103#define PM_OMAP4_ROM_SMP_BOOT_ERRATUM_GICD (1 << 0)
104#define PM_OMAP4_CPU_OSWR_DISABLE (1 << 1) 104#define PM_OMAP4_CPU_OSWR_DISABLE (1 << 1)
105 105
106#if defined(CONFIG_PM) && defined(CONFIG_ARCH_OMAP4) 106#if defined(CONFIG_PM) && (defined(CONFIG_ARCH_OMAP4) ||\
107 defined(CONFIG_SOC_OMAP5) || defined(CONFIG_SOC_DRA7XX))
107extern u16 pm44xx_errata; 108extern u16 pm44xx_errata;
108#define IS_PM44XX_ERRATUM(id) (pm44xx_errata & (id)) 109#define IS_PM44XX_ERRATUM(id) (pm44xx_errata & (id))
109#else 110#else
diff --git a/arch/arm/mach-omap2/soc.h b/arch/arm/mach-omap2/soc.h
index f97654d11ea5..2d1d3845253c 100644
--- a/arch/arm/mach-omap2/soc.h
+++ b/arch/arm/mach-omap2/soc.h
@@ -469,6 +469,8 @@ IS_OMAP_TYPE(3430, 0x3430)
469#define DRA7XX_CLASS 0x07000000 469#define DRA7XX_CLASS 0x07000000
470#define DRA752_REV_ES1_0 (DRA7XX_CLASS | (0x52 << 16) | (0x10 << 8)) 470#define DRA752_REV_ES1_0 (DRA7XX_CLASS | (0x52 << 16) | (0x10 << 8))
471#define DRA752_REV_ES1_1 (DRA7XX_CLASS | (0x52 << 16) | (0x11 << 8)) 471#define DRA752_REV_ES1_1 (DRA7XX_CLASS | (0x52 << 16) | (0x11 << 8))
472#define DRA752_REV_ES2_0 (DRA7XX_CLASS | (0x52 << 16) | (0x20 << 8))
473#define DRA722_REV_ES1_0 (DRA7XX_CLASS | (0x22 << 16) | (0x10 << 8))
472#define DRA722_REV_ES1_0 (DRA7XX_CLASS | (0x22 << 16) | (0x10 << 8)) 474#define DRA722_REV_ES1_0 (DRA7XX_CLASS | (0x22 << 16) | (0x10 << 8))
473 475
474void omap2xxx_check_revision(void); 476void omap2xxx_check_revision(void);
diff --git a/arch/arm/mach-omap2/timer.c b/arch/arm/mach-omap2/timer.c
index e4d8701f99f9..a55655127ef2 100644
--- a/arch/arm/mach-omap2/timer.c
+++ b/arch/arm/mach-omap2/timer.c
@@ -297,12 +297,8 @@ static int __init omap_dm_timer_init_one(struct omap_dm_timer *timer,
297 if (IS_ERR(src)) 297 if (IS_ERR(src))
298 return PTR_ERR(src); 298 return PTR_ERR(src);
299 299
300 r = clk_set_parent(timer->fclk, src); 300 WARN(clk_set_parent(timer->fclk, src) < 0,
301 if (r < 0) { 301 "Cannot set timer parent clock, no PLL clock driver?");
302 pr_warn("%s: %s cannot set source\n", __func__, oh->name);
303 clk_put(src);
304 return r;
305 }
306 302
307 clk_put(src); 303 clk_put(src);
308 304
diff --git a/arch/arm/mach-omap2/vc.c b/arch/arm/mach-omap2/vc.c
index e5a35f6b83a7..d44d311704ba 100644
--- a/arch/arm/mach-omap2/vc.c
+++ b/arch/arm/mach-omap2/vc.c
@@ -300,7 +300,7 @@ static void __init omap3_vc_init_pmic_signaling(struct voltagedomain *voltdm)
300 300
301 val = voltdm->read(OMAP3_PRM_POLCTRL_OFFSET); 301 val = voltdm->read(OMAP3_PRM_POLCTRL_OFFSET);
302 if (!(val & OMAP3430_PRM_POLCTRL_CLKREQ_POL) || 302 if (!(val & OMAP3430_PRM_POLCTRL_CLKREQ_POL) ||
303 (val & OMAP3430_PRM_POLCTRL_CLKREQ_POL)) { 303 (val & OMAP3430_PRM_POLCTRL_OFFMODE_POL)) {
304 val |= OMAP3430_PRM_POLCTRL_CLKREQ_POL; 304 val |= OMAP3430_PRM_POLCTRL_CLKREQ_POL;
305 val &= ~OMAP3430_PRM_POLCTRL_OFFMODE_POL; 305 val &= ~OMAP3430_PRM_POLCTRL_OFFMODE_POL;
306 pr_debug("PM: fixing sys_clkreq and sys_off_mode polarity to 0x%x\n", 306 pr_debug("PM: fixing sys_clkreq and sys_off_mode polarity to 0x%x\n",
diff --git a/arch/arm/mach-pxa/balloon3.c b/arch/arm/mach-pxa/balloon3.c
index a3ebb517cca1..a727282bfa99 100644
--- a/arch/arm/mach-pxa/balloon3.c
+++ b/arch/arm/mach-pxa/balloon3.c
@@ -502,7 +502,7 @@ static void balloon3_irq_handler(struct irq_desc *desc)
502 balloon3_irq_enabled; 502 balloon3_irq_enabled;
503 do { 503 do {
504 struct irq_data *d = irq_desc_get_irq_data(desc); 504 struct irq_data *d = irq_desc_get_irq_data(desc);
505 struct irq_chip *chip = irq_data_get_chip(d); 505 struct irq_chip *chip = irq_desc_get_chip(desc);
506 unsigned int irq; 506 unsigned int irq;
507 507
508 /* clear useless edge notification */ 508 /* clear useless edge notification */
diff --git a/arch/arm/mach-pxa/include/mach/addr-map.h b/arch/arm/mach-pxa/include/mach/addr-map.h
index d28fe291233a..07b93fd24474 100644
--- a/arch/arm/mach-pxa/include/mach/addr-map.h
+++ b/arch/arm/mach-pxa/include/mach/addr-map.h
@@ -44,6 +44,13 @@
44 */ 44 */
45 45
46/* 46/*
47 * DFI Bus for NAND, PXA3xx only
48 */
49#define NAND_PHYS 0x43100000
50#define NAND_VIRT IOMEM(0xf6300000)
51#define NAND_SIZE 0x00100000
52
53/*
47 * Internal Memory Controller (PXA27x and later) 54 * Internal Memory Controller (PXA27x and later)
48 */ 55 */
49#define IMEMC_PHYS 0x58000000 56#define IMEMC_PHYS 0x58000000
diff --git a/arch/arm/mach-pxa/pxa3xx.c b/arch/arm/mach-pxa/pxa3xx.c
index ce0f8d6242e2..06005d3f2ba3 100644
--- a/arch/arm/mach-pxa/pxa3xx.c
+++ b/arch/arm/mach-pxa/pxa3xx.c
@@ -47,6 +47,13 @@ extern void __init pxa_dt_irq_init(int (*fn)(struct irq_data *, unsigned int));
47#define ISRAM_START 0x5c000000 47#define ISRAM_START 0x5c000000
48#define ISRAM_SIZE SZ_256K 48#define ISRAM_SIZE SZ_256K
49 49
50/*
51 * NAND NFC: DFI bus arbitration subset
52 */
53#define NDCR (*(volatile u32 __iomem*)(NAND_VIRT + 0))
54#define NDCR_ND_ARB_EN (1 << 12)
55#define NDCR_ND_ARB_CNTL (1 << 19)
56
50static void __iomem *sram; 57static void __iomem *sram;
51static unsigned long wakeup_src; 58static unsigned long wakeup_src;
52 59
@@ -362,7 +369,12 @@ static struct map_desc pxa3xx_io_desc[] __initdata = {
362 .pfn = __phys_to_pfn(PXA3XX_SMEMC_BASE), 369 .pfn = __phys_to_pfn(PXA3XX_SMEMC_BASE),
363 .length = SMEMC_SIZE, 370 .length = SMEMC_SIZE,
364 .type = MT_DEVICE 371 .type = MT_DEVICE
365 } 372 }, {
373 .virtual = (unsigned long)NAND_VIRT,
374 .pfn = __phys_to_pfn(NAND_PHYS),
375 .length = NAND_SIZE,
376 .type = MT_DEVICE
377 },
366}; 378};
367 379
368void __init pxa3xx_map_io(void) 380void __init pxa3xx_map_io(void)
@@ -419,6 +431,13 @@ static int __init pxa3xx_init(void)
419 */ 431 */
420 ASCR &= ~(ASCR_RDH | ASCR_D1S | ASCR_D2S | ASCR_D3S); 432 ASCR &= ~(ASCR_RDH | ASCR_D1S | ASCR_D2S | ASCR_D3S);
421 433
434 /*
435 * Disable DFI bus arbitration, to prevent a system bus lock if
436 * somebody disables the NAND clock (unused clock) while this
437 * bit remains set.
438 */
439 NDCR = (NDCR & ~NDCR_ND_ARB_EN) | NDCR_ND_ARB_CNTL;
440
422 if ((ret = pxa_init_dma(IRQ_DMA, 32))) 441 if ((ret = pxa_init_dma(IRQ_DMA, 32)))
423 return ret; 442 return ret;
424 443
diff --git a/arch/arm/mm/alignment.c b/arch/arm/mm/alignment.c
index 9769f1eefe3b..00b7f7de28a1 100644
--- a/arch/arm/mm/alignment.c
+++ b/arch/arm/mm/alignment.c
@@ -365,15 +365,21 @@ do_alignment_ldrhstrh(unsigned long addr, unsigned long instr, struct pt_regs *r
365 user: 365 user:
366 if (LDST_L_BIT(instr)) { 366 if (LDST_L_BIT(instr)) {
367 unsigned long val; 367 unsigned long val;
368 unsigned int __ua_flags = uaccess_save_and_enable();
369
368 get16t_unaligned_check(val, addr); 370 get16t_unaligned_check(val, addr);
371 uaccess_restore(__ua_flags);
369 372
370 /* signed half-word? */ 373 /* signed half-word? */
371 if (instr & 0x40) 374 if (instr & 0x40)
372 val = (signed long)((signed short) val); 375 val = (signed long)((signed short) val);
373 376
374 regs->uregs[rd] = val; 377 regs->uregs[rd] = val;
375 } else 378 } else {
379 unsigned int __ua_flags = uaccess_save_and_enable();
376 put16t_unaligned_check(regs->uregs[rd], addr); 380 put16t_unaligned_check(regs->uregs[rd], addr);
381 uaccess_restore(__ua_flags);
382 }
377 383
378 return TYPE_LDST; 384 return TYPE_LDST;
379 385
@@ -420,14 +426,21 @@ do_alignment_ldrdstrd(unsigned long addr, unsigned long instr,
420 426
421 user: 427 user:
422 if (load) { 428 if (load) {
423 unsigned long val; 429 unsigned long val, val2;
430 unsigned int __ua_flags = uaccess_save_and_enable();
431
424 get32t_unaligned_check(val, addr); 432 get32t_unaligned_check(val, addr);
433 get32t_unaligned_check(val2, addr + 4);
434
435 uaccess_restore(__ua_flags);
436
425 regs->uregs[rd] = val; 437 regs->uregs[rd] = val;
426 get32t_unaligned_check(val, addr + 4); 438 regs->uregs[rd2] = val2;
427 regs->uregs[rd2] = val;
428 } else { 439 } else {
440 unsigned int __ua_flags = uaccess_save_and_enable();
429 put32t_unaligned_check(regs->uregs[rd], addr); 441 put32t_unaligned_check(regs->uregs[rd], addr);
430 put32t_unaligned_check(regs->uregs[rd2], addr + 4); 442 put32t_unaligned_check(regs->uregs[rd2], addr + 4);
443 uaccess_restore(__ua_flags);
431 } 444 }
432 445
433 return TYPE_LDST; 446 return TYPE_LDST;
@@ -458,10 +471,15 @@ do_alignment_ldrstr(unsigned long addr, unsigned long instr, struct pt_regs *reg
458 trans: 471 trans:
459 if (LDST_L_BIT(instr)) { 472 if (LDST_L_BIT(instr)) {
460 unsigned int val; 473 unsigned int val;
474 unsigned int __ua_flags = uaccess_save_and_enable();
461 get32t_unaligned_check(val, addr); 475 get32t_unaligned_check(val, addr);
476 uaccess_restore(__ua_flags);
462 regs->uregs[rd] = val; 477 regs->uregs[rd] = val;
463 } else 478 } else {
479 unsigned int __ua_flags = uaccess_save_and_enable();
464 put32t_unaligned_check(regs->uregs[rd], addr); 480 put32t_unaligned_check(regs->uregs[rd], addr);
481 uaccess_restore(__ua_flags);
482 }
465 return TYPE_LDST; 483 return TYPE_LDST;
466 484
467 fault: 485 fault:
@@ -531,6 +549,7 @@ do_alignment_ldmstm(unsigned long addr, unsigned long instr, struct pt_regs *reg
531#endif 549#endif
532 550
533 if (user_mode(regs)) { 551 if (user_mode(regs)) {
552 unsigned int __ua_flags = uaccess_save_and_enable();
534 for (regbits = REGMASK_BITS(instr), rd = 0; regbits; 553 for (regbits = REGMASK_BITS(instr), rd = 0; regbits;
535 regbits >>= 1, rd += 1) 554 regbits >>= 1, rd += 1)
536 if (regbits & 1) { 555 if (regbits & 1) {
@@ -542,6 +561,7 @@ do_alignment_ldmstm(unsigned long addr, unsigned long instr, struct pt_regs *reg
542 put32t_unaligned_check(regs->uregs[rd], eaddr); 561 put32t_unaligned_check(regs->uregs[rd], eaddr);
543 eaddr += 4; 562 eaddr += 4;
544 } 563 }
564 uaccess_restore(__ua_flags);
545 } else { 565 } else {
546 for (regbits = REGMASK_BITS(instr), rd = 0; regbits; 566 for (regbits = REGMASK_BITS(instr), rd = 0; regbits;
547 regbits >>= 1, rd += 1) 567 regbits >>= 1, rd += 1)
diff --git a/arch/arm/plat-pxa/ssp.c b/arch/arm/plat-pxa/ssp.c
index ad9529cc4203..daa1a65f2eb7 100644
--- a/arch/arm/plat-pxa/ssp.c
+++ b/arch/arm/plat-pxa/ssp.c
@@ -107,7 +107,6 @@ static const struct of_device_id pxa_ssp_of_ids[] = {
107 { .compatible = "mvrl,pxa168-ssp", .data = (void *) PXA168_SSP }, 107 { .compatible = "mvrl,pxa168-ssp", .data = (void *) PXA168_SSP },
108 { .compatible = "mrvl,pxa910-ssp", .data = (void *) PXA910_SSP }, 108 { .compatible = "mrvl,pxa910-ssp", .data = (void *) PXA910_SSP },
109 { .compatible = "mrvl,ce4100-ssp", .data = (void *) CE4100_SSP }, 109 { .compatible = "mrvl,ce4100-ssp", .data = (void *) CE4100_SSP },
110 { .compatible = "mrvl,lpss-ssp", .data = (void *) LPSS_SSP },
111 { }, 110 { },
112}; 111};
113MODULE_DEVICE_TABLE(of, pxa_ssp_of_ids); 112MODULE_DEVICE_TABLE(of, pxa_ssp_of_ids);
diff --git a/arch/arm64/boot/dts/mediatek/mt8173.dtsi b/arch/arm64/boot/dts/mediatek/mt8173.dtsi
index d18ee4259ee5..06a15644be38 100644
--- a/arch/arm64/boot/dts/mediatek/mt8173.dtsi
+++ b/arch/arm64/boot/dts/mediatek/mt8173.dtsi
@@ -81,7 +81,7 @@
81 }; 81 };
82 82
83 idle-states { 83 idle-states {
84 entry-method = "arm,psci"; 84 entry-method = "psci";
85 85
86 CPU_SLEEP_0: cpu-sleep-0 { 86 CPU_SLEEP_0: cpu-sleep-0 {
87 compatible = "arm,idle-state"; 87 compatible = "arm,idle-state";
diff --git a/arch/arm64/boot/dts/rockchip/rk3368.dtsi b/arch/arm64/boot/dts/rockchip/rk3368.dtsi
index a712bea3bf2c..cc093a482aa4 100644
--- a/arch/arm64/boot/dts/rockchip/rk3368.dtsi
+++ b/arch/arm64/boot/dts/rockchip/rk3368.dtsi
@@ -106,7 +106,7 @@
106 }; 106 };
107 107
108 idle-states { 108 idle-states {
109 entry-method = "arm,psci"; 109 entry-method = "psci";
110 110
111 cpu_sleep: cpu-sleep-0 { 111 cpu_sleep: cpu-sleep-0 {
112 compatible = "arm,idle-state"; 112 compatible = "arm,idle-state";
diff --git a/arch/arm64/include/asm/kvm_host.h b/arch/arm64/include/asm/kvm_host.h
index 4562459456a6..ed039688c221 100644
--- a/arch/arm64/include/asm/kvm_host.h
+++ b/arch/arm64/include/asm/kvm_host.h
@@ -33,6 +33,7 @@
33#define KVM_USER_MEM_SLOTS 32 33#define KVM_USER_MEM_SLOTS 32
34#define KVM_PRIVATE_MEM_SLOTS 4 34#define KVM_PRIVATE_MEM_SLOTS 4
35#define KVM_COALESCED_MMIO_PAGE_OFFSET 1 35#define KVM_COALESCED_MMIO_PAGE_OFFSET 1
36#define KVM_HALT_POLL_NS_DEFAULT 500000
36 37
37#include <kvm/arm_vgic.h> 38#include <kvm/arm_vgic.h>
38#include <kvm/arm_arch_timer.h> 39#include <kvm/arm_arch_timer.h>
diff --git a/arch/frv/mb93090-mb00/pci-vdk.c b/arch/frv/mb93090-mb00/pci-vdk.c
index f9c86c475bbd..f211839e2cae 100644
--- a/arch/frv/mb93090-mb00/pci-vdk.c
+++ b/arch/frv/mb93090-mb00/pci-vdk.c
@@ -294,6 +294,8 @@ void pcibios_fixup_bus(struct pci_bus *bus)
294 printk("### PCIBIOS_FIXUP_BUS(%d)\n",bus->number); 294 printk("### PCIBIOS_FIXUP_BUS(%d)\n",bus->number);
295#endif 295#endif
296 296
297 pci_read_bridge_bases(bus);
298
297 if (bus->number == 0) { 299 if (bus->number == 0) {
298 struct pci_dev *dev; 300 struct pci_dev *dev;
299 list_for_each_entry(dev, &bus->devices, bus_list) { 301 list_for_each_entry(dev, &bus->devices, bus_list) {
diff --git a/arch/ia64/pci/pci.c b/arch/ia64/pci/pci.c
index d89b6013c941..7cc3be9fa7c6 100644
--- a/arch/ia64/pci/pci.c
+++ b/arch/ia64/pci/pci.c
@@ -533,9 +533,10 @@ void pcibios_fixup_bus(struct pci_bus *b)
533{ 533{
534 struct pci_dev *dev; 534 struct pci_dev *dev;
535 535
536 if (b->self) 536 if (b->self) {
537 pci_read_bridge_bases(b);
537 pcibios_fixup_bridge_resources(b->self); 538 pcibios_fixup_bridge_resources(b->self);
538 539 }
539 list_for_each_entry(dev, &b->devices, bus_list) 540 list_for_each_entry(dev, &b->devices, bus_list)
540 pcibios_fixup_device_resources(dev); 541 pcibios_fixup_device_resources(dev);
541 platform_pci_fixup_bus(b); 542 platform_pci_fixup_bus(b);
diff --git a/arch/microblaze/pci/pci-common.c b/arch/microblaze/pci/pci-common.c
index 6b8b75266801..ae838ed5fcf2 100644
--- a/arch/microblaze/pci/pci-common.c
+++ b/arch/microblaze/pci/pci-common.c
@@ -863,7 +863,14 @@ void pcibios_setup_bus_devices(struct pci_bus *bus)
863 863
864void pcibios_fixup_bus(struct pci_bus *bus) 864void pcibios_fixup_bus(struct pci_bus *bus)
865{ 865{
866 /* Fixup the bus */ 866 /* When called from the generic PCI probe, read PCI<->PCI bridge
867 * bases. This is -not- called when generating the PCI tree from
868 * the OF device-tree.
869 */
870 if (bus->self != NULL)
871 pci_read_bridge_bases(bus);
872
873 /* Now fixup the bus bus */
867 pcibios_setup_bus_self(bus); 874 pcibios_setup_bus_self(bus);
868 875
869 /* Now fixup devices on that bus */ 876 /* Now fixup devices on that bus */
diff --git a/arch/mips/include/asm/kvm_host.h b/arch/mips/include/asm/kvm_host.h
index 3a54dbca9f7e..5a1a882e0a75 100644
--- a/arch/mips/include/asm/kvm_host.h
+++ b/arch/mips/include/asm/kvm_host.h
@@ -61,6 +61,7 @@
61#define KVM_PRIVATE_MEM_SLOTS 0 61#define KVM_PRIVATE_MEM_SLOTS 0
62 62
63#define KVM_COALESCED_MMIO_PAGE_OFFSET 1 63#define KVM_COALESCED_MMIO_PAGE_OFFSET 1
64#define KVM_HALT_POLL_NS_DEFAULT 500000
64 65
65 66
66 67
diff --git a/arch/mips/pci/pci.c b/arch/mips/pci/pci.c
index c6996cf67a5c..b8a0bf5766f2 100644
--- a/arch/mips/pci/pci.c
+++ b/arch/mips/pci/pci.c
@@ -311,6 +311,12 @@ int pcibios_enable_device(struct pci_dev *dev, int mask)
311 311
312void pcibios_fixup_bus(struct pci_bus *bus) 312void pcibios_fixup_bus(struct pci_bus *bus)
313{ 313{
314 struct pci_dev *dev = bus->self;
315
316 if (pci_has_flag(PCI_PROBE_ONLY) && dev &&
317 (dev->class >> 8) == PCI_CLASS_BRIDGE_PCI) {
318 pci_read_bridge_bases(bus);
319 }
314} 320}
315 321
316EXPORT_SYMBOL(PCIBIOS_MIN_IO); 322EXPORT_SYMBOL(PCIBIOS_MIN_IO);
diff --git a/arch/mn10300/unit-asb2305/pci.c b/arch/mn10300/unit-asb2305/pci.c
index deaa893efba5..3dfe2d31c67b 100644
--- a/arch/mn10300/unit-asb2305/pci.c
+++ b/arch/mn10300/unit-asb2305/pci.c
@@ -324,6 +324,7 @@ void pcibios_fixup_bus(struct pci_bus *bus)
324 struct pci_dev *dev; 324 struct pci_dev *dev;
325 325
326 if (bus->self) { 326 if (bus->self) {
327 pci_read_bridge_bases(bus);
327 pcibios_fixup_bridge_resources(bus->self); 328 pcibios_fixup_bridge_resources(bus->self);
328 } 329 }
329 330
diff --git a/arch/powerpc/include/asm/kvm_host.h b/arch/powerpc/include/asm/kvm_host.h
index 195886a583ba..827a38d7a9db 100644
--- a/arch/powerpc/include/asm/kvm_host.h
+++ b/arch/powerpc/include/asm/kvm_host.h
@@ -44,6 +44,7 @@
44#ifdef CONFIG_KVM_MMIO 44#ifdef CONFIG_KVM_MMIO
45#define KVM_COALESCED_MMIO_PAGE_OFFSET 1 45#define KVM_COALESCED_MMIO_PAGE_OFFSET 1
46#endif 46#endif
47#define KVM_HALT_POLL_NS_DEFAULT 500000
47 48
48/* These values are internal and can be increased later */ 49/* These values are internal and can be increased later */
49#define KVM_NR_IRQCHIPS 1 50#define KVM_NR_IRQCHIPS 1
diff --git a/arch/powerpc/include/asm/systbl.h b/arch/powerpc/include/asm/systbl.h
index 4d65499ee1c1..126d0c4f9b7d 100644
--- a/arch/powerpc/include/asm/systbl.h
+++ b/arch/powerpc/include/asm/systbl.h
@@ -369,3 +369,4 @@ SYSCALL_SPU(bpf)
369COMPAT_SYS(execveat) 369COMPAT_SYS(execveat)
370PPC64ONLY(switch_endian) 370PPC64ONLY(switch_endian)
371SYSCALL_SPU(userfaultfd) 371SYSCALL_SPU(userfaultfd)
372SYSCALL_SPU(membarrier)
diff --git a/arch/powerpc/include/asm/unistd.h b/arch/powerpc/include/asm/unistd.h
index 4a055b6c2a64..13411be86041 100644
--- a/arch/powerpc/include/asm/unistd.h
+++ b/arch/powerpc/include/asm/unistd.h
@@ -12,7 +12,7 @@
12#include <uapi/asm/unistd.h> 12#include <uapi/asm/unistd.h>
13 13
14 14
15#define __NR_syscalls 365 15#define __NR_syscalls 366
16 16
17#define __NR__exit __NR_exit 17#define __NR__exit __NR_exit
18#define NR_syscalls __NR_syscalls 18#define NR_syscalls __NR_syscalls
diff --git a/arch/powerpc/include/uapi/asm/unistd.h b/arch/powerpc/include/uapi/asm/unistd.h
index 6ad58d4c879b..6337738018aa 100644
--- a/arch/powerpc/include/uapi/asm/unistd.h
+++ b/arch/powerpc/include/uapi/asm/unistd.h
@@ -387,5 +387,6 @@
387#define __NR_execveat 362 387#define __NR_execveat 362
388#define __NR_switch_endian 363 388#define __NR_switch_endian 363
389#define __NR_userfaultfd 364 389#define __NR_userfaultfd 364
390#define __NR_membarrier 365
390 391
391#endif /* _UAPI_ASM_POWERPC_UNISTD_H_ */ 392#endif /* _UAPI_ASM_POWERPC_UNISTD_H_ */
diff --git a/arch/powerpc/kernel/pci-common.c b/arch/powerpc/kernel/pci-common.c
index a1d0632d97c6..7587b2ae5f77 100644
--- a/arch/powerpc/kernel/pci-common.c
+++ b/arch/powerpc/kernel/pci-common.c
@@ -1032,7 +1032,13 @@ void pcibios_set_master(struct pci_dev *dev)
1032 1032
1033void pcibios_fixup_bus(struct pci_bus *bus) 1033void pcibios_fixup_bus(struct pci_bus *bus)
1034{ 1034{
1035 /* Fixup the bus */ 1035 /* When called from the generic PCI probe, read PCI<->PCI bridge
1036 * bases. This is -not- called when generating the PCI tree from
1037 * the OF device-tree.
1038 */
1039 pci_read_bridge_bases(bus);
1040
1041 /* Now fixup the bus bus */
1036 pcibios_setup_bus_self(bus); 1042 pcibios_setup_bus_self(bus);
1037 1043
1038 /* Now fixup devices on that bus */ 1044 /* Now fixup devices on that bus */
diff --git a/arch/powerpc/kvm/book3s.c b/arch/powerpc/kvm/book3s.c
index cf009167d208..099c79d8c160 100644
--- a/arch/powerpc/kvm/book3s.c
+++ b/arch/powerpc/kvm/book3s.c
@@ -829,12 +829,15 @@ int kvmppc_h_logical_ci_load(struct kvm_vcpu *vcpu)
829 unsigned long size = kvmppc_get_gpr(vcpu, 4); 829 unsigned long size = kvmppc_get_gpr(vcpu, 4);
830 unsigned long addr = kvmppc_get_gpr(vcpu, 5); 830 unsigned long addr = kvmppc_get_gpr(vcpu, 5);
831 u64 buf; 831 u64 buf;
832 int srcu_idx;
832 int ret; 833 int ret;
833 834
834 if (!is_power_of_2(size) || (size > sizeof(buf))) 835 if (!is_power_of_2(size) || (size > sizeof(buf)))
835 return H_TOO_HARD; 836 return H_TOO_HARD;
836 837
838 srcu_idx = srcu_read_lock(&vcpu->kvm->srcu);
837 ret = kvm_io_bus_read(vcpu, KVM_MMIO_BUS, addr, size, &buf); 839 ret = kvm_io_bus_read(vcpu, KVM_MMIO_BUS, addr, size, &buf);
840 srcu_read_unlock(&vcpu->kvm->srcu, srcu_idx);
838 if (ret != 0) 841 if (ret != 0)
839 return H_TOO_HARD; 842 return H_TOO_HARD;
840 843
@@ -869,6 +872,7 @@ int kvmppc_h_logical_ci_store(struct kvm_vcpu *vcpu)
869 unsigned long addr = kvmppc_get_gpr(vcpu, 5); 872 unsigned long addr = kvmppc_get_gpr(vcpu, 5);
870 unsigned long val = kvmppc_get_gpr(vcpu, 6); 873 unsigned long val = kvmppc_get_gpr(vcpu, 6);
871 u64 buf; 874 u64 buf;
875 int srcu_idx;
872 int ret; 876 int ret;
873 877
874 switch (size) { 878 switch (size) {
@@ -892,7 +896,9 @@ int kvmppc_h_logical_ci_store(struct kvm_vcpu *vcpu)
892 return H_TOO_HARD; 896 return H_TOO_HARD;
893 } 897 }
894 898
899 srcu_idx = srcu_read_lock(&vcpu->kvm->srcu);
895 ret = kvm_io_bus_write(vcpu, KVM_MMIO_BUS, addr, size, &buf); 900 ret = kvm_io_bus_write(vcpu, KVM_MMIO_BUS, addr, size, &buf);
901 srcu_read_unlock(&vcpu->kvm->srcu, srcu_idx);
896 if (ret != 0) 902 if (ret != 0)
897 return H_TOO_HARD; 903 return H_TOO_HARD;
898 904
diff --git a/arch/powerpc/kvm/book3s_hv.c b/arch/powerpc/kvm/book3s_hv.c
index 9754e6815e52..228049786888 100644
--- a/arch/powerpc/kvm/book3s_hv.c
+++ b/arch/powerpc/kvm/book3s_hv.c
@@ -2692,9 +2692,13 @@ static int kvmppc_run_vcpu(struct kvm_run *kvm_run, struct kvm_vcpu *vcpu)
2692 2692
2693 while (vcpu->arch.state == KVMPPC_VCPU_RUNNABLE && 2693 while (vcpu->arch.state == KVMPPC_VCPU_RUNNABLE &&
2694 (vc->vcore_state == VCORE_RUNNING || 2694 (vc->vcore_state == VCORE_RUNNING ||
2695 vc->vcore_state == VCORE_EXITING)) 2695 vc->vcore_state == VCORE_EXITING ||
2696 vc->vcore_state == VCORE_PIGGYBACK))
2696 kvmppc_wait_for_exec(vc, vcpu, TASK_UNINTERRUPTIBLE); 2697 kvmppc_wait_for_exec(vc, vcpu, TASK_UNINTERRUPTIBLE);
2697 2698
2699 if (vc->vcore_state == VCORE_PREEMPT && vc->runner == NULL)
2700 kvmppc_vcore_end_preempt(vc);
2701
2698 if (vcpu->arch.state == KVMPPC_VCPU_RUNNABLE) { 2702 if (vcpu->arch.state == KVMPPC_VCPU_RUNNABLE) {
2699 kvmppc_remove_runnable(vc, vcpu); 2703 kvmppc_remove_runnable(vc, vcpu);
2700 vcpu->stat.signal_exits++; 2704 vcpu->stat.signal_exits++;
diff --git a/arch/powerpc/kvm/book3s_hv_rmhandlers.S b/arch/powerpc/kvm/book3s_hv_rmhandlers.S
index 2273dcacef39..b98889e9851d 100644
--- a/arch/powerpc/kvm/book3s_hv_rmhandlers.S
+++ b/arch/powerpc/kvm/book3s_hv_rmhandlers.S
@@ -1257,6 +1257,7 @@ mc_cont:
1257 bl kvmhv_accumulate_time 1257 bl kvmhv_accumulate_time
1258#endif 1258#endif
1259 1259
1260 mr r3, r12
1260 /* Increment exit count, poke other threads to exit */ 1261 /* Increment exit count, poke other threads to exit */
1261 bl kvmhv_commence_exit 1262 bl kvmhv_commence_exit
1262 nop 1263 nop
diff --git a/arch/s390/configs/zfcpdump_defconfig b/arch/s390/configs/zfcpdump_defconfig
index 1b0184a0f7f2..92805d604173 100644
--- a/arch/s390/configs/zfcpdump_defconfig
+++ b/arch/s390/configs/zfcpdump_defconfig
@@ -1,7 +1,6 @@
1# CONFIG_SWAP is not set 1# CONFIG_SWAP is not set
2CONFIG_NO_HZ=y 2CONFIG_NO_HZ=y
3CONFIG_HIGH_RES_TIMERS=y 3CONFIG_HIGH_RES_TIMERS=y
4CONFIG_RCU_FAST_NO_HZ=y
5CONFIG_BLK_DEV_INITRD=y 4CONFIG_BLK_DEV_INITRD=y
6CONFIG_CC_OPTIMIZE_FOR_SIZE=y 5CONFIG_CC_OPTIMIZE_FOR_SIZE=y
7# CONFIG_COMPAT_BRK is not set 6# CONFIG_COMPAT_BRK is not set
@@ -54,10 +53,6 @@ CONFIG_RAW_DRIVER=y
54# CONFIG_MONWRITER is not set 53# CONFIG_MONWRITER is not set
55# CONFIG_S390_VMUR is not set 54# CONFIG_S390_VMUR is not set
56# CONFIG_HID is not set 55# CONFIG_HID is not set
57CONFIG_MEMSTICK=y
58CONFIG_MEMSTICK_DEBUG=y
59CONFIG_MEMSTICK_UNSAFE_RESUME=y
60CONFIG_MSPRO_BLOCK=y
61# CONFIG_IOMMU_SUPPORT is not set 56# CONFIG_IOMMU_SUPPORT is not set
62CONFIG_EXT2_FS=y 57CONFIG_EXT2_FS=y
63CONFIG_EXT3_FS=y 58CONFIG_EXT3_FS=y
diff --git a/arch/s390/include/asm/kvm_host.h b/arch/s390/include/asm/kvm_host.h
index 6ce4a0b7e8da..8ced426091e1 100644
--- a/arch/s390/include/asm/kvm_host.h
+++ b/arch/s390/include/asm/kvm_host.h
@@ -35,6 +35,7 @@
35 */ 35 */
36#define KVM_NR_IRQCHIPS 1 36#define KVM_NR_IRQCHIPS 1
37#define KVM_IRQCHIP_NUM_PINS 4096 37#define KVM_IRQCHIP_NUM_PINS 4096
38#define KVM_HALT_POLL_NS_DEFAULT 0
38 39
39#define SIGP_CTRL_C 0x80 40#define SIGP_CTRL_C 0x80
40#define SIGP_CTRL_SCN_MASK 0x3f 41#define SIGP_CTRL_SCN_MASK 0x3f
diff --git a/arch/s390/include/asm/unistd.h b/arch/s390/include/asm/unistd.h
index 525cef73b085..02613bad8bbb 100644
--- a/arch/s390/include/asm/unistd.h
+++ b/arch/s390/include/asm/unistd.h
@@ -8,28 +8,8 @@
8 8
9#include <uapi/asm/unistd.h> 9#include <uapi/asm/unistd.h>
10 10
11
12#define __IGNORE_time 11#define __IGNORE_time
13 12
14/* Ignore system calls that are also reachable via sys_socketcall */
15#define __IGNORE_recvmmsg
16#define __IGNORE_sendmmsg
17#define __IGNORE_socket
18#define __IGNORE_socketpair
19#define __IGNORE_bind
20#define __IGNORE_connect
21#define __IGNORE_listen
22#define __IGNORE_accept4
23#define __IGNORE_getsockopt
24#define __IGNORE_setsockopt
25#define __IGNORE_getsockname
26#define __IGNORE_getpeername
27#define __IGNORE_sendto
28#define __IGNORE_sendmsg
29#define __IGNORE_recvfrom
30#define __IGNORE_recvmsg
31#define __IGNORE_shutdown
32
33#define __ARCH_WANT_OLD_READDIR 13#define __ARCH_WANT_OLD_READDIR
34#define __ARCH_WANT_SYS_ALARM 14#define __ARCH_WANT_SYS_ALARM
35#define __ARCH_WANT_SYS_GETHOSTNAME 15#define __ARCH_WANT_SYS_GETHOSTNAME
diff --git a/arch/s390/include/uapi/asm/unistd.h b/arch/s390/include/uapi/asm/unistd.h
index 59d2bb4e2d0c..a848adba1504 100644
--- a/arch/s390/include/uapi/asm/unistd.h
+++ b/arch/s390/include/uapi/asm/unistd.h
@@ -290,7 +290,26 @@
290#define __NR_s390_pci_mmio_write 352 290#define __NR_s390_pci_mmio_write 352
291#define __NR_s390_pci_mmio_read 353 291#define __NR_s390_pci_mmio_read 353
292#define __NR_execveat 354 292#define __NR_execveat 354
293#define NR_syscalls 355 293#define __NR_userfaultfd 355
294#define __NR_membarrier 356
295#define __NR_recvmmsg 357
296#define __NR_sendmmsg 358
297#define __NR_socket 359
298#define __NR_socketpair 360
299#define __NR_bind 361
300#define __NR_connect 362
301#define __NR_listen 363
302#define __NR_accept4 364
303#define __NR_getsockopt 365
304#define __NR_setsockopt 366
305#define __NR_getsockname 367
306#define __NR_getpeername 368
307#define __NR_sendto 369
308#define __NR_sendmsg 370
309#define __NR_recvfrom 371
310#define __NR_recvmsg 372
311#define __NR_shutdown 373
312#define NR_syscalls 374
294 313
295/* 314/*
296 * There are some system calls that are not present on 64 bit, some 315 * There are some system calls that are not present on 64 bit, some
diff --git a/arch/s390/kernel/compat_signal.c b/arch/s390/kernel/compat_signal.c
index eb4664238613..e0f9d270b30f 100644
--- a/arch/s390/kernel/compat_signal.c
+++ b/arch/s390/kernel/compat_signal.c
@@ -48,6 +48,19 @@ typedef struct
48 struct ucontext32 uc; 48 struct ucontext32 uc;
49} rt_sigframe32; 49} rt_sigframe32;
50 50
51static inline void sigset_to_sigset32(unsigned long *set64,
52 compat_sigset_word *set32)
53{
54 set32[0] = (compat_sigset_word) set64[0];
55 set32[1] = (compat_sigset_word)(set64[0] >> 32);
56}
57
58static inline void sigset32_to_sigset(compat_sigset_word *set32,
59 unsigned long *set64)
60{
61 set64[0] = (unsigned long) set32[0] | ((unsigned long) set32[1] << 32);
62}
63
51int copy_siginfo_to_user32(compat_siginfo_t __user *to, const siginfo_t *from) 64int copy_siginfo_to_user32(compat_siginfo_t __user *to, const siginfo_t *from)
52{ 65{
53 int err; 66 int err;
@@ -281,10 +294,12 @@ COMPAT_SYSCALL_DEFINE0(sigreturn)
281{ 294{
282 struct pt_regs *regs = task_pt_regs(current); 295 struct pt_regs *regs = task_pt_regs(current);
283 sigframe32 __user *frame = (sigframe32 __user *)regs->gprs[15]; 296 sigframe32 __user *frame = (sigframe32 __user *)regs->gprs[15];
297 compat_sigset_t cset;
284 sigset_t set; 298 sigset_t set;
285 299
286 if (__copy_from_user(&set.sig, &frame->sc.oldmask, _SIGMASK_COPY_SIZE32)) 300 if (__copy_from_user(&cset.sig, &frame->sc.oldmask, _SIGMASK_COPY_SIZE32))
287 goto badframe; 301 goto badframe;
302 sigset32_to_sigset(cset.sig, set.sig);
288 set_current_blocked(&set); 303 set_current_blocked(&set);
289 save_fpu_regs(); 304 save_fpu_regs();
290 if (restore_sigregs32(regs, &frame->sregs)) 305 if (restore_sigregs32(regs, &frame->sregs))
@@ -302,10 +317,12 @@ COMPAT_SYSCALL_DEFINE0(rt_sigreturn)
302{ 317{
303 struct pt_regs *regs = task_pt_regs(current); 318 struct pt_regs *regs = task_pt_regs(current);
304 rt_sigframe32 __user *frame = (rt_sigframe32 __user *)regs->gprs[15]; 319 rt_sigframe32 __user *frame = (rt_sigframe32 __user *)regs->gprs[15];
320 compat_sigset_t cset;
305 sigset_t set; 321 sigset_t set;
306 322
307 if (__copy_from_user(&set, &frame->uc.uc_sigmask, sizeof(set))) 323 if (__copy_from_user(&cset, &frame->uc.uc_sigmask, sizeof(cset)))
308 goto badframe; 324 goto badframe;
325 sigset32_to_sigset(cset.sig, set.sig);
309 set_current_blocked(&set); 326 set_current_blocked(&set);
310 if (compat_restore_altstack(&frame->uc.uc_stack)) 327 if (compat_restore_altstack(&frame->uc.uc_stack))
311 goto badframe; 328 goto badframe;
@@ -377,7 +394,7 @@ static int setup_frame32(struct ksignal *ksig, sigset_t *set,
377 return -EFAULT; 394 return -EFAULT;
378 395
379 /* Create struct sigcontext32 on the signal stack */ 396 /* Create struct sigcontext32 on the signal stack */
380 memcpy(&sc.oldmask, &set->sig, _SIGMASK_COPY_SIZE32); 397 sigset_to_sigset32(set->sig, sc.oldmask);
381 sc.sregs = (__u32)(unsigned long __force) &frame->sregs; 398 sc.sregs = (__u32)(unsigned long __force) &frame->sregs;
382 if (__copy_to_user(&frame->sc, &sc, sizeof(frame->sc))) 399 if (__copy_to_user(&frame->sc, &sc, sizeof(frame->sc)))
383 return -EFAULT; 400 return -EFAULT;
@@ -438,6 +455,7 @@ static int setup_frame32(struct ksignal *ksig, sigset_t *set,
438static int setup_rt_frame32(struct ksignal *ksig, sigset_t *set, 455static int setup_rt_frame32(struct ksignal *ksig, sigset_t *set,
439 struct pt_regs *regs) 456 struct pt_regs *regs)
440{ 457{
458 compat_sigset_t cset;
441 rt_sigframe32 __user *frame; 459 rt_sigframe32 __user *frame;
442 unsigned long restorer; 460 unsigned long restorer;
443 size_t frame_size; 461 size_t frame_size;
@@ -485,11 +503,12 @@ static int setup_rt_frame32(struct ksignal *ksig, sigset_t *set,
485 store_sigregs(); 503 store_sigregs();
486 504
487 /* Create ucontext on the signal stack. */ 505 /* Create ucontext on the signal stack. */
506 sigset_to_sigset32(set->sig, cset.sig);
488 if (__put_user(uc_flags, &frame->uc.uc_flags) || 507 if (__put_user(uc_flags, &frame->uc.uc_flags) ||
489 __put_user(0, &frame->uc.uc_link) || 508 __put_user(0, &frame->uc.uc_link) ||
490 __compat_save_altstack(&frame->uc.uc_stack, regs->gprs[15]) || 509 __compat_save_altstack(&frame->uc.uc_stack, regs->gprs[15]) ||
491 save_sigregs32(regs, &frame->uc.uc_mcontext) || 510 save_sigregs32(regs, &frame->uc.uc_mcontext) ||
492 __copy_to_user(&frame->uc.uc_sigmask, set, sizeof(*set)) || 511 __copy_to_user(&frame->uc.uc_sigmask, &cset, sizeof(cset)) ||
493 save_sigregs_ext32(regs, &frame->uc.uc_mcontext_ext)) 512 save_sigregs_ext32(regs, &frame->uc.uc_mcontext_ext))
494 return -EFAULT; 513 return -EFAULT;
495 514
diff --git a/arch/s390/kernel/compat_wrapper.c b/arch/s390/kernel/compat_wrapper.c
index f8498dde67b1..09f194052df3 100644
--- a/arch/s390/kernel/compat_wrapper.c
+++ b/arch/s390/kernel/compat_wrapper.c
@@ -52,15 +52,13 @@
52 * the regular system call wrappers. 52 * the regular system call wrappers.
53 */ 53 */
54#define COMPAT_SYSCALL_WRAPx(x, name, ...) \ 54#define COMPAT_SYSCALL_WRAPx(x, name, ...) \
55 asmlinkage long sys##name(__MAP(x,__SC_DECL,__VA_ARGS__)); \ 55asmlinkage long sys##name(__MAP(x,__SC_DECL,__VA_ARGS__)); \
56 asmlinkage long compat_sys##name(__MAP(x,__SC_COMPAT_TYPE,__VA_ARGS__));\ 56asmlinkage long notrace compat_sys##name(__MAP(x,__SC_COMPAT_TYPE,__VA_ARGS__));\
57 asmlinkage long compat_sys##name(__MAP(x,__SC_COMPAT_TYPE,__VA_ARGS__)) \ 57asmlinkage long notrace compat_sys##name(__MAP(x,__SC_COMPAT_TYPE,__VA_ARGS__)) \
58 { \ 58{ \
59 return sys##name(__MAP(x,__SC_COMPAT_CAST,__VA_ARGS__)); \ 59 return sys##name(__MAP(x,__SC_COMPAT_CAST,__VA_ARGS__)); \
60 } 60}
61 61
62COMPAT_SYSCALL_WRAP1(exit, int, error_code);
63COMPAT_SYSCALL_WRAP1(close, unsigned int, fd);
64COMPAT_SYSCALL_WRAP2(creat, const char __user *, pathname, umode_t, mode); 62COMPAT_SYSCALL_WRAP2(creat, const char __user *, pathname, umode_t, mode);
65COMPAT_SYSCALL_WRAP2(link, const char __user *, oldname, const char __user *, newname); 63COMPAT_SYSCALL_WRAP2(link, const char __user *, oldname, const char __user *, newname);
66COMPAT_SYSCALL_WRAP1(unlink, const char __user *, pathname); 64COMPAT_SYSCALL_WRAP1(unlink, const char __user *, pathname);
@@ -68,23 +66,16 @@ COMPAT_SYSCALL_WRAP1(chdir, const char __user *, filename);
68COMPAT_SYSCALL_WRAP3(mknod, const char __user *, filename, umode_t, mode, unsigned, dev); 66COMPAT_SYSCALL_WRAP3(mknod, const char __user *, filename, umode_t, mode, unsigned, dev);
69COMPAT_SYSCALL_WRAP2(chmod, const char __user *, filename, umode_t, mode); 67COMPAT_SYSCALL_WRAP2(chmod, const char __user *, filename, umode_t, mode);
70COMPAT_SYSCALL_WRAP1(oldumount, char __user *, name); 68COMPAT_SYSCALL_WRAP1(oldumount, char __user *, name);
71COMPAT_SYSCALL_WRAP1(alarm, unsigned int, seconds);
72COMPAT_SYSCALL_WRAP2(access, const char __user *, filename, int, mode); 69COMPAT_SYSCALL_WRAP2(access, const char __user *, filename, int, mode);
73COMPAT_SYSCALL_WRAP1(nice, int, increment);
74COMPAT_SYSCALL_WRAP2(kill, int, pid, int, sig);
75COMPAT_SYSCALL_WRAP2(rename, const char __user *, oldname, const char __user *, newname); 70COMPAT_SYSCALL_WRAP2(rename, const char __user *, oldname, const char __user *, newname);
76COMPAT_SYSCALL_WRAP2(mkdir, const char __user *, pathname, umode_t, mode); 71COMPAT_SYSCALL_WRAP2(mkdir, const char __user *, pathname, umode_t, mode);
77COMPAT_SYSCALL_WRAP1(rmdir, const char __user *, pathname); 72COMPAT_SYSCALL_WRAP1(rmdir, const char __user *, pathname);
78COMPAT_SYSCALL_WRAP1(dup, unsigned int, fildes);
79COMPAT_SYSCALL_WRAP1(pipe, int __user *, fildes); 73COMPAT_SYSCALL_WRAP1(pipe, int __user *, fildes);
80COMPAT_SYSCALL_WRAP1(brk, unsigned long, brk); 74COMPAT_SYSCALL_WRAP1(brk, unsigned long, brk);
81COMPAT_SYSCALL_WRAP2(signal, int, sig, __sighandler_t, handler); 75COMPAT_SYSCALL_WRAP2(signal, int, sig, __sighandler_t, handler);
82COMPAT_SYSCALL_WRAP1(acct, const char __user *, name); 76COMPAT_SYSCALL_WRAP1(acct, const char __user *, name);
83COMPAT_SYSCALL_WRAP2(umount, char __user *, name, int, flags); 77COMPAT_SYSCALL_WRAP2(umount, char __user *, name, int, flags);
84COMPAT_SYSCALL_WRAP2(setpgid, pid_t, pid, pid_t, pgid);
85COMPAT_SYSCALL_WRAP1(umask, int, mask);
86COMPAT_SYSCALL_WRAP1(chroot, const char __user *, filename); 78COMPAT_SYSCALL_WRAP1(chroot, const char __user *, filename);
87COMPAT_SYSCALL_WRAP2(dup2, unsigned int, oldfd, unsigned int, newfd);
88COMPAT_SYSCALL_WRAP3(sigsuspend, int, unused1, int, unused2, old_sigset_t, mask); 79COMPAT_SYSCALL_WRAP3(sigsuspend, int, unused1, int, unused2, old_sigset_t, mask);
89COMPAT_SYSCALL_WRAP2(sethostname, char __user *, name, int, len); 80COMPAT_SYSCALL_WRAP2(sethostname, char __user *, name, int, len);
90COMPAT_SYSCALL_WRAP2(symlink, const char __user *, old, const char __user *, new); 81COMPAT_SYSCALL_WRAP2(symlink, const char __user *, old, const char __user *, new);
@@ -93,37 +84,23 @@ COMPAT_SYSCALL_WRAP1(uselib, const char __user *, library);
93COMPAT_SYSCALL_WRAP2(swapon, const char __user *, specialfile, int, swap_flags); 84COMPAT_SYSCALL_WRAP2(swapon, const char __user *, specialfile, int, swap_flags);
94COMPAT_SYSCALL_WRAP4(reboot, int, magic1, int, magic2, unsigned int, cmd, void __user *, arg); 85COMPAT_SYSCALL_WRAP4(reboot, int, magic1, int, magic2, unsigned int, cmd, void __user *, arg);
95COMPAT_SYSCALL_WRAP2(munmap, unsigned long, addr, size_t, len); 86COMPAT_SYSCALL_WRAP2(munmap, unsigned long, addr, size_t, len);
96COMPAT_SYSCALL_WRAP2(fchmod, unsigned int, fd, umode_t, mode);
97COMPAT_SYSCALL_WRAP2(getpriority, int, which, int, who);
98COMPAT_SYSCALL_WRAP3(setpriority, int, which, int, who, int, niceval);
99COMPAT_SYSCALL_WRAP3(syslog, int, type, char __user *, buf, int, len); 87COMPAT_SYSCALL_WRAP3(syslog, int, type, char __user *, buf, int, len);
100COMPAT_SYSCALL_WRAP1(swapoff, const char __user *, specialfile); 88COMPAT_SYSCALL_WRAP1(swapoff, const char __user *, specialfile);
101COMPAT_SYSCALL_WRAP1(fsync, unsigned int, fd);
102COMPAT_SYSCALL_WRAP2(setdomainname, char __user *, name, int, len); 89COMPAT_SYSCALL_WRAP2(setdomainname, char __user *, name, int, len);
103COMPAT_SYSCALL_WRAP1(newuname, struct new_utsname __user *, name); 90COMPAT_SYSCALL_WRAP1(newuname, struct new_utsname __user *, name);
104COMPAT_SYSCALL_WRAP3(mprotect, unsigned long, start, size_t, len, unsigned long, prot); 91COMPAT_SYSCALL_WRAP3(mprotect, unsigned long, start, size_t, len, unsigned long, prot);
105COMPAT_SYSCALL_WRAP3(init_module, void __user *, umod, unsigned long, len, const char __user *, uargs); 92COMPAT_SYSCALL_WRAP3(init_module, void __user *, umod, unsigned long, len, const char __user *, uargs);
106COMPAT_SYSCALL_WRAP2(delete_module, const char __user *, name_user, unsigned int, flags); 93COMPAT_SYSCALL_WRAP2(delete_module, const char __user *, name_user, unsigned int, flags);
107COMPAT_SYSCALL_WRAP4(quotactl, unsigned int, cmd, const char __user *, special, qid_t, id, void __user *, addr); 94COMPAT_SYSCALL_WRAP4(quotactl, unsigned int, cmd, const char __user *, special, qid_t, id, void __user *, addr);
108COMPAT_SYSCALL_WRAP1(getpgid, pid_t, pid);
109COMPAT_SYSCALL_WRAP1(fchdir, unsigned int, fd);
110COMPAT_SYSCALL_WRAP2(bdflush, int, func, long, data); 95COMPAT_SYSCALL_WRAP2(bdflush, int, func, long, data);
111COMPAT_SYSCALL_WRAP3(sysfs, int, option, unsigned long, arg1, unsigned long, arg2); 96COMPAT_SYSCALL_WRAP3(sysfs, int, option, unsigned long, arg1, unsigned long, arg2);
112COMPAT_SYSCALL_WRAP1(s390_personality, unsigned int, personality);
113COMPAT_SYSCALL_WRAP5(llseek, unsigned int, fd, unsigned long, high, unsigned long, low, loff_t __user *, result, unsigned int, whence); 97COMPAT_SYSCALL_WRAP5(llseek, unsigned int, fd, unsigned long, high, unsigned long, low, loff_t __user *, result, unsigned int, whence);
114COMPAT_SYSCALL_WRAP2(flock, unsigned int, fd, unsigned int, cmd);
115COMPAT_SYSCALL_WRAP3(msync, unsigned long, start, size_t, len, int, flags); 98COMPAT_SYSCALL_WRAP3(msync, unsigned long, start, size_t, len, int, flags);
116COMPAT_SYSCALL_WRAP1(getsid, pid_t, pid);
117COMPAT_SYSCALL_WRAP1(fdatasync, unsigned int, fd);
118COMPAT_SYSCALL_WRAP2(mlock, unsigned long, start, size_t, len); 99COMPAT_SYSCALL_WRAP2(mlock, unsigned long, start, size_t, len);
119COMPAT_SYSCALL_WRAP2(munlock, unsigned long, start, size_t, len); 100COMPAT_SYSCALL_WRAP2(munlock, unsigned long, start, size_t, len);
120COMPAT_SYSCALL_WRAP1(mlockall, int, flags);
121COMPAT_SYSCALL_WRAP2(sched_setparam, pid_t, pid, struct sched_param __user *, param); 101COMPAT_SYSCALL_WRAP2(sched_setparam, pid_t, pid, struct sched_param __user *, param);
122COMPAT_SYSCALL_WRAP2(sched_getparam, pid_t, pid, struct sched_param __user *, param); 102COMPAT_SYSCALL_WRAP2(sched_getparam, pid_t, pid, struct sched_param __user *, param);
123COMPAT_SYSCALL_WRAP3(sched_setscheduler, pid_t, pid, int, policy, struct sched_param __user *, param); 103COMPAT_SYSCALL_WRAP3(sched_setscheduler, pid_t, pid, int, policy, struct sched_param __user *, param);
124COMPAT_SYSCALL_WRAP1(sched_getscheduler, pid_t, pid);
125COMPAT_SYSCALL_WRAP1(sched_get_priority_max, int, policy);
126COMPAT_SYSCALL_WRAP1(sched_get_priority_min, int, policy);
127COMPAT_SYSCALL_WRAP5(mremap, unsigned long, addr, unsigned long, old_len, unsigned long, new_len, unsigned long, flags, unsigned long, new_addr); 104COMPAT_SYSCALL_WRAP5(mremap, unsigned long, addr, unsigned long, old_len, unsigned long, new_len, unsigned long, flags, unsigned long, new_addr);
128COMPAT_SYSCALL_WRAP3(poll, struct pollfd __user *, ufds, unsigned int, nfds, int, timeout); 105COMPAT_SYSCALL_WRAP3(poll, struct pollfd __user *, ufds, unsigned int, nfds, int, timeout);
129COMPAT_SYSCALL_WRAP5(prctl, int, option, unsigned long, arg2, unsigned long, arg3, unsigned long, arg4, unsigned long, arg5); 106COMPAT_SYSCALL_WRAP5(prctl, int, option, unsigned long, arg2, unsigned long, arg3, unsigned long, arg4, unsigned long, arg5);
@@ -131,20 +108,11 @@ COMPAT_SYSCALL_WRAP2(getcwd, char __user *, buf, unsigned long, size);
131COMPAT_SYSCALL_WRAP2(capget, cap_user_header_t, header, cap_user_data_t, dataptr); 108COMPAT_SYSCALL_WRAP2(capget, cap_user_header_t, header, cap_user_data_t, dataptr);
132COMPAT_SYSCALL_WRAP2(capset, cap_user_header_t, header, const cap_user_data_t, data); 109COMPAT_SYSCALL_WRAP2(capset, cap_user_header_t, header, const cap_user_data_t, data);
133COMPAT_SYSCALL_WRAP3(lchown, const char __user *, filename, uid_t, user, gid_t, group); 110COMPAT_SYSCALL_WRAP3(lchown, const char __user *, filename, uid_t, user, gid_t, group);
134COMPAT_SYSCALL_WRAP2(setreuid, uid_t, ruid, uid_t, euid);
135COMPAT_SYSCALL_WRAP2(setregid, gid_t, rgid, gid_t, egid);
136COMPAT_SYSCALL_WRAP2(getgroups, int, gidsetsize, gid_t __user *, grouplist); 111COMPAT_SYSCALL_WRAP2(getgroups, int, gidsetsize, gid_t __user *, grouplist);
137COMPAT_SYSCALL_WRAP2(setgroups, int, gidsetsize, gid_t __user *, grouplist); 112COMPAT_SYSCALL_WRAP2(setgroups, int, gidsetsize, gid_t __user *, grouplist);
138COMPAT_SYSCALL_WRAP3(fchown, unsigned int, fd, uid_t, user, gid_t, group);
139COMPAT_SYSCALL_WRAP3(setresuid, uid_t, ruid, uid_t, euid, uid_t, suid);
140COMPAT_SYSCALL_WRAP3(getresuid, uid_t __user *, ruid, uid_t __user *, euid, uid_t __user *, suid); 113COMPAT_SYSCALL_WRAP3(getresuid, uid_t __user *, ruid, uid_t __user *, euid, uid_t __user *, suid);
141COMPAT_SYSCALL_WRAP3(setresgid, gid_t, rgid, gid_t, egid, gid_t, sgid);
142COMPAT_SYSCALL_WRAP3(getresgid, gid_t __user *, rgid, gid_t __user *, egid, gid_t __user *, sgid); 114COMPAT_SYSCALL_WRAP3(getresgid, gid_t __user *, rgid, gid_t __user *, egid, gid_t __user *, sgid);
143COMPAT_SYSCALL_WRAP3(chown, const char __user *, filename, uid_t, user, gid_t, group); 115COMPAT_SYSCALL_WRAP3(chown, const char __user *, filename, uid_t, user, gid_t, group);
144COMPAT_SYSCALL_WRAP1(setuid, uid_t, uid);
145COMPAT_SYSCALL_WRAP1(setgid, gid_t, gid);
146COMPAT_SYSCALL_WRAP1(setfsuid, uid_t, uid);
147COMPAT_SYSCALL_WRAP1(setfsgid, gid_t, gid);
148COMPAT_SYSCALL_WRAP2(pivot_root, const char __user *, new_root, const char __user *, put_old); 116COMPAT_SYSCALL_WRAP2(pivot_root, const char __user *, new_root, const char __user *, put_old);
149COMPAT_SYSCALL_WRAP3(mincore, unsigned long, start, size_t, len, unsigned char __user *, vec); 117COMPAT_SYSCALL_WRAP3(mincore, unsigned long, start, size_t, len, unsigned char __user *, vec);
150COMPAT_SYSCALL_WRAP3(madvise, unsigned long, start, size_t, len, int, behavior); 118COMPAT_SYSCALL_WRAP3(madvise, unsigned long, start, size_t, len, int, behavior);
@@ -161,23 +129,16 @@ COMPAT_SYSCALL_WRAP3(flistxattr, int, fd, char __user *, list, size_t, size);
161COMPAT_SYSCALL_WRAP2(removexattr, const char __user *, path, const char __user *, name); 129COMPAT_SYSCALL_WRAP2(removexattr, const char __user *, path, const char __user *, name);
162COMPAT_SYSCALL_WRAP2(lremovexattr, const char __user *, path, const char __user *, name); 130COMPAT_SYSCALL_WRAP2(lremovexattr, const char __user *, path, const char __user *, name);
163COMPAT_SYSCALL_WRAP2(fremovexattr, int, fd, const char __user *, name); 131COMPAT_SYSCALL_WRAP2(fremovexattr, int, fd, const char __user *, name);
164COMPAT_SYSCALL_WRAP1(exit_group, int, error_code);
165COMPAT_SYSCALL_WRAP1(set_tid_address, int __user *, tidptr); 132COMPAT_SYSCALL_WRAP1(set_tid_address, int __user *, tidptr);
166COMPAT_SYSCALL_WRAP1(epoll_create, int, size);
167COMPAT_SYSCALL_WRAP4(epoll_ctl, int, epfd, int, op, int, fd, struct epoll_event __user *, event); 133COMPAT_SYSCALL_WRAP4(epoll_ctl, int, epfd, int, op, int, fd, struct epoll_event __user *, event);
168COMPAT_SYSCALL_WRAP4(epoll_wait, int, epfd, struct epoll_event __user *, events, int, maxevents, int, timeout); 134COMPAT_SYSCALL_WRAP4(epoll_wait, int, epfd, struct epoll_event __user *, events, int, maxevents, int, timeout);
169COMPAT_SYSCALL_WRAP1(timer_getoverrun, timer_t, timer_id);
170COMPAT_SYSCALL_WRAP1(timer_delete, compat_timer_t, compat_timer_id);
171COMPAT_SYSCALL_WRAP1(io_destroy, aio_context_t, ctx); 135COMPAT_SYSCALL_WRAP1(io_destroy, aio_context_t, ctx);
172COMPAT_SYSCALL_WRAP3(io_cancel, aio_context_t, ctx_id, struct iocb __user *, iocb, struct io_event __user *, result); 136COMPAT_SYSCALL_WRAP3(io_cancel, aio_context_t, ctx_id, struct iocb __user *, iocb, struct io_event __user *, result);
173COMPAT_SYSCALL_WRAP1(mq_unlink, const char __user *, name); 137COMPAT_SYSCALL_WRAP1(mq_unlink, const char __user *, name);
174COMPAT_SYSCALL_WRAP5(add_key, const char __user *, tp, const char __user *, dsc, const void __user *, pld, size_t, len, key_serial_t, id); 138COMPAT_SYSCALL_WRAP5(add_key, const char __user *, tp, const char __user *, dsc, const void __user *, pld, size_t, len, key_serial_t, id);
175COMPAT_SYSCALL_WRAP4(request_key, const char __user *, tp, const char __user *, dsc, const char __user *, info, key_serial_t, id); 139COMPAT_SYSCALL_WRAP4(request_key, const char __user *, tp, const char __user *, dsc, const char __user *, info, key_serial_t, id);
176COMPAT_SYSCALL_WRAP5(remap_file_pages, unsigned long, start, unsigned long, size, unsigned long, prot, unsigned long, pgoff, unsigned long, flags); 140COMPAT_SYSCALL_WRAP5(remap_file_pages, unsigned long, start, unsigned long, size, unsigned long, prot, unsigned long, pgoff, unsigned long, flags);
177COMPAT_SYSCALL_WRAP3(ioprio_set, int, which, int, who, int, ioprio);
178COMPAT_SYSCALL_WRAP2(ioprio_get, int, which, int, who);
179COMPAT_SYSCALL_WRAP3(inotify_add_watch, int, fd, const char __user *, path, u32, mask); 141COMPAT_SYSCALL_WRAP3(inotify_add_watch, int, fd, const char __user *, path, u32, mask);
180COMPAT_SYSCALL_WRAP2(inotify_rm_watch, int, fd, __s32, wd);
181COMPAT_SYSCALL_WRAP3(mkdirat, int, dfd, const char __user *, pathname, umode_t, mode); 142COMPAT_SYSCALL_WRAP3(mkdirat, int, dfd, const char __user *, pathname, umode_t, mode);
182COMPAT_SYSCALL_WRAP4(mknodat, int, dfd, const char __user *, filename, umode_t, mode, unsigned, dev); 143COMPAT_SYSCALL_WRAP4(mknodat, int, dfd, const char __user *, filename, umode_t, mode, unsigned, dev);
183COMPAT_SYSCALL_WRAP5(fchownat, int, dfd, const char __user *, filename, uid_t, user, gid_t, group, int, flag); 144COMPAT_SYSCALL_WRAP5(fchownat, int, dfd, const char __user *, filename, uid_t, user, gid_t, group, int, flag);
@@ -192,23 +153,11 @@ COMPAT_SYSCALL_WRAP1(unshare, unsigned long, unshare_flags);
192COMPAT_SYSCALL_WRAP6(splice, int, fd_in, loff_t __user *, off_in, int, fd_out, loff_t __user *, off_out, size_t, len, unsigned int, flags); 153COMPAT_SYSCALL_WRAP6(splice, int, fd_in, loff_t __user *, off_in, int, fd_out, loff_t __user *, off_out, size_t, len, unsigned int, flags);
193COMPAT_SYSCALL_WRAP4(tee, int, fdin, int, fdout, size_t, len, unsigned int, flags); 154COMPAT_SYSCALL_WRAP4(tee, int, fdin, int, fdout, size_t, len, unsigned int, flags);
194COMPAT_SYSCALL_WRAP3(getcpu, unsigned __user *, cpu, unsigned __user *, node, struct getcpu_cache __user *, cache); 155COMPAT_SYSCALL_WRAP3(getcpu, unsigned __user *, cpu, unsigned __user *, node, struct getcpu_cache __user *, cache);
195COMPAT_SYSCALL_WRAP1(eventfd, unsigned int, count);
196COMPAT_SYSCALL_WRAP2(timerfd_create, int, clockid, int, flags);
197COMPAT_SYSCALL_WRAP2(eventfd2, unsigned int, count, int, flags);
198COMPAT_SYSCALL_WRAP1(inotify_init1, int, flags);
199COMPAT_SYSCALL_WRAP2(pipe2, int __user *, fildes, int, flags); 156COMPAT_SYSCALL_WRAP2(pipe2, int __user *, fildes, int, flags);
200COMPAT_SYSCALL_WRAP3(dup3, unsigned int, oldfd, unsigned int, newfd, int, flags);
201COMPAT_SYSCALL_WRAP1(epoll_create1, int, flags);
202COMPAT_SYSCALL_WRAP2(tkill, int, pid, int, sig);
203COMPAT_SYSCALL_WRAP3(tgkill, int, tgid, int, pid, int, sig);
204COMPAT_SYSCALL_WRAP5(perf_event_open, struct perf_event_attr __user *, attr_uptr, pid_t, pid, int, cpu, int, group_fd, unsigned long, flags); 157COMPAT_SYSCALL_WRAP5(perf_event_open, struct perf_event_attr __user *, attr_uptr, pid_t, pid, int, cpu, int, group_fd, unsigned long, flags);
205COMPAT_SYSCALL_WRAP5(clone, unsigned long, newsp, unsigned long, clone_flags, int __user *, parent_tidptr, int __user *, child_tidptr, unsigned long, tls); 158COMPAT_SYSCALL_WRAP5(clone, unsigned long, newsp, unsigned long, clone_flags, int __user *, parent_tidptr, int __user *, child_tidptr, unsigned long, tls);
206COMPAT_SYSCALL_WRAP2(fanotify_init, unsigned int, flags, unsigned int, event_f_flags);
207COMPAT_SYSCALL_WRAP4(prlimit64, pid_t, pid, unsigned int, resource, const struct rlimit64 __user *, new_rlim, struct rlimit64 __user *, old_rlim); 159COMPAT_SYSCALL_WRAP4(prlimit64, pid_t, pid, unsigned int, resource, const struct rlimit64 __user *, new_rlim, struct rlimit64 __user *, old_rlim);
208COMPAT_SYSCALL_WRAP5(name_to_handle_at, int, dfd, const char __user *, name, struct file_handle __user *, handle, int __user *, mnt_id, int, flag); 160COMPAT_SYSCALL_WRAP5(name_to_handle_at, int, dfd, const char __user *, name, struct file_handle __user *, handle, int __user *, mnt_id, int, flag);
209COMPAT_SYSCALL_WRAP1(syncfs, int, fd);
210COMPAT_SYSCALL_WRAP2(setns, int, fd, int, nstype);
211COMPAT_SYSCALL_WRAP2(s390_runtime_instr, int, command, int, signum);
212COMPAT_SYSCALL_WRAP5(kcmp, pid_t, pid1, pid_t, pid2, int, type, unsigned long, idx1, unsigned long, idx2); 161COMPAT_SYSCALL_WRAP5(kcmp, pid_t, pid1, pid_t, pid2, int, type, unsigned long, idx1, unsigned long, idx2);
213COMPAT_SYSCALL_WRAP3(finit_module, int, fd, const char __user *, uargs, int, flags); 162COMPAT_SYSCALL_WRAP3(finit_module, int, fd, const char __user *, uargs, int, flags);
214COMPAT_SYSCALL_WRAP3(sched_setattr, pid_t, pid, struct sched_attr __user *, attr, unsigned int, flags); 163COMPAT_SYSCALL_WRAP3(sched_setattr, pid_t, pid, struct sched_attr __user *, attr, unsigned int, flags);
@@ -220,3 +169,10 @@ COMPAT_SYSCALL_WRAP2(memfd_create, const char __user *, uname, unsigned int, fla
220COMPAT_SYSCALL_WRAP3(bpf, int, cmd, union bpf_attr *, attr, unsigned int, size); 169COMPAT_SYSCALL_WRAP3(bpf, int, cmd, union bpf_attr *, attr, unsigned int, size);
221COMPAT_SYSCALL_WRAP3(s390_pci_mmio_write, const unsigned long, mmio_addr, const void __user *, user_buffer, const size_t, length); 170COMPAT_SYSCALL_WRAP3(s390_pci_mmio_write, const unsigned long, mmio_addr, const void __user *, user_buffer, const size_t, length);
222COMPAT_SYSCALL_WRAP3(s390_pci_mmio_read, const unsigned long, mmio_addr, void __user *, user_buffer, const size_t, length); 171COMPAT_SYSCALL_WRAP3(s390_pci_mmio_read, const unsigned long, mmio_addr, void __user *, user_buffer, const size_t, length);
172COMPAT_SYSCALL_WRAP4(socketpair, int, family, int, type, int, protocol, int __user *, usockvec);
173COMPAT_SYSCALL_WRAP3(bind, int, fd, struct sockaddr __user *, umyaddr, int, addrlen);
174COMPAT_SYSCALL_WRAP3(connect, int, fd, struct sockaddr __user *, uservaddr, int, addrlen);
175COMPAT_SYSCALL_WRAP4(accept4, int, fd, struct sockaddr __user *, upeer_sockaddr, int __user *, upeer_addrlen, int, flags);
176COMPAT_SYSCALL_WRAP3(getsockname, int, fd, struct sockaddr __user *, usockaddr, int __user *, usockaddr_len);
177COMPAT_SYSCALL_WRAP3(getpeername, int, fd, struct sockaddr __user *, usockaddr, int __user *, usockaddr_len);
178COMPAT_SYSCALL_WRAP6(sendto, int, fd, void __user *, buff, size_t, len, unsigned int, flags, struct sockaddr __user *, addr, int, addr_len);
diff --git a/arch/s390/kernel/entry.S b/arch/s390/kernel/entry.S
index 247b7aae4c6d..09b039d7983d 100644
--- a/arch/s390/kernel/entry.S
+++ b/arch/s390/kernel/entry.S
@@ -1191,6 +1191,7 @@ cleanup_critical:
1191 clg %r9,BASED(.Lcleanup_save_fpu_fpc_end) 1191 clg %r9,BASED(.Lcleanup_save_fpu_fpc_end)
1192 jhe 1f 1192 jhe 1f
1193 lg %r2,__LC_CURRENT 1193 lg %r2,__LC_CURRENT
1194 aghi %r2,__TASK_thread
11940: # Store floating-point controls 11950: # Store floating-point controls
1195 stfpc __THREAD_FPU_fpc(%r2) 1196 stfpc __THREAD_FPU_fpc(%r2)
11961: # Load register save area and check if VX is active 11971: # Load register save area and check if VX is active
@@ -1252,6 +1253,7 @@ cleanup_critical:
1252 clg %r9,BASED(.Lcleanup_load_fpu_regs_vx_ctl) 1253 clg %r9,BASED(.Lcleanup_load_fpu_regs_vx_ctl)
1253 jhe 6f 1254 jhe 6f
1254 lg %r4,__LC_CURRENT 1255 lg %r4,__LC_CURRENT
1256 aghi %r4,__TASK_thread
1255 lfpc __THREAD_FPU_fpc(%r4) 1257 lfpc __THREAD_FPU_fpc(%r4)
1256 tm __THREAD_FPU_flags+3(%r4),FPU_USE_VX # VX-enabled task ? 1258 tm __THREAD_FPU_flags+3(%r4),FPU_USE_VX # VX-enabled task ?
1257 lg %r4,__THREAD_FPU_regs(%r4) # %r4 <- reg save area 1259 lg %r4,__THREAD_FPU_regs(%r4) # %r4 <- reg save area
diff --git a/arch/s390/kernel/perf_cpum_cf.c b/arch/s390/kernel/perf_cpum_cf.c
index 56fdad479115..a9563409c36e 100644
--- a/arch/s390/kernel/perf_cpum_cf.c
+++ b/arch/s390/kernel/perf_cpum_cf.c
@@ -157,10 +157,14 @@ static int validate_ctr_auth(const struct hw_perf_event *hwc)
157 157
158 cpuhw = &get_cpu_var(cpu_hw_events); 158 cpuhw = &get_cpu_var(cpu_hw_events);
159 159
160 /* check authorization for cpu counter sets */ 160 /* Check authorization for cpu counter sets.
161 * If the particular CPU counter set is not authorized,
162 * return with -ENOENT in order to fall back to other
163 * PMUs that might suffice the event request.
164 */
161 ctrs_state = cpumf_state_ctl[hwc->config_base]; 165 ctrs_state = cpumf_state_ctl[hwc->config_base];
162 if (!(ctrs_state & cpuhw->info.auth_ctl)) 166 if (!(ctrs_state & cpuhw->info.auth_ctl))
163 err = -EPERM; 167 err = -ENOENT;
164 168
165 put_cpu_var(cpu_hw_events); 169 put_cpu_var(cpu_hw_events);
166 return err; 170 return err;
@@ -536,7 +540,7 @@ static int cpumf_pmu_add(struct perf_event *event, int flags)
536 */ 540 */
537 if (!(cpuhw->flags & PERF_EVENT_TXN)) 541 if (!(cpuhw->flags & PERF_EVENT_TXN))
538 if (validate_ctr_auth(&event->hw)) 542 if (validate_ctr_auth(&event->hw))
539 return -EPERM; 543 return -ENOENT;
540 544
541 ctr_set_enable(&cpuhw->state, event->hw.config_base); 545 ctr_set_enable(&cpuhw->state, event->hw.config_base);
542 event->hw.state = PERF_HES_UPTODATE | PERF_HES_STOPPED; 546 event->hw.state = PERF_HES_UPTODATE | PERF_HES_STOPPED;
@@ -611,7 +615,7 @@ static int cpumf_pmu_commit_txn(struct pmu *pmu)
611 state = cpuhw->state & ~((1 << CPUMF_LCCTL_ENABLE_SHIFT) - 1); 615 state = cpuhw->state & ~((1 << CPUMF_LCCTL_ENABLE_SHIFT) - 1);
612 state >>= CPUMF_LCCTL_ENABLE_SHIFT; 616 state >>= CPUMF_LCCTL_ENABLE_SHIFT;
613 if ((state & cpuhw->info.auth_ctl) != state) 617 if ((state & cpuhw->info.auth_ctl) != state)
614 return -EPERM; 618 return -ENOENT;
615 619
616 cpuhw->flags &= ~PERF_EVENT_TXN; 620 cpuhw->flags &= ~PERF_EVENT_TXN;
617 perf_pmu_enable(pmu); 621 perf_pmu_enable(pmu);
diff --git a/arch/s390/kernel/swsusp.S b/arch/s390/kernel/swsusp.S
index ca6294645dd3..2d6b6e81f812 100644
--- a/arch/s390/kernel/swsusp.S
+++ b/arch/s390/kernel/swsusp.S
@@ -30,6 +30,9 @@ ENTRY(swsusp_arch_suspend)
30 aghi %r15,-STACK_FRAME_OVERHEAD 30 aghi %r15,-STACK_FRAME_OVERHEAD
31 stg %r1,__SF_BACKCHAIN(%r15) 31 stg %r1,__SF_BACKCHAIN(%r15)
32 32
33 /* Store FPU registers */
34 brasl %r14,save_fpu_regs
35
33 /* Deactivate DAT */ 36 /* Deactivate DAT */
34 stnsm __SF_EMPTY(%r15),0xfb 37 stnsm __SF_EMPTY(%r15),0xfb
35 38
@@ -47,23 +50,6 @@ ENTRY(swsusp_arch_suspend)
47 50
48 /* Store registers */ 51 /* Store registers */
49 mvc 0x318(4,%r1),__SF_EMPTY(%r15) /* move prefix to lowcore */ 52 mvc 0x318(4,%r1),__SF_EMPTY(%r15) /* move prefix to lowcore */
50 stfpc 0x31c(%r1) /* store fpu control */
51 std 0,0x200(%r1) /* store f0 */
52 std 1,0x208(%r1) /* store f1 */
53 std 2,0x210(%r1) /* store f2 */
54 std 3,0x218(%r1) /* store f3 */
55 std 4,0x220(%r1) /* store f4 */
56 std 5,0x228(%r1) /* store f5 */
57 std 6,0x230(%r1) /* store f6 */
58 std 7,0x238(%r1) /* store f7 */
59 std 8,0x240(%r1) /* store f8 */
60 std 9,0x248(%r1) /* store f9 */
61 std 10,0x250(%r1) /* store f10 */
62 std 11,0x258(%r1) /* store f11 */
63 std 12,0x260(%r1) /* store f12 */
64 std 13,0x268(%r1) /* store f13 */
65 std 14,0x270(%r1) /* store f14 */
66 std 15,0x278(%r1) /* store f15 */
67 stam %a0,%a15,0x340(%r1) /* store access registers */ 53 stam %a0,%a15,0x340(%r1) /* store access registers */
68 stctg %c0,%c15,0x380(%r1) /* store control registers */ 54 stctg %c0,%c15,0x380(%r1) /* store control registers */
69 stmg %r0,%r15,0x280(%r1) /* store general registers */ 55 stmg %r0,%r15,0x280(%r1) /* store general registers */
@@ -249,24 +235,6 @@ restore_registers:
249 lctlg %c0,%c15,0x380(%r13) /* load control registers */ 235 lctlg %c0,%c15,0x380(%r13) /* load control registers */
250 lam %a0,%a15,0x340(%r13) /* load access registers */ 236 lam %a0,%a15,0x340(%r13) /* load access registers */
251 237
252 lfpc 0x31c(%r13) /* load fpu control */
253 ld 0,0x200(%r13) /* load f0 */
254 ld 1,0x208(%r13) /* load f1 */
255 ld 2,0x210(%r13) /* load f2 */
256 ld 3,0x218(%r13) /* load f3 */
257 ld 4,0x220(%r13) /* load f4 */
258 ld 5,0x228(%r13) /* load f5 */
259 ld 6,0x230(%r13) /* load f6 */
260 ld 7,0x238(%r13) /* load f7 */
261 ld 8,0x240(%r13) /* load f8 */
262 ld 9,0x248(%r13) /* load f9 */
263 ld 10,0x250(%r13) /* load f10 */
264 ld 11,0x258(%r13) /* load f11 */
265 ld 12,0x260(%r13) /* load f12 */
266 ld 13,0x268(%r13) /* load f13 */
267 ld 14,0x270(%r13) /* load f14 */
268 ld 15,0x278(%r13) /* load f15 */
269
270 /* Load old stack */ 238 /* Load old stack */
271 lg %r15,0x2f8(%r13) 239 lg %r15,0x2f8(%r13)
272 240
diff --git a/arch/s390/kernel/syscalls.S b/arch/s390/kernel/syscalls.S
index f3f4a137aef6..8c56929c8d82 100644
--- a/arch/s390/kernel/syscalls.S
+++ b/arch/s390/kernel/syscalls.S
@@ -9,12 +9,12 @@
9#define NI_SYSCALL SYSCALL(sys_ni_syscall,sys_ni_syscall) 9#define NI_SYSCALL SYSCALL(sys_ni_syscall,sys_ni_syscall)
10 10
11NI_SYSCALL /* 0 */ 11NI_SYSCALL /* 0 */
12SYSCALL(sys_exit,compat_sys_exit) 12SYSCALL(sys_exit,sys_exit)
13SYSCALL(sys_fork,sys_fork) 13SYSCALL(sys_fork,sys_fork)
14SYSCALL(sys_read,compat_sys_s390_read) 14SYSCALL(sys_read,compat_sys_s390_read)
15SYSCALL(sys_write,compat_sys_s390_write) 15SYSCALL(sys_write,compat_sys_s390_write)
16SYSCALL(sys_open,compat_sys_open) /* 5 */ 16SYSCALL(sys_open,compat_sys_open) /* 5 */
17SYSCALL(sys_close,compat_sys_close) 17SYSCALL(sys_close,sys_close)
18SYSCALL(sys_restart_syscall,sys_restart_syscall) 18SYSCALL(sys_restart_syscall,sys_restart_syscall)
19SYSCALL(sys_creat,compat_sys_creat) 19SYSCALL(sys_creat,compat_sys_creat)
20SYSCALL(sys_link,compat_sys_link) 20SYSCALL(sys_link,compat_sys_link)
@@ -35,21 +35,21 @@ SYSCALL(sys_ni_syscall,compat_sys_s390_setuid16) /* old setuid16 syscall*/
35SYSCALL(sys_ni_syscall,compat_sys_s390_getuid16) /* old getuid16 syscall*/ 35SYSCALL(sys_ni_syscall,compat_sys_s390_getuid16) /* old getuid16 syscall*/
36SYSCALL(sys_ni_syscall,compat_sys_stime) /* 25 old stime syscall */ 36SYSCALL(sys_ni_syscall,compat_sys_stime) /* 25 old stime syscall */
37SYSCALL(sys_ptrace,compat_sys_ptrace) 37SYSCALL(sys_ptrace,compat_sys_ptrace)
38SYSCALL(sys_alarm,compat_sys_alarm) 38SYSCALL(sys_alarm,sys_alarm)
39NI_SYSCALL /* old fstat syscall */ 39NI_SYSCALL /* old fstat syscall */
40SYSCALL(sys_pause,sys_pause) 40SYSCALL(sys_pause,sys_pause)
41SYSCALL(sys_utime,compat_sys_utime) /* 30 */ 41SYSCALL(sys_utime,compat_sys_utime) /* 30 */
42NI_SYSCALL /* old stty syscall */ 42NI_SYSCALL /* old stty syscall */
43NI_SYSCALL /* old gtty syscall */ 43NI_SYSCALL /* old gtty syscall */
44SYSCALL(sys_access,compat_sys_access) 44SYSCALL(sys_access,compat_sys_access)
45SYSCALL(sys_nice,compat_sys_nice) 45SYSCALL(sys_nice,sys_nice)
46NI_SYSCALL /* 35 old ftime syscall */ 46NI_SYSCALL /* 35 old ftime syscall */
47SYSCALL(sys_sync,sys_sync) 47SYSCALL(sys_sync,sys_sync)
48SYSCALL(sys_kill,compat_sys_kill) 48SYSCALL(sys_kill,sys_kill)
49SYSCALL(sys_rename,compat_sys_rename) 49SYSCALL(sys_rename,compat_sys_rename)
50SYSCALL(sys_mkdir,compat_sys_mkdir) 50SYSCALL(sys_mkdir,compat_sys_mkdir)
51SYSCALL(sys_rmdir,compat_sys_rmdir) /* 40 */ 51SYSCALL(sys_rmdir,compat_sys_rmdir) /* 40 */
52SYSCALL(sys_dup,compat_sys_dup) 52SYSCALL(sys_dup,sys_dup)
53SYSCALL(sys_pipe,compat_sys_pipe) 53SYSCALL(sys_pipe,compat_sys_pipe)
54SYSCALL(sys_times,compat_sys_times) 54SYSCALL(sys_times,compat_sys_times)
55NI_SYSCALL /* old prof syscall */ 55NI_SYSCALL /* old prof syscall */
@@ -65,13 +65,13 @@ NI_SYSCALL /* old lock syscall */
65SYSCALL(sys_ioctl,compat_sys_ioctl) 65SYSCALL(sys_ioctl,compat_sys_ioctl)
66SYSCALL(sys_fcntl,compat_sys_fcntl) /* 55 */ 66SYSCALL(sys_fcntl,compat_sys_fcntl) /* 55 */
67NI_SYSCALL /* intel mpx syscall */ 67NI_SYSCALL /* intel mpx syscall */
68SYSCALL(sys_setpgid,compat_sys_setpgid) 68SYSCALL(sys_setpgid,sys_setpgid)
69NI_SYSCALL /* old ulimit syscall */ 69NI_SYSCALL /* old ulimit syscall */
70NI_SYSCALL /* old uname syscall */ 70NI_SYSCALL /* old uname syscall */
71SYSCALL(sys_umask,compat_sys_umask) /* 60 */ 71SYSCALL(sys_umask,sys_umask) /* 60 */
72SYSCALL(sys_chroot,compat_sys_chroot) 72SYSCALL(sys_chroot,compat_sys_chroot)
73SYSCALL(sys_ustat,compat_sys_ustat) 73SYSCALL(sys_ustat,compat_sys_ustat)
74SYSCALL(sys_dup2,compat_sys_dup2) 74SYSCALL(sys_dup2,sys_dup2)
75SYSCALL(sys_getppid,sys_getppid) 75SYSCALL(sys_getppid,sys_getppid)
76SYSCALL(sys_getpgrp,sys_getpgrp) /* 65 */ 76SYSCALL(sys_getpgrp,sys_getpgrp) /* 65 */
77SYSCALL(sys_setsid,sys_setsid) 77SYSCALL(sys_setsid,sys_setsid)
@@ -102,10 +102,10 @@ SYSCALL(sys_old_mmap,compat_sys_s390_old_mmap) /* 90 */
102SYSCALL(sys_munmap,compat_sys_munmap) 102SYSCALL(sys_munmap,compat_sys_munmap)
103SYSCALL(sys_truncate,compat_sys_truncate) 103SYSCALL(sys_truncate,compat_sys_truncate)
104SYSCALL(sys_ftruncate,compat_sys_ftruncate) 104SYSCALL(sys_ftruncate,compat_sys_ftruncate)
105SYSCALL(sys_fchmod,compat_sys_fchmod) 105SYSCALL(sys_fchmod,sys_fchmod)
106SYSCALL(sys_ni_syscall,compat_sys_s390_fchown16) /* 95 old fchown16 syscall*/ 106SYSCALL(sys_ni_syscall,compat_sys_s390_fchown16) /* 95 old fchown16 syscall*/
107SYSCALL(sys_getpriority,compat_sys_getpriority) 107SYSCALL(sys_getpriority,sys_getpriority)
108SYSCALL(sys_setpriority,compat_sys_setpriority) 108SYSCALL(sys_setpriority,sys_setpriority)
109NI_SYSCALL /* old profil syscall */ 109NI_SYSCALL /* old profil syscall */
110SYSCALL(sys_statfs,compat_sys_statfs) 110SYSCALL(sys_statfs,compat_sys_statfs)
111SYSCALL(sys_fstatfs,compat_sys_fstatfs) /* 100 */ 111SYSCALL(sys_fstatfs,compat_sys_fstatfs) /* 100 */
@@ -126,7 +126,7 @@ SYSCALL(sys_wait4,compat_sys_wait4)
126SYSCALL(sys_swapoff,compat_sys_swapoff) /* 115 */ 126SYSCALL(sys_swapoff,compat_sys_swapoff) /* 115 */
127SYSCALL(sys_sysinfo,compat_sys_sysinfo) 127SYSCALL(sys_sysinfo,compat_sys_sysinfo)
128SYSCALL(sys_s390_ipc,compat_sys_s390_ipc) 128SYSCALL(sys_s390_ipc,compat_sys_s390_ipc)
129SYSCALL(sys_fsync,compat_sys_fsync) 129SYSCALL(sys_fsync,sys_fsync)
130SYSCALL(sys_sigreturn,compat_sys_sigreturn) 130SYSCALL(sys_sigreturn,compat_sys_sigreturn)
131SYSCALL(sys_clone,compat_sys_clone) /* 120 */ 131SYSCALL(sys_clone,compat_sys_clone) /* 120 */
132SYSCALL(sys_setdomainname,compat_sys_setdomainname) 132SYSCALL(sys_setdomainname,compat_sys_setdomainname)
@@ -140,35 +140,35 @@ SYSCALL(sys_init_module,compat_sys_init_module)
140SYSCALL(sys_delete_module,compat_sys_delete_module) 140SYSCALL(sys_delete_module,compat_sys_delete_module)
141NI_SYSCALL /* 130: old get_kernel_syms */ 141NI_SYSCALL /* 130: old get_kernel_syms */
142SYSCALL(sys_quotactl,compat_sys_quotactl) 142SYSCALL(sys_quotactl,compat_sys_quotactl)
143SYSCALL(sys_getpgid,compat_sys_getpgid) 143SYSCALL(sys_getpgid,sys_getpgid)
144SYSCALL(sys_fchdir,compat_sys_fchdir) 144SYSCALL(sys_fchdir,sys_fchdir)
145SYSCALL(sys_bdflush,compat_sys_bdflush) 145SYSCALL(sys_bdflush,compat_sys_bdflush)
146SYSCALL(sys_sysfs,compat_sys_sysfs) /* 135 */ 146SYSCALL(sys_sysfs,compat_sys_sysfs) /* 135 */
147SYSCALL(sys_s390_personality,compat_sys_s390_personality) 147SYSCALL(sys_s390_personality,sys_s390_personality)
148NI_SYSCALL /* for afs_syscall */ 148NI_SYSCALL /* for afs_syscall */
149SYSCALL(sys_ni_syscall,compat_sys_s390_setfsuid16) /* old setfsuid16 syscall */ 149SYSCALL(sys_ni_syscall,compat_sys_s390_setfsuid16) /* old setfsuid16 syscall */
150SYSCALL(sys_ni_syscall,compat_sys_s390_setfsgid16) /* old setfsgid16 syscall */ 150SYSCALL(sys_ni_syscall,compat_sys_s390_setfsgid16) /* old setfsgid16 syscall */
151SYSCALL(sys_llseek,compat_sys_llseek) /* 140 */ 151SYSCALL(sys_llseek,compat_sys_llseek) /* 140 */
152SYSCALL(sys_getdents,compat_sys_getdents) 152SYSCALL(sys_getdents,compat_sys_getdents)
153SYSCALL(sys_select,compat_sys_select) 153SYSCALL(sys_select,compat_sys_select)
154SYSCALL(sys_flock,compat_sys_flock) 154SYSCALL(sys_flock,sys_flock)
155SYSCALL(sys_msync,compat_sys_msync) 155SYSCALL(sys_msync,compat_sys_msync)
156SYSCALL(sys_readv,compat_sys_readv) /* 145 */ 156SYSCALL(sys_readv,compat_sys_readv) /* 145 */
157SYSCALL(sys_writev,compat_sys_writev) 157SYSCALL(sys_writev,compat_sys_writev)
158SYSCALL(sys_getsid,compat_sys_getsid) 158SYSCALL(sys_getsid,sys_getsid)
159SYSCALL(sys_fdatasync,compat_sys_fdatasync) 159SYSCALL(sys_fdatasync,sys_fdatasync)
160SYSCALL(sys_sysctl,compat_sys_sysctl) 160SYSCALL(sys_sysctl,compat_sys_sysctl)
161SYSCALL(sys_mlock,compat_sys_mlock) /* 150 */ 161SYSCALL(sys_mlock,compat_sys_mlock) /* 150 */
162SYSCALL(sys_munlock,compat_sys_munlock) 162SYSCALL(sys_munlock,compat_sys_munlock)
163SYSCALL(sys_mlockall,compat_sys_mlockall) 163SYSCALL(sys_mlockall,sys_mlockall)
164SYSCALL(sys_munlockall,sys_munlockall) 164SYSCALL(sys_munlockall,sys_munlockall)
165SYSCALL(sys_sched_setparam,compat_sys_sched_setparam) 165SYSCALL(sys_sched_setparam,compat_sys_sched_setparam)
166SYSCALL(sys_sched_getparam,compat_sys_sched_getparam) /* 155 */ 166SYSCALL(sys_sched_getparam,compat_sys_sched_getparam) /* 155 */
167SYSCALL(sys_sched_setscheduler,compat_sys_sched_setscheduler) 167SYSCALL(sys_sched_setscheduler,compat_sys_sched_setscheduler)
168SYSCALL(sys_sched_getscheduler,compat_sys_sched_getscheduler) 168SYSCALL(sys_sched_getscheduler,sys_sched_getscheduler)
169SYSCALL(sys_sched_yield,sys_sched_yield) 169SYSCALL(sys_sched_yield,sys_sched_yield)
170SYSCALL(sys_sched_get_priority_max,compat_sys_sched_get_priority_max) 170SYSCALL(sys_sched_get_priority_max,sys_sched_get_priority_max)
171SYSCALL(sys_sched_get_priority_min,compat_sys_sched_get_priority_min) /* 160 */ 171SYSCALL(sys_sched_get_priority_min,sys_sched_get_priority_min) /* 160 */
172SYSCALL(sys_sched_rr_get_interval,compat_sys_sched_rr_get_interval) 172SYSCALL(sys_sched_rr_get_interval,compat_sys_sched_rr_get_interval)
173SYSCALL(sys_nanosleep,compat_sys_nanosleep) 173SYSCALL(sys_nanosleep,compat_sys_nanosleep)
174SYSCALL(sys_mremap,compat_sys_mremap) 174SYSCALL(sys_mremap,compat_sys_mremap)
@@ -211,20 +211,20 @@ SYSCALL(sys_getuid,sys_getuid)
211SYSCALL(sys_getgid,sys_getgid) /* 200 */ 211SYSCALL(sys_getgid,sys_getgid) /* 200 */
212SYSCALL(sys_geteuid,sys_geteuid) 212SYSCALL(sys_geteuid,sys_geteuid)
213SYSCALL(sys_getegid,sys_getegid) 213SYSCALL(sys_getegid,sys_getegid)
214SYSCALL(sys_setreuid,compat_sys_setreuid) 214SYSCALL(sys_setreuid,sys_setreuid)
215SYSCALL(sys_setregid,compat_sys_setregid) 215SYSCALL(sys_setregid,sys_setregid)
216SYSCALL(sys_getgroups,compat_sys_getgroups) /* 205 */ 216SYSCALL(sys_getgroups,compat_sys_getgroups) /* 205 */
217SYSCALL(sys_setgroups,compat_sys_setgroups) 217SYSCALL(sys_setgroups,compat_sys_setgroups)
218SYSCALL(sys_fchown,compat_sys_fchown) 218SYSCALL(sys_fchown,sys_fchown)
219SYSCALL(sys_setresuid,compat_sys_setresuid) 219SYSCALL(sys_setresuid,sys_setresuid)
220SYSCALL(sys_getresuid,compat_sys_getresuid) 220SYSCALL(sys_getresuid,compat_sys_getresuid)
221SYSCALL(sys_setresgid,compat_sys_setresgid) /* 210 */ 221SYSCALL(sys_setresgid,sys_setresgid) /* 210 */
222SYSCALL(sys_getresgid,compat_sys_getresgid) 222SYSCALL(sys_getresgid,compat_sys_getresgid)
223SYSCALL(sys_chown,compat_sys_chown) 223SYSCALL(sys_chown,compat_sys_chown)
224SYSCALL(sys_setuid,compat_sys_setuid) 224SYSCALL(sys_setuid,sys_setuid)
225SYSCALL(sys_setgid,compat_sys_setgid) 225SYSCALL(sys_setgid,sys_setgid)
226SYSCALL(sys_setfsuid,compat_sys_setfsuid) /* 215 */ 226SYSCALL(sys_setfsuid,sys_setfsuid) /* 215 */
227SYSCALL(sys_setfsgid,compat_sys_setfsgid) 227SYSCALL(sys_setfsgid,sys_setfsgid)
228SYSCALL(sys_pivot_root,compat_sys_pivot_root) 228SYSCALL(sys_pivot_root,compat_sys_pivot_root)
229SYSCALL(sys_mincore,compat_sys_mincore) 229SYSCALL(sys_mincore,compat_sys_mincore)
230SYSCALL(sys_madvise,compat_sys_madvise) 230SYSCALL(sys_madvise,compat_sys_madvise)
@@ -245,19 +245,19 @@ SYSCALL(sys_removexattr,compat_sys_removexattr)
245SYSCALL(sys_lremovexattr,compat_sys_lremovexattr) 245SYSCALL(sys_lremovexattr,compat_sys_lremovexattr)
246SYSCALL(sys_fremovexattr,compat_sys_fremovexattr) /* 235 */ 246SYSCALL(sys_fremovexattr,compat_sys_fremovexattr) /* 235 */
247SYSCALL(sys_gettid,sys_gettid) 247SYSCALL(sys_gettid,sys_gettid)
248SYSCALL(sys_tkill,compat_sys_tkill) 248SYSCALL(sys_tkill,sys_tkill)
249SYSCALL(sys_futex,compat_sys_futex) 249SYSCALL(sys_futex,compat_sys_futex)
250SYSCALL(sys_sched_setaffinity,compat_sys_sched_setaffinity) 250SYSCALL(sys_sched_setaffinity,compat_sys_sched_setaffinity)
251SYSCALL(sys_sched_getaffinity,compat_sys_sched_getaffinity) /* 240 */ 251SYSCALL(sys_sched_getaffinity,compat_sys_sched_getaffinity) /* 240 */
252SYSCALL(sys_tgkill,compat_sys_tgkill) 252SYSCALL(sys_tgkill,sys_tgkill)
253NI_SYSCALL /* reserved for TUX */ 253NI_SYSCALL /* reserved for TUX */
254SYSCALL(sys_io_setup,compat_sys_io_setup) 254SYSCALL(sys_io_setup,compat_sys_io_setup)
255SYSCALL(sys_io_destroy,compat_sys_io_destroy) 255SYSCALL(sys_io_destroy,compat_sys_io_destroy)
256SYSCALL(sys_io_getevents,compat_sys_io_getevents) /* 245 */ 256SYSCALL(sys_io_getevents,compat_sys_io_getevents) /* 245 */
257SYSCALL(sys_io_submit,compat_sys_io_submit) 257SYSCALL(sys_io_submit,compat_sys_io_submit)
258SYSCALL(sys_io_cancel,compat_sys_io_cancel) 258SYSCALL(sys_io_cancel,compat_sys_io_cancel)
259SYSCALL(sys_exit_group,compat_sys_exit_group) 259SYSCALL(sys_exit_group,sys_exit_group)
260SYSCALL(sys_epoll_create,compat_sys_epoll_create) 260SYSCALL(sys_epoll_create,sys_epoll_create)
261SYSCALL(sys_epoll_ctl,compat_sys_epoll_ctl) /* 250 */ 261SYSCALL(sys_epoll_ctl,compat_sys_epoll_ctl) /* 250 */
262SYSCALL(sys_epoll_wait,compat_sys_epoll_wait) 262SYSCALL(sys_epoll_wait,compat_sys_epoll_wait)
263SYSCALL(sys_set_tid_address,compat_sys_set_tid_address) 263SYSCALL(sys_set_tid_address,compat_sys_set_tid_address)
@@ -265,8 +265,8 @@ SYSCALL(sys_fadvise64_64,compat_sys_s390_fadvise64)
265SYSCALL(sys_timer_create,compat_sys_timer_create) 265SYSCALL(sys_timer_create,compat_sys_timer_create)
266SYSCALL(sys_timer_settime,compat_sys_timer_settime) /* 255 */ 266SYSCALL(sys_timer_settime,compat_sys_timer_settime) /* 255 */
267SYSCALL(sys_timer_gettime,compat_sys_timer_gettime) 267SYSCALL(sys_timer_gettime,compat_sys_timer_gettime)
268SYSCALL(sys_timer_getoverrun,compat_sys_timer_getoverrun) 268SYSCALL(sys_timer_getoverrun,sys_timer_getoverrun)
269SYSCALL(sys_timer_delete,compat_sys_timer_delete) 269SYSCALL(sys_timer_delete,sys_timer_delete)
270SYSCALL(sys_clock_settime,compat_sys_clock_settime) 270SYSCALL(sys_clock_settime,compat_sys_clock_settime)
271SYSCALL(sys_clock_gettime,compat_sys_clock_gettime) /* 260 */ 271SYSCALL(sys_clock_gettime,compat_sys_clock_gettime) /* 260 */
272SYSCALL(sys_clock_getres,compat_sys_clock_getres) 272SYSCALL(sys_clock_getres,compat_sys_clock_getres)
@@ -290,11 +290,11 @@ SYSCALL(sys_add_key,compat_sys_add_key)
290SYSCALL(sys_request_key,compat_sys_request_key) 290SYSCALL(sys_request_key,compat_sys_request_key)
291SYSCALL(sys_keyctl,compat_sys_keyctl) /* 280 */ 291SYSCALL(sys_keyctl,compat_sys_keyctl) /* 280 */
292SYSCALL(sys_waitid,compat_sys_waitid) 292SYSCALL(sys_waitid,compat_sys_waitid)
293SYSCALL(sys_ioprio_set,compat_sys_ioprio_set) 293SYSCALL(sys_ioprio_set,sys_ioprio_set)
294SYSCALL(sys_ioprio_get,compat_sys_ioprio_get) 294SYSCALL(sys_ioprio_get,sys_ioprio_get)
295SYSCALL(sys_inotify_init,sys_inotify_init) 295SYSCALL(sys_inotify_init,sys_inotify_init)
296SYSCALL(sys_inotify_add_watch,compat_sys_inotify_add_watch) /* 285 */ 296SYSCALL(sys_inotify_add_watch,compat_sys_inotify_add_watch) /* 285 */
297SYSCALL(sys_inotify_rm_watch,compat_sys_inotify_rm_watch) 297SYSCALL(sys_inotify_rm_watch,sys_inotify_rm_watch)
298SYSCALL(sys_migrate_pages,compat_sys_migrate_pages) 298SYSCALL(sys_migrate_pages,compat_sys_migrate_pages)
299SYSCALL(sys_openat,compat_sys_openat) 299SYSCALL(sys_openat,compat_sys_openat)
300SYSCALL(sys_mkdirat,compat_sys_mkdirat) 300SYSCALL(sys_mkdirat,compat_sys_mkdirat)
@@ -326,31 +326,31 @@ SYSCALL(sys_fallocate,compat_sys_s390_fallocate)
326SYSCALL(sys_utimensat,compat_sys_utimensat) /* 315 */ 326SYSCALL(sys_utimensat,compat_sys_utimensat) /* 315 */
327SYSCALL(sys_signalfd,compat_sys_signalfd) 327SYSCALL(sys_signalfd,compat_sys_signalfd)
328NI_SYSCALL /* 317 old sys_timer_fd */ 328NI_SYSCALL /* 317 old sys_timer_fd */
329SYSCALL(sys_eventfd,compat_sys_eventfd) 329SYSCALL(sys_eventfd,sys_eventfd)
330SYSCALL(sys_timerfd_create,compat_sys_timerfd_create) 330SYSCALL(sys_timerfd_create,sys_timerfd_create)
331SYSCALL(sys_timerfd_settime,compat_sys_timerfd_settime) /* 320 */ 331SYSCALL(sys_timerfd_settime,compat_sys_timerfd_settime) /* 320 */
332SYSCALL(sys_timerfd_gettime,compat_sys_timerfd_gettime) 332SYSCALL(sys_timerfd_gettime,compat_sys_timerfd_gettime)
333SYSCALL(sys_signalfd4,compat_sys_signalfd4) 333SYSCALL(sys_signalfd4,compat_sys_signalfd4)
334SYSCALL(sys_eventfd2,compat_sys_eventfd2) 334SYSCALL(sys_eventfd2,sys_eventfd2)
335SYSCALL(sys_inotify_init1,compat_sys_inotify_init1) 335SYSCALL(sys_inotify_init1,sys_inotify_init1)
336SYSCALL(sys_pipe2,compat_sys_pipe2) /* 325 */ 336SYSCALL(sys_pipe2,compat_sys_pipe2) /* 325 */
337SYSCALL(sys_dup3,compat_sys_dup3) 337SYSCALL(sys_dup3,sys_dup3)
338SYSCALL(sys_epoll_create1,compat_sys_epoll_create1) 338SYSCALL(sys_epoll_create1,sys_epoll_create1)
339SYSCALL(sys_preadv,compat_sys_preadv) 339SYSCALL(sys_preadv,compat_sys_preadv)
340SYSCALL(sys_pwritev,compat_sys_pwritev) 340SYSCALL(sys_pwritev,compat_sys_pwritev)
341SYSCALL(sys_rt_tgsigqueueinfo,compat_sys_rt_tgsigqueueinfo) /* 330 */ 341SYSCALL(sys_rt_tgsigqueueinfo,compat_sys_rt_tgsigqueueinfo) /* 330 */
342SYSCALL(sys_perf_event_open,compat_sys_perf_event_open) 342SYSCALL(sys_perf_event_open,compat_sys_perf_event_open)
343SYSCALL(sys_fanotify_init,compat_sys_fanotify_init) 343SYSCALL(sys_fanotify_init,sys_fanotify_init)
344SYSCALL(sys_fanotify_mark,compat_sys_fanotify_mark) 344SYSCALL(sys_fanotify_mark,compat_sys_fanotify_mark)
345SYSCALL(sys_prlimit64,compat_sys_prlimit64) 345SYSCALL(sys_prlimit64,compat_sys_prlimit64)
346SYSCALL(sys_name_to_handle_at,compat_sys_name_to_handle_at) /* 335 */ 346SYSCALL(sys_name_to_handle_at,compat_sys_name_to_handle_at) /* 335 */
347SYSCALL(sys_open_by_handle_at,compat_sys_open_by_handle_at) 347SYSCALL(sys_open_by_handle_at,compat_sys_open_by_handle_at)
348SYSCALL(sys_clock_adjtime,compat_sys_clock_adjtime) 348SYSCALL(sys_clock_adjtime,compat_sys_clock_adjtime)
349SYSCALL(sys_syncfs,compat_sys_syncfs) 349SYSCALL(sys_syncfs,sys_syncfs)
350SYSCALL(sys_setns,compat_sys_setns) 350SYSCALL(sys_setns,sys_setns)
351SYSCALL(sys_process_vm_readv,compat_sys_process_vm_readv) /* 340 */ 351SYSCALL(sys_process_vm_readv,compat_sys_process_vm_readv) /* 340 */
352SYSCALL(sys_process_vm_writev,compat_sys_process_vm_writev) 352SYSCALL(sys_process_vm_writev,compat_sys_process_vm_writev)
353SYSCALL(sys_s390_runtime_instr,compat_sys_s390_runtime_instr) 353SYSCALL(sys_s390_runtime_instr,sys_s390_runtime_instr)
354SYSCALL(sys_kcmp,compat_sys_kcmp) 354SYSCALL(sys_kcmp,compat_sys_kcmp)
355SYSCALL(sys_finit_module,compat_sys_finit_module) 355SYSCALL(sys_finit_module,compat_sys_finit_module)
356SYSCALL(sys_sched_setattr,compat_sys_sched_setattr) /* 345 */ 356SYSCALL(sys_sched_setattr,compat_sys_sched_setattr) /* 345 */
@@ -363,3 +363,22 @@ SYSCALL(sys_bpf,compat_sys_bpf)
363SYSCALL(sys_s390_pci_mmio_write,compat_sys_s390_pci_mmio_write) 363SYSCALL(sys_s390_pci_mmio_write,compat_sys_s390_pci_mmio_write)
364SYSCALL(sys_s390_pci_mmio_read,compat_sys_s390_pci_mmio_read) 364SYSCALL(sys_s390_pci_mmio_read,compat_sys_s390_pci_mmio_read)
365SYSCALL(sys_execveat,compat_sys_execveat) 365SYSCALL(sys_execveat,compat_sys_execveat)
366SYSCALL(sys_userfaultfd,sys_userfaultfd) /* 355 */
367SYSCALL(sys_membarrier,sys_membarrier)
368SYSCALL(sys_recvmmsg,compat_sys_recvmmsg)
369SYSCALL(sys_sendmmsg,compat_sys_sendmmsg)
370SYSCALL(sys_socket,sys_socket)
371SYSCALL(sys_socketpair,compat_sys_socketpair) /* 360 */
372SYSCALL(sys_bind,sys_bind)
373SYSCALL(sys_connect,sys_connect)
374SYSCALL(sys_listen,sys_listen)
375SYSCALL(sys_accept4,sys_accept4)
376SYSCALL(sys_getsockopt,compat_sys_getsockopt) /* 365 */
377SYSCALL(sys_setsockopt,compat_sys_setsockopt)
378SYSCALL(sys_getsockname,compat_sys_getsockname)
379SYSCALL(sys_getpeername,compat_sys_getpeername)
380SYSCALL(sys_sendto,compat_sys_sendto)
381SYSCALL(sys_sendmsg,compat_sys_sendmsg) /* 370 */
382SYSCALL(sys_recvfrom,compat_sys_recvfrom)
383SYSCALL(sys_recvmsg,compat_sys_recvmsg)
384SYSCALL(sys_shutdown,sys_shutdown)
diff --git a/arch/s390/kernel/vtime.c b/arch/s390/kernel/vtime.c
index b9ce650e9e99..c8653435c70d 100644
--- a/arch/s390/kernel/vtime.c
+++ b/arch/s390/kernel/vtime.c
@@ -89,17 +89,21 @@ static int do_account_vtime(struct task_struct *tsk, int hardirq_offset)
89 if (smp_cpu_mtid && 89 if (smp_cpu_mtid &&
90 time_after64(jiffies_64, __this_cpu_read(mt_scaling_jiffies))) { 90 time_after64(jiffies_64, __this_cpu_read(mt_scaling_jiffies))) {
91 u64 cycles_new[32], *cycles_old; 91 u64 cycles_new[32], *cycles_old;
92 u64 delta, mult, div; 92 u64 delta, fac, mult, div;
93 93
94 cycles_old = this_cpu_ptr(mt_cycles); 94 cycles_old = this_cpu_ptr(mt_cycles);
95 if (stcctm5(smp_cpu_mtid + 1, cycles_new) < 2) { 95 if (stcctm5(smp_cpu_mtid + 1, cycles_new) < 2) {
96 fac = 1;
96 mult = div = 0; 97 mult = div = 0;
97 for (i = 0; i <= smp_cpu_mtid; i++) { 98 for (i = 0; i <= smp_cpu_mtid; i++) {
98 delta = cycles_new[i] - cycles_old[i]; 99 delta = cycles_new[i] - cycles_old[i];
99 mult += delta; 100 div += delta;
100 div += (i + 1) * delta; 101 mult *= i + 1;
102 mult += delta * fac;
103 fac *= i + 1;
101 } 104 }
102 if (mult > 0) { 105 div *= fac;
106 if (div > 0) {
103 /* Update scaling factor */ 107 /* Update scaling factor */
104 __this_cpu_write(mt_scaling_mult, mult); 108 __this_cpu_write(mt_scaling_mult, mult);
105 __this_cpu_write(mt_scaling_div, div); 109 __this_cpu_write(mt_scaling_div, div);
diff --git a/arch/x86/include/asm/efi.h b/arch/x86/include/asm/efi.h
index 155162ea0e00..ab5f1d447ef9 100644
--- a/arch/x86/include/asm/efi.h
+++ b/arch/x86/include/asm/efi.h
@@ -86,6 +86,16 @@ extern u64 asmlinkage efi_call(void *fp, ...);
86extern void __iomem *__init efi_ioremap(unsigned long addr, unsigned long size, 86extern void __iomem *__init efi_ioremap(unsigned long addr, unsigned long size,
87 u32 type, u64 attribute); 87 u32 type, u64 attribute);
88 88
89/*
90 * CONFIG_KASAN may redefine memset to __memset. __memset function is present
91 * only in kernel binary. Since the EFI stub linked into a separate binary it
92 * doesn't have __memset(). So we should use standard memset from
93 * arch/x86/boot/compressed/string.c. The same applies to memcpy and memmove.
94 */
95#undef memcpy
96#undef memset
97#undef memmove
98
89#endif /* CONFIG_X86_32 */ 99#endif /* CONFIG_X86_32 */
90 100
91extern struct efi_scratch efi_scratch; 101extern struct efi_scratch efi_scratch;
diff --git a/arch/x86/include/asm/kvm_host.h b/arch/x86/include/asm/kvm_host.h
index 349f80a82b82..2beee0382088 100644
--- a/arch/x86/include/asm/kvm_host.h
+++ b/arch/x86/include/asm/kvm_host.h
@@ -40,6 +40,7 @@
40 40
41#define KVM_PIO_PAGE_OFFSET 1 41#define KVM_PIO_PAGE_OFFSET 1
42#define KVM_COALESCED_MMIO_PAGE_OFFSET 2 42#define KVM_COALESCED_MMIO_PAGE_OFFSET 2
43#define KVM_HALT_POLL_NS_DEFAULT 500000
43 44
44#define KVM_IRQCHIP_NUM_PINS KVM_IOAPIC_NUM_PINS 45#define KVM_IRQCHIP_NUM_PINS KVM_IOAPIC_NUM_PINS
45 46
diff --git a/arch/x86/include/asm/msr-index.h b/arch/x86/include/asm/msr-index.h
index c1c0a1c14344..b98b471a3b7e 100644
--- a/arch/x86/include/asm/msr-index.h
+++ b/arch/x86/include/asm/msr-index.h
@@ -331,6 +331,7 @@
331/* C1E active bits in int pending message */ 331/* C1E active bits in int pending message */
332#define K8_INTP_C1E_ACTIVE_MASK 0x18000000 332#define K8_INTP_C1E_ACTIVE_MASK 0x18000000
333#define MSR_K8_TSEG_ADDR 0xc0010112 333#define MSR_K8_TSEG_ADDR 0xc0010112
334#define MSR_K8_TSEG_MASK 0xc0010113
334#define K8_MTRRFIXRANGE_DRAM_ENABLE 0x00040000 /* MtrrFixDramEn bit */ 335#define K8_MTRRFIXRANGE_DRAM_ENABLE 0x00040000 /* MtrrFixDramEn bit */
335#define K8_MTRRFIXRANGE_DRAM_MODIFY 0x00080000 /* MtrrFixDramModEn bit */ 336#define K8_MTRRFIXRANGE_DRAM_MODIFY 0x00080000 /* MtrrFixDramModEn bit */
336#define K8_MTRR_RDMEM_WRMEM_MASK 0x18181818 /* Mask: RdMem|WrMem */ 337#define K8_MTRR_RDMEM_WRMEM_MASK 0x18181818 /* Mask: RdMem|WrMem */
diff --git a/arch/x86/kvm/mmu.c b/arch/x86/kvm/mmu.c
index 69088a1ba509..ff606f507913 100644
--- a/arch/x86/kvm/mmu.c
+++ b/arch/x86/kvm/mmu.c
@@ -3322,7 +3322,7 @@ walk_shadow_page_get_mmio_spte(struct kvm_vcpu *vcpu, u64 addr, u64 *sptep)
3322 break; 3322 break;
3323 3323
3324 reserved |= is_shadow_zero_bits_set(&vcpu->arch.mmu, spte, 3324 reserved |= is_shadow_zero_bits_set(&vcpu->arch.mmu, spte,
3325 leaf); 3325 iterator.level);
3326 } 3326 }
3327 3327
3328 walk_shadow_page_lockless_end(vcpu); 3328 walk_shadow_page_lockless_end(vcpu);
@@ -3614,7 +3614,7 @@ static void
3614__reset_rsvds_bits_mask(struct kvm_vcpu *vcpu, 3614__reset_rsvds_bits_mask(struct kvm_vcpu *vcpu,
3615 struct rsvd_bits_validate *rsvd_check, 3615 struct rsvd_bits_validate *rsvd_check,
3616 int maxphyaddr, int level, bool nx, bool gbpages, 3616 int maxphyaddr, int level, bool nx, bool gbpages,
3617 bool pse) 3617 bool pse, bool amd)
3618{ 3618{
3619 u64 exb_bit_rsvd = 0; 3619 u64 exb_bit_rsvd = 0;
3620 u64 gbpages_bit_rsvd = 0; 3620 u64 gbpages_bit_rsvd = 0;
@@ -3631,7 +3631,7 @@ __reset_rsvds_bits_mask(struct kvm_vcpu *vcpu,
3631 * Non-leaf PML4Es and PDPEs reserve bit 8 (which would be the G bit for 3631 * Non-leaf PML4Es and PDPEs reserve bit 8 (which would be the G bit for
3632 * leaf entries) on AMD CPUs only. 3632 * leaf entries) on AMD CPUs only.
3633 */ 3633 */
3634 if (guest_cpuid_is_amd(vcpu)) 3634 if (amd)
3635 nonleaf_bit8_rsvd = rsvd_bits(8, 8); 3635 nonleaf_bit8_rsvd = rsvd_bits(8, 8);
3636 3636
3637 switch (level) { 3637 switch (level) {
@@ -3699,7 +3699,7 @@ static void reset_rsvds_bits_mask(struct kvm_vcpu *vcpu,
3699 __reset_rsvds_bits_mask(vcpu, &context->guest_rsvd_check, 3699 __reset_rsvds_bits_mask(vcpu, &context->guest_rsvd_check,
3700 cpuid_maxphyaddr(vcpu), context->root_level, 3700 cpuid_maxphyaddr(vcpu), context->root_level,
3701 context->nx, guest_cpuid_has_gbpages(vcpu), 3701 context->nx, guest_cpuid_has_gbpages(vcpu),
3702 is_pse(vcpu)); 3702 is_pse(vcpu), guest_cpuid_is_amd(vcpu));
3703} 3703}
3704 3704
3705static void 3705static void
@@ -3749,13 +3749,24 @@ static void reset_rsvds_bits_mask_ept(struct kvm_vcpu *vcpu,
3749void 3749void
3750reset_shadow_zero_bits_mask(struct kvm_vcpu *vcpu, struct kvm_mmu *context) 3750reset_shadow_zero_bits_mask(struct kvm_vcpu *vcpu, struct kvm_mmu *context)
3751{ 3751{
3752 /*
3753 * Passing "true" to the last argument is okay; it adds a check
3754 * on bit 8 of the SPTEs which KVM doesn't use anyway.
3755 */
3752 __reset_rsvds_bits_mask(vcpu, &context->shadow_zero_check, 3756 __reset_rsvds_bits_mask(vcpu, &context->shadow_zero_check,
3753 boot_cpu_data.x86_phys_bits, 3757 boot_cpu_data.x86_phys_bits,
3754 context->shadow_root_level, context->nx, 3758 context->shadow_root_level, context->nx,
3755 guest_cpuid_has_gbpages(vcpu), is_pse(vcpu)); 3759 guest_cpuid_has_gbpages(vcpu), is_pse(vcpu),
3760 true);
3756} 3761}
3757EXPORT_SYMBOL_GPL(reset_shadow_zero_bits_mask); 3762EXPORT_SYMBOL_GPL(reset_shadow_zero_bits_mask);
3758 3763
3764static inline bool boot_cpu_is_amd(void)
3765{
3766 WARN_ON_ONCE(!tdp_enabled);
3767 return shadow_x_mask == 0;
3768}
3769
3759/* 3770/*
3760 * the direct page table on host, use as much mmu features as 3771 * the direct page table on host, use as much mmu features as
3761 * possible, however, kvm currently does not do execution-protection. 3772 * possible, however, kvm currently does not do execution-protection.
@@ -3764,11 +3775,11 @@ static void
3764reset_tdp_shadow_zero_bits_mask(struct kvm_vcpu *vcpu, 3775reset_tdp_shadow_zero_bits_mask(struct kvm_vcpu *vcpu,
3765 struct kvm_mmu *context) 3776 struct kvm_mmu *context)
3766{ 3777{
3767 if (guest_cpuid_is_amd(vcpu)) 3778 if (boot_cpu_is_amd())
3768 __reset_rsvds_bits_mask(vcpu, &context->shadow_zero_check, 3779 __reset_rsvds_bits_mask(vcpu, &context->shadow_zero_check,
3769 boot_cpu_data.x86_phys_bits, 3780 boot_cpu_data.x86_phys_bits,
3770 context->shadow_root_level, false, 3781 context->shadow_root_level, false,
3771 cpu_has_gbpages, true); 3782 cpu_has_gbpages, true, true);
3772 else 3783 else
3773 __reset_rsvds_bits_mask_ept(&context->shadow_zero_check, 3784 __reset_rsvds_bits_mask_ept(&context->shadow_zero_check,
3774 boot_cpu_data.x86_phys_bits, 3785 boot_cpu_data.x86_phys_bits,
diff --git a/arch/x86/kvm/svm.c b/arch/x86/kvm/svm.c
index fdb8cb63a6c0..94b7d15db3fc 100644
--- a/arch/x86/kvm/svm.c
+++ b/arch/x86/kvm/svm.c
@@ -202,6 +202,7 @@ module_param(npt, int, S_IRUGO);
202static int nested = true; 202static int nested = true;
203module_param(nested, int, S_IRUGO); 203module_param(nested, int, S_IRUGO);
204 204
205static void svm_set_cr0(struct kvm_vcpu *vcpu, unsigned long cr0);
205static void svm_flush_tlb(struct kvm_vcpu *vcpu); 206static void svm_flush_tlb(struct kvm_vcpu *vcpu);
206static void svm_complete_interrupts(struct vcpu_svm *svm); 207static void svm_complete_interrupts(struct vcpu_svm *svm);
207 208
@@ -1263,7 +1264,8 @@ static void init_vmcb(struct vcpu_svm *svm, bool init_event)
1263 * svm_set_cr0() sets PG and WP and clears NW and CD on save->cr0. 1264 * svm_set_cr0() sets PG and WP and clears NW and CD on save->cr0.
1264 * It also updates the guest-visible cr0 value. 1265 * It also updates the guest-visible cr0 value.
1265 */ 1266 */
1266 (void)kvm_set_cr0(&svm->vcpu, X86_CR0_NW | X86_CR0_CD | X86_CR0_ET); 1267 svm_set_cr0(&svm->vcpu, X86_CR0_NW | X86_CR0_CD | X86_CR0_ET);
1268 kvm_mmu_reset_context(&svm->vcpu);
1267 1269
1268 save->cr4 = X86_CR4_PAE; 1270 save->cr4 = X86_CR4_PAE;
1269 /* rdx = ?? */ 1271 /* rdx = ?? */
diff --git a/arch/x86/kvm/x86.c b/arch/x86/kvm/x86.c
index 6bbb0dfb99d0..991466bf8dee 100644
--- a/arch/x86/kvm/x86.c
+++ b/arch/x86/kvm/x86.c
@@ -2190,6 +2190,8 @@ int kvm_get_msr_common(struct kvm_vcpu *vcpu, struct msr_data *msr_info)
2190 case MSR_IA32_LASTINTFROMIP: 2190 case MSR_IA32_LASTINTFROMIP:
2191 case MSR_IA32_LASTINTTOIP: 2191 case MSR_IA32_LASTINTTOIP:
2192 case MSR_K8_SYSCFG: 2192 case MSR_K8_SYSCFG:
2193 case MSR_K8_TSEG_ADDR:
2194 case MSR_K8_TSEG_MASK:
2193 case MSR_K7_HWCR: 2195 case MSR_K7_HWCR:
2194 case MSR_VM_HSAVE_PA: 2196 case MSR_VM_HSAVE_PA:
2195 case MSR_K8_INT_PENDING_MSG: 2197 case MSR_K8_INT_PENDING_MSG:
diff --git a/arch/x86/pci/common.c b/arch/x86/pci/common.c
index 09d3afc0a181..dc78a4a9a466 100644
--- a/arch/x86/pci/common.c
+++ b/arch/x86/pci/common.c
@@ -166,6 +166,7 @@ void pcibios_fixup_bus(struct pci_bus *b)
166{ 166{
167 struct pci_dev *dev; 167 struct pci_dev *dev;
168 168
169 pci_read_bridge_bases(b);
169 list_for_each_entry(dev, &b->devices, bus_list) 170 list_for_each_entry(dev, &b->devices, bus_list)
170 pcibios_fixup_device_resources(dev); 171 pcibios_fixup_device_resources(dev);
171} 172}
diff --git a/arch/xtensa/kernel/pci.c b/arch/xtensa/kernel/pci.c
index d27b4dcf221f..b848cc3dc913 100644
--- a/arch/xtensa/kernel/pci.c
+++ b/arch/xtensa/kernel/pci.c
@@ -210,6 +210,10 @@ subsys_initcall(pcibios_init);
210 210
211void pcibios_fixup_bus(struct pci_bus *bus) 211void pcibios_fixup_bus(struct pci_bus *bus)
212{ 212{
213 if (bus->parent) {
214 /* This is a subordinate bridge */
215 pci_read_bridge_bases(bus);
216 }
213} 217}
214 218
215void pcibios_set_master(struct pci_dev *dev) 219void pcibios_set_master(struct pci_dev *dev)