diff options
author | Ingo Molnar <mingo@kernel.org> | 2015-09-30 03:29:27 -0400 |
---|---|---|
committer | Ingo Molnar <mingo@kernel.org> | 2015-09-30 03:29:27 -0400 |
commit | ccf79c238f1a06a801b4c4449b9bc8a42be2c7bc (patch) | |
tree | e9b0f1a4c2f324c6fb107e276b09894ae480baa6 /arch | |
parent | 1e034743e918d195d339af340ae933727c072bce (diff) | |
parent | 9ffecb10283508260936b96022d4ee43a7798b4c (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')
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 | ||
243 | void pcibios_fixup_bus(struct pci_bus *bus) | 243 | void 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 | |||
240 | CONFIG_PINCTRL_SINGLE=y | 240 | CONFIG_PINCTRL_SINGLE=y |
241 | CONFIG_DEBUG_GPIO=y | 241 | CONFIG_DEBUG_GPIO=y |
242 | CONFIG_GPIO_SYSFS=y | 242 | CONFIG_GPIO_SYSFS=y |
243 | CONFIG_GPIO_PCF857X=m | 243 | CONFIG_GPIO_PCA953X=m |
244 | CONFIG_GPIO_PCF857X=y | ||
244 | CONFIG_GPIO_TWL4030=y | 245 | CONFIG_GPIO_TWL4030=y |
245 | CONFIG_GPIO_PALMAS=y | 246 | CONFIG_GPIO_PALMAS=y |
246 | CONFIG_W1=m | 247 | CONFIG_W1=m |
@@ -350,6 +351,8 @@ CONFIG_USB_MUSB_HDRC=m | |||
350 | CONFIG_USB_MUSB_OMAP2PLUS=m | 351 | CONFIG_USB_MUSB_OMAP2PLUS=m |
351 | CONFIG_USB_MUSB_AM35X=m | 352 | CONFIG_USB_MUSB_AM35X=m |
352 | CONFIG_USB_MUSB_DSPS=m | 353 | CONFIG_USB_MUSB_DSPS=m |
354 | CONFIG_USB_INVENTRA_DMA=y | ||
355 | CONFIG_USB_TI_CPPI41_DMA=y | ||
353 | CONFIG_USB_DWC3=m | 356 | CONFIG_USB_DWC3=m |
354 | CONFIG_USB_TEST=m | 357 | CONFIG_USB_TEST=m |
355 | CONFIG_AM335X_PHY_USB=y | 358 | CONFIG_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 | ||
52 | config SOC_AM33XX | 53 | config 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 | ||
78 | config ARCH_OMAP2PLUS | 82 | config 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 | |||
30 | static const struct of_device_id omap_dt_match_table[] __initconst = { | 23 | static 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) | |||
676 | void __init am43xx_init_late(void) | 676 | void __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)) | ||
107 | extern u16 pm44xx_errata; | 108 | extern 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 | ||
474 | void omap2xxx_check_revision(void); | 476 | void 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 | |||
50 | static void __iomem *sram; | 57 | static void __iomem *sram; |
51 | static unsigned long wakeup_src; | 58 | static 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 | ||
368 | void __init pxa3xx_map_io(void) | 380 | void __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 | }; |
113 | MODULE_DEVICE_TABLE(of, pxa_ssp_of_ids); | 112 | MODULE_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 | ||
864 | void pcibios_fixup_bus(struct pci_bus *bus) | 864 | void 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 | ||
312 | void pcibios_fixup_bus(struct pci_bus *bus) | 312 | void 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 | ||
316 | EXPORT_SYMBOL(PCIBIOS_MIN_IO); | 322 | EXPORT_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) | |||
369 | COMPAT_SYS(execveat) | 369 | COMPAT_SYS(execveat) |
370 | PPC64ONLY(switch_endian) | 370 | PPC64ONLY(switch_endian) |
371 | SYSCALL_SPU(userfaultfd) | 371 | SYSCALL_SPU(userfaultfd) |
372 | SYSCALL_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 | ||
1033 | void pcibios_fixup_bus(struct pci_bus *bus) | 1033 | void 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 |
2 | CONFIG_NO_HZ=y | 2 | CONFIG_NO_HZ=y |
3 | CONFIG_HIGH_RES_TIMERS=y | 3 | CONFIG_HIGH_RES_TIMERS=y |
4 | CONFIG_RCU_FAST_NO_HZ=y | ||
5 | CONFIG_BLK_DEV_INITRD=y | 4 | CONFIG_BLK_DEV_INITRD=y |
6 | CONFIG_CC_OPTIMIZE_FOR_SIZE=y | 5 | CONFIG_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 |
57 | CONFIG_MEMSTICK=y | ||
58 | CONFIG_MEMSTICK_DEBUG=y | ||
59 | CONFIG_MEMSTICK_UNSAFE_RESUME=y | ||
60 | CONFIG_MSPRO_BLOCK=y | ||
61 | # CONFIG_IOMMU_SUPPORT is not set | 56 | # CONFIG_IOMMU_SUPPORT is not set |
62 | CONFIG_EXT2_FS=y | 57 | CONFIG_EXT2_FS=y |
63 | CONFIG_EXT3_FS=y | 58 | CONFIG_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 | ||
51 | static 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 | |||
58 | static 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 | |||
51 | int copy_siginfo_to_user32(compat_siginfo_t __user *to, const siginfo_t *from) | 64 | int 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, | |||
438 | static int setup_rt_frame32(struct ksignal *ksig, sigset_t *set, | 455 | static 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__)); \ | 55 | asmlinkage long sys##name(__MAP(x,__SC_DECL,__VA_ARGS__)); \ |
56 | asmlinkage long compat_sys##name(__MAP(x,__SC_COMPAT_TYPE,__VA_ARGS__));\ | 56 | asmlinkage 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__)) \ | 57 | asmlinkage 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 | ||
62 | COMPAT_SYSCALL_WRAP1(exit, int, error_code); | ||
63 | COMPAT_SYSCALL_WRAP1(close, unsigned int, fd); | ||
64 | COMPAT_SYSCALL_WRAP2(creat, const char __user *, pathname, umode_t, mode); | 62 | COMPAT_SYSCALL_WRAP2(creat, const char __user *, pathname, umode_t, mode); |
65 | COMPAT_SYSCALL_WRAP2(link, const char __user *, oldname, const char __user *, newname); | 63 | COMPAT_SYSCALL_WRAP2(link, const char __user *, oldname, const char __user *, newname); |
66 | COMPAT_SYSCALL_WRAP1(unlink, const char __user *, pathname); | 64 | COMPAT_SYSCALL_WRAP1(unlink, const char __user *, pathname); |
@@ -68,23 +66,16 @@ COMPAT_SYSCALL_WRAP1(chdir, const char __user *, filename); | |||
68 | COMPAT_SYSCALL_WRAP3(mknod, const char __user *, filename, umode_t, mode, unsigned, dev); | 66 | COMPAT_SYSCALL_WRAP3(mknod, const char __user *, filename, umode_t, mode, unsigned, dev); |
69 | COMPAT_SYSCALL_WRAP2(chmod, const char __user *, filename, umode_t, mode); | 67 | COMPAT_SYSCALL_WRAP2(chmod, const char __user *, filename, umode_t, mode); |
70 | COMPAT_SYSCALL_WRAP1(oldumount, char __user *, name); | 68 | COMPAT_SYSCALL_WRAP1(oldumount, char __user *, name); |
71 | COMPAT_SYSCALL_WRAP1(alarm, unsigned int, seconds); | ||
72 | COMPAT_SYSCALL_WRAP2(access, const char __user *, filename, int, mode); | 69 | COMPAT_SYSCALL_WRAP2(access, const char __user *, filename, int, mode); |
73 | COMPAT_SYSCALL_WRAP1(nice, int, increment); | ||
74 | COMPAT_SYSCALL_WRAP2(kill, int, pid, int, sig); | ||
75 | COMPAT_SYSCALL_WRAP2(rename, const char __user *, oldname, const char __user *, newname); | 70 | COMPAT_SYSCALL_WRAP2(rename, const char __user *, oldname, const char __user *, newname); |
76 | COMPAT_SYSCALL_WRAP2(mkdir, const char __user *, pathname, umode_t, mode); | 71 | COMPAT_SYSCALL_WRAP2(mkdir, const char __user *, pathname, umode_t, mode); |
77 | COMPAT_SYSCALL_WRAP1(rmdir, const char __user *, pathname); | 72 | COMPAT_SYSCALL_WRAP1(rmdir, const char __user *, pathname); |
78 | COMPAT_SYSCALL_WRAP1(dup, unsigned int, fildes); | ||
79 | COMPAT_SYSCALL_WRAP1(pipe, int __user *, fildes); | 73 | COMPAT_SYSCALL_WRAP1(pipe, int __user *, fildes); |
80 | COMPAT_SYSCALL_WRAP1(brk, unsigned long, brk); | 74 | COMPAT_SYSCALL_WRAP1(brk, unsigned long, brk); |
81 | COMPAT_SYSCALL_WRAP2(signal, int, sig, __sighandler_t, handler); | 75 | COMPAT_SYSCALL_WRAP2(signal, int, sig, __sighandler_t, handler); |
82 | COMPAT_SYSCALL_WRAP1(acct, const char __user *, name); | 76 | COMPAT_SYSCALL_WRAP1(acct, const char __user *, name); |
83 | COMPAT_SYSCALL_WRAP2(umount, char __user *, name, int, flags); | 77 | COMPAT_SYSCALL_WRAP2(umount, char __user *, name, int, flags); |
84 | COMPAT_SYSCALL_WRAP2(setpgid, pid_t, pid, pid_t, pgid); | ||
85 | COMPAT_SYSCALL_WRAP1(umask, int, mask); | ||
86 | COMPAT_SYSCALL_WRAP1(chroot, const char __user *, filename); | 78 | COMPAT_SYSCALL_WRAP1(chroot, const char __user *, filename); |
87 | COMPAT_SYSCALL_WRAP2(dup2, unsigned int, oldfd, unsigned int, newfd); | ||
88 | COMPAT_SYSCALL_WRAP3(sigsuspend, int, unused1, int, unused2, old_sigset_t, mask); | 79 | COMPAT_SYSCALL_WRAP3(sigsuspend, int, unused1, int, unused2, old_sigset_t, mask); |
89 | COMPAT_SYSCALL_WRAP2(sethostname, char __user *, name, int, len); | 80 | COMPAT_SYSCALL_WRAP2(sethostname, char __user *, name, int, len); |
90 | COMPAT_SYSCALL_WRAP2(symlink, const char __user *, old, const char __user *, new); | 81 | COMPAT_SYSCALL_WRAP2(symlink, const char __user *, old, const char __user *, new); |
@@ -93,37 +84,23 @@ COMPAT_SYSCALL_WRAP1(uselib, const char __user *, library); | |||
93 | COMPAT_SYSCALL_WRAP2(swapon, const char __user *, specialfile, int, swap_flags); | 84 | COMPAT_SYSCALL_WRAP2(swapon, const char __user *, specialfile, int, swap_flags); |
94 | COMPAT_SYSCALL_WRAP4(reboot, int, magic1, int, magic2, unsigned int, cmd, void __user *, arg); | 85 | COMPAT_SYSCALL_WRAP4(reboot, int, magic1, int, magic2, unsigned int, cmd, void __user *, arg); |
95 | COMPAT_SYSCALL_WRAP2(munmap, unsigned long, addr, size_t, len); | 86 | COMPAT_SYSCALL_WRAP2(munmap, unsigned long, addr, size_t, len); |
96 | COMPAT_SYSCALL_WRAP2(fchmod, unsigned int, fd, umode_t, mode); | ||
97 | COMPAT_SYSCALL_WRAP2(getpriority, int, which, int, who); | ||
98 | COMPAT_SYSCALL_WRAP3(setpriority, int, which, int, who, int, niceval); | ||
99 | COMPAT_SYSCALL_WRAP3(syslog, int, type, char __user *, buf, int, len); | 87 | COMPAT_SYSCALL_WRAP3(syslog, int, type, char __user *, buf, int, len); |
100 | COMPAT_SYSCALL_WRAP1(swapoff, const char __user *, specialfile); | 88 | COMPAT_SYSCALL_WRAP1(swapoff, const char __user *, specialfile); |
101 | COMPAT_SYSCALL_WRAP1(fsync, unsigned int, fd); | ||
102 | COMPAT_SYSCALL_WRAP2(setdomainname, char __user *, name, int, len); | 89 | COMPAT_SYSCALL_WRAP2(setdomainname, char __user *, name, int, len); |
103 | COMPAT_SYSCALL_WRAP1(newuname, struct new_utsname __user *, name); | 90 | COMPAT_SYSCALL_WRAP1(newuname, struct new_utsname __user *, name); |
104 | COMPAT_SYSCALL_WRAP3(mprotect, unsigned long, start, size_t, len, unsigned long, prot); | 91 | COMPAT_SYSCALL_WRAP3(mprotect, unsigned long, start, size_t, len, unsigned long, prot); |
105 | COMPAT_SYSCALL_WRAP3(init_module, void __user *, umod, unsigned long, len, const char __user *, uargs); | 92 | COMPAT_SYSCALL_WRAP3(init_module, void __user *, umod, unsigned long, len, const char __user *, uargs); |
106 | COMPAT_SYSCALL_WRAP2(delete_module, const char __user *, name_user, unsigned int, flags); | 93 | COMPAT_SYSCALL_WRAP2(delete_module, const char __user *, name_user, unsigned int, flags); |
107 | COMPAT_SYSCALL_WRAP4(quotactl, unsigned int, cmd, const char __user *, special, qid_t, id, void __user *, addr); | 94 | COMPAT_SYSCALL_WRAP4(quotactl, unsigned int, cmd, const char __user *, special, qid_t, id, void __user *, addr); |
108 | COMPAT_SYSCALL_WRAP1(getpgid, pid_t, pid); | ||
109 | COMPAT_SYSCALL_WRAP1(fchdir, unsigned int, fd); | ||
110 | COMPAT_SYSCALL_WRAP2(bdflush, int, func, long, data); | 95 | COMPAT_SYSCALL_WRAP2(bdflush, int, func, long, data); |
111 | COMPAT_SYSCALL_WRAP3(sysfs, int, option, unsigned long, arg1, unsigned long, arg2); | 96 | COMPAT_SYSCALL_WRAP3(sysfs, int, option, unsigned long, arg1, unsigned long, arg2); |
112 | COMPAT_SYSCALL_WRAP1(s390_personality, unsigned int, personality); | ||
113 | COMPAT_SYSCALL_WRAP5(llseek, unsigned int, fd, unsigned long, high, unsigned long, low, loff_t __user *, result, unsigned int, whence); | 97 | COMPAT_SYSCALL_WRAP5(llseek, unsigned int, fd, unsigned long, high, unsigned long, low, loff_t __user *, result, unsigned int, whence); |
114 | COMPAT_SYSCALL_WRAP2(flock, unsigned int, fd, unsigned int, cmd); | ||
115 | COMPAT_SYSCALL_WRAP3(msync, unsigned long, start, size_t, len, int, flags); | 98 | COMPAT_SYSCALL_WRAP3(msync, unsigned long, start, size_t, len, int, flags); |
116 | COMPAT_SYSCALL_WRAP1(getsid, pid_t, pid); | ||
117 | COMPAT_SYSCALL_WRAP1(fdatasync, unsigned int, fd); | ||
118 | COMPAT_SYSCALL_WRAP2(mlock, unsigned long, start, size_t, len); | 99 | COMPAT_SYSCALL_WRAP2(mlock, unsigned long, start, size_t, len); |
119 | COMPAT_SYSCALL_WRAP2(munlock, unsigned long, start, size_t, len); | 100 | COMPAT_SYSCALL_WRAP2(munlock, unsigned long, start, size_t, len); |
120 | COMPAT_SYSCALL_WRAP1(mlockall, int, flags); | ||
121 | COMPAT_SYSCALL_WRAP2(sched_setparam, pid_t, pid, struct sched_param __user *, param); | 101 | COMPAT_SYSCALL_WRAP2(sched_setparam, pid_t, pid, struct sched_param __user *, param); |
122 | COMPAT_SYSCALL_WRAP2(sched_getparam, pid_t, pid, struct sched_param __user *, param); | 102 | COMPAT_SYSCALL_WRAP2(sched_getparam, pid_t, pid, struct sched_param __user *, param); |
123 | COMPAT_SYSCALL_WRAP3(sched_setscheduler, pid_t, pid, int, policy, struct sched_param __user *, param); | 103 | COMPAT_SYSCALL_WRAP3(sched_setscheduler, pid_t, pid, int, policy, struct sched_param __user *, param); |
124 | COMPAT_SYSCALL_WRAP1(sched_getscheduler, pid_t, pid); | ||
125 | COMPAT_SYSCALL_WRAP1(sched_get_priority_max, int, policy); | ||
126 | COMPAT_SYSCALL_WRAP1(sched_get_priority_min, int, policy); | ||
127 | COMPAT_SYSCALL_WRAP5(mremap, unsigned long, addr, unsigned long, old_len, unsigned long, new_len, unsigned long, flags, unsigned long, new_addr); | 104 | COMPAT_SYSCALL_WRAP5(mremap, unsigned long, addr, unsigned long, old_len, unsigned long, new_len, unsigned long, flags, unsigned long, new_addr); |
128 | COMPAT_SYSCALL_WRAP3(poll, struct pollfd __user *, ufds, unsigned int, nfds, int, timeout); | 105 | COMPAT_SYSCALL_WRAP3(poll, struct pollfd __user *, ufds, unsigned int, nfds, int, timeout); |
129 | COMPAT_SYSCALL_WRAP5(prctl, int, option, unsigned long, arg2, unsigned long, arg3, unsigned long, arg4, unsigned long, arg5); | 106 | COMPAT_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); | |||
131 | COMPAT_SYSCALL_WRAP2(capget, cap_user_header_t, header, cap_user_data_t, dataptr); | 108 | COMPAT_SYSCALL_WRAP2(capget, cap_user_header_t, header, cap_user_data_t, dataptr); |
132 | COMPAT_SYSCALL_WRAP2(capset, cap_user_header_t, header, const cap_user_data_t, data); | 109 | COMPAT_SYSCALL_WRAP2(capset, cap_user_header_t, header, const cap_user_data_t, data); |
133 | COMPAT_SYSCALL_WRAP3(lchown, const char __user *, filename, uid_t, user, gid_t, group); | 110 | COMPAT_SYSCALL_WRAP3(lchown, const char __user *, filename, uid_t, user, gid_t, group); |
134 | COMPAT_SYSCALL_WRAP2(setreuid, uid_t, ruid, uid_t, euid); | ||
135 | COMPAT_SYSCALL_WRAP2(setregid, gid_t, rgid, gid_t, egid); | ||
136 | COMPAT_SYSCALL_WRAP2(getgroups, int, gidsetsize, gid_t __user *, grouplist); | 111 | COMPAT_SYSCALL_WRAP2(getgroups, int, gidsetsize, gid_t __user *, grouplist); |
137 | COMPAT_SYSCALL_WRAP2(setgroups, int, gidsetsize, gid_t __user *, grouplist); | 112 | COMPAT_SYSCALL_WRAP2(setgroups, int, gidsetsize, gid_t __user *, grouplist); |
138 | COMPAT_SYSCALL_WRAP3(fchown, unsigned int, fd, uid_t, user, gid_t, group); | ||
139 | COMPAT_SYSCALL_WRAP3(setresuid, uid_t, ruid, uid_t, euid, uid_t, suid); | ||
140 | COMPAT_SYSCALL_WRAP3(getresuid, uid_t __user *, ruid, uid_t __user *, euid, uid_t __user *, suid); | 113 | COMPAT_SYSCALL_WRAP3(getresuid, uid_t __user *, ruid, uid_t __user *, euid, uid_t __user *, suid); |
141 | COMPAT_SYSCALL_WRAP3(setresgid, gid_t, rgid, gid_t, egid, gid_t, sgid); | ||
142 | COMPAT_SYSCALL_WRAP3(getresgid, gid_t __user *, rgid, gid_t __user *, egid, gid_t __user *, sgid); | 114 | COMPAT_SYSCALL_WRAP3(getresgid, gid_t __user *, rgid, gid_t __user *, egid, gid_t __user *, sgid); |
143 | COMPAT_SYSCALL_WRAP3(chown, const char __user *, filename, uid_t, user, gid_t, group); | 115 | COMPAT_SYSCALL_WRAP3(chown, const char __user *, filename, uid_t, user, gid_t, group); |
144 | COMPAT_SYSCALL_WRAP1(setuid, uid_t, uid); | ||
145 | COMPAT_SYSCALL_WRAP1(setgid, gid_t, gid); | ||
146 | COMPAT_SYSCALL_WRAP1(setfsuid, uid_t, uid); | ||
147 | COMPAT_SYSCALL_WRAP1(setfsgid, gid_t, gid); | ||
148 | COMPAT_SYSCALL_WRAP2(pivot_root, const char __user *, new_root, const char __user *, put_old); | 116 | COMPAT_SYSCALL_WRAP2(pivot_root, const char __user *, new_root, const char __user *, put_old); |
149 | COMPAT_SYSCALL_WRAP3(mincore, unsigned long, start, size_t, len, unsigned char __user *, vec); | 117 | COMPAT_SYSCALL_WRAP3(mincore, unsigned long, start, size_t, len, unsigned char __user *, vec); |
150 | COMPAT_SYSCALL_WRAP3(madvise, unsigned long, start, size_t, len, int, behavior); | 118 | COMPAT_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); | |||
161 | COMPAT_SYSCALL_WRAP2(removexattr, const char __user *, path, const char __user *, name); | 129 | COMPAT_SYSCALL_WRAP2(removexattr, const char __user *, path, const char __user *, name); |
162 | COMPAT_SYSCALL_WRAP2(lremovexattr, const char __user *, path, const char __user *, name); | 130 | COMPAT_SYSCALL_WRAP2(lremovexattr, const char __user *, path, const char __user *, name); |
163 | COMPAT_SYSCALL_WRAP2(fremovexattr, int, fd, const char __user *, name); | 131 | COMPAT_SYSCALL_WRAP2(fremovexattr, int, fd, const char __user *, name); |
164 | COMPAT_SYSCALL_WRAP1(exit_group, int, error_code); | ||
165 | COMPAT_SYSCALL_WRAP1(set_tid_address, int __user *, tidptr); | 132 | COMPAT_SYSCALL_WRAP1(set_tid_address, int __user *, tidptr); |
166 | COMPAT_SYSCALL_WRAP1(epoll_create, int, size); | ||
167 | COMPAT_SYSCALL_WRAP4(epoll_ctl, int, epfd, int, op, int, fd, struct epoll_event __user *, event); | 133 | COMPAT_SYSCALL_WRAP4(epoll_ctl, int, epfd, int, op, int, fd, struct epoll_event __user *, event); |
168 | COMPAT_SYSCALL_WRAP4(epoll_wait, int, epfd, struct epoll_event __user *, events, int, maxevents, int, timeout); | 134 | COMPAT_SYSCALL_WRAP4(epoll_wait, int, epfd, struct epoll_event __user *, events, int, maxevents, int, timeout); |
169 | COMPAT_SYSCALL_WRAP1(timer_getoverrun, timer_t, timer_id); | ||
170 | COMPAT_SYSCALL_WRAP1(timer_delete, compat_timer_t, compat_timer_id); | ||
171 | COMPAT_SYSCALL_WRAP1(io_destroy, aio_context_t, ctx); | 135 | COMPAT_SYSCALL_WRAP1(io_destroy, aio_context_t, ctx); |
172 | COMPAT_SYSCALL_WRAP3(io_cancel, aio_context_t, ctx_id, struct iocb __user *, iocb, struct io_event __user *, result); | 136 | COMPAT_SYSCALL_WRAP3(io_cancel, aio_context_t, ctx_id, struct iocb __user *, iocb, struct io_event __user *, result); |
173 | COMPAT_SYSCALL_WRAP1(mq_unlink, const char __user *, name); | 137 | COMPAT_SYSCALL_WRAP1(mq_unlink, const char __user *, name); |
174 | COMPAT_SYSCALL_WRAP5(add_key, const char __user *, tp, const char __user *, dsc, const void __user *, pld, size_t, len, key_serial_t, id); | 138 | COMPAT_SYSCALL_WRAP5(add_key, const char __user *, tp, const char __user *, dsc, const void __user *, pld, size_t, len, key_serial_t, id); |
175 | COMPAT_SYSCALL_WRAP4(request_key, const char __user *, tp, const char __user *, dsc, const char __user *, info, key_serial_t, id); | 139 | COMPAT_SYSCALL_WRAP4(request_key, const char __user *, tp, const char __user *, dsc, const char __user *, info, key_serial_t, id); |
176 | COMPAT_SYSCALL_WRAP5(remap_file_pages, unsigned long, start, unsigned long, size, unsigned long, prot, unsigned long, pgoff, unsigned long, flags); | 140 | COMPAT_SYSCALL_WRAP5(remap_file_pages, unsigned long, start, unsigned long, size, unsigned long, prot, unsigned long, pgoff, unsigned long, flags); |
177 | COMPAT_SYSCALL_WRAP3(ioprio_set, int, which, int, who, int, ioprio); | ||
178 | COMPAT_SYSCALL_WRAP2(ioprio_get, int, which, int, who); | ||
179 | COMPAT_SYSCALL_WRAP3(inotify_add_watch, int, fd, const char __user *, path, u32, mask); | 141 | COMPAT_SYSCALL_WRAP3(inotify_add_watch, int, fd, const char __user *, path, u32, mask); |
180 | COMPAT_SYSCALL_WRAP2(inotify_rm_watch, int, fd, __s32, wd); | ||
181 | COMPAT_SYSCALL_WRAP3(mkdirat, int, dfd, const char __user *, pathname, umode_t, mode); | 142 | COMPAT_SYSCALL_WRAP3(mkdirat, int, dfd, const char __user *, pathname, umode_t, mode); |
182 | COMPAT_SYSCALL_WRAP4(mknodat, int, dfd, const char __user *, filename, umode_t, mode, unsigned, dev); | 143 | COMPAT_SYSCALL_WRAP4(mknodat, int, dfd, const char __user *, filename, umode_t, mode, unsigned, dev); |
183 | COMPAT_SYSCALL_WRAP5(fchownat, int, dfd, const char __user *, filename, uid_t, user, gid_t, group, int, flag); | 144 | COMPAT_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); | |||
192 | COMPAT_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); | 153 | COMPAT_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); |
193 | COMPAT_SYSCALL_WRAP4(tee, int, fdin, int, fdout, size_t, len, unsigned int, flags); | 154 | COMPAT_SYSCALL_WRAP4(tee, int, fdin, int, fdout, size_t, len, unsigned int, flags); |
194 | COMPAT_SYSCALL_WRAP3(getcpu, unsigned __user *, cpu, unsigned __user *, node, struct getcpu_cache __user *, cache); | 155 | COMPAT_SYSCALL_WRAP3(getcpu, unsigned __user *, cpu, unsigned __user *, node, struct getcpu_cache __user *, cache); |
195 | COMPAT_SYSCALL_WRAP1(eventfd, unsigned int, count); | ||
196 | COMPAT_SYSCALL_WRAP2(timerfd_create, int, clockid, int, flags); | ||
197 | COMPAT_SYSCALL_WRAP2(eventfd2, unsigned int, count, int, flags); | ||
198 | COMPAT_SYSCALL_WRAP1(inotify_init1, int, flags); | ||
199 | COMPAT_SYSCALL_WRAP2(pipe2, int __user *, fildes, int, flags); | 156 | COMPAT_SYSCALL_WRAP2(pipe2, int __user *, fildes, int, flags); |
200 | COMPAT_SYSCALL_WRAP3(dup3, unsigned int, oldfd, unsigned int, newfd, int, flags); | ||
201 | COMPAT_SYSCALL_WRAP1(epoll_create1, int, flags); | ||
202 | COMPAT_SYSCALL_WRAP2(tkill, int, pid, int, sig); | ||
203 | COMPAT_SYSCALL_WRAP3(tgkill, int, tgid, int, pid, int, sig); | ||
204 | COMPAT_SYSCALL_WRAP5(perf_event_open, struct perf_event_attr __user *, attr_uptr, pid_t, pid, int, cpu, int, group_fd, unsigned long, flags); | 157 | COMPAT_SYSCALL_WRAP5(perf_event_open, struct perf_event_attr __user *, attr_uptr, pid_t, pid, int, cpu, int, group_fd, unsigned long, flags); |
205 | COMPAT_SYSCALL_WRAP5(clone, unsigned long, newsp, unsigned long, clone_flags, int __user *, parent_tidptr, int __user *, child_tidptr, unsigned long, tls); | 158 | COMPAT_SYSCALL_WRAP5(clone, unsigned long, newsp, unsigned long, clone_flags, int __user *, parent_tidptr, int __user *, child_tidptr, unsigned long, tls); |
206 | COMPAT_SYSCALL_WRAP2(fanotify_init, unsigned int, flags, unsigned int, event_f_flags); | ||
207 | COMPAT_SYSCALL_WRAP4(prlimit64, pid_t, pid, unsigned int, resource, const struct rlimit64 __user *, new_rlim, struct rlimit64 __user *, old_rlim); | 159 | COMPAT_SYSCALL_WRAP4(prlimit64, pid_t, pid, unsigned int, resource, const struct rlimit64 __user *, new_rlim, struct rlimit64 __user *, old_rlim); |
208 | COMPAT_SYSCALL_WRAP5(name_to_handle_at, int, dfd, const char __user *, name, struct file_handle __user *, handle, int __user *, mnt_id, int, flag); | 160 | COMPAT_SYSCALL_WRAP5(name_to_handle_at, int, dfd, const char __user *, name, struct file_handle __user *, handle, int __user *, mnt_id, int, flag); |
209 | COMPAT_SYSCALL_WRAP1(syncfs, int, fd); | ||
210 | COMPAT_SYSCALL_WRAP2(setns, int, fd, int, nstype); | ||
211 | COMPAT_SYSCALL_WRAP2(s390_runtime_instr, int, command, int, signum); | ||
212 | COMPAT_SYSCALL_WRAP5(kcmp, pid_t, pid1, pid_t, pid2, int, type, unsigned long, idx1, unsigned long, idx2); | 161 | COMPAT_SYSCALL_WRAP5(kcmp, pid_t, pid1, pid_t, pid2, int, type, unsigned long, idx1, unsigned long, idx2); |
213 | COMPAT_SYSCALL_WRAP3(finit_module, int, fd, const char __user *, uargs, int, flags); | 162 | COMPAT_SYSCALL_WRAP3(finit_module, int, fd, const char __user *, uargs, int, flags); |
214 | COMPAT_SYSCALL_WRAP3(sched_setattr, pid_t, pid, struct sched_attr __user *, attr, unsigned int, flags); | 163 | COMPAT_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 | |||
220 | COMPAT_SYSCALL_WRAP3(bpf, int, cmd, union bpf_attr *, attr, unsigned int, size); | 169 | COMPAT_SYSCALL_WRAP3(bpf, int, cmd, union bpf_attr *, attr, unsigned int, size); |
221 | COMPAT_SYSCALL_WRAP3(s390_pci_mmio_write, const unsigned long, mmio_addr, const void __user *, user_buffer, const size_t, length); | 170 | COMPAT_SYSCALL_WRAP3(s390_pci_mmio_write, const unsigned long, mmio_addr, const void __user *, user_buffer, const size_t, length); |
222 | COMPAT_SYSCALL_WRAP3(s390_pci_mmio_read, const unsigned long, mmio_addr, void __user *, user_buffer, const size_t, length); | 171 | COMPAT_SYSCALL_WRAP3(s390_pci_mmio_read, const unsigned long, mmio_addr, void __user *, user_buffer, const size_t, length); |
172 | COMPAT_SYSCALL_WRAP4(socketpair, int, family, int, type, int, protocol, int __user *, usockvec); | ||
173 | COMPAT_SYSCALL_WRAP3(bind, int, fd, struct sockaddr __user *, umyaddr, int, addrlen); | ||
174 | COMPAT_SYSCALL_WRAP3(connect, int, fd, struct sockaddr __user *, uservaddr, int, addrlen); | ||
175 | COMPAT_SYSCALL_WRAP4(accept4, int, fd, struct sockaddr __user *, upeer_sockaddr, int __user *, upeer_addrlen, int, flags); | ||
176 | COMPAT_SYSCALL_WRAP3(getsockname, int, fd, struct sockaddr __user *, usockaddr, int __user *, usockaddr_len); | ||
177 | COMPAT_SYSCALL_WRAP3(getpeername, int, fd, struct sockaddr __user *, usockaddr, int __user *, usockaddr_len); | ||
178 | COMPAT_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 | ||
1194 | 0: # Store floating-point controls | 1195 | 0: # Store floating-point controls |
1195 | stfpc __THREAD_FPU_fpc(%r2) | 1196 | stfpc __THREAD_FPU_fpc(%r2) |
1196 | 1: # Load register save area and check if VX is active | 1197 | 1: # 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 | ||
11 | NI_SYSCALL /* 0 */ | 11 | NI_SYSCALL /* 0 */ |
12 | SYSCALL(sys_exit,compat_sys_exit) | 12 | SYSCALL(sys_exit,sys_exit) |
13 | SYSCALL(sys_fork,sys_fork) | 13 | SYSCALL(sys_fork,sys_fork) |
14 | SYSCALL(sys_read,compat_sys_s390_read) | 14 | SYSCALL(sys_read,compat_sys_s390_read) |
15 | SYSCALL(sys_write,compat_sys_s390_write) | 15 | SYSCALL(sys_write,compat_sys_s390_write) |
16 | SYSCALL(sys_open,compat_sys_open) /* 5 */ | 16 | SYSCALL(sys_open,compat_sys_open) /* 5 */ |
17 | SYSCALL(sys_close,compat_sys_close) | 17 | SYSCALL(sys_close,sys_close) |
18 | SYSCALL(sys_restart_syscall,sys_restart_syscall) | 18 | SYSCALL(sys_restart_syscall,sys_restart_syscall) |
19 | SYSCALL(sys_creat,compat_sys_creat) | 19 | SYSCALL(sys_creat,compat_sys_creat) |
20 | SYSCALL(sys_link,compat_sys_link) | 20 | SYSCALL(sys_link,compat_sys_link) |
@@ -35,21 +35,21 @@ SYSCALL(sys_ni_syscall,compat_sys_s390_setuid16) /* old setuid16 syscall*/ | |||
35 | SYSCALL(sys_ni_syscall,compat_sys_s390_getuid16) /* old getuid16 syscall*/ | 35 | SYSCALL(sys_ni_syscall,compat_sys_s390_getuid16) /* old getuid16 syscall*/ |
36 | SYSCALL(sys_ni_syscall,compat_sys_stime) /* 25 old stime syscall */ | 36 | SYSCALL(sys_ni_syscall,compat_sys_stime) /* 25 old stime syscall */ |
37 | SYSCALL(sys_ptrace,compat_sys_ptrace) | 37 | SYSCALL(sys_ptrace,compat_sys_ptrace) |
38 | SYSCALL(sys_alarm,compat_sys_alarm) | 38 | SYSCALL(sys_alarm,sys_alarm) |
39 | NI_SYSCALL /* old fstat syscall */ | 39 | NI_SYSCALL /* old fstat syscall */ |
40 | SYSCALL(sys_pause,sys_pause) | 40 | SYSCALL(sys_pause,sys_pause) |
41 | SYSCALL(sys_utime,compat_sys_utime) /* 30 */ | 41 | SYSCALL(sys_utime,compat_sys_utime) /* 30 */ |
42 | NI_SYSCALL /* old stty syscall */ | 42 | NI_SYSCALL /* old stty syscall */ |
43 | NI_SYSCALL /* old gtty syscall */ | 43 | NI_SYSCALL /* old gtty syscall */ |
44 | SYSCALL(sys_access,compat_sys_access) | 44 | SYSCALL(sys_access,compat_sys_access) |
45 | SYSCALL(sys_nice,compat_sys_nice) | 45 | SYSCALL(sys_nice,sys_nice) |
46 | NI_SYSCALL /* 35 old ftime syscall */ | 46 | NI_SYSCALL /* 35 old ftime syscall */ |
47 | SYSCALL(sys_sync,sys_sync) | 47 | SYSCALL(sys_sync,sys_sync) |
48 | SYSCALL(sys_kill,compat_sys_kill) | 48 | SYSCALL(sys_kill,sys_kill) |
49 | SYSCALL(sys_rename,compat_sys_rename) | 49 | SYSCALL(sys_rename,compat_sys_rename) |
50 | SYSCALL(sys_mkdir,compat_sys_mkdir) | 50 | SYSCALL(sys_mkdir,compat_sys_mkdir) |
51 | SYSCALL(sys_rmdir,compat_sys_rmdir) /* 40 */ | 51 | SYSCALL(sys_rmdir,compat_sys_rmdir) /* 40 */ |
52 | SYSCALL(sys_dup,compat_sys_dup) | 52 | SYSCALL(sys_dup,sys_dup) |
53 | SYSCALL(sys_pipe,compat_sys_pipe) | 53 | SYSCALL(sys_pipe,compat_sys_pipe) |
54 | SYSCALL(sys_times,compat_sys_times) | 54 | SYSCALL(sys_times,compat_sys_times) |
55 | NI_SYSCALL /* old prof syscall */ | 55 | NI_SYSCALL /* old prof syscall */ |
@@ -65,13 +65,13 @@ NI_SYSCALL /* old lock syscall */ | |||
65 | SYSCALL(sys_ioctl,compat_sys_ioctl) | 65 | SYSCALL(sys_ioctl,compat_sys_ioctl) |
66 | SYSCALL(sys_fcntl,compat_sys_fcntl) /* 55 */ | 66 | SYSCALL(sys_fcntl,compat_sys_fcntl) /* 55 */ |
67 | NI_SYSCALL /* intel mpx syscall */ | 67 | NI_SYSCALL /* intel mpx syscall */ |
68 | SYSCALL(sys_setpgid,compat_sys_setpgid) | 68 | SYSCALL(sys_setpgid,sys_setpgid) |
69 | NI_SYSCALL /* old ulimit syscall */ | 69 | NI_SYSCALL /* old ulimit syscall */ |
70 | NI_SYSCALL /* old uname syscall */ | 70 | NI_SYSCALL /* old uname syscall */ |
71 | SYSCALL(sys_umask,compat_sys_umask) /* 60 */ | 71 | SYSCALL(sys_umask,sys_umask) /* 60 */ |
72 | SYSCALL(sys_chroot,compat_sys_chroot) | 72 | SYSCALL(sys_chroot,compat_sys_chroot) |
73 | SYSCALL(sys_ustat,compat_sys_ustat) | 73 | SYSCALL(sys_ustat,compat_sys_ustat) |
74 | SYSCALL(sys_dup2,compat_sys_dup2) | 74 | SYSCALL(sys_dup2,sys_dup2) |
75 | SYSCALL(sys_getppid,sys_getppid) | 75 | SYSCALL(sys_getppid,sys_getppid) |
76 | SYSCALL(sys_getpgrp,sys_getpgrp) /* 65 */ | 76 | SYSCALL(sys_getpgrp,sys_getpgrp) /* 65 */ |
77 | SYSCALL(sys_setsid,sys_setsid) | 77 | SYSCALL(sys_setsid,sys_setsid) |
@@ -102,10 +102,10 @@ SYSCALL(sys_old_mmap,compat_sys_s390_old_mmap) /* 90 */ | |||
102 | SYSCALL(sys_munmap,compat_sys_munmap) | 102 | SYSCALL(sys_munmap,compat_sys_munmap) |
103 | SYSCALL(sys_truncate,compat_sys_truncate) | 103 | SYSCALL(sys_truncate,compat_sys_truncate) |
104 | SYSCALL(sys_ftruncate,compat_sys_ftruncate) | 104 | SYSCALL(sys_ftruncate,compat_sys_ftruncate) |
105 | SYSCALL(sys_fchmod,compat_sys_fchmod) | 105 | SYSCALL(sys_fchmod,sys_fchmod) |
106 | SYSCALL(sys_ni_syscall,compat_sys_s390_fchown16) /* 95 old fchown16 syscall*/ | 106 | SYSCALL(sys_ni_syscall,compat_sys_s390_fchown16) /* 95 old fchown16 syscall*/ |
107 | SYSCALL(sys_getpriority,compat_sys_getpriority) | 107 | SYSCALL(sys_getpriority,sys_getpriority) |
108 | SYSCALL(sys_setpriority,compat_sys_setpriority) | 108 | SYSCALL(sys_setpriority,sys_setpriority) |
109 | NI_SYSCALL /* old profil syscall */ | 109 | NI_SYSCALL /* old profil syscall */ |
110 | SYSCALL(sys_statfs,compat_sys_statfs) | 110 | SYSCALL(sys_statfs,compat_sys_statfs) |
111 | SYSCALL(sys_fstatfs,compat_sys_fstatfs) /* 100 */ | 111 | SYSCALL(sys_fstatfs,compat_sys_fstatfs) /* 100 */ |
@@ -126,7 +126,7 @@ SYSCALL(sys_wait4,compat_sys_wait4) | |||
126 | SYSCALL(sys_swapoff,compat_sys_swapoff) /* 115 */ | 126 | SYSCALL(sys_swapoff,compat_sys_swapoff) /* 115 */ |
127 | SYSCALL(sys_sysinfo,compat_sys_sysinfo) | 127 | SYSCALL(sys_sysinfo,compat_sys_sysinfo) |
128 | SYSCALL(sys_s390_ipc,compat_sys_s390_ipc) | 128 | SYSCALL(sys_s390_ipc,compat_sys_s390_ipc) |
129 | SYSCALL(sys_fsync,compat_sys_fsync) | 129 | SYSCALL(sys_fsync,sys_fsync) |
130 | SYSCALL(sys_sigreturn,compat_sys_sigreturn) | 130 | SYSCALL(sys_sigreturn,compat_sys_sigreturn) |
131 | SYSCALL(sys_clone,compat_sys_clone) /* 120 */ | 131 | SYSCALL(sys_clone,compat_sys_clone) /* 120 */ |
132 | SYSCALL(sys_setdomainname,compat_sys_setdomainname) | 132 | SYSCALL(sys_setdomainname,compat_sys_setdomainname) |
@@ -140,35 +140,35 @@ SYSCALL(sys_init_module,compat_sys_init_module) | |||
140 | SYSCALL(sys_delete_module,compat_sys_delete_module) | 140 | SYSCALL(sys_delete_module,compat_sys_delete_module) |
141 | NI_SYSCALL /* 130: old get_kernel_syms */ | 141 | NI_SYSCALL /* 130: old get_kernel_syms */ |
142 | SYSCALL(sys_quotactl,compat_sys_quotactl) | 142 | SYSCALL(sys_quotactl,compat_sys_quotactl) |
143 | SYSCALL(sys_getpgid,compat_sys_getpgid) | 143 | SYSCALL(sys_getpgid,sys_getpgid) |
144 | SYSCALL(sys_fchdir,compat_sys_fchdir) | 144 | SYSCALL(sys_fchdir,sys_fchdir) |
145 | SYSCALL(sys_bdflush,compat_sys_bdflush) | 145 | SYSCALL(sys_bdflush,compat_sys_bdflush) |
146 | SYSCALL(sys_sysfs,compat_sys_sysfs) /* 135 */ | 146 | SYSCALL(sys_sysfs,compat_sys_sysfs) /* 135 */ |
147 | SYSCALL(sys_s390_personality,compat_sys_s390_personality) | 147 | SYSCALL(sys_s390_personality,sys_s390_personality) |
148 | NI_SYSCALL /* for afs_syscall */ | 148 | NI_SYSCALL /* for afs_syscall */ |
149 | SYSCALL(sys_ni_syscall,compat_sys_s390_setfsuid16) /* old setfsuid16 syscall */ | 149 | SYSCALL(sys_ni_syscall,compat_sys_s390_setfsuid16) /* old setfsuid16 syscall */ |
150 | SYSCALL(sys_ni_syscall,compat_sys_s390_setfsgid16) /* old setfsgid16 syscall */ | 150 | SYSCALL(sys_ni_syscall,compat_sys_s390_setfsgid16) /* old setfsgid16 syscall */ |
151 | SYSCALL(sys_llseek,compat_sys_llseek) /* 140 */ | 151 | SYSCALL(sys_llseek,compat_sys_llseek) /* 140 */ |
152 | SYSCALL(sys_getdents,compat_sys_getdents) | 152 | SYSCALL(sys_getdents,compat_sys_getdents) |
153 | SYSCALL(sys_select,compat_sys_select) | 153 | SYSCALL(sys_select,compat_sys_select) |
154 | SYSCALL(sys_flock,compat_sys_flock) | 154 | SYSCALL(sys_flock,sys_flock) |
155 | SYSCALL(sys_msync,compat_sys_msync) | 155 | SYSCALL(sys_msync,compat_sys_msync) |
156 | SYSCALL(sys_readv,compat_sys_readv) /* 145 */ | 156 | SYSCALL(sys_readv,compat_sys_readv) /* 145 */ |
157 | SYSCALL(sys_writev,compat_sys_writev) | 157 | SYSCALL(sys_writev,compat_sys_writev) |
158 | SYSCALL(sys_getsid,compat_sys_getsid) | 158 | SYSCALL(sys_getsid,sys_getsid) |
159 | SYSCALL(sys_fdatasync,compat_sys_fdatasync) | 159 | SYSCALL(sys_fdatasync,sys_fdatasync) |
160 | SYSCALL(sys_sysctl,compat_sys_sysctl) | 160 | SYSCALL(sys_sysctl,compat_sys_sysctl) |
161 | SYSCALL(sys_mlock,compat_sys_mlock) /* 150 */ | 161 | SYSCALL(sys_mlock,compat_sys_mlock) /* 150 */ |
162 | SYSCALL(sys_munlock,compat_sys_munlock) | 162 | SYSCALL(sys_munlock,compat_sys_munlock) |
163 | SYSCALL(sys_mlockall,compat_sys_mlockall) | 163 | SYSCALL(sys_mlockall,sys_mlockall) |
164 | SYSCALL(sys_munlockall,sys_munlockall) | 164 | SYSCALL(sys_munlockall,sys_munlockall) |
165 | SYSCALL(sys_sched_setparam,compat_sys_sched_setparam) | 165 | SYSCALL(sys_sched_setparam,compat_sys_sched_setparam) |
166 | SYSCALL(sys_sched_getparam,compat_sys_sched_getparam) /* 155 */ | 166 | SYSCALL(sys_sched_getparam,compat_sys_sched_getparam) /* 155 */ |
167 | SYSCALL(sys_sched_setscheduler,compat_sys_sched_setscheduler) | 167 | SYSCALL(sys_sched_setscheduler,compat_sys_sched_setscheduler) |
168 | SYSCALL(sys_sched_getscheduler,compat_sys_sched_getscheduler) | 168 | SYSCALL(sys_sched_getscheduler,sys_sched_getscheduler) |
169 | SYSCALL(sys_sched_yield,sys_sched_yield) | 169 | SYSCALL(sys_sched_yield,sys_sched_yield) |
170 | SYSCALL(sys_sched_get_priority_max,compat_sys_sched_get_priority_max) | 170 | SYSCALL(sys_sched_get_priority_max,sys_sched_get_priority_max) |
171 | SYSCALL(sys_sched_get_priority_min,compat_sys_sched_get_priority_min) /* 160 */ | 171 | SYSCALL(sys_sched_get_priority_min,sys_sched_get_priority_min) /* 160 */ |
172 | SYSCALL(sys_sched_rr_get_interval,compat_sys_sched_rr_get_interval) | 172 | SYSCALL(sys_sched_rr_get_interval,compat_sys_sched_rr_get_interval) |
173 | SYSCALL(sys_nanosleep,compat_sys_nanosleep) | 173 | SYSCALL(sys_nanosleep,compat_sys_nanosleep) |
174 | SYSCALL(sys_mremap,compat_sys_mremap) | 174 | SYSCALL(sys_mremap,compat_sys_mremap) |
@@ -211,20 +211,20 @@ SYSCALL(sys_getuid,sys_getuid) | |||
211 | SYSCALL(sys_getgid,sys_getgid) /* 200 */ | 211 | SYSCALL(sys_getgid,sys_getgid) /* 200 */ |
212 | SYSCALL(sys_geteuid,sys_geteuid) | 212 | SYSCALL(sys_geteuid,sys_geteuid) |
213 | SYSCALL(sys_getegid,sys_getegid) | 213 | SYSCALL(sys_getegid,sys_getegid) |
214 | SYSCALL(sys_setreuid,compat_sys_setreuid) | 214 | SYSCALL(sys_setreuid,sys_setreuid) |
215 | SYSCALL(sys_setregid,compat_sys_setregid) | 215 | SYSCALL(sys_setregid,sys_setregid) |
216 | SYSCALL(sys_getgroups,compat_sys_getgroups) /* 205 */ | 216 | SYSCALL(sys_getgroups,compat_sys_getgroups) /* 205 */ |
217 | SYSCALL(sys_setgroups,compat_sys_setgroups) | 217 | SYSCALL(sys_setgroups,compat_sys_setgroups) |
218 | SYSCALL(sys_fchown,compat_sys_fchown) | 218 | SYSCALL(sys_fchown,sys_fchown) |
219 | SYSCALL(sys_setresuid,compat_sys_setresuid) | 219 | SYSCALL(sys_setresuid,sys_setresuid) |
220 | SYSCALL(sys_getresuid,compat_sys_getresuid) | 220 | SYSCALL(sys_getresuid,compat_sys_getresuid) |
221 | SYSCALL(sys_setresgid,compat_sys_setresgid) /* 210 */ | 221 | SYSCALL(sys_setresgid,sys_setresgid) /* 210 */ |
222 | SYSCALL(sys_getresgid,compat_sys_getresgid) | 222 | SYSCALL(sys_getresgid,compat_sys_getresgid) |
223 | SYSCALL(sys_chown,compat_sys_chown) | 223 | SYSCALL(sys_chown,compat_sys_chown) |
224 | SYSCALL(sys_setuid,compat_sys_setuid) | 224 | SYSCALL(sys_setuid,sys_setuid) |
225 | SYSCALL(sys_setgid,compat_sys_setgid) | 225 | SYSCALL(sys_setgid,sys_setgid) |
226 | SYSCALL(sys_setfsuid,compat_sys_setfsuid) /* 215 */ | 226 | SYSCALL(sys_setfsuid,sys_setfsuid) /* 215 */ |
227 | SYSCALL(sys_setfsgid,compat_sys_setfsgid) | 227 | SYSCALL(sys_setfsgid,sys_setfsgid) |
228 | SYSCALL(sys_pivot_root,compat_sys_pivot_root) | 228 | SYSCALL(sys_pivot_root,compat_sys_pivot_root) |
229 | SYSCALL(sys_mincore,compat_sys_mincore) | 229 | SYSCALL(sys_mincore,compat_sys_mincore) |
230 | SYSCALL(sys_madvise,compat_sys_madvise) | 230 | SYSCALL(sys_madvise,compat_sys_madvise) |
@@ -245,19 +245,19 @@ SYSCALL(sys_removexattr,compat_sys_removexattr) | |||
245 | SYSCALL(sys_lremovexattr,compat_sys_lremovexattr) | 245 | SYSCALL(sys_lremovexattr,compat_sys_lremovexattr) |
246 | SYSCALL(sys_fremovexattr,compat_sys_fremovexattr) /* 235 */ | 246 | SYSCALL(sys_fremovexattr,compat_sys_fremovexattr) /* 235 */ |
247 | SYSCALL(sys_gettid,sys_gettid) | 247 | SYSCALL(sys_gettid,sys_gettid) |
248 | SYSCALL(sys_tkill,compat_sys_tkill) | 248 | SYSCALL(sys_tkill,sys_tkill) |
249 | SYSCALL(sys_futex,compat_sys_futex) | 249 | SYSCALL(sys_futex,compat_sys_futex) |
250 | SYSCALL(sys_sched_setaffinity,compat_sys_sched_setaffinity) | 250 | SYSCALL(sys_sched_setaffinity,compat_sys_sched_setaffinity) |
251 | SYSCALL(sys_sched_getaffinity,compat_sys_sched_getaffinity) /* 240 */ | 251 | SYSCALL(sys_sched_getaffinity,compat_sys_sched_getaffinity) /* 240 */ |
252 | SYSCALL(sys_tgkill,compat_sys_tgkill) | 252 | SYSCALL(sys_tgkill,sys_tgkill) |
253 | NI_SYSCALL /* reserved for TUX */ | 253 | NI_SYSCALL /* reserved for TUX */ |
254 | SYSCALL(sys_io_setup,compat_sys_io_setup) | 254 | SYSCALL(sys_io_setup,compat_sys_io_setup) |
255 | SYSCALL(sys_io_destroy,compat_sys_io_destroy) | 255 | SYSCALL(sys_io_destroy,compat_sys_io_destroy) |
256 | SYSCALL(sys_io_getevents,compat_sys_io_getevents) /* 245 */ | 256 | SYSCALL(sys_io_getevents,compat_sys_io_getevents) /* 245 */ |
257 | SYSCALL(sys_io_submit,compat_sys_io_submit) | 257 | SYSCALL(sys_io_submit,compat_sys_io_submit) |
258 | SYSCALL(sys_io_cancel,compat_sys_io_cancel) | 258 | SYSCALL(sys_io_cancel,compat_sys_io_cancel) |
259 | SYSCALL(sys_exit_group,compat_sys_exit_group) | 259 | SYSCALL(sys_exit_group,sys_exit_group) |
260 | SYSCALL(sys_epoll_create,compat_sys_epoll_create) | 260 | SYSCALL(sys_epoll_create,sys_epoll_create) |
261 | SYSCALL(sys_epoll_ctl,compat_sys_epoll_ctl) /* 250 */ | 261 | SYSCALL(sys_epoll_ctl,compat_sys_epoll_ctl) /* 250 */ |
262 | SYSCALL(sys_epoll_wait,compat_sys_epoll_wait) | 262 | SYSCALL(sys_epoll_wait,compat_sys_epoll_wait) |
263 | SYSCALL(sys_set_tid_address,compat_sys_set_tid_address) | 263 | SYSCALL(sys_set_tid_address,compat_sys_set_tid_address) |
@@ -265,8 +265,8 @@ SYSCALL(sys_fadvise64_64,compat_sys_s390_fadvise64) | |||
265 | SYSCALL(sys_timer_create,compat_sys_timer_create) | 265 | SYSCALL(sys_timer_create,compat_sys_timer_create) |
266 | SYSCALL(sys_timer_settime,compat_sys_timer_settime) /* 255 */ | 266 | SYSCALL(sys_timer_settime,compat_sys_timer_settime) /* 255 */ |
267 | SYSCALL(sys_timer_gettime,compat_sys_timer_gettime) | 267 | SYSCALL(sys_timer_gettime,compat_sys_timer_gettime) |
268 | SYSCALL(sys_timer_getoverrun,compat_sys_timer_getoverrun) | 268 | SYSCALL(sys_timer_getoverrun,sys_timer_getoverrun) |
269 | SYSCALL(sys_timer_delete,compat_sys_timer_delete) | 269 | SYSCALL(sys_timer_delete,sys_timer_delete) |
270 | SYSCALL(sys_clock_settime,compat_sys_clock_settime) | 270 | SYSCALL(sys_clock_settime,compat_sys_clock_settime) |
271 | SYSCALL(sys_clock_gettime,compat_sys_clock_gettime) /* 260 */ | 271 | SYSCALL(sys_clock_gettime,compat_sys_clock_gettime) /* 260 */ |
272 | SYSCALL(sys_clock_getres,compat_sys_clock_getres) | 272 | SYSCALL(sys_clock_getres,compat_sys_clock_getres) |
@@ -290,11 +290,11 @@ SYSCALL(sys_add_key,compat_sys_add_key) | |||
290 | SYSCALL(sys_request_key,compat_sys_request_key) | 290 | SYSCALL(sys_request_key,compat_sys_request_key) |
291 | SYSCALL(sys_keyctl,compat_sys_keyctl) /* 280 */ | 291 | SYSCALL(sys_keyctl,compat_sys_keyctl) /* 280 */ |
292 | SYSCALL(sys_waitid,compat_sys_waitid) | 292 | SYSCALL(sys_waitid,compat_sys_waitid) |
293 | SYSCALL(sys_ioprio_set,compat_sys_ioprio_set) | 293 | SYSCALL(sys_ioprio_set,sys_ioprio_set) |
294 | SYSCALL(sys_ioprio_get,compat_sys_ioprio_get) | 294 | SYSCALL(sys_ioprio_get,sys_ioprio_get) |
295 | SYSCALL(sys_inotify_init,sys_inotify_init) | 295 | SYSCALL(sys_inotify_init,sys_inotify_init) |
296 | SYSCALL(sys_inotify_add_watch,compat_sys_inotify_add_watch) /* 285 */ | 296 | SYSCALL(sys_inotify_add_watch,compat_sys_inotify_add_watch) /* 285 */ |
297 | SYSCALL(sys_inotify_rm_watch,compat_sys_inotify_rm_watch) | 297 | SYSCALL(sys_inotify_rm_watch,sys_inotify_rm_watch) |
298 | SYSCALL(sys_migrate_pages,compat_sys_migrate_pages) | 298 | SYSCALL(sys_migrate_pages,compat_sys_migrate_pages) |
299 | SYSCALL(sys_openat,compat_sys_openat) | 299 | SYSCALL(sys_openat,compat_sys_openat) |
300 | SYSCALL(sys_mkdirat,compat_sys_mkdirat) | 300 | SYSCALL(sys_mkdirat,compat_sys_mkdirat) |
@@ -326,31 +326,31 @@ SYSCALL(sys_fallocate,compat_sys_s390_fallocate) | |||
326 | SYSCALL(sys_utimensat,compat_sys_utimensat) /* 315 */ | 326 | SYSCALL(sys_utimensat,compat_sys_utimensat) /* 315 */ |
327 | SYSCALL(sys_signalfd,compat_sys_signalfd) | 327 | SYSCALL(sys_signalfd,compat_sys_signalfd) |
328 | NI_SYSCALL /* 317 old sys_timer_fd */ | 328 | NI_SYSCALL /* 317 old sys_timer_fd */ |
329 | SYSCALL(sys_eventfd,compat_sys_eventfd) | 329 | SYSCALL(sys_eventfd,sys_eventfd) |
330 | SYSCALL(sys_timerfd_create,compat_sys_timerfd_create) | 330 | SYSCALL(sys_timerfd_create,sys_timerfd_create) |
331 | SYSCALL(sys_timerfd_settime,compat_sys_timerfd_settime) /* 320 */ | 331 | SYSCALL(sys_timerfd_settime,compat_sys_timerfd_settime) /* 320 */ |
332 | SYSCALL(sys_timerfd_gettime,compat_sys_timerfd_gettime) | 332 | SYSCALL(sys_timerfd_gettime,compat_sys_timerfd_gettime) |
333 | SYSCALL(sys_signalfd4,compat_sys_signalfd4) | 333 | SYSCALL(sys_signalfd4,compat_sys_signalfd4) |
334 | SYSCALL(sys_eventfd2,compat_sys_eventfd2) | 334 | SYSCALL(sys_eventfd2,sys_eventfd2) |
335 | SYSCALL(sys_inotify_init1,compat_sys_inotify_init1) | 335 | SYSCALL(sys_inotify_init1,sys_inotify_init1) |
336 | SYSCALL(sys_pipe2,compat_sys_pipe2) /* 325 */ | 336 | SYSCALL(sys_pipe2,compat_sys_pipe2) /* 325 */ |
337 | SYSCALL(sys_dup3,compat_sys_dup3) | 337 | SYSCALL(sys_dup3,sys_dup3) |
338 | SYSCALL(sys_epoll_create1,compat_sys_epoll_create1) | 338 | SYSCALL(sys_epoll_create1,sys_epoll_create1) |
339 | SYSCALL(sys_preadv,compat_sys_preadv) | 339 | SYSCALL(sys_preadv,compat_sys_preadv) |
340 | SYSCALL(sys_pwritev,compat_sys_pwritev) | 340 | SYSCALL(sys_pwritev,compat_sys_pwritev) |
341 | SYSCALL(sys_rt_tgsigqueueinfo,compat_sys_rt_tgsigqueueinfo) /* 330 */ | 341 | SYSCALL(sys_rt_tgsigqueueinfo,compat_sys_rt_tgsigqueueinfo) /* 330 */ |
342 | SYSCALL(sys_perf_event_open,compat_sys_perf_event_open) | 342 | SYSCALL(sys_perf_event_open,compat_sys_perf_event_open) |
343 | SYSCALL(sys_fanotify_init,compat_sys_fanotify_init) | 343 | SYSCALL(sys_fanotify_init,sys_fanotify_init) |
344 | SYSCALL(sys_fanotify_mark,compat_sys_fanotify_mark) | 344 | SYSCALL(sys_fanotify_mark,compat_sys_fanotify_mark) |
345 | SYSCALL(sys_prlimit64,compat_sys_prlimit64) | 345 | SYSCALL(sys_prlimit64,compat_sys_prlimit64) |
346 | SYSCALL(sys_name_to_handle_at,compat_sys_name_to_handle_at) /* 335 */ | 346 | SYSCALL(sys_name_to_handle_at,compat_sys_name_to_handle_at) /* 335 */ |
347 | SYSCALL(sys_open_by_handle_at,compat_sys_open_by_handle_at) | 347 | SYSCALL(sys_open_by_handle_at,compat_sys_open_by_handle_at) |
348 | SYSCALL(sys_clock_adjtime,compat_sys_clock_adjtime) | 348 | SYSCALL(sys_clock_adjtime,compat_sys_clock_adjtime) |
349 | SYSCALL(sys_syncfs,compat_sys_syncfs) | 349 | SYSCALL(sys_syncfs,sys_syncfs) |
350 | SYSCALL(sys_setns,compat_sys_setns) | 350 | SYSCALL(sys_setns,sys_setns) |
351 | SYSCALL(sys_process_vm_readv,compat_sys_process_vm_readv) /* 340 */ | 351 | SYSCALL(sys_process_vm_readv,compat_sys_process_vm_readv) /* 340 */ |
352 | SYSCALL(sys_process_vm_writev,compat_sys_process_vm_writev) | 352 | SYSCALL(sys_process_vm_writev,compat_sys_process_vm_writev) |
353 | SYSCALL(sys_s390_runtime_instr,compat_sys_s390_runtime_instr) | 353 | SYSCALL(sys_s390_runtime_instr,sys_s390_runtime_instr) |
354 | SYSCALL(sys_kcmp,compat_sys_kcmp) | 354 | SYSCALL(sys_kcmp,compat_sys_kcmp) |
355 | SYSCALL(sys_finit_module,compat_sys_finit_module) | 355 | SYSCALL(sys_finit_module,compat_sys_finit_module) |
356 | SYSCALL(sys_sched_setattr,compat_sys_sched_setattr) /* 345 */ | 356 | SYSCALL(sys_sched_setattr,compat_sys_sched_setattr) /* 345 */ |
@@ -363,3 +363,22 @@ SYSCALL(sys_bpf,compat_sys_bpf) | |||
363 | SYSCALL(sys_s390_pci_mmio_write,compat_sys_s390_pci_mmio_write) | 363 | SYSCALL(sys_s390_pci_mmio_write,compat_sys_s390_pci_mmio_write) |
364 | SYSCALL(sys_s390_pci_mmio_read,compat_sys_s390_pci_mmio_read) | 364 | SYSCALL(sys_s390_pci_mmio_read,compat_sys_s390_pci_mmio_read) |
365 | SYSCALL(sys_execveat,compat_sys_execveat) | 365 | SYSCALL(sys_execveat,compat_sys_execveat) |
366 | SYSCALL(sys_userfaultfd,sys_userfaultfd) /* 355 */ | ||
367 | SYSCALL(sys_membarrier,sys_membarrier) | ||
368 | SYSCALL(sys_recvmmsg,compat_sys_recvmmsg) | ||
369 | SYSCALL(sys_sendmmsg,compat_sys_sendmmsg) | ||
370 | SYSCALL(sys_socket,sys_socket) | ||
371 | SYSCALL(sys_socketpair,compat_sys_socketpair) /* 360 */ | ||
372 | SYSCALL(sys_bind,sys_bind) | ||
373 | SYSCALL(sys_connect,sys_connect) | ||
374 | SYSCALL(sys_listen,sys_listen) | ||
375 | SYSCALL(sys_accept4,sys_accept4) | ||
376 | SYSCALL(sys_getsockopt,compat_sys_getsockopt) /* 365 */ | ||
377 | SYSCALL(sys_setsockopt,compat_sys_setsockopt) | ||
378 | SYSCALL(sys_getsockname,compat_sys_getsockname) | ||
379 | SYSCALL(sys_getpeername,compat_sys_getpeername) | ||
380 | SYSCALL(sys_sendto,compat_sys_sendto) | ||
381 | SYSCALL(sys_sendmsg,compat_sys_sendmsg) /* 370 */ | ||
382 | SYSCALL(sys_recvfrom,compat_sys_recvfrom) | ||
383 | SYSCALL(sys_recvmsg,compat_sys_recvmsg) | ||
384 | SYSCALL(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, ...); | |||
86 | extern void __iomem *__init efi_ioremap(unsigned long addr, unsigned long size, | 86 | extern 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 | ||
91 | extern struct efi_scratch efi_scratch; | 101 | extern 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 | ||
3705 | static void | 3705 | static void |
@@ -3749,13 +3749,24 @@ static void reset_rsvds_bits_mask_ept(struct kvm_vcpu *vcpu, | |||
3749 | void | 3749 | void |
3750 | reset_shadow_zero_bits_mask(struct kvm_vcpu *vcpu, struct kvm_mmu *context) | 3750 | reset_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 | } |
3757 | EXPORT_SYMBOL_GPL(reset_shadow_zero_bits_mask); | 3762 | EXPORT_SYMBOL_GPL(reset_shadow_zero_bits_mask); |
3758 | 3763 | ||
3764 | static 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 | |||
3764 | reset_tdp_shadow_zero_bits_mask(struct kvm_vcpu *vcpu, | 3775 | reset_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); | |||
202 | static int nested = true; | 202 | static int nested = true; |
203 | module_param(nested, int, S_IRUGO); | 203 | module_param(nested, int, S_IRUGO); |
204 | 204 | ||
205 | static void svm_set_cr0(struct kvm_vcpu *vcpu, unsigned long cr0); | ||
205 | static void svm_flush_tlb(struct kvm_vcpu *vcpu); | 206 | static void svm_flush_tlb(struct kvm_vcpu *vcpu); |
206 | static void svm_complete_interrupts(struct vcpu_svm *svm); | 207 | static 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 | ||
211 | void pcibios_fixup_bus(struct pci_bus *bus) | 211 | void 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 | ||
215 | void pcibios_set_master(struct pci_dev *dev) | 219 | void pcibios_set_master(struct pci_dev *dev) |