Magellan Linux

Annotation of /trunk/kernel-alx/patches-5.4/0234-5.4.135-all-fixes.patch

Parent Directory Parent Directory | Revision Log Revision Log


Revision 3635 - (hide annotations) (download)
Mon Oct 24 12:34:12 2022 UTC (23 months ago) by niro
File size: 77952 byte(s)
-sync kernel patches
1 niro 3635 diff --git a/Makefile b/Makefile
2     index 02ea9378161eb..428ebbd039967 100644
3     --- a/Makefile
4     +++ b/Makefile
5     @@ -1,7 +1,7 @@
6     # SPDX-License-Identifier: GPL-2.0
7     VERSION = 5
8     PATCHLEVEL = 4
9     -SUBLEVEL = 134
10     +SUBLEVEL = 135
11     EXTRAVERSION =
12     NAME = Kleptomaniac Octopus
13    
14     diff --git a/arch/arm/boot/dts/am437x-gp-evm.dts b/arch/arm/boot/dts/am437x-gp-evm.dts
15     index 811c8cae315b5..126965a34841e 100644
16     --- a/arch/arm/boot/dts/am437x-gp-evm.dts
17     +++ b/arch/arm/boot/dts/am437x-gp-evm.dts
18     @@ -829,11 +829,14 @@
19     status = "okay";
20     };
21    
22     +&gpio5_target {
23     + ti,no-reset-on-init;
24     +};
25     +
26     &gpio5 {
27     pinctrl-names = "default";
28     pinctrl-0 = <&display_mux_pins>;
29     status = "okay";
30     - ti,no-reset-on-init;
31    
32     p8 {
33     /*
34     diff --git a/arch/arm/boot/dts/am437x-l4.dtsi b/arch/arm/boot/dts/am437x-l4.dtsi
35     index bbe15775fccd5..6c2949991e297 100644
36     --- a/arch/arm/boot/dts/am437x-l4.dtsi
37     +++ b/arch/arm/boot/dts/am437x-l4.dtsi
38     @@ -2077,7 +2077,7 @@
39     };
40     };
41    
42     - target-module@22000 { /* 0x48322000, ap 116 64.0 */
43     + gpio5_target: target-module@22000 { /* 0x48322000, ap 116 64.0 */
44     compatible = "ti,sysc-omap2", "ti,sysc";
45     ti,hwmods = "gpio6";
46     reg = <0x22000 0x4>,
47     diff --git a/arch/arm/boot/dts/am57xx-cl-som-am57x.dts b/arch/arm/boot/dts/am57xx-cl-som-am57x.dts
48     index 34ca761aeded2..e86d4795e0244 100644
49     --- a/arch/arm/boot/dts/am57xx-cl-som-am57x.dts
50     +++ b/arch/arm/boot/dts/am57xx-cl-som-am57x.dts
51     @@ -611,12 +611,11 @@
52     >;
53     };
54    
55     -&gpio3 {
56     - status = "okay";
57     +&gpio3_target {
58     ti,no-reset-on-init;
59     };
60    
61     -&gpio2 {
62     +&gpio2_target {
63     status = "okay";
64     ti,no-reset-on-init;
65     };
66     diff --git a/arch/arm/boot/dts/bcm-cygnus.dtsi b/arch/arm/boot/dts/bcm-cygnus.dtsi
67     index 1bc45cfd54538..9ca7b4241c972 100644
68     --- a/arch/arm/boot/dts/bcm-cygnus.dtsi
69     +++ b/arch/arm/boot/dts/bcm-cygnus.dtsi
70     @@ -460,7 +460,7 @@
71     status = "disabled";
72     };
73    
74     - nand: nand@18046000 {
75     + nand_controller: nand-controller@18046000 {
76     compatible = "brcm,nand-iproc", "brcm,brcmnand-v6.1";
77     reg = <0x18046000 0x600>, <0xf8105408 0x600>,
78     <0x18046f00 0x20>;
79     diff --git a/arch/arm/boot/dts/bcm-hr2.dtsi b/arch/arm/boot/dts/bcm-hr2.dtsi
80     index dd71ab08136be..30574101471a5 100644
81     --- a/arch/arm/boot/dts/bcm-hr2.dtsi
82     +++ b/arch/arm/boot/dts/bcm-hr2.dtsi
83     @@ -179,7 +179,7 @@
84     status = "disabled";
85     };
86    
87     - nand: nand@26000 {
88     + nand_controller: nand-controller@26000 {
89     compatible = "brcm,nand-iproc", "brcm,brcmnand-v6.1";
90     reg = <0x26000 0x600>,
91     <0x11b408 0x600>,
92     diff --git a/arch/arm/boot/dts/bcm-nsp.dtsi b/arch/arm/boot/dts/bcm-nsp.dtsi
93     index 8615d89fa4690..43ff85d31dc12 100644
94     --- a/arch/arm/boot/dts/bcm-nsp.dtsi
95     +++ b/arch/arm/boot/dts/bcm-nsp.dtsi
96     @@ -267,7 +267,7 @@
97     dma-coherent;
98     };
99    
100     - nand: nand@26000 {
101     + nand_controller: nand-controller@26000 {
102     compatible = "brcm,nand-iproc", "brcm,brcmnand-v6.1";
103     reg = <0x026000 0x600>,
104     <0x11b408 0x600>,
105     diff --git a/arch/arm/boot/dts/bcm63138.dtsi b/arch/arm/boot/dts/bcm63138.dtsi
106     index 9c0325cf9e22e..cca49a2e2d623 100644
107     --- a/arch/arm/boot/dts/bcm63138.dtsi
108     +++ b/arch/arm/boot/dts/bcm63138.dtsi
109     @@ -203,7 +203,7 @@
110     status = "disabled";
111     };
112    
113     - nand: nand@2000 {
114     + nand_controller: nand-controller@2000 {
115     #address-cells = <1>;
116     #size-cells = <0>;
117     compatible = "brcm,nand-bcm63138", "brcm,brcmnand-v7.0", "brcm,brcmnand";
118     diff --git a/arch/arm/boot/dts/bcm7445-bcm97445svmb.dts b/arch/arm/boot/dts/bcm7445-bcm97445svmb.dts
119     index 8313b7cad5427..f92d2cf859726 100644
120     --- a/arch/arm/boot/dts/bcm7445-bcm97445svmb.dts
121     +++ b/arch/arm/boot/dts/bcm7445-bcm97445svmb.dts
122     @@ -14,10 +14,10 @@
123     };
124     };
125    
126     -&nand {
127     +&nand_controller {
128     status = "okay";
129    
130     - nandcs@1 {
131     + nand@1 {
132     compatible = "brcm,nandcs";
133     reg = <1>;
134     nand-ecc-step-size = <512>;
135     diff --git a/arch/arm/boot/dts/bcm7445.dtsi b/arch/arm/boot/dts/bcm7445.dtsi
136     index 58f67c9b830b8..5ac2042515b8f 100644
137     --- a/arch/arm/boot/dts/bcm7445.dtsi
138     +++ b/arch/arm/boot/dts/bcm7445.dtsi
139     @@ -148,7 +148,7 @@
140     reg-names = "aon-ctrl", "aon-sram";
141     };
142    
143     - nand: nand@3e2800 {
144     + nand_controller: nand-controller@3e2800 {
145     status = "disabled";
146     #address-cells = <1>;
147     #size-cells = <0>;
148     diff --git a/arch/arm/boot/dts/bcm911360_entphn.dts b/arch/arm/boot/dts/bcm911360_entphn.dts
149     index b2d323f4a5aba..a76c74b44bbaf 100644
150     --- a/arch/arm/boot/dts/bcm911360_entphn.dts
151     +++ b/arch/arm/boot/dts/bcm911360_entphn.dts
152     @@ -82,8 +82,8 @@
153     status = "okay";
154     };
155    
156     -&nand {
157     - nandcs@1 {
158     +&nand_controller {
159     + nand@1 {
160     compatible = "brcm,nandcs";
161     reg = <0>;
162     nand-on-flash-bbt;
163     diff --git a/arch/arm/boot/dts/bcm958300k.dts b/arch/arm/boot/dts/bcm958300k.dts
164     index b4a1392bd5a6c..dda3e11b711f6 100644
165     --- a/arch/arm/boot/dts/bcm958300k.dts
166     +++ b/arch/arm/boot/dts/bcm958300k.dts
167     @@ -60,8 +60,8 @@
168     status = "okay";
169     };
170    
171     -&nand {
172     - nandcs@1 {
173     +&nand_controller {
174     + nand@1 {
175     compatible = "brcm,nandcs";
176     reg = <0>;
177     nand-on-flash-bbt;
178     diff --git a/arch/arm/boot/dts/bcm958305k.dts b/arch/arm/boot/dts/bcm958305k.dts
179     index 3378683321d3c..ea3c6b88b313b 100644
180     --- a/arch/arm/boot/dts/bcm958305k.dts
181     +++ b/arch/arm/boot/dts/bcm958305k.dts
182     @@ -68,8 +68,8 @@
183     status = "okay";
184     };
185    
186     -&nand {
187     - nandcs@1 {
188     +&nand_controller {
189     + nand@1 {
190     compatible = "brcm,nandcs";
191     reg = <0>;
192     nand-on-flash-bbt;
193     diff --git a/arch/arm/boot/dts/bcm958522er.dts b/arch/arm/boot/dts/bcm958522er.dts
194     index 8c388eb8a08f8..e9b2d3b37ca45 100644
195     --- a/arch/arm/boot/dts/bcm958522er.dts
196     +++ b/arch/arm/boot/dts/bcm958522er.dts
197     @@ -70,8 +70,8 @@
198     status = "okay";
199     };
200    
201     -&nand {
202     - nandcs@0 {
203     +&nand_controller {
204     + nand@0 {
205     compatible = "brcm,nandcs";
206     reg = <0>;
207     nand-on-flash-bbt;
208     diff --git a/arch/arm/boot/dts/bcm958525er.dts b/arch/arm/boot/dts/bcm958525er.dts
209     index c339771bb22e0..dfe145a3d05a2 100644
210     --- a/arch/arm/boot/dts/bcm958525er.dts
211     +++ b/arch/arm/boot/dts/bcm958525er.dts
212     @@ -70,8 +70,8 @@
213     status = "okay";
214     };
215    
216     -&nand {
217     - nandcs@0 {
218     +&nand_controller {
219     + nand@0 {
220     compatible = "brcm,nandcs";
221     reg = <0>;
222     nand-on-flash-bbt;
223     diff --git a/arch/arm/boot/dts/bcm958525xmc.dts b/arch/arm/boot/dts/bcm958525xmc.dts
224     index 1c72ec8288de4..17e6a683e678a 100644
225     --- a/arch/arm/boot/dts/bcm958525xmc.dts
226     +++ b/arch/arm/boot/dts/bcm958525xmc.dts
227     @@ -86,8 +86,8 @@
228     };
229     };
230    
231     -&nand {
232     - nandcs@0 {
233     +&nand_controller {
234     + nand@0 {
235     compatible = "brcm,nandcs";
236     reg = <0>;
237     nand-on-flash-bbt;
238     diff --git a/arch/arm/boot/dts/bcm958622hr.dts b/arch/arm/boot/dts/bcm958622hr.dts
239     index 96a021cebd97b..1d1bc8dbb3425 100644
240     --- a/arch/arm/boot/dts/bcm958622hr.dts
241     +++ b/arch/arm/boot/dts/bcm958622hr.dts
242     @@ -74,8 +74,8 @@
243     status = "okay";
244     };
245    
246     -&nand {
247     - nandcs@0 {
248     +&nand_controller {
249     + nand@0 {
250     compatible = "brcm,nandcs";
251     reg = <0>;
252     nand-on-flash-bbt;
253     diff --git a/arch/arm/boot/dts/bcm958623hr.dts b/arch/arm/boot/dts/bcm958623hr.dts
254     index b2c7f21d471e6..d5d9a273bb6d1 100644
255     --- a/arch/arm/boot/dts/bcm958623hr.dts
256     +++ b/arch/arm/boot/dts/bcm958623hr.dts
257     @@ -74,8 +74,8 @@
258     status = "okay";
259     };
260    
261     -&nand {
262     - nandcs@0 {
263     +&nand_controller {
264     + nand@0 {
265     compatible = "brcm,nandcs";
266     reg = <0>;
267     nand-on-flash-bbt;
268     diff --git a/arch/arm/boot/dts/bcm958625hr.dts b/arch/arm/boot/dts/bcm958625hr.dts
269     index a2c9de35ddfbd..670363bca9173 100644
270     --- a/arch/arm/boot/dts/bcm958625hr.dts
271     +++ b/arch/arm/boot/dts/bcm958625hr.dts
272     @@ -90,8 +90,8 @@
273     status = "okay";
274     };
275    
276     -&nand {
277     - nandcs@0 {
278     +&nand_controller {
279     + nand@0 {
280     compatible = "brcm,nandcs";
281     reg = <0>;
282     nand-on-flash-bbt;
283     diff --git a/arch/arm/boot/dts/bcm958625k.dts b/arch/arm/boot/dts/bcm958625k.dts
284     index 3fcca12d83c2d..f15cd38c849e4 100644
285     --- a/arch/arm/boot/dts/bcm958625k.dts
286     +++ b/arch/arm/boot/dts/bcm958625k.dts
287     @@ -64,8 +64,8 @@
288     status = "okay";
289     };
290    
291     -&nand {
292     - nandcs@0 {
293     +&nand_controller {
294     + nand@0 {
295     compatible = "brcm,nandcs";
296     reg = <0>;
297     nand-on-flash-bbt;
298     diff --git a/arch/arm/boot/dts/bcm963138dvt.dts b/arch/arm/boot/dts/bcm963138dvt.dts
299     index 5b177274f1826..df5c8ab906273 100644
300     --- a/arch/arm/boot/dts/bcm963138dvt.dts
301     +++ b/arch/arm/boot/dts/bcm963138dvt.dts
302     @@ -31,10 +31,10 @@
303     status = "okay";
304     };
305    
306     -&nand {
307     +&nand_controller {
308     status = "okay";
309    
310     - nandcs@0 {
311     + nand@0 {
312     compatible = "brcm,nandcs";
313     reg = <0>;
314     nand-ecc-strength = <4>;
315     diff --git a/arch/arm/boot/dts/bcm988312hr.dts b/arch/arm/boot/dts/bcm988312hr.dts
316     index edd0f630e0251..16b212cc8a2a0 100644
317     --- a/arch/arm/boot/dts/bcm988312hr.dts
318     +++ b/arch/arm/boot/dts/bcm988312hr.dts
319     @@ -74,8 +74,8 @@
320     status = "okay";
321     };
322    
323     -&nand {
324     - nandcs@0 {
325     +&nand_controller {
326     + nand@0 {
327     compatible = "brcm,nandcs";
328     reg = <0>;
329     nand-on-flash-bbt;
330     diff --git a/arch/arm/boot/dts/dra7-l4.dtsi b/arch/arm/boot/dts/dra7-l4.dtsi
331     index bc702579488b9..3f845a8531f40 100644
332     --- a/arch/arm/boot/dts/dra7-l4.dtsi
333     +++ b/arch/arm/boot/dts/dra7-l4.dtsi
334     @@ -1326,7 +1326,7 @@
335     };
336     };
337    
338     - target-module@55000 { /* 0x48055000, ap 13 0e.0 */
339     + gpio2_target: target-module@55000 { /* 0x48055000, ap 13 0e.0 */
340     compatible = "ti,sysc-omap2", "ti,sysc";
341     reg = <0x55000 0x4>,
342     <0x55010 0x4>,
343     @@ -1359,7 +1359,7 @@
344     };
345     };
346    
347     - target-module@57000 { /* 0x48057000, ap 15 06.0 */
348     + gpio3_target: target-module@57000 { /* 0x48057000, ap 15 06.0 */
349     compatible = "ti,sysc-omap2", "ti,sysc";
350     reg = <0x57000 0x4>,
351     <0x57010 0x4>,
352     diff --git a/arch/arm/boot/dts/gemini-dlink-dns-313.dts b/arch/arm/boot/dts/gemini-dlink-dns-313.dts
353     index 360642a02a488..d0bbf2b970dfc 100644
354     --- a/arch/arm/boot/dts/gemini-dlink-dns-313.dts
355     +++ b/arch/arm/boot/dts/gemini-dlink-dns-313.dts
356     @@ -140,7 +140,7 @@
357     };
358     };
359    
360     - mdio0: ethernet-phy {
361     + mdio0: mdio {
362     compatible = "virtual,mdio-gpio";
363     /* Uses MDC and MDIO */
364     gpios = <&gpio0 22 GPIO_ACTIVE_HIGH>, /* MDC */
365     diff --git a/arch/arm/boot/dts/gemini-nas4220b.dts b/arch/arm/boot/dts/gemini-nas4220b.dts
366     index 521714f38eeda..e1020e07e1366 100644
367     --- a/arch/arm/boot/dts/gemini-nas4220b.dts
368     +++ b/arch/arm/boot/dts/gemini-nas4220b.dts
369     @@ -62,7 +62,7 @@
370     };
371     };
372    
373     - mdio0: ethernet-phy {
374     + mdio0: mdio {
375     compatible = "virtual,mdio-gpio";
376     gpios = <&gpio0 22 GPIO_ACTIVE_HIGH>, /* MDC */
377     <&gpio0 21 GPIO_ACTIVE_HIGH>; /* MDIO */
378     diff --git a/arch/arm/boot/dts/gemini-rut1xx.dts b/arch/arm/boot/dts/gemini-rut1xx.dts
379     index 08091d2a64e15..0ebda4efd9d0f 100644
380     --- a/arch/arm/boot/dts/gemini-rut1xx.dts
381     +++ b/arch/arm/boot/dts/gemini-rut1xx.dts
382     @@ -56,7 +56,7 @@
383     };
384     };
385    
386     - mdio0: ethernet-phy {
387     + mdio0: mdio {
388     compatible = "virtual,mdio-gpio";
389     gpios = <&gpio0 22 GPIO_ACTIVE_HIGH>, /* MDC */
390     <&gpio0 21 GPIO_ACTIVE_HIGH>; /* MDIO */
391     diff --git a/arch/arm/boot/dts/gemini-wbd111.dts b/arch/arm/boot/dts/gemini-wbd111.dts
392     index 3a2761dd460f9..5602ba8f30f2f 100644
393     --- a/arch/arm/boot/dts/gemini-wbd111.dts
394     +++ b/arch/arm/boot/dts/gemini-wbd111.dts
395     @@ -68,7 +68,7 @@
396     };
397     };
398    
399     - mdio0: ethernet-phy {
400     + mdio0: mdio {
401     compatible = "virtual,mdio-gpio";
402     gpios = <&gpio0 22 GPIO_ACTIVE_HIGH>, /* MDC */
403     <&gpio0 21 GPIO_ACTIVE_HIGH>; /* MDIO */
404     diff --git a/arch/arm/boot/dts/gemini-wbd222.dts b/arch/arm/boot/dts/gemini-wbd222.dts
405     index 52b4dbc0c0723..a4a260c36d752 100644
406     --- a/arch/arm/boot/dts/gemini-wbd222.dts
407     +++ b/arch/arm/boot/dts/gemini-wbd222.dts
408     @@ -67,7 +67,7 @@
409     };
410     };
411    
412     - mdio0: ethernet-phy {
413     + mdio0: mdio {
414     compatible = "virtual,mdio-gpio";
415     gpios = <&gpio0 22 GPIO_ACTIVE_HIGH>, /* MDC */
416     <&gpio0 21 GPIO_ACTIVE_HIGH>; /* MDIO */
417     diff --git a/arch/arm/boot/dts/gemini.dtsi b/arch/arm/boot/dts/gemini.dtsi
418     index 8cf67b11751f7..ef4f1c5323bd7 100644
419     --- a/arch/arm/boot/dts/gemini.dtsi
420     +++ b/arch/arm/boot/dts/gemini.dtsi
421     @@ -286,6 +286,7 @@
422     clock-names = "PCLK", "PCICLK";
423     pinctrl-names = "default";
424     pinctrl-0 = <&pci_default_pins>;
425     + device_type = "pci";
426     #address-cells = <3>;
427     #size-cells = <2>;
428     #interrupt-cells = <1>;
429     diff --git a/arch/arm/boot/dts/imx6qdl-phytec-pfla02.dtsi b/arch/arm/boot/dts/imx6qdl-phytec-pfla02.dtsi
430     index 6678b97b10076..3617089dbe36d 100644
431     --- a/arch/arm/boot/dts/imx6qdl-phytec-pfla02.dtsi
432     +++ b/arch/arm/boot/dts/imx6qdl-phytec-pfla02.dtsi
433     @@ -315,8 +315,8 @@
434     fsl,pins = <
435     MX6QDL_PAD_EIM_D24__UART3_TX_DATA 0x1b0b1
436     MX6QDL_PAD_EIM_D25__UART3_RX_DATA 0x1b0b1
437     - MX6QDL_PAD_EIM_D30__UART3_RTS_B 0x1b0b1
438     - MX6QDL_PAD_EIM_D31__UART3_CTS_B 0x1b0b1
439     + MX6QDL_PAD_EIM_D31__UART3_RTS_B 0x1b0b1
440     + MX6QDL_PAD_EIM_D30__UART3_CTS_B 0x1b0b1
441     >;
442     };
443    
444     @@ -403,6 +403,7 @@
445     &uart3 {
446     pinctrl-names = "default";
447     pinctrl-0 = <&pinctrl_uart3>;
448     + uart-has-rtscts;
449     status = "disabled";
450     };
451    
452     diff --git a/arch/arm/boot/dts/rk3036-kylin.dts b/arch/arm/boot/dts/rk3036-kylin.dts
453     index fb3cf005cc902..2ef47ebeb0cbe 100644
454     --- a/arch/arm/boot/dts/rk3036-kylin.dts
455     +++ b/arch/arm/boot/dts/rk3036-kylin.dts
456     @@ -390,7 +390,7 @@
457     };
458     };
459    
460     - sleep {
461     + suspend {
462     global_pwroff: global-pwroff {
463     rockchip,pins = <2 RK_PA7 1 &pcfg_pull_none>;
464     };
465     diff --git a/arch/arm/boot/dts/rk3066a.dtsi b/arch/arm/boot/dts/rk3066a.dtsi
466     index 3d1b02f45ffd6..1ac9deb3bd39a 100644
467     --- a/arch/arm/boot/dts/rk3066a.dtsi
468     +++ b/arch/arm/boot/dts/rk3066a.dtsi
469     @@ -761,7 +761,7 @@
470     #address-cells = <1>;
471     #size-cells = <0>;
472    
473     - pd_vio@RK3066_PD_VIO {
474     + power-domain@RK3066_PD_VIO {
475     reg = <RK3066_PD_VIO>;
476     clocks = <&cru ACLK_LCDC0>,
477     <&cru ACLK_LCDC1>,
478     @@ -788,7 +788,7 @@
479     <&qos_rga>;
480     };
481    
482     - pd_video@RK3066_PD_VIDEO {
483     + power-domain@RK3066_PD_VIDEO {
484     reg = <RK3066_PD_VIDEO>;
485     clocks = <&cru ACLK_VDPU>,
486     <&cru ACLK_VEPU>,
487     @@ -797,7 +797,7 @@
488     pm_qos = <&qos_vpu>;
489     };
490    
491     - pd_gpu@RK3066_PD_GPU {
492     + power-domain@RK3066_PD_GPU {
493     reg = <RK3066_PD_GPU>;
494     clocks = <&cru ACLK_GPU>;
495     pm_qos = <&qos_gpu>;
496     diff --git a/arch/arm/boot/dts/rk3188.dtsi b/arch/arm/boot/dts/rk3188.dtsi
497     index 10ede65d90f38..ee8a24a0e3cb1 100644
498     --- a/arch/arm/boot/dts/rk3188.dtsi
499     +++ b/arch/arm/boot/dts/rk3188.dtsi
500     @@ -150,16 +150,16 @@
501     compatible = "rockchip,rk3188-timer", "rockchip,rk3288-timer";
502     reg = <0x2000e000 0x20>;
503     interrupts = <GIC_SPI 46 IRQ_TYPE_LEVEL_HIGH>;
504     - clocks = <&cru SCLK_TIMER3>, <&cru PCLK_TIMER3>;
505     - clock-names = "timer", "pclk";
506     + clocks = <&cru PCLK_TIMER3>, <&cru SCLK_TIMER3>;
507     + clock-names = "pclk", "timer";
508     };
509    
510     timer6: timer@200380a0 {
511     compatible = "rockchip,rk3188-timer", "rockchip,rk3288-timer";
512     reg = <0x200380a0 0x20>;
513     interrupts = <GIC_SPI 64 IRQ_TYPE_LEVEL_HIGH>;
514     - clocks = <&cru SCLK_TIMER6>, <&cru PCLK_TIMER0>;
515     - clock-names = "timer", "pclk";
516     + clocks = <&cru PCLK_TIMER0>, <&cru SCLK_TIMER6>;
517     + clock-names = "pclk", "timer";
518     };
519    
520     i2s0: i2s@1011a000 {
521     @@ -701,7 +701,7 @@
522     #address-cells = <1>;
523     #size-cells = <0>;
524    
525     - pd_vio@RK3188_PD_VIO {
526     + power-domain@RK3188_PD_VIO {
527     reg = <RK3188_PD_VIO>;
528     clocks = <&cru ACLK_LCDC0>,
529     <&cru ACLK_LCDC1>,
530     @@ -723,7 +723,7 @@
531     <&qos_rga>;
532     };
533    
534     - pd_video@RK3188_PD_VIDEO {
535     + power-domain@RK3188_PD_VIDEO {
536     reg = <RK3188_PD_VIDEO>;
537     clocks = <&cru ACLK_VDPU>,
538     <&cru ACLK_VEPU>,
539     @@ -732,7 +732,7 @@
540     pm_qos = <&qos_vpu>;
541     };
542    
543     - pd_gpu@RK3188_PD_GPU {
544     + power-domain@RK3188_PD_GPU {
545     reg = <RK3188_PD_GPU>;
546     clocks = <&cru ACLK_GPU>;
547     pm_qos = <&qos_gpu>;
548     diff --git a/arch/arm/boot/dts/rk322x.dtsi b/arch/arm/boot/dts/rk322x.dtsi
549     index 6bb78b19c5554..140e22d74dcfb 100644
550     --- a/arch/arm/boot/dts/rk322x.dtsi
551     +++ b/arch/arm/boot/dts/rk322x.dtsi
552     @@ -570,10 +570,9 @@
553     compatible = "rockchip,iommu";
554     reg = <0x20020800 0x100>;
555     interrupts = <GIC_SPI 10 IRQ_TYPE_LEVEL_HIGH>;
556     - interrupt-names = "vpu_mmu";
557     clocks = <&cru ACLK_VPU>, <&cru HCLK_VPU>;
558     clock-names = "aclk", "iface";
559     - iommu-cells = <0>;
560     + #iommu-cells = <0>;
561     status = "disabled";
562     };
563    
564     @@ -581,10 +580,9 @@
565     compatible = "rockchip,iommu";
566     reg = <0x20030480 0x40>, <0x200304c0 0x40>;
567     interrupts = <GIC_SPI 8 IRQ_TYPE_LEVEL_HIGH>;
568     - interrupt-names = "vdec_mmu";
569     clocks = <&cru ACLK_RKVDEC>, <&cru HCLK_RKVDEC>;
570     clock-names = "aclk", "iface";
571     - iommu-cells = <0>;
572     + #iommu-cells = <0>;
573     status = "disabled";
574     };
575    
576     @@ -614,7 +612,6 @@
577     compatible = "rockchip,iommu";
578     reg = <0x20053f00 0x100>;
579     interrupts = <GIC_SPI 32 IRQ_TYPE_LEVEL_HIGH>;
580     - interrupt-names = "vop_mmu";
581     clocks = <&cru ACLK_VOP>, <&cru HCLK_VOP>;
582     clock-names = "aclk", "iface";
583     #iommu-cells = <0>;
584     @@ -625,10 +622,9 @@
585     compatible = "rockchip,iommu";
586     reg = <0x20070800 0x100>;
587     interrupts = <GIC_SPI 31 IRQ_TYPE_LEVEL_HIGH>;
588     - interrupt-names = "iep_mmu";
589     clocks = <&cru ACLK_IEP>, <&cru HCLK_IEP>;
590     clock-names = "aclk", "iface";
591     - iommu-cells = <0>;
592     + #iommu-cells = <0>;
593     status = "disabled";
594     };
595    
596     diff --git a/arch/arm/boot/dts/rk3288-rock2-som.dtsi b/arch/arm/boot/dts/rk3288-rock2-som.dtsi
597     index 9f9e2bfd1295e..7b79a21f9bbb2 100644
598     --- a/arch/arm/boot/dts/rk3288-rock2-som.dtsi
599     +++ b/arch/arm/boot/dts/rk3288-rock2-som.dtsi
600     @@ -218,7 +218,7 @@
601     flash0-supply = <&vcc_flash>;
602     flash1-supply = <&vccio_pmu>;
603     gpio30-supply = <&vccio_pmu>;
604     - gpio1830 = <&vcc_io>;
605     + gpio1830-supply = <&vcc_io>;
606     lcdc-supply = <&vcc_io>;
607     sdcard-supply = <&vccio_sd>;
608     wifi-supply = <&vcc_18>;
609     diff --git a/arch/arm/boot/dts/rk3288-vyasa.dts b/arch/arm/boot/dts/rk3288-vyasa.dts
610     index ba06e9f97ddce..acfb7dc2df560 100644
611     --- a/arch/arm/boot/dts/rk3288-vyasa.dts
612     +++ b/arch/arm/boot/dts/rk3288-vyasa.dts
613     @@ -357,10 +357,10 @@
614     audio-supply = <&vcc_18>;
615     bb-supply = <&vcc_io>;
616     dvp-supply = <&vcc_io>;
617     - flash0-suuply = <&vcc_18>;
618     + flash0-supply = <&vcc_18>;
619     flash1-supply = <&vcc_lan>;
620     gpio30-supply = <&vcc_io>;
621     - gpio1830 = <&vcc_io>;
622     + gpio1830-supply = <&vcc_io>;
623     lcdc-supply = <&vcc_io>;
624     sdcard-supply = <&vccio_sd>;
625     wifi-supply = <&vcc_18>;
626     diff --git a/arch/arm/boot/dts/rk3288.dtsi b/arch/arm/boot/dts/rk3288.dtsi
627     index cc893e154fe5a..658ceb96d8bd1 100644
628     --- a/arch/arm/boot/dts/rk3288.dtsi
629     +++ b/arch/arm/boot/dts/rk3288.dtsi
630     @@ -238,8 +238,8 @@
631     compatible = "rockchip,rk3288-timer";
632     reg = <0x0 0xff810000 0x0 0x20>;
633     interrupts = <GIC_SPI 72 IRQ_TYPE_LEVEL_HIGH>;
634     - clocks = <&xin24m>, <&cru PCLK_TIMER>;
635     - clock-names = "timer", "pclk";
636     + clocks = <&cru PCLK_TIMER>, <&xin24m>;
637     + clock-names = "pclk", "timer";
638     };
639    
640     display-subsystem {
641     @@ -771,7 +771,7 @@
642     * *_HDMI HDMI
643     * *_MIPI_* MIPI
644     */
645     - pd_vio@RK3288_PD_VIO {
646     + power-domain@RK3288_PD_VIO {
647     reg = <RK3288_PD_VIO>;
648     clocks = <&cru ACLK_IEP>,
649     <&cru ACLK_ISP>,
650     @@ -813,7 +813,7 @@
651     * Note: The following 3 are HEVC(H.265) clocks,
652     * and on the ACLK_HEVC_NIU (NOC).
653     */
654     - pd_hevc@RK3288_PD_HEVC {
655     + power-domain@RK3288_PD_HEVC {
656     reg = <RK3288_PD_HEVC>;
657     clocks = <&cru ACLK_HEVC>,
658     <&cru SCLK_HEVC_CABAC>,
659     @@ -827,7 +827,7 @@
660     * (video endecoder & decoder) clocks that on the
661     * ACLK_VCODEC_NIU and HCLK_VCODEC_NIU (NOC).
662     */
663     - pd_video@RK3288_PD_VIDEO {
664     + power-domain@RK3288_PD_VIDEO {
665     reg = <RK3288_PD_VIDEO>;
666     clocks = <&cru ACLK_VCODEC>,
667     <&cru HCLK_VCODEC>;
668     @@ -838,7 +838,7 @@
669     * Note: ACLK_GPU is the GPU clock,
670     * and on the ACLK_GPU_NIU (NOC).
671     */
672     - pd_gpu@RK3288_PD_GPU {
673     + power-domain@RK3288_PD_GPU {
674     reg = <RK3288_PD_GPU>;
675     clocks = <&cru ACLK_GPU>;
676     pm_qos = <&qos_gpu_r>,
677     @@ -1575,7 +1575,7 @@
678     drive-strength = <12>;
679     };
680    
681     - sleep {
682     + suspend {
683     global_pwroff: global-pwroff {
684     rockchip,pins = <0 RK_PA0 1 &pcfg_pull_none>;
685     };
686     diff --git a/arch/arm/boot/dts/stm32429i-eval.dts b/arch/arm/boot/dts/stm32429i-eval.dts
687     index ba08624c6237d..4f45e71a1e4d3 100644
688     --- a/arch/arm/boot/dts/stm32429i-eval.dts
689     +++ b/arch/arm/boot/dts/stm32429i-eval.dts
690     @@ -112,17 +112,15 @@
691     };
692     };
693    
694     - gpio_keys {
695     + gpio-keys {
696     compatible = "gpio-keys";
697     - #address-cells = <1>;
698     - #size-cells = <0>;
699     autorepeat;
700     - button@0 {
701     + button-0 {
702     label = "Wake up";
703     linux,code = <KEY_WAKEUP>;
704     gpios = <&gpioa 0 0>;
705     };
706     - button@1 {
707     + button-1 {
708     label = "Tamper";
709     linux,code = <KEY_RESTART>;
710     gpios = <&gpioc 13 0>;
711     diff --git a/arch/arm/boot/dts/stm32746g-eval.dts b/arch/arm/boot/dts/stm32746g-eval.dts
712     index 2b1664884ae7b..8d64b52838c06 100644
713     --- a/arch/arm/boot/dts/stm32746g-eval.dts
714     +++ b/arch/arm/boot/dts/stm32746g-eval.dts
715     @@ -81,12 +81,10 @@
716     };
717     };
718    
719     - gpio_keys {
720     + gpio-keys {
721     compatible = "gpio-keys";
722     - #address-cells = <1>;
723     - #size-cells = <0>;
724     autorepeat;
725     - button@0 {
726     + button-0 {
727     label = "Wake up";
728     linux,code = <KEY_WAKEUP>;
729     gpios = <&gpioc 13 0>;
730     diff --git a/arch/arm/boot/dts/stm32f429-disco.dts b/arch/arm/boot/dts/stm32f429-disco.dts
731     index e19d0fe7dbdac..49ae2d72afc95 100644
732     --- a/arch/arm/boot/dts/stm32f429-disco.dts
733     +++ b/arch/arm/boot/dts/stm32f429-disco.dts
734     @@ -79,12 +79,10 @@
735     };
736     };
737    
738     - gpio_keys {
739     + gpio-keys {
740     compatible = "gpio-keys";
741     - #address-cells = <1>;
742     - #size-cells = <0>;
743     autorepeat;
744     - button@0 {
745     + button-0 {
746     label = "User";
747     linux,code = <KEY_HOME>;
748     gpios = <&gpioa 0 0>;
749     diff --git a/arch/arm/boot/dts/stm32f429.dtsi b/arch/arm/boot/dts/stm32f429.dtsi
750     index 5c8a826b31958..dd41342ef0175 100644
751     --- a/arch/arm/boot/dts/stm32f429.dtsi
752     +++ b/arch/arm/boot/dts/stm32f429.dtsi
753     @@ -283,8 +283,6 @@
754     };
755    
756     timers13: timers@40001c00 {
757     - #address-cells = <1>;
758     - #size-cells = <0>;
759     compatible = "st,stm32-timers";
760     reg = <0x40001C00 0x400>;
761     clocks = <&rcc 0 STM32F4_APB1_CLOCK(TIM13)>;
762     @@ -299,8 +297,6 @@
763     };
764    
765     timers14: timers@40002000 {
766     - #address-cells = <1>;
767     - #size-cells = <0>;
768     compatible = "st,stm32-timers";
769     reg = <0x40002000 0x400>;
770     clocks = <&rcc 0 STM32F4_APB1_CLOCK(TIM14)>;
771     @@ -623,8 +619,6 @@
772     };
773    
774     timers10: timers@40014400 {
775     - #address-cells = <1>;
776     - #size-cells = <0>;
777     compatible = "st,stm32-timers";
778     reg = <0x40014400 0x400>;
779     clocks = <&rcc 0 STM32F4_APB2_CLOCK(TIM10)>;
780     @@ -639,8 +633,6 @@
781     };
782    
783     timers11: timers@40014800 {
784     - #address-cells = <1>;
785     - #size-cells = <0>;
786     compatible = "st,stm32-timers";
787     reg = <0x40014800 0x400>;
788     clocks = <&rcc 0 STM32F4_APB2_CLOCK(TIM11)>;
789     @@ -696,7 +688,7 @@
790     status = "disabled";
791     };
792    
793     - rcc: rcc@40023810 {
794     + rcc: rcc@40023800 {
795     #reset-cells = <1>;
796     #clock-cells = <2>;
797     compatible = "st,stm32f42xx-rcc", "st,stm32-rcc";
798     diff --git a/arch/arm/boot/dts/stm32f469-disco.dts b/arch/arm/boot/dts/stm32f469-disco.dts
799     index c6dc6d1a051b0..0ce450123dda6 100644
800     --- a/arch/arm/boot/dts/stm32f469-disco.dts
801     +++ b/arch/arm/boot/dts/stm32f469-disco.dts
802     @@ -104,12 +104,10 @@
803     };
804     };
805    
806     - gpio_keys {
807     + gpio-keys {
808     compatible = "gpio-keys";
809     - #address-cells = <1>;
810     - #size-cells = <0>;
811     autorepeat;
812     - button@0 {
813     + button-0 {
814     label = "User";
815     linux,code = <KEY_WAKEUP>;
816     gpios = <&gpioa 0 GPIO_ACTIVE_HIGH>;
817     diff --git a/arch/arm/boot/dts/stm32f746.dtsi b/arch/arm/boot/dts/stm32f746.dtsi
818     index d26f93f8b9c2a..60680fcf8eb3d 100644
819     --- a/arch/arm/boot/dts/stm32f746.dtsi
820     +++ b/arch/arm/boot/dts/stm32f746.dtsi
821     @@ -265,8 +265,6 @@
822     };
823    
824     timers13: timers@40001c00 {
825     - #address-cells = <1>;
826     - #size-cells = <0>;
827     compatible = "st,stm32-timers";
828     reg = <0x40001C00 0x400>;
829     clocks = <&rcc 0 STM32F7_APB1_CLOCK(TIM13)>;
830     @@ -281,8 +279,6 @@
831     };
832    
833     timers14: timers@40002000 {
834     - #address-cells = <1>;
835     - #size-cells = <0>;
836     compatible = "st,stm32-timers";
837     reg = <0x40002000 0x400>;
838     clocks = <&rcc 0 STM32F7_APB1_CLOCK(TIM14)>;
839     @@ -366,9 +362,9 @@
840     status = "disabled";
841     };
842    
843     - i2c3: i2c@40005C00 {
844     + i2c3: i2c@40005c00 {
845     compatible = "st,stm32f7-i2c";
846     - reg = <0x40005C00 0x400>;
847     + reg = <0x40005c00 0x400>;
848     interrupts = <72>,
849     <73>;
850     resets = <&rcc STM32F7_APB1_RESET(I2C3)>;
851     @@ -533,8 +529,6 @@
852     };
853    
854     timers10: timers@40014400 {
855     - #address-cells = <1>;
856     - #size-cells = <0>;
857     compatible = "st,stm32-timers";
858     reg = <0x40014400 0x400>;
859     clocks = <&rcc 0 STM32F7_APB2_CLOCK(TIM10)>;
860     @@ -549,8 +543,6 @@
861     };
862    
863     timers11: timers@40014800 {
864     - #address-cells = <1>;
865     - #size-cells = <0>;
866     compatible = "st,stm32-timers";
867     reg = <0x40014800 0x400>;
868     clocks = <&rcc 0 STM32F7_APB2_CLOCK(TIM11)>;
869     diff --git a/arch/arm/boot/dts/stm32f769-disco.dts b/arch/arm/boot/dts/stm32f769-disco.dts
870     index 6f1d0ac8c31c7..a4284b761e7fe 100644
871     --- a/arch/arm/boot/dts/stm32f769-disco.dts
872     +++ b/arch/arm/boot/dts/stm32f769-disco.dts
873     @@ -75,12 +75,10 @@
874     };
875     };
876    
877     - gpio_keys {
878     + gpio-keys {
879     compatible = "gpio-keys";
880     - #address-cells = <1>;
881     - #size-cells = <0>;
882     autorepeat;
883     - button@0 {
884     + button-0 {
885     label = "User";
886     linux,code = <KEY_HOME>;
887     gpios = <&gpioa 0 GPIO_ACTIVE_HIGH>;
888     diff --git a/arch/arm/boot/dts/stm32h743.dtsi b/arch/arm/boot/dts/stm32h743.dtsi
889     index c065266ee3776..82a234c64b8b9 100644
890     --- a/arch/arm/boot/dts/stm32h743.dtsi
891     +++ b/arch/arm/boot/dts/stm32h743.dtsi
892     @@ -438,8 +438,6 @@
893     };
894    
895     lptimer4: timer@58002c00 {
896     - #address-cells = <1>;
897     - #size-cells = <0>;
898     compatible = "st,stm32-lptimer";
899     reg = <0x58002c00 0x400>;
900     clocks = <&rcc LPTIM4_CK>;
901     @@ -454,8 +452,6 @@
902     };
903    
904     lptimer5: timer@58003000 {
905     - #address-cells = <1>;
906     - #size-cells = <0>;
907     compatible = "st,stm32-lptimer";
908     reg = <0x58003000 0x400>;
909     clocks = <&rcc LPTIM5_CK>;
910     diff --git a/arch/arm/boot/dts/stm32mp157c.dtsi b/arch/arm/boot/dts/stm32mp157c.dtsi
911     index f98e0370c0bce..eca469a64a977 100644
912     --- a/arch/arm/boot/dts/stm32mp157c.dtsi
913     +++ b/arch/arm/boot/dts/stm32mp157c.dtsi
914     @@ -1311,12 +1311,6 @@
915     status = "disabled";
916     };
917    
918     - stmmac_axi_config_0: stmmac-axi-config {
919     - snps,wr_osr_lmt = <0x7>;
920     - snps,rd_osr_lmt = <0x7>;
921     - snps,blen = <0 0 0 0 16 8 4>;
922     - };
923     -
924     ethernet0: ethernet@5800a000 {
925     compatible = "st,stm32mp1-dwmac", "snps,dwmac-4.20a";
926     reg = <0x5800a000 0x2000>;
927     @@ -1339,6 +1333,12 @@
928     snps,axi-config = <&stmmac_axi_config_0>;
929     snps,tso;
930     status = "disabled";
931     +
932     + stmmac_axi_config_0: stmmac-axi-config {
933     + snps,wr_osr_lmt = <0x7>;
934     + snps,rd_osr_lmt = <0x7>;
935     + snps,blen = <0 0 0 0 16 8 4>;
936     + };
937     };
938    
939     usbh_ohci: usbh-ohci@5800c000 {
940     diff --git a/arch/arm/mach-imx/suspend-imx53.S b/arch/arm/mach-imx/suspend-imx53.S
941     index 41b8aad653634..46570ec2fbcfe 100644
942     --- a/arch/arm/mach-imx/suspend-imx53.S
943     +++ b/arch/arm/mach-imx/suspend-imx53.S
944     @@ -28,11 +28,11 @@
945     * ^
946     * ^
947     * imx53_suspend code
948     - * PM_INFO structure(imx53_suspend_info)
949     + * PM_INFO structure(imx5_cpu_suspend_info)
950     * ======================== low address =======================
951     */
952    
953     -/* Offsets of members of struct imx53_suspend_info */
954     +/* Offsets of members of struct imx5_cpu_suspend_info */
955     #define SUSPEND_INFO_MX53_M4IF_V_OFFSET 0x0
956     #define SUSPEND_INFO_MX53_IOMUXC_V_OFFSET 0x4
957     #define SUSPEND_INFO_MX53_IO_COUNT_OFFSET 0x8
958     diff --git a/arch/arm64/boot/dts/arm/juno-base.dtsi b/arch/arm64/boot/dts/arm/juno-base.dtsi
959     index c47f76b01c4b5..65bcdd0fe78ad 100644
960     --- a/arch/arm64/boot/dts/arm/juno-base.dtsi
961     +++ b/arch/arm64/boot/dts/arm/juno-base.dtsi
962     @@ -537,13 +537,13 @@
963     clocks {
964     compatible = "arm,scpi-clocks";
965    
966     - scpi_dvfs: scpi-dvfs {
967     + scpi_dvfs: clocks-0 {
968     compatible = "arm,scpi-dvfs-clocks";
969     #clock-cells = <1>;
970     clock-indices = <0>, <1>, <2>;
971     clock-output-names = "atlclk", "aplclk","gpuclk";
972     };
973     - scpi_clk: scpi-clk {
974     + scpi_clk: clocks-1 {
975     compatible = "arm,scpi-variable-clocks";
976     #clock-cells = <1>;
977     clock-indices = <3>;
978     @@ -551,7 +551,7 @@
979     };
980     };
981    
982     - scpi_devpd: scpi-power-domains {
983     + scpi_devpd: power-controller {
984     compatible = "arm,scpi-power-domains";
985     num-domains = <2>;
986     #power-domain-cells = <1>;
987     diff --git a/arch/arm64/boot/dts/freescale/fsl-ls208xa.dtsi b/arch/arm64/boot/dts/freescale/fsl-ls208xa.dtsi
988     index 7a0be8eaa84a2..cdb2fa47637da 100644
989     --- a/arch/arm64/boot/dts/freescale/fsl-ls208xa.dtsi
990     +++ b/arch/arm64/boot/dts/freescale/fsl-ls208xa.dtsi
991     @@ -501,7 +501,6 @@
992     clocks = <&clockgen 4 3>;
993     clock-names = "dspi";
994     spi-num-chipselects = <5>;
995     - bus-num = <0>;
996     };
997    
998     esdhc: esdhc@2140000 {
999     diff --git a/arch/arm64/boot/dts/freescale/imx8mq.dtsi b/arch/arm64/boot/dts/freescale/imx8mq.dtsi
1000     index f1011bcd5ed5a..3dae8d7c76198 100644
1001     --- a/arch/arm64/boot/dts/freescale/imx8mq.dtsi
1002     +++ b/arch/arm64/boot/dts/freescale/imx8mq.dtsi
1003     @@ -1056,6 +1056,14 @@
1004     <&src IMX8MQ_RESET_PCIE_CTRL_APPS_EN>,
1005     <&src IMX8MQ_RESET_PCIE_CTRL_APPS_TURNOFF>;
1006     reset-names = "pciephy", "apps", "turnoff";
1007     + assigned-clocks = <&clk IMX8MQ_CLK_PCIE1_CTRL>,
1008     + <&clk IMX8MQ_CLK_PCIE1_PHY>,
1009     + <&clk IMX8MQ_CLK_PCIE1_AUX>;
1010     + assigned-clock-parents = <&clk IMX8MQ_SYS2_PLL_250M>,
1011     + <&clk IMX8MQ_SYS2_PLL_100M>,
1012     + <&clk IMX8MQ_SYS1_PLL_80M>;
1013     + assigned-clock-rates = <250000000>, <100000000>,
1014     + <10000000>;
1015     status = "disabled";
1016     };
1017    
1018     @@ -1085,6 +1093,14 @@
1019     <&src IMX8MQ_RESET_PCIE2_CTRL_APPS_EN>,
1020     <&src IMX8MQ_RESET_PCIE2_CTRL_APPS_TURNOFF>;
1021     reset-names = "pciephy", "apps", "turnoff";
1022     + assigned-clocks = <&clk IMX8MQ_CLK_PCIE2_CTRL>,
1023     + <&clk IMX8MQ_CLK_PCIE2_PHY>,
1024     + <&clk IMX8MQ_CLK_PCIE2_AUX>;
1025     + assigned-clock-parents = <&clk IMX8MQ_SYS2_PLL_250M>,
1026     + <&clk IMX8MQ_SYS2_PLL_100M>,
1027     + <&clk IMX8MQ_SYS1_PLL_80M>;
1028     + assigned-clock-rates = <250000000>, <100000000>,
1029     + <10000000>;
1030     status = "disabled";
1031     };
1032    
1033     diff --git a/arch/arm64/boot/dts/marvell/armada-3720-turris-mox.dts b/arch/arm64/boot/dts/marvell/armada-3720-turris-mox.dts
1034     index fad70c2df7bc0..874bc3954c8e6 100644
1035     --- a/arch/arm64/boot/dts/marvell/armada-3720-turris-mox.dts
1036     +++ b/arch/arm64/boot/dts/marvell/armada-3720-turris-mox.dts
1037     @@ -106,6 +106,12 @@
1038     /* enabled by U-Boot if SFP module is present */
1039     status = "disabled";
1040     };
1041     +
1042     + firmware {
1043     + armada-3700-rwtm {
1044     + compatible = "marvell,armada-3700-rwtm-firmware", "cznic,turris-mox-rwtm";
1045     + };
1046     + };
1047     };
1048    
1049     &i2c0 {
1050     diff --git a/arch/arm64/boot/dts/marvell/armada-37xx.dtsi b/arch/arm64/boot/dts/marvell/armada-37xx.dtsi
1051     index 6cb1278613c5e..52767037e0494 100644
1052     --- a/arch/arm64/boot/dts/marvell/armada-37xx.dtsi
1053     +++ b/arch/arm64/boot/dts/marvell/armada-37xx.dtsi
1054     @@ -500,4 +500,12 @@
1055     };
1056     };
1057     };
1058     +
1059     + firmware {
1060     + armada-3700-rwtm {
1061     + compatible = "marvell,armada-3700-rwtm-firmware";
1062     + mboxes = <&rwtm 0>;
1063     + status = "okay";
1064     + };
1065     + };
1066     };
1067     diff --git a/arch/arm64/boot/dts/rockchip/px30.dtsi b/arch/arm64/boot/dts/rockchip/px30.dtsi
1068     index 98b014a8f9165..f297601c9f715 100644
1069     --- a/arch/arm64/boot/dts/rockchip/px30.dtsi
1070     +++ b/arch/arm64/boot/dts/rockchip/px30.dtsi
1071     @@ -213,20 +213,20 @@
1072     #size-cells = <0>;
1073    
1074     /* These power domains are grouped by VD_LOGIC */
1075     - pd_usb@PX30_PD_USB {
1076     + power-domain@PX30_PD_USB {
1077     reg = <PX30_PD_USB>;
1078     clocks = <&cru HCLK_HOST>,
1079     <&cru HCLK_OTG>,
1080     <&cru SCLK_OTG_ADP>;
1081     pm_qos = <&qos_usb_host>, <&qos_usb_otg>;
1082     };
1083     - pd_sdcard@PX30_PD_SDCARD {
1084     + power-domain@PX30_PD_SDCARD {
1085     reg = <PX30_PD_SDCARD>;
1086     clocks = <&cru HCLK_SDMMC>,
1087     <&cru SCLK_SDMMC>;
1088     pm_qos = <&qos_sdmmc>;
1089     };
1090     - pd_gmac@PX30_PD_GMAC {
1091     + power-domain@PX30_PD_GMAC {
1092     reg = <PX30_PD_GMAC>;
1093     clocks = <&cru ACLK_GMAC>,
1094     <&cru PCLK_GMAC>,
1095     @@ -234,7 +234,7 @@
1096     <&cru SCLK_GMAC_RX_TX>;
1097     pm_qos = <&qos_gmac>;
1098     };
1099     - pd_mmc_nand@PX30_PD_MMC_NAND {
1100     + power-domain@PX30_PD_MMC_NAND {
1101     reg = <PX30_PD_MMC_NAND>;
1102     clocks = <&cru HCLK_NANDC>,
1103     <&cru HCLK_EMMC>,
1104     @@ -247,14 +247,14 @@
1105     pm_qos = <&qos_emmc>, <&qos_nand>,
1106     <&qos_sdio>, <&qos_sfc>;
1107     };
1108     - pd_vpu@PX30_PD_VPU {
1109     + power-domain@PX30_PD_VPU {
1110     reg = <PX30_PD_VPU>;
1111     clocks = <&cru ACLK_VPU>,
1112     <&cru HCLK_VPU>,
1113     <&cru SCLK_CORE_VPU>;
1114     pm_qos = <&qos_vpu>, <&qos_vpu_r128>;
1115     };
1116     - pd_vo@PX30_PD_VO {
1117     + power-domain@PX30_PD_VO {
1118     reg = <PX30_PD_VO>;
1119     clocks = <&cru ACLK_RGA>,
1120     <&cru ACLK_VOPB>,
1121     @@ -270,7 +270,7 @@
1122     pm_qos = <&qos_rga_rd>, <&qos_rga_wr>,
1123     <&qos_vop_m0>, <&qos_vop_m1>;
1124     };
1125     - pd_vi@PX30_PD_VI {
1126     + power-domain@PX30_PD_VI {
1127     reg = <PX30_PD_VI>;
1128     clocks = <&cru ACLK_CIF>,
1129     <&cru ACLK_ISP>,
1130     @@ -281,7 +281,7 @@
1131     <&qos_isp_wr>, <&qos_isp_m1>,
1132     <&qos_vip>;
1133     };
1134     - pd_gpu@PX30_PD_GPU {
1135     + power-domain@PX30_PD_GPU {
1136     reg = <PX30_PD_GPU>;
1137     clocks = <&cru SCLK_GPU>;
1138     pm_qos = <&qos_gpu>;
1139     diff --git a/arch/arm64/boot/dts/rockchip/rk3328.dtsi b/arch/arm64/boot/dts/rockchip/rk3328.dtsi
1140     index e0ed323935a4d..44ad744c4710d 100644
1141     --- a/arch/arm64/boot/dts/rockchip/rk3328.dtsi
1142     +++ b/arch/arm64/boot/dts/rockchip/rk3328.dtsi
1143     @@ -270,13 +270,13 @@
1144     #address-cells = <1>;
1145     #size-cells = <0>;
1146    
1147     - pd_hevc@RK3328_PD_HEVC {
1148     + power-domain@RK3328_PD_HEVC {
1149     reg = <RK3328_PD_HEVC>;
1150     };
1151     - pd_video@RK3328_PD_VIDEO {
1152     + power-domain@RK3328_PD_VIDEO {
1153     reg = <RK3328_PD_VIDEO>;
1154     };
1155     - pd_vpu@RK3328_PD_VPU {
1156     + power-domain@RK3328_PD_VPU {
1157     reg = <RK3328_PD_VPU>;
1158     clocks = <&cru ACLK_VPU>, <&cru HCLK_VPU>;
1159     };
1160     diff --git a/arch/arm64/boot/dts/rockchip/rk3399.dtsi b/arch/arm64/boot/dts/rockchip/rk3399.dtsi
1161     index 9d6ed8cda2c86..750dad0d17400 100644
1162     --- a/arch/arm64/boot/dts/rockchip/rk3399.dtsi
1163     +++ b/arch/arm64/boot/dts/rockchip/rk3399.dtsi
1164     @@ -2317,7 +2317,7 @@
1165     };
1166     };
1167    
1168     - sleep {
1169     + suspend {
1170     ap_pwroff: ap-pwroff {
1171     rockchip,pins = <1 RK_PA5 1 &pcfg_pull_none>;
1172     };
1173     diff --git a/arch/s390/include/asm/stacktrace.h b/arch/s390/include/asm/stacktrace.h
1174     index 6836532f8d1a6..e192681f83e10 100644
1175     --- a/arch/s390/include/asm/stacktrace.h
1176     +++ b/arch/s390/include/asm/stacktrace.h
1177     @@ -115,6 +115,103 @@ struct stack_frame {
1178     r2; \
1179     })
1180    
1181     +#define CALL_LARGS_0(...) \
1182     + long dummy = 0
1183     +#define CALL_LARGS_1(t1, a1) \
1184     + long arg1 = (long)(t1)(a1)
1185     +#define CALL_LARGS_2(t1, a1, t2, a2) \
1186     + CALL_LARGS_1(t1, a1); \
1187     + long arg2 = (long)(t2)(a2)
1188     +#define CALL_LARGS_3(t1, a1, t2, a2, t3, a3) \
1189     + CALL_LARGS_2(t1, a1, t2, a2); \
1190     + long arg3 = (long)(t3)(a3)
1191     +#define CALL_LARGS_4(t1, a1, t2, a2, t3, a3, t4, a4) \
1192     + CALL_LARGS_3(t1, a1, t2, a2, t3, a3); \
1193     + long arg4 = (long)(t4)(a4)
1194     +#define CALL_LARGS_5(t1, a1, t2, a2, t3, a3, t4, a4, t5, a5) \
1195     + CALL_LARGS_4(t1, a1, t2, a2, t3, a3, t4, a4); \
1196     + long arg5 = (long)(t5)(a5)
1197     +
1198     +#define CALL_REGS_0 \
1199     + register long r2 asm("2") = dummy
1200     +#define CALL_REGS_1 \
1201     + register long r2 asm("2") = arg1
1202     +#define CALL_REGS_2 \
1203     + CALL_REGS_1; \
1204     + register long r3 asm("3") = arg2
1205     +#define CALL_REGS_3 \
1206     + CALL_REGS_2; \
1207     + register long r4 asm("4") = arg3
1208     +#define CALL_REGS_4 \
1209     + CALL_REGS_3; \
1210     + register long r5 asm("5") = arg4
1211     +#define CALL_REGS_5 \
1212     + CALL_REGS_4; \
1213     + register long r6 asm("6") = arg5
1214     +
1215     +#define CALL_TYPECHECK_0(...)
1216     +#define CALL_TYPECHECK_1(t, a, ...) \
1217     + typecheck(t, a)
1218     +#define CALL_TYPECHECK_2(t, a, ...) \
1219     + CALL_TYPECHECK_1(__VA_ARGS__); \
1220     + typecheck(t, a)
1221     +#define CALL_TYPECHECK_3(t, a, ...) \
1222     + CALL_TYPECHECK_2(__VA_ARGS__); \
1223     + typecheck(t, a)
1224     +#define CALL_TYPECHECK_4(t, a, ...) \
1225     + CALL_TYPECHECK_3(__VA_ARGS__); \
1226     + typecheck(t, a)
1227     +#define CALL_TYPECHECK_5(t, a, ...) \
1228     + CALL_TYPECHECK_4(__VA_ARGS__); \
1229     + typecheck(t, a)
1230     +
1231     +#define CALL_PARM_0(...) void
1232     +#define CALL_PARM_1(t, a, ...) t
1233     +#define CALL_PARM_2(t, a, ...) t, CALL_PARM_1(__VA_ARGS__)
1234     +#define CALL_PARM_3(t, a, ...) t, CALL_PARM_2(__VA_ARGS__)
1235     +#define CALL_PARM_4(t, a, ...) t, CALL_PARM_3(__VA_ARGS__)
1236     +#define CALL_PARM_5(t, a, ...) t, CALL_PARM_4(__VA_ARGS__)
1237     +#define CALL_PARM_6(t, a, ...) t, CALL_PARM_5(__VA_ARGS__)
1238     +
1239     +/*
1240     + * Use call_on_stack() to call a function switching to a specified
1241     + * stack. Proper sign and zero extension of function arguments is
1242     + * done. Usage:
1243     + *
1244     + * rc = call_on_stack(nr, stack, rettype, fn, t1, a1, t2, a2, ...)
1245     + *
1246     + * - nr specifies the number of function arguments of fn.
1247     + * - stack specifies the stack to be used.
1248     + * - fn is the function to be called.
1249     + * - rettype is the return type of fn.
1250     + * - t1, a1, ... are pairs, where t1 must match the type of the first
1251     + * argument of fn, t2 the second, etc. a1 is the corresponding
1252     + * first function argument (not name), etc.
1253     + */
1254     +#define call_on_stack(nr, stack, rettype, fn, ...) \
1255     +({ \
1256     + rettype (*__fn)(CALL_PARM_##nr(__VA_ARGS__)) = fn; \
1257     + unsigned long frame = current_frame_address(); \
1258     + unsigned long __stack = stack; \
1259     + unsigned long prev; \
1260     + CALL_LARGS_##nr(__VA_ARGS__); \
1261     + CALL_REGS_##nr; \
1262     + \
1263     + CALL_TYPECHECK_##nr(__VA_ARGS__); \
1264     + asm volatile( \
1265     + " lgr %[_prev],15\n" \
1266     + " lg 15,%[_stack]\n" \
1267     + " stg %[_frame],%[_bc](15)\n" \
1268     + " brasl 14,%[_fn]\n" \
1269     + " lgr 15,%[_prev]\n" \
1270     + : [_prev] "=&d" (prev), CALL_FMT_##nr \
1271     + : [_stack] "R" (__stack), \
1272     + [_bc] "i" (offsetof(struct stack_frame, back_chain)), \
1273     + [_frame] "d" (frame), \
1274     + [_fn] "X" (__fn) : CALL_CLOBBER_##nr); \
1275     + (rettype)r2; \
1276     +})
1277     +
1278     #define CALL_ON_STACK_NORETURN(fn, stack) \
1279     ({ \
1280     asm volatile( \
1281     diff --git a/drivers/dma-buf/sync_file.c b/drivers/dma-buf/sync_file.c
1282     index 91185db9a952f..992c15c016dd0 100644
1283     --- a/drivers/dma-buf/sync_file.c
1284     +++ b/drivers/dma-buf/sync_file.c
1285     @@ -211,8 +211,8 @@ static struct sync_file *sync_file_merge(const char *name, struct sync_file *a,
1286     struct sync_file *b)
1287     {
1288     struct sync_file *sync_file;
1289     - struct dma_fence **fences, **nfences, **a_fences, **b_fences;
1290     - int i, i_a, i_b, num_fences, a_num_fences, b_num_fences;
1291     + struct dma_fence **fences = NULL, **nfences, **a_fences, **b_fences;
1292     + int i = 0, i_a, i_b, num_fences, a_num_fences, b_num_fences;
1293    
1294     sync_file = sync_file_alloc();
1295     if (!sync_file)
1296     @@ -236,7 +236,7 @@ static struct sync_file *sync_file_merge(const char *name, struct sync_file *a,
1297     * If a sync_file can only be created with sync_file_merge
1298     * and sync_file_create, this is a reasonable assumption.
1299     */
1300     - for (i = i_a = i_b = 0; i_a < a_num_fences && i_b < b_num_fences; ) {
1301     + for (i_a = i_b = 0; i_a < a_num_fences && i_b < b_num_fences; ) {
1302     struct dma_fence *pt_a = a_fences[i_a];
1303     struct dma_fence *pt_b = b_fences[i_b];
1304    
1305     @@ -278,15 +278,16 @@ static struct sync_file *sync_file_merge(const char *name, struct sync_file *a,
1306     fences = nfences;
1307     }
1308    
1309     - if (sync_file_set_fence(sync_file, fences, i) < 0) {
1310     - kfree(fences);
1311     + if (sync_file_set_fence(sync_file, fences, i) < 0)
1312     goto err;
1313     - }
1314    
1315     strlcpy(sync_file->user_name, name, sizeof(sync_file->user_name));
1316     return sync_file;
1317    
1318     err:
1319     + while (i)
1320     + dma_fence_put(fences[--i]);
1321     + kfree(fences);
1322     fput(sync_file->file);
1323     return NULL;
1324    
1325     diff --git a/drivers/firmware/tegra/Makefile b/drivers/firmware/tegra/Makefile
1326     index 49c87e00fafb3..620cf3fdd6074 100644
1327     --- a/drivers/firmware/tegra/Makefile
1328     +++ b/drivers/firmware/tegra/Makefile
1329     @@ -3,6 +3,7 @@ tegra-bpmp-y = bpmp.o
1330     tegra-bpmp-$(CONFIG_ARCH_TEGRA_210_SOC) += bpmp-tegra210.o
1331     tegra-bpmp-$(CONFIG_ARCH_TEGRA_186_SOC) += bpmp-tegra186.o
1332     tegra-bpmp-$(CONFIG_ARCH_TEGRA_194_SOC) += bpmp-tegra186.o
1333     +tegra-bpmp-$(CONFIG_ARCH_TEGRA_234_SOC) += bpmp-tegra186.o
1334     tegra-bpmp-$(CONFIG_DEBUG_FS) += bpmp-debugfs.o
1335     obj-$(CONFIG_TEGRA_BPMP) += tegra-bpmp.o
1336     obj-$(CONFIG_TEGRA_IVC) += ivc.o
1337     diff --git a/drivers/firmware/tegra/bpmp-private.h b/drivers/firmware/tegra/bpmp-private.h
1338     index 54d560c48398e..182bfe3965161 100644
1339     --- a/drivers/firmware/tegra/bpmp-private.h
1340     +++ b/drivers/firmware/tegra/bpmp-private.h
1341     @@ -24,7 +24,8 @@ struct tegra_bpmp_ops {
1342     };
1343    
1344     #if IS_ENABLED(CONFIG_ARCH_TEGRA_186_SOC) || \
1345     - IS_ENABLED(CONFIG_ARCH_TEGRA_194_SOC)
1346     + IS_ENABLED(CONFIG_ARCH_TEGRA_194_SOC) || \
1347     + IS_ENABLED(CONFIG_ARCH_TEGRA_234_SOC)
1348     extern const struct tegra_bpmp_ops tegra186_bpmp_ops;
1349     #endif
1350     #if IS_ENABLED(CONFIG_ARCH_TEGRA_210_SOC)
1351     diff --git a/drivers/firmware/tegra/bpmp.c b/drivers/firmware/tegra/bpmp.c
1352     index 19c56133234b3..afde06b313877 100644
1353     --- a/drivers/firmware/tegra/bpmp.c
1354     +++ b/drivers/firmware/tegra/bpmp.c
1355     @@ -808,7 +808,8 @@ static const struct dev_pm_ops tegra_bpmp_pm_ops = {
1356     };
1357    
1358     #if IS_ENABLED(CONFIG_ARCH_TEGRA_186_SOC) || \
1359     - IS_ENABLED(CONFIG_ARCH_TEGRA_194_SOC)
1360     + IS_ENABLED(CONFIG_ARCH_TEGRA_194_SOC) || \
1361     + IS_ENABLED(CONFIG_ARCH_TEGRA_234_SOC)
1362     static const struct tegra_bpmp_soc tegra186_soc = {
1363     .channels = {
1364     .cpu_tx = {
1365     diff --git a/drivers/firmware/turris-mox-rwtm.c b/drivers/firmware/turris-mox-rwtm.c
1366     index 9a6cf5af27a3d..0779513ac8d4f 100644
1367     --- a/drivers/firmware/turris-mox-rwtm.c
1368     +++ b/drivers/firmware/turris-mox-rwtm.c
1369     @@ -401,6 +401,7 @@ static int turris_mox_rwtm_remove(struct platform_device *pdev)
1370    
1371     static const struct of_device_id turris_mox_rwtm_match[] = {
1372     { .compatible = "cznic,turris-mox-rwtm", },
1373     + { .compatible = "marvell,armada-3700-rwtm-firmware", },
1374     { },
1375     };
1376    
1377     diff --git a/drivers/md/dm-writecache.c b/drivers/md/dm-writecache.c
1378     index 4c2971835d330..ec10fda3f24f4 100644
1379     --- a/drivers/md/dm-writecache.c
1380     +++ b/drivers/md/dm-writecache.c
1381     @@ -154,6 +154,7 @@ struct dm_writecache {
1382     bool overwrote_committed:1;
1383     bool memory_vmapped:1;
1384    
1385     + bool start_sector_set:1;
1386     bool high_wm_percent_set:1;
1387     bool low_wm_percent_set:1;
1388     bool max_writeback_jobs_set:1;
1389     @@ -162,6 +163,10 @@ struct dm_writecache {
1390     bool writeback_fua_set:1;
1391     bool flush_on_suspend:1;
1392    
1393     + unsigned high_wm_percent_value;
1394     + unsigned low_wm_percent_value;
1395     + unsigned autocommit_time_value;
1396     +
1397     unsigned writeback_all;
1398     struct workqueue_struct *writeback_wq;
1399     struct work_struct writeback_work;
1400     @@ -2069,6 +2074,7 @@ static int writecache_ctr(struct dm_target *ti, unsigned argc, char **argv)
1401     if (sscanf(string, "%llu%c", &start_sector, &dummy) != 1)
1402     goto invalid_optional;
1403     wc->start_sector = start_sector;
1404     + wc->start_sector_set = true;
1405     if (wc->start_sector != start_sector ||
1406     wc->start_sector >= wc->memory_map_size >> SECTOR_SHIFT)
1407     goto invalid_optional;
1408     @@ -2078,6 +2084,7 @@ static int writecache_ctr(struct dm_target *ti, unsigned argc, char **argv)
1409     goto invalid_optional;
1410     if (high_wm_percent < 0 || high_wm_percent > 100)
1411     goto invalid_optional;
1412     + wc->high_wm_percent_value = high_wm_percent;
1413     wc->high_wm_percent_set = true;
1414     } else if (!strcasecmp(string, "low_watermark") && opt_params >= 1) {
1415     string = dm_shift_arg(&as), opt_params--;
1416     @@ -2085,6 +2092,7 @@ static int writecache_ctr(struct dm_target *ti, unsigned argc, char **argv)
1417     goto invalid_optional;
1418     if (low_wm_percent < 0 || low_wm_percent > 100)
1419     goto invalid_optional;
1420     + wc->low_wm_percent_value = low_wm_percent;
1421     wc->low_wm_percent_set = true;
1422     } else if (!strcasecmp(string, "writeback_jobs") && opt_params >= 1) {
1423     string = dm_shift_arg(&as), opt_params--;
1424     @@ -2104,6 +2112,7 @@ static int writecache_ctr(struct dm_target *ti, unsigned argc, char **argv)
1425     if (autocommit_msecs > 3600000)
1426     goto invalid_optional;
1427     wc->autocommit_jiffies = msecs_to_jiffies(autocommit_msecs);
1428     + wc->autocommit_time_value = autocommit_msecs;
1429     wc->autocommit_time_set = true;
1430     } else if (!strcasecmp(string, "fua")) {
1431     if (WC_MODE_PMEM(wc)) {
1432     @@ -2305,7 +2314,6 @@ static void writecache_status(struct dm_target *ti, status_type_t type,
1433     struct dm_writecache *wc = ti->private;
1434     unsigned extra_args;
1435     unsigned sz = 0;
1436     - uint64_t x;
1437    
1438     switch (type) {
1439     case STATUSTYPE_INFO:
1440     @@ -2317,7 +2325,7 @@ static void writecache_status(struct dm_target *ti, status_type_t type,
1441     DMEMIT("%c %s %s %u ", WC_MODE_PMEM(wc) ? 'p' : 's',
1442     wc->dev->name, wc->ssd_dev->name, wc->block_size);
1443     extra_args = 0;
1444     - if (wc->start_sector)
1445     + if (wc->start_sector_set)
1446     extra_args += 2;
1447     if (wc->high_wm_percent_set)
1448     extra_args += 2;
1449     @@ -2333,26 +2341,18 @@ static void writecache_status(struct dm_target *ti, status_type_t type,
1450     extra_args++;
1451    
1452     DMEMIT("%u", extra_args);
1453     - if (wc->start_sector)
1454     + if (wc->start_sector_set)
1455     DMEMIT(" start_sector %llu", (unsigned long long)wc->start_sector);
1456     - if (wc->high_wm_percent_set) {
1457     - x = (uint64_t)wc->freelist_high_watermark * 100;
1458     - x += wc->n_blocks / 2;
1459     - do_div(x, (size_t)wc->n_blocks);
1460     - DMEMIT(" high_watermark %u", 100 - (unsigned)x);
1461     - }
1462     - if (wc->low_wm_percent_set) {
1463     - x = (uint64_t)wc->freelist_low_watermark * 100;
1464     - x += wc->n_blocks / 2;
1465     - do_div(x, (size_t)wc->n_blocks);
1466     - DMEMIT(" low_watermark %u", 100 - (unsigned)x);
1467     - }
1468     + if (wc->high_wm_percent_set)
1469     + DMEMIT(" high_watermark %u", wc->high_wm_percent_value);
1470     + if (wc->low_wm_percent_set)
1471     + DMEMIT(" low_watermark %u", wc->low_wm_percent_value);
1472     if (wc->max_writeback_jobs_set)
1473     DMEMIT(" writeback_jobs %u", wc->max_writeback_jobs);
1474     if (wc->autocommit_blocks_set)
1475     DMEMIT(" autocommit_blocks %u", wc->autocommit_blocks);
1476     if (wc->autocommit_time_set)
1477     - DMEMIT(" autocommit_time %u", jiffies_to_msecs(wc->autocommit_jiffies));
1478     + DMEMIT(" autocommit_time %u", wc->autocommit_time_value);
1479     if (wc->writeback_fua_set)
1480     DMEMIT(" %sfua", wc->writeback_fua ? "" : "no");
1481     break;
1482     diff --git a/drivers/net/dsa/mv88e6xxx/chip.c b/drivers/net/dsa/mv88e6xxx/chip.c
1483     index 446eb06e50b49..8aa8825557a81 100644
1484     --- a/drivers/net/dsa/mv88e6xxx/chip.c
1485     +++ b/drivers/net/dsa/mv88e6xxx/chip.c
1486     @@ -3715,6 +3715,7 @@ static const struct mv88e6xxx_ops mv88e6250_ops = {
1487     .port_set_rgmii_delay = mv88e6352_port_set_rgmii_delay,
1488     .port_set_speed = mv88e6250_port_set_speed,
1489     .port_tag_remap = mv88e6095_port_tag_remap,
1490     + .port_set_policy = mv88e6352_port_set_policy,
1491     .port_set_frame_mode = mv88e6351_port_set_frame_mode,
1492     .port_set_egress_floods = mv88e6352_port_set_egress_floods,
1493     .port_set_ether_type = mv88e6351_port_set_ether_type,
1494     @@ -3916,6 +3917,7 @@ static const struct mv88e6xxx_ops mv88e6341_ops = {
1495     .mgmt_rsvd2cpu = mv88e6390_g1_mgmt_rsvd2cpu,
1496     .pot_clear = mv88e6xxx_g2_pot_clear,
1497     .reset = mv88e6352_g1_reset,
1498     + .rmu_disable = mv88e6390_g1_rmu_disable,
1499     .vtu_getnext = mv88e6352_g1_vtu_getnext,
1500     .vtu_loadpurge = mv88e6352_g1_vtu_loadpurge,
1501     .serdes_power = mv88e6390_serdes_power,
1502     @@ -3982,6 +3984,7 @@ static const struct mv88e6xxx_ops mv88e6351_ops = {
1503     .port_set_rgmii_delay = mv88e6352_port_set_rgmii_delay,
1504     .port_set_speed = mv88e6185_port_set_speed,
1505     .port_tag_remap = mv88e6095_port_tag_remap,
1506     + .port_set_policy = mv88e6352_port_set_policy,
1507     .port_set_frame_mode = mv88e6351_port_set_frame_mode,
1508     .port_set_egress_floods = mv88e6352_port_set_egress_floods,
1509     .port_set_ether_type = mv88e6351_port_set_ether_type,
1510     @@ -4004,6 +4007,7 @@ static const struct mv88e6xxx_ops mv88e6351_ops = {
1511     .mgmt_rsvd2cpu = mv88e6352_g2_mgmt_rsvd2cpu,
1512     .pot_clear = mv88e6xxx_g2_pot_clear,
1513     .reset = mv88e6352_g1_reset,
1514     + .rmu_disable = mv88e6390_g1_rmu_disable,
1515     .vtu_getnext = mv88e6352_g1_vtu_getnext,
1516     .vtu_loadpurge = mv88e6352_g1_vtu_loadpurge,
1517     .avb_ops = &mv88e6352_avb_ops,
1518     diff --git a/drivers/net/ethernet/broadcom/genet/bcmgenet.c b/drivers/net/ethernet/broadcom/genet/bcmgenet.c
1519     index 21669a42718c8..7bd6d2bf84408 100644
1520     --- a/drivers/net/ethernet/broadcom/genet/bcmgenet.c
1521     +++ b/drivers/net/ethernet/broadcom/genet/bcmgenet.c
1522     @@ -2783,15 +2783,21 @@ static void bcmgenet_set_hw_addr(struct bcmgenet_priv *priv,
1523     /* Returns a reusable dma control register value */
1524     static u32 bcmgenet_dma_disable(struct bcmgenet_priv *priv)
1525     {
1526     + unsigned int i;
1527     u32 reg;
1528     u32 dma_ctrl;
1529    
1530     /* disable DMA */
1531     dma_ctrl = 1 << (DESC_INDEX + DMA_RING_BUF_EN_SHIFT) | DMA_EN;
1532     + for (i = 0; i < priv->hw_params->tx_queues; i++)
1533     + dma_ctrl |= (1 << (i + DMA_RING_BUF_EN_SHIFT));
1534     reg = bcmgenet_tdma_readl(priv, DMA_CTRL);
1535     reg &= ~dma_ctrl;
1536     bcmgenet_tdma_writel(priv, reg, DMA_CTRL);
1537    
1538     + dma_ctrl = 1 << (DESC_INDEX + DMA_RING_BUF_EN_SHIFT) | DMA_EN;
1539     + for (i = 0; i < priv->hw_params->rx_queues; i++)
1540     + dma_ctrl |= (1 << (i + DMA_RING_BUF_EN_SHIFT));
1541     reg = bcmgenet_rdma_readl(priv, DMA_CTRL);
1542     reg &= ~dma_ctrl;
1543     bcmgenet_rdma_writel(priv, reg, DMA_CTRL);
1544     diff --git a/drivers/net/ethernet/moxa/moxart_ether.c b/drivers/net/ethernet/moxa/moxart_ether.c
1545     index caf7051302725..13714827f4525 100644
1546     --- a/drivers/net/ethernet/moxa/moxart_ether.c
1547     +++ b/drivers/net/ethernet/moxa/moxart_ether.c
1548     @@ -545,10 +545,8 @@ static int moxart_mac_probe(struct platform_device *pdev)
1549     SET_NETDEV_DEV(ndev, &pdev->dev);
1550    
1551     ret = register_netdev(ndev);
1552     - if (ret) {
1553     - free_netdev(ndev);
1554     + if (ret)
1555     goto init_fail;
1556     - }
1557    
1558     netdev_dbg(ndev, "%s: IRQ=%d address=%pM\n",
1559     __func__, ndev->irq, ndev->dev_addr);
1560     diff --git a/drivers/net/ethernet/qualcomm/emac/emac.c b/drivers/net/ethernet/qualcomm/emac/emac.c
1561     index 3eee8df359a12..5c199d2516d47 100644
1562     --- a/drivers/net/ethernet/qualcomm/emac/emac.c
1563     +++ b/drivers/net/ethernet/qualcomm/emac/emac.c
1564     @@ -745,12 +745,13 @@ static int emac_remove(struct platform_device *pdev)
1565    
1566     put_device(&adpt->phydev->mdio.dev);
1567     mdiobus_unregister(adpt->mii_bus);
1568     - free_netdev(netdev);
1569    
1570     if (adpt->phy.digital)
1571     iounmap(adpt->phy.digital);
1572     iounmap(adpt->phy.base);
1573    
1574     + free_netdev(netdev);
1575     +
1576     return 0;
1577     }
1578    
1579     diff --git a/drivers/net/ethernet/ti/tlan.c b/drivers/net/ethernet/ti/tlan.c
1580     index a3691bc94b101..a5c7d75497ee6 100644
1581     --- a/drivers/net/ethernet/ti/tlan.c
1582     +++ b/drivers/net/ethernet/ti/tlan.c
1583     @@ -314,9 +314,8 @@ static void tlan_remove_one(struct pci_dev *pdev)
1584     pci_release_regions(pdev);
1585     #endif
1586    
1587     - free_netdev(dev);
1588     -
1589     cancel_work_sync(&priv->tlan_tqueue);
1590     + free_netdev(dev);
1591     }
1592    
1593     static void tlan_start(struct net_device *dev)
1594     diff --git a/drivers/net/fddi/defza.c b/drivers/net/fddi/defza.c
1595     index 060712c666bf4..83e4c5192f35f 100644
1596     --- a/drivers/net/fddi/defza.c
1597     +++ b/drivers/net/fddi/defza.c
1598     @@ -1504,9 +1504,8 @@ err_out_resource:
1599     release_mem_region(start, len);
1600    
1601     err_out_kfree:
1602     - free_netdev(dev);
1603     -
1604     pr_err("%s: initialization failure, aborting!\n", fp->name);
1605     + free_netdev(dev);
1606     return ret;
1607     }
1608    
1609     diff --git a/drivers/reset/reset-ti-syscon.c b/drivers/reset/reset-ti-syscon.c
1610     index a2635c21db7f8..ecb8873e3a19b 100644
1611     --- a/drivers/reset/reset-ti-syscon.c
1612     +++ b/drivers/reset/reset-ti-syscon.c
1613     @@ -58,8 +58,8 @@ struct ti_syscon_reset_data {
1614     unsigned int nr_controls;
1615     };
1616    
1617     -#define to_ti_syscon_reset_data(rcdev) \
1618     - container_of(rcdev, struct ti_syscon_reset_data, rcdev)
1619     +#define to_ti_syscon_reset_data(_rcdev) \
1620     + container_of(_rcdev, struct ti_syscon_reset_data, rcdev)
1621    
1622     /**
1623     * ti_syscon_reset_assert() - assert device reset
1624     diff --git a/drivers/rtc/rtc-max77686.c b/drivers/rtc/rtc-max77686.c
1625     index d5a0e27dd0a08..9e27f5a011975 100644
1626     --- a/drivers/rtc/rtc-max77686.c
1627     +++ b/drivers/rtc/rtc-max77686.c
1628     @@ -707,8 +707,8 @@ static int max77686_init_rtc_regmap(struct max77686_rtc_info *info)
1629    
1630     add_rtc_irq:
1631     ret = regmap_add_irq_chip(info->rtc_regmap, info->rtc_irq,
1632     - IRQF_TRIGGER_FALLING | IRQF_ONESHOT |
1633     - IRQF_SHARED, 0, info->drv_data->rtc_irq_chip,
1634     + IRQF_ONESHOT | IRQF_SHARED,
1635     + 0, info->drv_data->rtc_irq_chip,
1636     &info->rtc_irq_data);
1637     if (ret < 0) {
1638     dev_err(info->dev, "Failed to add RTC irq chip: %d\n", ret);
1639     diff --git a/drivers/rtc/rtc-mxc_v2.c b/drivers/rtc/rtc-mxc_v2.c
1640     index 91534560fe2a2..d349cef09cb7c 100644
1641     --- a/drivers/rtc/rtc-mxc_v2.c
1642     +++ b/drivers/rtc/rtc-mxc_v2.c
1643     @@ -373,6 +373,7 @@ static const struct of_device_id mxc_ids[] = {
1644     { .compatible = "fsl,imx53-rtc", },
1645     {}
1646     };
1647     +MODULE_DEVICE_TABLE(of, mxc_ids);
1648    
1649     static struct platform_driver mxc_rtc_driver = {
1650     .driver = {
1651     diff --git a/drivers/scsi/aic7xxx/aic7xxx_core.c b/drivers/scsi/aic7xxx/aic7xxx_core.c
1652     index 4190a025381a5..27d85ed82977c 100644
1653     --- a/drivers/scsi/aic7xxx/aic7xxx_core.c
1654     +++ b/drivers/scsi/aic7xxx/aic7xxx_core.c
1655     @@ -493,7 +493,7 @@ ahc_inq(struct ahc_softc *ahc, u_int port)
1656     return ((ahc_inb(ahc, port))
1657     | (ahc_inb(ahc, port+1) << 8)
1658     | (ahc_inb(ahc, port+2) << 16)
1659     - | (ahc_inb(ahc, port+3) << 24)
1660     + | (((uint64_t)ahc_inb(ahc, port+3)) << 24)
1661     | (((uint64_t)ahc_inb(ahc, port+4)) << 32)
1662     | (((uint64_t)ahc_inb(ahc, port+5)) << 40)
1663     | (((uint64_t)ahc_inb(ahc, port+6)) << 48)
1664     diff --git a/drivers/scsi/aic94xx/aic94xx_init.c b/drivers/scsi/aic94xx/aic94xx_init.c
1665     index f5781e31f57c6..b68dfeb952ee8 100644
1666     --- a/drivers/scsi/aic94xx/aic94xx_init.c
1667     +++ b/drivers/scsi/aic94xx/aic94xx_init.c
1668     @@ -52,6 +52,7 @@ static struct scsi_host_template aic94xx_sht = {
1669     .max_sectors = SCSI_DEFAULT_MAX_SECTORS,
1670     .eh_device_reset_handler = sas_eh_device_reset_handler,
1671     .eh_target_reset_handler = sas_eh_target_reset_handler,
1672     + .slave_alloc = sas_slave_alloc,
1673     .target_destroy = sas_target_destroy,
1674     .ioctl = sas_ioctl,
1675     .track_queue_depth = 1,
1676     diff --git a/drivers/scsi/hisi_sas/hisi_sas_v1_hw.c b/drivers/scsi/hisi_sas/hisi_sas_v1_hw.c
1677     index 9f6534bd354bc..1443c803d8f75 100644
1678     --- a/drivers/scsi/hisi_sas/hisi_sas_v1_hw.c
1679     +++ b/drivers/scsi/hisi_sas/hisi_sas_v1_hw.c
1680     @@ -1768,6 +1768,7 @@ static struct scsi_host_template sht_v1_hw = {
1681     .max_sectors = SCSI_DEFAULT_MAX_SECTORS,
1682     .eh_device_reset_handler = sas_eh_device_reset_handler,
1683     .eh_target_reset_handler = sas_eh_target_reset_handler,
1684     + .slave_alloc = sas_slave_alloc,
1685     .target_destroy = sas_target_destroy,
1686     .ioctl = sas_ioctl,
1687     .shost_attrs = host_attrs_v1_hw,
1688     diff --git a/drivers/scsi/hisi_sas/hisi_sas_v2_hw.c b/drivers/scsi/hisi_sas/hisi_sas_v2_hw.c
1689     index 8e96a257e4393..11c75881bd892 100644
1690     --- a/drivers/scsi/hisi_sas/hisi_sas_v2_hw.c
1691     +++ b/drivers/scsi/hisi_sas/hisi_sas_v2_hw.c
1692     @@ -3542,6 +3542,7 @@ static struct scsi_host_template sht_v2_hw = {
1693     .max_sectors = SCSI_DEFAULT_MAX_SECTORS,
1694     .eh_device_reset_handler = sas_eh_device_reset_handler,
1695     .eh_target_reset_handler = sas_eh_target_reset_handler,
1696     + .slave_alloc = sas_slave_alloc,
1697     .target_destroy = sas_target_destroy,
1698     .ioctl = sas_ioctl,
1699     .shost_attrs = host_attrs_v2_hw,
1700     diff --git a/drivers/scsi/hisi_sas/hisi_sas_v3_hw.c b/drivers/scsi/hisi_sas/hisi_sas_v3_hw.c
1701     index 916447f3c6073..13f314fa757e8 100644
1702     --- a/drivers/scsi/hisi_sas/hisi_sas_v3_hw.c
1703     +++ b/drivers/scsi/hisi_sas/hisi_sas_v3_hw.c
1704     @@ -3064,6 +3064,7 @@ static struct scsi_host_template sht_v3_hw = {
1705     .max_sectors = SCSI_DEFAULT_MAX_SECTORS,
1706     .eh_device_reset_handler = sas_eh_device_reset_handler,
1707     .eh_target_reset_handler = sas_eh_target_reset_handler,
1708     + .slave_alloc = sas_slave_alloc,
1709     .target_destroy = sas_target_destroy,
1710     .ioctl = sas_ioctl,
1711     .shost_attrs = host_attrs_v3_hw,
1712     diff --git a/drivers/scsi/isci/init.c b/drivers/scsi/isci/init.c
1713     index 1727d0c71b123..c33bcf85fb211 100644
1714     --- a/drivers/scsi/isci/init.c
1715     +++ b/drivers/scsi/isci/init.c
1716     @@ -166,6 +166,7 @@ static struct scsi_host_template isci_sht = {
1717     .eh_abort_handler = sas_eh_abort_handler,
1718     .eh_device_reset_handler = sas_eh_device_reset_handler,
1719     .eh_target_reset_handler = sas_eh_target_reset_handler,
1720     + .slave_alloc = sas_slave_alloc,
1721     .target_destroy = sas_target_destroy,
1722     .ioctl = sas_ioctl,
1723     .shost_attrs = isci_host_attrs,
1724     diff --git a/drivers/scsi/libfc/fc_rport.c b/drivers/scsi/libfc/fc_rport.c
1725     index 64500417c22ea..326bd609a3d13 100644
1726     --- a/drivers/scsi/libfc/fc_rport.c
1727     +++ b/drivers/scsi/libfc/fc_rport.c
1728     @@ -1160,6 +1160,7 @@ static void fc_rport_prli_resp(struct fc_seq *sp, struct fc_frame *fp,
1729     resp_code = (pp->spp.spp_flags & FC_SPP_RESP_MASK);
1730     FC_RPORT_DBG(rdata, "PRLI spp_flags = 0x%x spp_type 0x%x\n",
1731     pp->spp.spp_flags, pp->spp.spp_type);
1732     +
1733     rdata->spp_type = pp->spp.spp_type;
1734     if (resp_code != FC_SPP_RESP_ACK) {
1735     if (resp_code == FC_SPP_RESP_CONF)
1736     @@ -1182,11 +1183,13 @@ static void fc_rport_prli_resp(struct fc_seq *sp, struct fc_frame *fp,
1737     /*
1738     * Call prli provider if we should act as a target
1739     */
1740     - prov = fc_passive_prov[rdata->spp_type];
1741     - if (prov) {
1742     - memset(&temp_spp, 0, sizeof(temp_spp));
1743     - prov->prli(rdata, pp->prli.prli_spp_len,
1744     - &pp->spp, &temp_spp);
1745     + if (rdata->spp_type < FC_FC4_PROV_SIZE) {
1746     + prov = fc_passive_prov[rdata->spp_type];
1747     + if (prov) {
1748     + memset(&temp_spp, 0, sizeof(temp_spp));
1749     + prov->prli(rdata, pp->prli.prli_spp_len,
1750     + &pp->spp, &temp_spp);
1751     + }
1752     }
1753     /*
1754     * Check if the image pair could be established
1755     diff --git a/drivers/scsi/libsas/sas_scsi_host.c b/drivers/scsi/libsas/sas_scsi_host.c
1756     index bec83eb8ab874..081f3145fe145 100644
1757     --- a/drivers/scsi/libsas/sas_scsi_host.c
1758     +++ b/drivers/scsi/libsas/sas_scsi_host.c
1759     @@ -911,6 +911,14 @@ void sas_task_abort(struct sas_task *task)
1760     blk_abort_request(sc->request);
1761     }
1762    
1763     +int sas_slave_alloc(struct scsi_device *sdev)
1764     +{
1765     + if (dev_is_sata(sdev_to_domain_dev(sdev)) && sdev->lun)
1766     + return -ENXIO;
1767     +
1768     + return 0;
1769     +}
1770     +
1771     void sas_target_destroy(struct scsi_target *starget)
1772     {
1773     struct domain_device *found_dev = starget->hostdata;
1774     @@ -957,5 +965,6 @@ EXPORT_SYMBOL_GPL(sas_task_abort);
1775     EXPORT_SYMBOL_GPL(sas_phy_reset);
1776     EXPORT_SYMBOL_GPL(sas_eh_device_reset_handler);
1777     EXPORT_SYMBOL_GPL(sas_eh_target_reset_handler);
1778     +EXPORT_SYMBOL_GPL(sas_slave_alloc);
1779     EXPORT_SYMBOL_GPL(sas_target_destroy);
1780     EXPORT_SYMBOL_GPL(sas_ioctl);
1781     diff --git a/drivers/scsi/mvsas/mv_init.c b/drivers/scsi/mvsas/mv_init.c
1782     index da719b0694dcc..52405ce58ade8 100644
1783     --- a/drivers/scsi/mvsas/mv_init.c
1784     +++ b/drivers/scsi/mvsas/mv_init.c
1785     @@ -45,6 +45,7 @@ static struct scsi_host_template mvs_sht = {
1786     .max_sectors = SCSI_DEFAULT_MAX_SECTORS,
1787     .eh_device_reset_handler = sas_eh_device_reset_handler,
1788     .eh_target_reset_handler = sas_eh_target_reset_handler,
1789     + .slave_alloc = sas_slave_alloc,
1790     .target_destroy = sas_target_destroy,
1791     .ioctl = sas_ioctl,
1792     .shost_attrs = mvst_host_attrs,
1793     diff --git a/drivers/scsi/pm8001/pm8001_init.c b/drivers/scsi/pm8001/pm8001_init.c
1794     index 8882ba33ca87c..1f41537d52a58 100644
1795     --- a/drivers/scsi/pm8001/pm8001_init.c
1796     +++ b/drivers/scsi/pm8001/pm8001_init.c
1797     @@ -86,6 +86,7 @@ static struct scsi_host_template pm8001_sht = {
1798     .max_sectors = SCSI_DEFAULT_MAX_SECTORS,
1799     .eh_device_reset_handler = sas_eh_device_reset_handler,
1800     .eh_target_reset_handler = sas_eh_target_reset_handler,
1801     + .slave_alloc = sas_slave_alloc,
1802     .target_destroy = sas_target_destroy,
1803     .ioctl = sas_ioctl,
1804     .shost_attrs = pm8001_host_attrs,
1805     diff --git a/drivers/scsi/qedf/qedf_io.c b/drivers/scsi/qedf/qedf_io.c
1806     index e749a2dcaad7e..4e8a284e606c0 100644
1807     --- a/drivers/scsi/qedf/qedf_io.c
1808     +++ b/drivers/scsi/qedf/qedf_io.c
1809     @@ -1504,9 +1504,19 @@ void qedf_process_error_detect(struct qedf_ctx *qedf, struct fcoe_cqe *cqe,
1810     {
1811     int rval;
1812    
1813     + if (io_req == NULL) {
1814     + QEDF_INFO(NULL, QEDF_LOG_IO, "io_req is NULL.\n");
1815     + return;
1816     + }
1817     +
1818     + if (io_req->fcport == NULL) {
1819     + QEDF_INFO(NULL, QEDF_LOG_IO, "fcport is NULL.\n");
1820     + return;
1821     + }
1822     +
1823     if (!cqe) {
1824     QEDF_INFO(&qedf->dbg_ctx, QEDF_LOG_IO,
1825     - "cqe is NULL for io_req %p\n", io_req);
1826     + "cqe is NULL for io_req %p\n", io_req);
1827     return;
1828     }
1829    
1830     @@ -1522,6 +1532,16 @@ void qedf_process_error_detect(struct qedf_ctx *qedf, struct fcoe_cqe *cqe,
1831     le32_to_cpu(cqe->cqe_info.err_info.rx_buf_off),
1832     le32_to_cpu(cqe->cqe_info.err_info.rx_id));
1833    
1834     + /* When flush is active, let the cmds be flushed out from the cleanup context */
1835     + if (test_bit(QEDF_RPORT_IN_TARGET_RESET, &io_req->fcport->flags) ||
1836     + (test_bit(QEDF_RPORT_IN_LUN_RESET, &io_req->fcport->flags) &&
1837     + io_req->sc_cmd->device->lun == (u64)io_req->fcport->lun_reset_lun)) {
1838     + QEDF_ERR(&qedf->dbg_ctx,
1839     + "Dropping EQE for xid=0x%x as fcport is flushing",
1840     + io_req->xid);
1841     + return;
1842     + }
1843     +
1844     if (qedf->stop_io_on_error) {
1845     qedf_stop_all_io(qedf);
1846     return;
1847     diff --git a/drivers/soc/tegra/fuse/fuse-tegra30.c b/drivers/soc/tegra/fuse/fuse-tegra30.c
1848     index 9c3ef0a02fd4e..15060c847eccf 100644
1849     --- a/drivers/soc/tegra/fuse/fuse-tegra30.c
1850     +++ b/drivers/soc/tegra/fuse/fuse-tegra30.c
1851     @@ -36,7 +36,8 @@
1852     defined(CONFIG_ARCH_TEGRA_132_SOC) || \
1853     defined(CONFIG_ARCH_TEGRA_210_SOC) || \
1854     defined(CONFIG_ARCH_TEGRA_186_SOC) || \
1855     - defined(CONFIG_ARCH_TEGRA_194_SOC)
1856     + defined(CONFIG_ARCH_TEGRA_194_SOC) || \
1857     + defined(CONFIG_ARCH_TEGRA_234_SOC)
1858     static u32 tegra30_fuse_read_early(struct tegra_fuse *fuse, unsigned int offset)
1859     {
1860     if (WARN_ON(!fuse->base))
1861     diff --git a/drivers/thermal/thermal_core.c b/drivers/thermal/thermal_core.c
1862     index c28271817e43f..f526ce31f5a2f 100644
1863     --- a/drivers/thermal/thermal_core.c
1864     +++ b/drivers/thermal/thermal_core.c
1865     @@ -1368,7 +1368,7 @@ free_tz:
1866     EXPORT_SYMBOL_GPL(thermal_zone_device_register);
1867    
1868     /**
1869     - * thermal_device_unregister - removes the registered thermal zone device
1870     + * thermal_zone_device_unregister - removes the registered thermal zone device
1871     * @tz: the thermal zone device to remove
1872     */
1873     void thermal_zone_device_unregister(struct thermal_zone_device *tz)
1874     diff --git a/drivers/usb/cdns3/gadget.c b/drivers/usb/cdns3/gadget.c
1875     index f32f00c495713..c3bf54cc530f9 100644
1876     --- a/drivers/usb/cdns3/gadget.c
1877     +++ b/drivers/usb/cdns3/gadget.c
1878     @@ -1531,7 +1531,7 @@ void cdns3_configure_dmult(struct cdns3_device *priv_dev,
1879     else
1880     mask = BIT(priv_ep->num);
1881    
1882     - if (priv_ep->type != USB_ENDPOINT_XFER_ISOC) {
1883     + if (priv_ep->type != USB_ENDPOINT_XFER_ISOC && !priv_ep->dir) {
1884     cdns3_set_register_bit(&regs->tdl_from_trb, mask);
1885     cdns3_set_register_bit(&regs->tdl_beh, mask);
1886     cdns3_set_register_bit(&regs->tdl_beh2, mask);
1887     @@ -1569,15 +1569,13 @@ void cdns3_ep_config(struct cdns3_endpoint *priv_ep)
1888     case USB_ENDPOINT_XFER_INT:
1889     ep_cfg = EP_CFG_EPTYPE(USB_ENDPOINT_XFER_INT);
1890    
1891     - if ((priv_dev->dev_ver == DEV_VER_V2 && !priv_ep->dir) ||
1892     - priv_dev->dev_ver > DEV_VER_V2)
1893     + if (priv_dev->dev_ver >= DEV_VER_V2 && !priv_ep->dir)
1894     ep_cfg |= EP_CFG_TDL_CHK;
1895     break;
1896     case USB_ENDPOINT_XFER_BULK:
1897     ep_cfg = EP_CFG_EPTYPE(USB_ENDPOINT_XFER_BULK);
1898    
1899     - if ((priv_dev->dev_ver == DEV_VER_V2 && !priv_ep->dir) ||
1900     - priv_dev->dev_ver > DEV_VER_V2)
1901     + if (priv_dev->dev_ver >= DEV_VER_V2 && !priv_ep->dir)
1902     ep_cfg |= EP_CFG_TDL_CHK;
1903     break;
1904     default:
1905     diff --git a/fs/cifs/cifs_dfs_ref.c b/fs/cifs/cifs_dfs_ref.c
1906     index cc3ada12848d9..42125601ebb10 100644
1907     --- a/fs/cifs/cifs_dfs_ref.c
1908     +++ b/fs/cifs/cifs_dfs_ref.c
1909     @@ -151,6 +151,9 @@ char *cifs_compose_mount_options(const char *sb_mountdata,
1910     return ERR_PTR(-EINVAL);
1911    
1912     if (ref) {
1913     + if (WARN_ON_ONCE(!ref->node_name || ref->path_consumed < 0))
1914     + return ERR_PTR(-EINVAL);
1915     +
1916     if (strlen(fullpath) - ref->path_consumed) {
1917     prepath = fullpath + ref->path_consumed;
1918     /* skip initial delimiter */
1919     diff --git a/fs/f2fs/sysfs.c b/fs/f2fs/sysfs.c
1920     index 029e693e201cf..3a5360e045cfd 100644
1921     --- a/fs/f2fs/sysfs.c
1922     +++ b/fs/f2fs/sysfs.c
1923     @@ -499,7 +499,9 @@ F2FS_FEATURE_RO_ATTR(lost_found, FEAT_LOST_FOUND);
1924     F2FS_FEATURE_RO_ATTR(verity, FEAT_VERITY);
1925     #endif
1926     F2FS_FEATURE_RO_ATTR(sb_checksum, FEAT_SB_CHECKSUM);
1927     +#ifdef CONFIG_UNICODE
1928     F2FS_FEATURE_RO_ATTR(casefold, FEAT_CASEFOLD);
1929     +#endif
1930    
1931     #define ATTR_LIST(name) (&f2fs_attr_##name.attr)
1932     static struct attribute *f2fs_attrs[] = {
1933     @@ -568,7 +570,9 @@ static struct attribute *f2fs_feat_attrs[] = {
1934     ATTR_LIST(verity),
1935     #endif
1936     ATTR_LIST(sb_checksum),
1937     +#ifdef CONFIG_UNICODE
1938     ATTR_LIST(casefold),
1939     +#endif
1940     NULL,
1941     };
1942     ATTRIBUTE_GROUPS(f2fs_feat);
1943     diff --git a/include/net/dst_metadata.h b/include/net/dst_metadata.h
1944     index 56cb3c38569a7..14efa0ded75dd 100644
1945     --- a/include/net/dst_metadata.h
1946     +++ b/include/net/dst_metadata.h
1947     @@ -45,7 +45,9 @@ skb_tunnel_info(const struct sk_buff *skb)
1948     return &md_dst->u.tun_info;
1949    
1950     dst = skb_dst(skb);
1951     - if (dst && dst->lwtstate)
1952     + if (dst && dst->lwtstate &&
1953     + (dst->lwtstate->type == LWTUNNEL_ENCAP_IP ||
1954     + dst->lwtstate->type == LWTUNNEL_ENCAP_IP6))
1955     return lwt_tun_info(dst->lwtstate);
1956    
1957     return NULL;
1958     diff --git a/include/net/ip6_route.h b/include/net/ip6_route.h
1959     index 40602def3fe76..feeecbc80e727 100644
1960     --- a/include/net/ip6_route.h
1961     +++ b/include/net/ip6_route.h
1962     @@ -261,7 +261,7 @@ static inline bool ipv6_anycast_destination(const struct dst_entry *dst,
1963     int ip6_fragment(struct net *net, struct sock *sk, struct sk_buff *skb,
1964     int (*output)(struct net *, struct sock *, struct sk_buff *));
1965    
1966     -static inline int ip6_skb_dst_mtu(struct sk_buff *skb)
1967     +static inline unsigned int ip6_skb_dst_mtu(struct sk_buff *skb)
1968     {
1969     int mtu;
1970    
1971     diff --git a/kernel/sched/fair.c b/kernel/sched/fair.c
1972     index d2ba080ea7425..74cb20f32f72f 100644
1973     --- a/kernel/sched/fair.c
1974     +++ b/kernel/sched/fair.c
1975     @@ -4786,7 +4786,7 @@ static const u64 cfs_bandwidth_slack_period = 5 * NSEC_PER_MSEC;
1976     static int runtime_refresh_within(struct cfs_bandwidth *cfs_b, u64 min_expire)
1977     {
1978     struct hrtimer *refresh_timer = &cfs_b->period_timer;
1979     - u64 remaining;
1980     + s64 remaining;
1981    
1982     /* if the call-back is running a quota refresh is already occurring */
1983     if (hrtimer_callback_running(refresh_timer))
1984     @@ -4794,7 +4794,7 @@ static int runtime_refresh_within(struct cfs_bandwidth *cfs_b, u64 min_expire)
1985    
1986     /* is a quota refresh about to occur? */
1987     remaining = ktime_to_ns(hrtimer_expires_remaining(refresh_timer));
1988     - if (remaining < min_expire)
1989     + if (remaining < (s64)min_expire)
1990     return 1;
1991    
1992     return 0;
1993     diff --git a/mm/slab_common.c b/mm/slab_common.c
1994     index 636cd496417cf..8f128245b3007 100644
1995     --- a/mm/slab_common.c
1996     +++ b/mm/slab_common.c
1997     @@ -325,14 +325,6 @@ int slab_unmergeable(struct kmem_cache *s)
1998     if (s->refcount < 0)
1999     return 1;
2000    
2001     -#ifdef CONFIG_MEMCG_KMEM
2002     - /*
2003     - * Skip the dying kmem_cache.
2004     - */
2005     - if (s->memcg_params.dying)
2006     - return 1;
2007     -#endif
2008     -
2009     return 0;
2010     }
2011    
2012     @@ -973,6 +965,16 @@ void kmem_cache_destroy(struct kmem_cache *s)
2013     get_online_mems();
2014    
2015     mutex_lock(&slab_mutex);
2016     +
2017     + /*
2018     + * Another thread referenced it again
2019     + */
2020     + if (READ_ONCE(s->refcount)) {
2021     + spin_lock_irq(&memcg_kmem_wq_lock);
2022     + s->memcg_params.dying = false;
2023     + spin_unlock_irq(&memcg_kmem_wq_lock);
2024     + goto out_unlock;
2025     + }
2026     #endif
2027    
2028     err = shutdown_memcg_caches(s);
2029     diff --git a/net/bridge/br_if.c b/net/bridge/br_if.c
2030     index 4fe30b182ee7e..bec20dbf6f603 100644
2031     --- a/net/bridge/br_if.c
2032     +++ b/net/bridge/br_if.c
2033     @@ -559,7 +559,7 @@ int br_add_if(struct net_bridge *br, struct net_device *dev,
2034     struct net_bridge_port *p;
2035     int err = 0;
2036     unsigned br_hr, dev_hr;
2037     - bool changed_addr;
2038     + bool changed_addr, fdb_synced = false;
2039    
2040     /* Don't allow bridging non-ethernet like devices, or DSA-enabled
2041     * master network devices since the bridge layer rx_handler prevents
2042     @@ -635,6 +635,19 @@ int br_add_if(struct net_bridge *br, struct net_device *dev,
2043     list_add_rcu(&p->list, &br->port_list);
2044    
2045     nbp_update_port_count(br);
2046     + if (!br_promisc_port(p) && (p->dev->priv_flags & IFF_UNICAST_FLT)) {
2047     + /* When updating the port count we also update all ports'
2048     + * promiscuous mode.
2049     + * A port leaving promiscuous mode normally gets the bridge's
2050     + * fdb synced to the unicast filter (if supported), however,
2051     + * `br_port_clear_promisc` does not distinguish between
2052     + * non-promiscuous ports and *new* ports, so we need to
2053     + * sync explicitly here.
2054     + */
2055     + fdb_synced = br_fdb_sync_static(br, p) == 0;
2056     + if (!fdb_synced)
2057     + netdev_err(dev, "failed to sync bridge static fdb addresses to this port\n");
2058     + }
2059    
2060     netdev_update_features(br->dev);
2061    
2062     @@ -684,6 +697,8 @@ int br_add_if(struct net_bridge *br, struct net_device *dev,
2063     return 0;
2064    
2065     err7:
2066     + if (fdb_synced)
2067     + br_fdb_unsync_static(br, p);
2068     list_del_rcu(&p->list);
2069     br_fdb_delete_by_port(br, p, 0, 1);
2070     nbp_update_port_count(br);
2071     diff --git a/net/ipv4/ip_tunnel.c b/net/ipv4/ip_tunnel.c
2072     index f64d1743b86d6..eb381a24a8f8d 100644
2073     --- a/net/ipv4/ip_tunnel.c
2074     +++ b/net/ipv4/ip_tunnel.c
2075     @@ -317,7 +317,7 @@ static int ip_tunnel_bind_dev(struct net_device *dev)
2076     }
2077    
2078     dev->needed_headroom = t_hlen + hlen;
2079     - mtu -= t_hlen;
2080     + mtu -= t_hlen + (dev->type == ARPHRD_ETHER ? dev->hard_header_len : 0);
2081    
2082     if (mtu < IPV4_MIN_MTU)
2083     mtu = IPV4_MIN_MTU;
2084     @@ -348,6 +348,9 @@ static struct ip_tunnel *ip_tunnel_create(struct net *net,
2085     t_hlen = nt->hlen + sizeof(struct iphdr);
2086     dev->min_mtu = ETH_MIN_MTU;
2087     dev->max_mtu = IP_MAX_MTU - t_hlen;
2088     + if (dev->type == ARPHRD_ETHER)
2089     + dev->max_mtu -= dev->hard_header_len;
2090     +
2091     ip_tunnel_add(itn, nt);
2092     return nt;
2093    
2094     @@ -495,11 +498,14 @@ static int tnl_update_pmtu(struct net_device *dev, struct sk_buff *skb,
2095    
2096     tunnel_hlen = md ? tunnel_hlen : tunnel->hlen;
2097     pkt_size = skb->len - tunnel_hlen;
2098     + pkt_size -= dev->type == ARPHRD_ETHER ? dev->hard_header_len : 0;
2099    
2100     - if (df)
2101     + if (df) {
2102     mtu = dst_mtu(&rt->dst) - (sizeof(struct iphdr) + tunnel_hlen);
2103     - else
2104     + mtu -= dev->type == ARPHRD_ETHER ? dev->hard_header_len : 0;
2105     + } else {
2106     mtu = skb_valid_dst(skb) ? dst_mtu(skb_dst(skb)) : dev->mtu;
2107     + }
2108    
2109     if (skb_valid_dst(skb))
2110     skb_dst_update_pmtu_no_confirm(skb, mtu);
2111     @@ -965,6 +971,9 @@ int __ip_tunnel_change_mtu(struct net_device *dev, int new_mtu, bool strict)
2112     int t_hlen = tunnel->hlen + sizeof(struct iphdr);
2113     int max_mtu = IP_MAX_MTU - t_hlen;
2114    
2115     + if (dev->type == ARPHRD_ETHER)
2116     + max_mtu -= dev->hard_header_len;
2117     +
2118     if (new_mtu < ETH_MIN_MTU)
2119     return -EINVAL;
2120    
2121     @@ -1142,6 +1151,9 @@ int ip_tunnel_newlink(struct net_device *dev, struct nlattr *tb[],
2122     if (tb[IFLA_MTU]) {
2123     unsigned int max = IP_MAX_MTU - (nt->hlen + sizeof(struct iphdr));
2124    
2125     + if (dev->type == ARPHRD_ETHER)
2126     + max -= dev->hard_header_len;
2127     +
2128     mtu = clamp(dev->mtu, (unsigned int)ETH_MIN_MTU, max);
2129     }
2130    
2131     diff --git a/net/ipv4/tcp_ipv4.c b/net/ipv4/tcp_ipv4.c
2132     index 04acdca4bb0d5..91788ff19a5d4 100644
2133     --- a/net/ipv4/tcp_ipv4.c
2134     +++ b/net/ipv4/tcp_ipv4.c
2135     @@ -343,7 +343,7 @@ void tcp_v4_mtu_reduced(struct sock *sk)
2136    
2137     if ((1 << sk->sk_state) & (TCPF_LISTEN | TCPF_CLOSE))
2138     return;
2139     - mtu = tcp_sk(sk)->mtu_info;
2140     + mtu = READ_ONCE(tcp_sk(sk)->mtu_info);
2141     dst = inet_csk_update_pmtu(sk, mtu);
2142     if (!dst)
2143     return;
2144     @@ -512,7 +512,7 @@ int tcp_v4_err(struct sk_buff *icmp_skb, u32 info)
2145     if (sk->sk_state == TCP_LISTEN)
2146     goto out;
2147    
2148     - tp->mtu_info = info;
2149     + WRITE_ONCE(tp->mtu_info, info);
2150     if (!sock_owned_by_user(sk)) {
2151     tcp_v4_mtu_reduced(sk);
2152     } else {
2153     diff --git a/net/ipv4/tcp_output.c b/net/ipv4/tcp_output.c
2154     index d0774b4e934d6..638d7b49ad716 100644
2155     --- a/net/ipv4/tcp_output.c
2156     +++ b/net/ipv4/tcp_output.c
2157     @@ -1504,6 +1504,7 @@ int tcp_mtu_to_mss(struct sock *sk, int pmtu)
2158     return __tcp_mtu_to_mss(sk, pmtu) -
2159     (tcp_sk(sk)->tcp_header_len - sizeof(struct tcphdr));
2160     }
2161     +EXPORT_SYMBOL(tcp_mtu_to_mss);
2162    
2163     /* Inverse of above */
2164     int tcp_mss_to_mtu(struct sock *sk, int mss)
2165     diff --git a/net/ipv4/udp.c b/net/ipv4/udp.c
2166     index 4644f86c932fc..6f277bd30ea3c 100644
2167     --- a/net/ipv4/udp.c
2168     +++ b/net/ipv4/udp.c
2169     @@ -1043,7 +1043,7 @@ int udp_sendmsg(struct sock *sk, struct msghdr *msg, size_t len)
2170     }
2171    
2172     ipcm_init_sk(&ipc, inet);
2173     - ipc.gso_size = up->gso_size;
2174     + ipc.gso_size = READ_ONCE(up->gso_size);
2175    
2176     if (msg->msg_controllen) {
2177     err = udp_cmsg_send(sk, msg, &ipc.gso_size);
2178     @@ -2590,7 +2590,7 @@ int udp_lib_setsockopt(struct sock *sk, int level, int optname,
2179     case UDP_SEGMENT:
2180     if (val < 0 || val > USHRT_MAX)
2181     return -EINVAL;
2182     - up->gso_size = val;
2183     + WRITE_ONCE(up->gso_size, val);
2184     break;
2185    
2186     case UDP_GRO:
2187     @@ -2692,7 +2692,7 @@ int udp_lib_getsockopt(struct sock *sk, int level, int optname,
2188     break;
2189    
2190     case UDP_SEGMENT:
2191     - val = up->gso_size;
2192     + val = READ_ONCE(up->gso_size);
2193     break;
2194    
2195     case UDP_GRO:
2196     diff --git a/net/ipv6/tcp_ipv6.c b/net/ipv6/tcp_ipv6.c
2197     index 2f061a911bc2c..3903cc0ab1883 100644
2198     --- a/net/ipv6/tcp_ipv6.c
2199     +++ b/net/ipv6/tcp_ipv6.c
2200     @@ -343,11 +343,20 @@ failure:
2201     static void tcp_v6_mtu_reduced(struct sock *sk)
2202     {
2203     struct dst_entry *dst;
2204     + u32 mtu;
2205    
2206     if ((1 << sk->sk_state) & (TCPF_LISTEN | TCPF_CLOSE))
2207     return;
2208    
2209     - dst = inet6_csk_update_pmtu(sk, tcp_sk(sk)->mtu_info);
2210     + mtu = READ_ONCE(tcp_sk(sk)->mtu_info);
2211     +
2212     + /* Drop requests trying to increase our current mss.
2213     + * Check done in __ip6_rt_update_pmtu() is too late.
2214     + */
2215     + if (tcp_mtu_to_mss(sk, mtu) >= tcp_sk(sk)->mss_cache)
2216     + return;
2217     +
2218     + dst = inet6_csk_update_pmtu(sk, mtu);
2219     if (!dst)
2220     return;
2221    
2222     @@ -428,6 +437,8 @@ static int tcp_v6_err(struct sk_buff *skb, struct inet6_skb_parm *opt,
2223     }
2224    
2225     if (type == ICMPV6_PKT_TOOBIG) {
2226     + u32 mtu = ntohl(info);
2227     +
2228     /* We are not interested in TCP_LISTEN and open_requests
2229     * (SYN-ACKs send out by Linux are always <576bytes so
2230     * they should go through unfragmented).
2231     @@ -438,7 +449,11 @@ static int tcp_v6_err(struct sk_buff *skb, struct inet6_skb_parm *opt,
2232     if (!ip6_sk_accept_pmtu(sk))
2233     goto out;
2234    
2235     - tp->mtu_info = ntohl(info);
2236     + if (mtu < IPV6_MIN_MTU)
2237     + goto out;
2238     +
2239     + WRITE_ONCE(tp->mtu_info, mtu);
2240     +
2241     if (!sock_owned_by_user(sk))
2242     tcp_v6_mtu_reduced(sk);
2243     else if (!test_and_set_bit(TCP_MTU_REDUCED_DEFERRED,
2244     @@ -513,8 +528,8 @@ static int tcp_v6_send_synack(const struct sock *sk, struct dst_entry *dst,
2245     opt = ireq->ipv6_opt;
2246     if (!opt)
2247     opt = rcu_dereference(np->opt);
2248     - err = ip6_xmit(sk, skb, fl6, sk->sk_mark, opt, np->tclass,
2249     - sk->sk_priority);
2250     + err = ip6_xmit(sk, skb, fl6, skb->mark ? : sk->sk_mark, opt,
2251     + np->tclass, sk->sk_priority);
2252     rcu_read_unlock();
2253     err = net_xmit_eval(err);
2254     }
2255     diff --git a/net/ipv6/udp.c b/net/ipv6/udp.c
2256     index 3c94b81bb459a..776427e80efbd 100644
2257     --- a/net/ipv6/udp.c
2258     +++ b/net/ipv6/udp.c
2259     @@ -1237,7 +1237,7 @@ int udpv6_sendmsg(struct sock *sk, struct msghdr *msg, size_t len)
2260     int (*getfrag)(void *, char *, int, int, int, struct sk_buff *);
2261    
2262     ipcm6_init(&ipc6);
2263     - ipc6.gso_size = up->gso_size;
2264     + ipc6.gso_size = READ_ONCE(up->gso_size);
2265     ipc6.sockc.tsflags = sk->sk_tsflags;
2266     ipc6.sockc.mark = sk->sk_mark;
2267    
2268     diff --git a/net/ipv6/xfrm6_output.c b/net/ipv6/xfrm6_output.c
2269     index cf2a0ce15c1c5..6b0ed6c593e2b 100644
2270     --- a/net/ipv6/xfrm6_output.c
2271     +++ b/net/ipv6/xfrm6_output.c
2272     @@ -144,7 +144,7 @@ static int __xfrm6_output(struct net *net, struct sock *sk, struct sk_buff *skb)
2273     {
2274     struct dst_entry *dst = skb_dst(skb);
2275     struct xfrm_state *x = dst->xfrm;
2276     - int mtu;
2277     + unsigned int mtu;
2278     bool toobig;
2279    
2280     #ifdef CONFIG_NETFILTER
2281     diff --git a/net/netfilter/nf_conntrack_netlink.c b/net/netfilter/nf_conntrack_netlink.c
2282     index 783af451a8325..bc6f0c8874f81 100644
2283     --- a/net/netfilter/nf_conntrack_netlink.c
2284     +++ b/net/netfilter/nf_conntrack_netlink.c
2285     @@ -211,6 +211,7 @@ static int ctnetlink_dump_helpinfo(struct sk_buff *skb,
2286     if (!help)
2287     return 0;
2288    
2289     + rcu_read_lock();
2290     helper = rcu_dereference(help->helper);
2291     if (!helper)
2292     goto out;
2293     @@ -226,9 +227,11 @@ static int ctnetlink_dump_helpinfo(struct sk_buff *skb,
2294    
2295     nla_nest_end(skb, nest_helper);
2296     out:
2297     + rcu_read_unlock();
2298     return 0;
2299    
2300     nla_put_failure:
2301     + rcu_read_unlock();
2302     return -1;
2303     }
2304    
2305     diff --git a/net/sched/act_ct.c b/net/sched/act_ct.c
2306     index 16c4cbf6d1f0a..02d4491991b5e 100644
2307     --- a/net/sched/act_ct.c
2308     +++ b/net/sched/act_ct.c
2309     @@ -474,7 +474,8 @@ static int tcf_ct_act(struct sk_buff *skb, const struct tc_action *a,
2310     /* This will take care of sending queued events
2311     * even if the connection is already confirmed.
2312     */
2313     - nf_conntrack_confirm(skb);
2314     + if (nf_conntrack_confirm(skb) != NF_ACCEPT)
2315     + goto drop;
2316     }
2317    
2318     out_push:
2319     diff --git a/scripts/Kbuild.include b/scripts/Kbuild.include
2320     index 7da10afc92c61..b14a7d4a2f05a 100644
2321     --- a/scripts/Kbuild.include
2322     +++ b/scripts/Kbuild.include
2323     @@ -182,8 +182,13 @@ clean := -f $(srctree)/scripts/Makefile.clean obj
2324     echo-cmd = $(if $($(quiet)cmd_$(1)),\
2325     echo ' $(call escsq,$($(quiet)cmd_$(1)))$(echo-why)';)
2326    
2327     +# sink stdout for 'make -s'
2328     + redirect :=
2329     + quiet_redirect :=
2330     +silent_redirect := exec >/dev/null;
2331     +
2332     # printing commands
2333     -cmd = @set -e; $(echo-cmd) $(cmd_$(1))
2334     +cmd = @set -e; $(echo-cmd) $($(quiet)redirect) $(cmd_$(1))
2335    
2336     ###
2337     # if_changed - execute command if any prerequisite is newer than
2338     diff --git a/scripts/mkcompile_h b/scripts/mkcompile_h
2339     index d1d757c6edf4f..06c1e9e3bc38d 100755
2340     --- a/scripts/mkcompile_h
2341     +++ b/scripts/mkcompile_h
2342     @@ -80,15 +80,23 @@ UTS_TRUNCATE="cut -b -$UTS_LEN"
2343     # Only replace the real compile.h if the new one is different,
2344     # in order to preserve the timestamp and avoid unnecessary
2345     # recompilations.
2346     -# We don't consider the file changed if only the date/time changed.
2347     +# We don't consider the file changed if only the date/time changed,
2348     +# unless KBUILD_BUILD_TIMESTAMP was explicitly set (e.g. for
2349     +# reproducible builds with that value referring to a commit timestamp).
2350     # A kernel config change will increase the generation number, thus
2351     # causing compile.h to be updated (including date/time) due to the
2352     # changed comment in the
2353     # first line.
2354    
2355     +if [ -z "$KBUILD_BUILD_TIMESTAMP" ]; then
2356     + IGNORE_PATTERN="UTS_VERSION"
2357     +else
2358     + IGNORE_PATTERN="NOT_A_PATTERN_TO_BE_MATCHED"
2359     +fi
2360     +
2361     if [ -r $TARGET ] && \
2362     - grep -v 'UTS_VERSION' $TARGET > .tmpver.1 && \
2363     - grep -v 'UTS_VERSION' .tmpcompile > .tmpver.2 && \
2364     + grep -v $IGNORE_PATTERN $TARGET > .tmpver.1 && \
2365     + grep -v $IGNORE_PATTERN .tmpcompile > .tmpver.2 && \
2366     cmp -s .tmpver.1 .tmpver.2; then
2367     rm -f .tmpcompile
2368     else
2369     diff --git a/tools/bpf/bpftool/jit_disasm.c b/tools/bpf/bpftool/jit_disasm.c
2370     index bfed711258ced..1711d0b5df3a5 100644
2371     --- a/tools/bpf/bpftool/jit_disasm.c
2372     +++ b/tools/bpf/bpftool/jit_disasm.c
2373     @@ -44,11 +44,13 @@ static int fprintf_json(void *out, const char *fmt, ...)
2374     {
2375     va_list ap;
2376     char *s;
2377     + int err;
2378    
2379     va_start(ap, fmt);
2380     - if (vasprintf(&s, fmt, ap) < 0)
2381     - return -1;
2382     + err = vasprintf(&s, fmt, ap);
2383     va_end(ap);
2384     + if (err < 0)
2385     + return -1;
2386    
2387     if (!oper_count) {
2388     int i;
2389     diff --git a/tools/perf/tests/bpf.c b/tools/perf/tests/bpf.c
2390     index 1eb0bffaed6cd..8669bb85e7c7f 100644
2391     --- a/tools/perf/tests/bpf.c
2392     +++ b/tools/perf/tests/bpf.c
2393     @@ -1,6 +1,7 @@
2394     // SPDX-License-Identifier: GPL-2.0
2395     #include <errno.h>
2396     #include <stdio.h>
2397     +#include <stdlib.h>
2398     #include <sys/epoll.h>
2399     #include <sys/types.h>
2400     #include <sys/stat.h>
2401     @@ -282,6 +283,7 @@ static int __test__bpf(int idx)
2402     }
2403    
2404     out:
2405     + free(obj_buf);
2406     bpf__clear();
2407     return ret;
2408     }