diff --git a/Makefile b/Makefile
index ffebf9f82432..0fb38663ccde 100644
--- a/Makefile
+++ b/Makefile
@@ -808,11 +808,20 @@ KBUILD_CFLAGS += -fomit-frame-pointer
endif
endif
-# Initialize all stack variables with a pattern, if desired.
-ifdef CONFIG_INIT_STACK_ALL
+# Initialize all stack variables with a 0xAA pattern.
+ifdef CONFIG_INIT_STACK_ALL_PATTERN
KBUILD_CFLAGS += -ftrivial-auto-var-init=pattern
endif
+# Initialize all stack variables with a zero value.
+ifdef CONFIG_INIT_STACK_ALL_ZERO
+# Future support for zero initialization is still being debated, see
+# https://bugs.llvm.org/show_bug.cgi?id=45497. These flags are subject to being
+# renamed or dropped.
+KBUILD_CFLAGS += -ftrivial-auto-var-init=zero
+KBUILD_CFLAGS += -enable-trivial-auto-var-init-zero-knowing-it-will-be-removed-from-clang
+endif
+
DEBUG_CFLAGS := $(call cc-option, -fno-var-tracking-assignments)
ifdef CONFIG_DEBUG_INFO
diff --git a/android/abi_gki_aarch64.xml b/android/abi_gki_aarch64.xml
index 0650271f360a..a263c39a0a40 100644
--- a/android/abi_gki_aarch64.xml
+++ b/android/abi_gki_aarch64.xml
@@ -2912,6 +2912,7 @@
+
@@ -4388,6 +4389,7 @@
+
@@ -15230,6 +15232,14 @@
+
+
+
+
+
+
+
+
@@ -15249,20 +15259,6 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
@@ -16038,6 +16034,22 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -16391,7 +16403,7 @@
-
+
@@ -16493,7 +16505,7 @@
-
+
@@ -16962,7 +16974,7 @@
-
+
@@ -16975,10 +16987,10 @@
-
+
-
+
@@ -16986,7 +16998,7 @@
-
+
@@ -17356,7 +17368,7 @@
-
+
@@ -17727,7 +17739,7 @@
-
+
@@ -18046,10 +18058,10 @@
-
+
-
+
@@ -22071,24 +22083,6 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
@@ -22340,17 +22334,23 @@
-
-
-
+
+
+
-
-
+
+
-
-
+
+
-
+
+
+
+
+
+
+
@@ -22359,6 +22359,7 @@
+
@@ -22561,7 +22562,7 @@
-
+
@@ -22784,7 +22785,7 @@
-
+
@@ -22842,15 +22843,15 @@
-
+
-
+
-
+
@@ -23075,26 +23076,6 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
@@ -23243,12 +23224,12 @@
-
+
-
+
@@ -23587,6 +23568,10 @@
+
+
+
+
@@ -24045,7 +24030,7 @@
-
+
@@ -24234,7 +24219,7 @@
-
+
@@ -24848,12 +24833,12 @@
-
+
-
+
@@ -29650,13 +29635,13 @@
-
+
-
+
@@ -32178,7 +32163,7 @@
-
+
@@ -32199,7 +32184,7 @@
-
+
@@ -32599,7 +32584,7 @@
-
+
@@ -33583,7 +33568,7 @@
-
+
@@ -33841,10 +33826,10 @@
-
+
-
+
@@ -34850,7 +34835,7 @@
-
+
@@ -36517,7 +36502,7 @@
-
+
@@ -36527,7 +36512,6 @@
-
@@ -37123,7 +37107,7 @@
-
+
@@ -37384,10 +37368,10 @@
-
+
-
+
@@ -37506,13 +37490,13 @@
-
+
-
+
@@ -37809,7 +37793,7 @@
-
+
@@ -39606,7 +39590,7 @@
-
+
@@ -39698,7 +39682,7 @@
-
+
@@ -40687,7 +40671,7 @@
-
+
@@ -40706,7 +40690,7 @@
-
+
@@ -41994,7 +41978,7 @@
-
+
@@ -42019,9 +42003,9 @@
-
+
-
+
@@ -42033,7 +42017,7 @@
-
+
@@ -42162,7 +42146,7 @@
-
+
@@ -42628,9 +42612,9 @@
-
+
-
+
@@ -42642,7 +42626,7 @@
-
+
@@ -42650,7 +42634,7 @@
-
+
@@ -42679,7 +42663,7 @@
-
+
@@ -44278,7 +44262,7 @@
-
+
@@ -44291,7 +44275,7 @@
-
+
@@ -44307,7 +44291,7 @@
-
+
@@ -44315,13 +44299,13 @@
-
+
-
+
@@ -44585,7 +44569,7 @@
-
+
@@ -44593,7 +44577,7 @@
-
+
@@ -45512,10 +45496,10 @@
-
+
-
+
@@ -45798,7 +45782,7 @@
-
+
@@ -46013,8 +45997,11 @@
+
+
+
-
+
@@ -46160,7 +46147,7 @@
-
+
@@ -46278,10 +46265,10 @@
-
+
-
+
@@ -46293,7 +46280,7 @@
-
+
@@ -46318,7 +46305,7 @@
-
+
@@ -46529,7 +46516,7 @@
-
+
@@ -47494,10 +47481,10 @@
-
+
-
+
@@ -48118,7 +48105,7 @@
-
+
@@ -48134,7 +48121,7 @@
-
+
@@ -48142,13 +48129,13 @@
-
+
-
+
@@ -48640,10 +48627,10 @@
-
+
-
+
@@ -48868,7 +48855,7 @@
-
+
@@ -48903,7 +48890,7 @@
-
+
@@ -49220,10 +49207,10 @@
-
+
-
+
@@ -50929,7 +50916,7 @@
-
+
@@ -50944,7 +50931,7 @@
-
+
@@ -51592,7 +51579,7 @@
-
+
@@ -51608,7 +51595,7 @@
-
+
@@ -51906,7 +51893,7 @@
-
+
@@ -52293,7 +52280,7 @@
-
+
@@ -53293,7 +53280,7 @@
-
+
@@ -54011,7 +53998,7 @@
-
+
@@ -54036,15 +54023,15 @@
-
+
-
+
-
+
@@ -54053,7 +54040,7 @@
-
+
@@ -54661,7 +54648,7 @@
-
+
@@ -55470,17 +55457,6 @@
-
-
-
-
-
-
-
-
-
-
-
@@ -56000,9 +55976,9 @@
-
+
-
+
@@ -56011,7 +55987,7 @@
-
+
@@ -56019,7 +55995,7 @@
-
+
@@ -58717,10 +58693,10 @@
-
+
-
+
@@ -58747,7 +58723,7 @@
-
+
@@ -63472,7 +63448,7 @@
-
+
@@ -63523,7 +63499,7 @@
-
+
@@ -63607,7 +63583,7 @@
-
+
@@ -65632,7 +65608,7 @@
-
+
@@ -66329,7 +66305,7 @@
-
+
@@ -66340,7 +66316,7 @@
-
+
@@ -68711,18 +68687,18 @@
-
+
-
+
-
+
-
+
@@ -69109,7 +69085,7 @@
-
+
@@ -69938,14 +69914,6 @@
-
-
-
-
-
-
-
-
@@ -70099,6 +70067,14 @@
+
+
+
+
+
+
+
+
@@ -70110,28 +70086,18 @@
-
+
-
+
-
-
-
-
-
-
+
-
-
-
-
-
-
+
-
+
@@ -71775,10 +71741,10 @@
-
+
-
+
@@ -71831,10 +71797,10 @@
-
+
-
+
@@ -73273,7 +73239,7 @@
-
+
@@ -73282,7 +73248,7 @@
-
+
@@ -73888,7 +73854,7 @@
-
+
@@ -73935,7 +73901,7 @@
-
+
@@ -74195,7 +74161,7 @@
-
+
@@ -75555,7 +75521,7 @@
-
+
@@ -75576,7 +75542,7 @@
-
+
@@ -78931,7 +78897,7 @@
-
+
@@ -82732,7 +82698,7 @@
-
+
@@ -82740,7 +82706,7 @@
-
+
@@ -85426,7 +85392,7 @@
-
+
@@ -85445,7 +85411,7 @@
-
+
@@ -85952,7 +85918,7 @@
-
+
@@ -86526,7 +86492,7 @@
-
+
@@ -86819,7 +86785,7 @@
-
+
@@ -86841,7 +86807,7 @@
-
+
@@ -87026,10 +86992,10 @@
-
+
-
+
@@ -87303,7 +87269,7 @@
-
+
@@ -87332,7 +87298,7 @@
-
+
@@ -87410,7 +87376,7 @@
-
+
@@ -87565,7 +87531,7 @@
-
+
@@ -87613,7 +87579,7 @@
-
+
@@ -87798,7 +87764,7 @@
-
+
@@ -87810,12 +87776,12 @@
-
+
-
+
@@ -87835,7 +87801,7 @@
-
+
@@ -87966,7 +87932,7 @@
-
+
@@ -88080,7 +88046,7 @@
-
+
@@ -88095,7 +88061,7 @@
-
+
@@ -88154,7 +88120,7 @@
-
+
@@ -88871,7 +88837,7 @@
-
+
@@ -89536,7 +89502,7 @@
-
+
@@ -89584,7 +89550,7 @@
-
+
@@ -89730,7 +89696,7 @@
-
+
@@ -90294,7 +90260,7 @@
-
+
@@ -90716,6 +90682,17 @@
+
+
+
+
+
+
+
+
+
+
+
@@ -91448,7 +91425,7 @@
-
+
@@ -92335,7 +92312,7 @@
-
+
@@ -92358,7 +92335,7 @@
-
+
@@ -92584,7 +92561,7 @@
-
+
@@ -92602,7 +92579,7 @@
-
+
@@ -93916,7 +93893,7 @@
-
+
@@ -93937,7 +93914,7 @@
-
+
@@ -95980,10 +95957,10 @@
-
+
-
+
@@ -100391,7 +100368,7 @@
-
+
@@ -101540,7 +101517,7 @@
-
+
@@ -101634,7 +101611,7 @@
-
+
@@ -101648,24 +101625,7 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
@@ -101791,22 +101751,6 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
@@ -101872,7 +101816,7 @@
-
+
@@ -101941,7 +101885,7 @@
-
+
@@ -102741,7 +102685,7 @@
-
+
@@ -102979,7 +102923,7 @@
-
+
@@ -103024,7 +102968,7 @@
-
+
@@ -103374,10 +103318,10 @@
-
+
-
+
@@ -104107,16 +104051,16 @@
-
+
-
+
-
+
@@ -104124,7 +104068,7 @@
-
+
@@ -104202,7 +104146,7 @@
-
+
@@ -104219,7 +104163,7 @@
-
+
@@ -104458,7 +104402,7 @@
-
+
@@ -104579,7 +104523,7 @@
-
+
@@ -104668,7 +104612,7 @@
-
+
@@ -104686,10 +104630,10 @@
-
+
-
+
@@ -104708,7 +104652,7 @@
-
+
@@ -104738,7 +104682,7 @@
-
+
@@ -105058,10 +105002,210 @@
+
+
+
+
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -105069,7 +105213,7 @@
-
+
@@ -105215,7 +105359,18 @@
+
+
+
+
+
+
+
+
+
+
+
@@ -105388,6 +105543,13 @@
+
+
+
+
+
+
+
@@ -105395,6 +105557,10 @@
+
+
+
+
@@ -105459,7 +105625,7 @@
-
+
@@ -105467,7 +105633,7 @@
-
+
@@ -106790,7 +106956,7 @@
-
+
@@ -106799,7 +106965,7 @@
-
+
@@ -108050,10 +108216,10 @@
-
+
-
+
@@ -108126,7 +108292,7 @@
-
+
@@ -108381,7 +108547,7 @@
-
+
@@ -109066,7 +109232,7 @@
-
+
@@ -109074,7 +109240,7 @@
-
+
@@ -109088,7 +109254,7 @@
-
+
@@ -109096,7 +109262,7 @@
-
+
@@ -109112,7 +109278,7 @@
-
+
@@ -110857,7 +111023,7 @@
-
+
@@ -110865,7 +111031,7 @@
-
+
@@ -110881,7 +111047,7 @@
-
+
@@ -110889,7 +111055,7 @@
-
+
@@ -110897,7 +111063,7 @@
-
+
@@ -110943,7 +111109,7 @@
-
+
@@ -110951,7 +111117,7 @@
-
+
@@ -110967,7 +111133,7 @@
-
+
@@ -110975,7 +111141,7 @@
-
+
@@ -111013,7 +111179,7 @@
-
+
@@ -111043,7 +111209,7 @@
-
+
@@ -111345,7 +111511,7 @@
-
+
@@ -111354,7 +111520,7 @@
-
+
@@ -112257,10 +112423,10 @@
-
+
-
+
@@ -112282,10 +112448,10 @@
-
+
-
+
@@ -112624,6 +112790,17 @@
+
+
+
+
+
+
+
+
+
+
+
@@ -112830,10 +113007,10 @@
-
+
-
+
@@ -112841,7 +113018,7 @@
-
+
@@ -113019,7 +113196,7 @@
-
+
@@ -113132,7 +113309,7 @@
-
+
@@ -113240,17 +113417,6 @@
-
-
-
-
-
-
-
-
-
-
-
@@ -113366,7 +113532,7 @@
-
+
@@ -113784,207 +113950,12 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
+
-
-
-
-
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
@@ -114003,10 +113974,10 @@
-
+
-
+
@@ -114022,7 +113993,7 @@
-
+
@@ -114033,7 +114004,7 @@
-
+
@@ -114041,11 +114012,11 @@
-
+
-
+
-
+
@@ -114054,12 +114025,12 @@
-
+
-
+
@@ -114070,7 +114041,7 @@
-
+
@@ -114098,7 +114069,7 @@
-
+
@@ -114117,7 +114088,7 @@
-
+
@@ -114128,7 +114099,7 @@
-
+
@@ -114136,7 +114107,7 @@
-
+
@@ -114150,7 +114121,7 @@
-
+
@@ -114158,18 +114129,8 @@
-
-
-
-
-
-
-
-
-
-
+
-
@@ -114241,17 +114202,6 @@
-
-
-
-
-
-
-
-
-
-
-
@@ -117355,7 +117305,7 @@
-
+
@@ -117367,7 +117317,7 @@
-
+
@@ -118883,7 +118833,7 @@
-
+
@@ -118899,7 +118849,7 @@
-
+
@@ -119634,7 +119584,7 @@
-
+
@@ -119738,12 +119688,12 @@
-
+
-
+
-
+
@@ -119776,7 +119726,7 @@
-
+
@@ -119877,10 +119827,10 @@
-
+
-
+
@@ -120374,6 +120324,61 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -120465,7 +120470,7 @@
-
+
@@ -120617,6 +120622,25 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -120631,13 +120655,13 @@
-
+
-
+
@@ -120761,7 +120785,7 @@
-
+
@@ -120862,7 +120886,7 @@
-
+
@@ -121563,7 +121587,7 @@
-
+
@@ -121573,9 +121597,9 @@
-
+
-
+
@@ -121587,7 +121611,7 @@
-
+
@@ -121654,13 +121678,13 @@
-
+
-
+
-
+
@@ -121669,7 +121693,7 @@
-
+
@@ -121677,7 +121701,7 @@
-
+
@@ -121685,7 +121709,7 @@
-
+
@@ -121716,7 +121740,7 @@
-
+
@@ -121794,13 +121818,13 @@
-
+
-
+
@@ -122674,7 +122698,7 @@
-
+
@@ -122842,7 +122866,7 @@
-
+
@@ -123526,7 +123550,7 @@
-
+
@@ -123643,10 +123667,10 @@
-
+
-
+
@@ -124603,7 +124627,7 @@
-
+
@@ -125817,7 +125841,7 @@
-
+
@@ -126185,7 +126209,7 @@
-
+
@@ -126405,7 +126429,7 @@
-
+
@@ -126513,7 +126537,7 @@
-
+
diff --git a/android/abi_gki_aarch64_d6430e6763.xml b/android/abi_gki_aarch64_d6430e6763.xml
index 49f4b4cc867d..637e934a7424 100644
--- a/android/abi_gki_aarch64_d6430e6763.xml
+++ b/android/abi_gki_aarch64_d6430e6763.xml
@@ -1444,6 +1444,12 @@
+
+
+
+
+
+
@@ -18710,14 +18716,6 @@
-
-
-
-
-
-
-
-
@@ -19809,7 +19807,7 @@
-
+
@@ -20188,10 +20186,10 @@
-
+
-
+
@@ -22996,7 +22994,7 @@
-
+
@@ -23033,7 +23031,7 @@
-
+
@@ -24080,10 +24078,10 @@
-
+
-
+
@@ -27506,7 +27504,7 @@
-
+
@@ -28174,7 +28172,7 @@
-
+
@@ -30313,167 +30311,14 @@
-
-
-
+
+
+
-
-
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
@@ -31879,6 +31724,14 @@
+
+
+
+
+
+
+
+
@@ -32794,7 +32647,7 @@
-
+
@@ -36263,6 +36116,41 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -40048,14 +39936,6 @@
-
-
-
-
-
-
-
-
@@ -40073,7 +39953,7 @@
-
+
@@ -40235,6 +40115,14 @@
+
+
+
+
+
+
+
+
@@ -40308,15 +40196,15 @@
-
+
-
+
-
+
@@ -40990,10 +40878,10 @@
-
+
-
+
@@ -41660,10 +41548,10 @@
-
+
-
+
@@ -42177,7 +42065,7 @@
-
+
@@ -42202,7 +42090,7 @@
-
+
@@ -42621,7 +42509,7 @@
-
+
@@ -42674,6 +42562,14 @@
+
+
+
+
+
+
+
+
@@ -49278,7 +49174,7 @@
-
+
@@ -49627,9 +49523,17 @@
+
+
+
+
+
+
+
+
-
+
@@ -49653,14 +49557,6 @@
-
-
-
-
-
-
-
-
@@ -50683,6 +50579,16 @@
+
+
+
+
+
+
+
+
+
+
@@ -50714,9 +50620,9 @@
-
+
-
+
@@ -50727,7 +50633,7 @@
-
+
@@ -50741,7 +50647,7 @@
-
+
@@ -51085,7 +50991,7 @@
-
+
@@ -51175,23 +51081,6 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
@@ -51414,7 +51303,7 @@
-
+
@@ -51436,7 +51325,7 @@
-
+
@@ -51702,6 +51591,26 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -51710,14 +51619,15 @@
-
+
-
+
-
-
+
+
+
@@ -51771,7 +51681,7 @@
-
+
@@ -51986,7 +51896,7 @@
-
+
@@ -52001,7 +51911,7 @@
-
+
@@ -52037,6 +51947,23 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -52435,10 +52362,10 @@
-
+
-
+
@@ -53001,7 +52928,7 @@
-
+
@@ -53396,7 +53323,7 @@
-
+
@@ -53488,7 +53415,7 @@
-
+
@@ -53505,7 +53432,7 @@
-
+
@@ -53672,10 +53599,10 @@
-
+
-
+
@@ -53688,10 +53615,10 @@
-
+
-
+
@@ -53706,10 +53633,10 @@
-
+
-
+
@@ -54604,7 +54531,7 @@
-
+
@@ -66700,7 +66627,7 @@
-
+
@@ -69025,7 +68952,7 @@
-
+
@@ -69119,7 +69046,7 @@
-
+
@@ -69343,7 +69270,7 @@
-
+
@@ -69354,6 +69281,14 @@
+
+
+
+
+
+
+
+
@@ -69391,13 +69326,13 @@
-
+
-
+
@@ -70006,7 +69941,7 @@
-
+
@@ -70025,7 +69960,7 @@
-
+
@@ -70345,10 +70280,10 @@
-
+
-
+
@@ -70375,7 +70310,7 @@
-
+
@@ -70646,7 +70581,7 @@
-
+
@@ -71393,13 +71328,13 @@
-
+
-
+
@@ -77731,7 +77666,7 @@
-
+
@@ -77747,7 +77682,7 @@
-
+
@@ -77831,7 +77766,7 @@
-
+
@@ -77884,7 +77819,7 @@
-
+
@@ -79526,7 +79461,7 @@
-
+
@@ -79573,7 +79508,7 @@
-
+
@@ -81645,7 +81580,7 @@
-
+
@@ -81667,7 +81602,7 @@
-
+
@@ -81696,7 +81631,7 @@
-
+
@@ -82433,11 +82368,11 @@
-
+
-
+
@@ -82446,7 +82381,7 @@
-
+
@@ -82500,7 +82435,7 @@
-
+
@@ -82556,7 +82491,7 @@
-
+
@@ -82874,7 +82809,7 @@
-
+
@@ -83147,7 +83082,7 @@
-
+
@@ -83254,7 +83189,7 @@
-
+
@@ -83937,23 +83872,6 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
@@ -84430,7 +84348,7 @@
-
+
@@ -84454,7 +84372,7 @@
-
+
@@ -84900,7 +84818,7 @@
-
+
@@ -84964,7 +84882,7 @@
-
+
@@ -86584,7 +86502,7 @@
-
+
@@ -86707,7 +86625,7 @@
-
+
@@ -86752,7 +86670,7 @@
-
+
@@ -87743,16 +87661,16 @@
-
+
-
+
-
+
@@ -87760,7 +87678,7 @@
-
+
@@ -87851,10 +87769,10 @@
-
+
-
+
@@ -87916,7 +87834,7 @@
-
+
@@ -88240,7 +88158,7 @@
-
+
@@ -88253,7 +88171,7 @@
-
+
@@ -88267,7 +88185,7 @@
-
+
@@ -88312,6 +88230,40 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -88502,7 +88454,7 @@
-
+
@@ -88644,11 +88596,11 @@
-
+
-
+
-
+
@@ -88673,7 +88625,7 @@
-
+
@@ -88701,7 +88653,7 @@
-
+
@@ -88709,14 +88661,6 @@
-
-
-
-
-
-
-
-
@@ -89220,7 +89164,7 @@
-
+
@@ -89228,7 +89172,7 @@
-
+
@@ -89236,7 +89180,7 @@
-
+
@@ -89244,7 +89188,7 @@
-
+
@@ -89263,7 +89207,7 @@
-
+
@@ -89311,7 +89255,7 @@
-
+
@@ -89355,7 +89299,7 @@
-
+
@@ -89430,14 +89374,14 @@
-
-
-
+
+
+
-
-
-
+
+
+
@@ -89544,46 +89488,46 @@
-
-
+
+
-
-
-
-
+
+
+
+
-
-
-
-
-
-
+
+
+
+
+
+
-
-
-
+
+
+
-
-
+
+
-
-
-
+
+
+
-
-
+
+
-
-
-
-
+
+
+
+
@@ -89651,7 +89595,7 @@
-
+
@@ -89659,7 +89603,7 @@
-
+
@@ -89877,7 +89821,7 @@
-
+
@@ -89899,7 +89843,7 @@
-
+
@@ -89925,7 +89869,7 @@
-
+
@@ -89934,7 +89878,7 @@
-
+
@@ -90446,7 +90390,7 @@
-
+
@@ -90500,8 +90444,8 @@
-
-
+
+
@@ -90973,14 +90917,6 @@
-
-
-
-
-
-
-
-
@@ -91235,14 +91171,6 @@
-
-
-
-
-
-
-
-
@@ -91337,7 +91265,18 @@
-
+
+
+
+
+
+
+
+
+
+
+
+
@@ -91825,7 +91764,7 @@
-
+
@@ -93045,7 +92984,7 @@
-
+
@@ -94585,7 +94524,7 @@
-
+
@@ -94597,7 +94536,7 @@
-
+
@@ -96068,26 +96007,123 @@
-
+
-
+
-
-
-
-
+
-
+
-
+
-
+
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -96095,7 +96131,7 @@
-
+
@@ -96103,7 +96139,7 @@
-
+
@@ -96111,7 +96147,7 @@
-
+
@@ -96119,7 +96155,7 @@
-
+
@@ -96127,7 +96163,7 @@
-
+
@@ -96135,66 +96171,6 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
@@ -96659,7 +96635,7 @@
-
+
@@ -96691,7 +96667,7 @@
-
+
@@ -96699,7 +96675,7 @@
-
+
@@ -96720,7 +96696,7 @@
-
+
@@ -96775,7 +96751,23 @@
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -96783,6 +96775,25 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -96873,7 +96884,7 @@
-
+
@@ -96919,7 +96930,7 @@
-
+
@@ -97001,10 +97012,10 @@
-
+
-
+
@@ -97483,38 +97494,6 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
@@ -97534,10 +97513,10 @@
-
+
-
+
@@ -97545,22 +97524,6 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
@@ -97569,21 +97532,7 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
@@ -97594,52 +97543,6 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
@@ -97690,7 +97593,7 @@
-
+
@@ -98075,7 +97978,7 @@
-
+
@@ -98168,10 +98071,10 @@
-
+
-
+
@@ -98179,7 +98082,7 @@
-
+
@@ -98190,7 +98093,7 @@
-
+
@@ -98422,7 +98325,7 @@
-
+
@@ -98437,7 +98340,7 @@
-
+
@@ -98465,7 +98368,7 @@
-
+
@@ -98482,7 +98385,7 @@
-
+
@@ -98513,13 +98416,13 @@
-
+
-
+
@@ -98533,7 +98436,7 @@
-
+
@@ -98549,7 +98452,7 @@
-
+
@@ -98957,7 +98860,7 @@
-
+
@@ -99131,7 +99034,7 @@
-
+
@@ -99805,7 +99708,7 @@
-
+
@@ -100010,10 +99913,10 @@
-
+
-
+
@@ -101242,7 +101145,7 @@
-
+
@@ -102199,7 +102102,7 @@
-
+
@@ -102901,7 +102804,7 @@
-
+
diff --git a/android/abi_gki_aarch64_qcom b/android/abi_gki_aarch64_qcom
index 0ed6f15393a0..622ee8f26c52 100644
--- a/android/abi_gki_aarch64_qcom
+++ b/android/abi_gki_aarch64_qcom
@@ -1380,6 +1380,12 @@
memmove
memory_read_from_buffer
memparse
+ mempool_alloc
+ mempool_alloc_slab
+ mempool_create
+ mempool_destroy
+ mempool_free
+ mempool_free_slab
memremap
memset
__memset_io
diff --git a/arch/arm64/configs/gki_defconfig b/arch/arm64/configs/gki_defconfig
index 4eced787b7fb..7c9361b1e4fa 100644
--- a/arch/arm64/configs/gki_defconfig
+++ b/arch/arm64/configs/gki_defconfig
@@ -542,7 +542,7 @@ CONFIG_FORTIFY_SOURCE=y
CONFIG_STATIC_USERMODEHELPER=y
CONFIG_STATIC_USERMODEHELPER_PATH=""
CONFIG_SECURITY_SELINUX=y
-CONFIG_INIT_STACK_ALL=y
+CONFIG_INIT_STACK_ALL_ZERO=y
CONFIG_INIT_ON_ALLOC_DEFAULT_ON=y
CONFIG_CRYPTO_ADIANTUM=y
CONFIG_CRYPTO_LZ4=y
diff --git a/arch/x86/configs/gki_defconfig b/arch/x86/configs/gki_defconfig
index 76dfbeaf67d4..414edeb7746b 100644
--- a/arch/x86/configs/gki_defconfig
+++ b/arch/x86/configs/gki_defconfig
@@ -468,7 +468,7 @@ CONFIG_FORTIFY_SOURCE=y
CONFIG_STATIC_USERMODEHELPER=y
CONFIG_STATIC_USERMODEHELPER_PATH=""
CONFIG_SECURITY_SELINUX=y
-CONFIG_INIT_STACK_ALL=y
+CONFIG_INIT_STACK_ALL_ZERO=y
CONFIG_INIT_ON_ALLOC_DEFAULT_ON=y
CONFIG_CRYPTO_ADIANTUM=y
CONFIG_CRYPTO_SHA256_SSSE3=y
diff --git a/drivers/spi/spi.c b/drivers/spi/spi.c
index 6a81b2a33cb4..bb3066cedb7e 100644
--- a/drivers/spi/spi.c
+++ b/drivers/spi/spi.c
@@ -3111,7 +3111,20 @@ int spi_setup(struct spi_device *spi)
if (spi->controller->setup)
status = spi->controller->setup(spi);
- spi_set_cs(spi, false);
+ if (spi->controller->auto_runtime_pm && spi->controller->set_cs) {
+ status = pm_runtime_get_sync(spi->controller->dev.parent);
+ if (status < 0) {
+ pm_runtime_put_noidle(spi->controller->dev.parent);
+ dev_err(&spi->controller->dev, "Failed to power device: %d\n",
+ status);
+ return status;
+ }
+ spi_set_cs(spi, false);
+ pm_runtime_mark_last_busy(spi->controller->dev.parent);
+ pm_runtime_put_autosuspend(spi->controller->dev.parent);
+ } else {
+ spi_set_cs(spi, false);
+ }
if (spi->rt && !spi->controller->rt) {
spi->controller->rt = true;
diff --git a/init/main.c b/init/main.c
index 8c7d6b8ee6bd..9e0e160bbe24 100644
--- a/init/main.c
+++ b/init/main.c
@@ -525,14 +525,16 @@ static void __init report_meminit(void)
{
const char *stack;
- if (IS_ENABLED(CONFIG_INIT_STACK_ALL))
- stack = "all";
+ if (IS_ENABLED(CONFIG_INIT_STACK_ALL_PATTERN))
+ stack = "all(pattern)";
+ else if (IS_ENABLED(CONFIG_INIT_STACK_ALL_ZERO))
+ stack = "all(zero)";
else if (IS_ENABLED(CONFIG_GCC_PLUGIN_STRUCTLEAK_BYREF_ALL))
- stack = "byref_all";
+ stack = "byref_all(zero)";
else if (IS_ENABLED(CONFIG_GCC_PLUGIN_STRUCTLEAK_BYREF))
- stack = "byref";
+ stack = "byref(zero)";
else if (IS_ENABLED(CONFIG_GCC_PLUGIN_STRUCTLEAK_USER))
- stack = "__user";
+ stack = "__user(zero)";
else
stack = "off";
diff --git a/net/core/dev.c b/net/core/dev.c
index 724ae5d84fe3..782c28482b2a 100644
--- a/net/core/dev.c
+++ b/net/core/dev.c
@@ -5609,12 +5609,13 @@ static void napi_skb_free_stolen_head(struct sk_buff *skb)
kmem_cache_free(skbuff_head_cache, skb);
}
-static gro_result_t napi_skb_finish(gro_result_t ret, struct sk_buff *skb)
+static gro_result_t napi_skb_finish(struct napi_struct *napi,
+ struct sk_buff *skb,
+ gro_result_t ret)
{
switch (ret) {
case GRO_NORMAL:
- if (netif_receive_skb_internal(skb))
- ret = GRO_DROP;
+ gro_normal_one(napi, skb);
break;
case GRO_DROP:
@@ -5646,7 +5647,7 @@ gro_result_t napi_gro_receive(struct napi_struct *napi, struct sk_buff *skb)
skb_gro_reset_offset(skb);
- ret = napi_skb_finish(dev_gro_receive(napi, skb), skb);
+ ret = napi_skb_finish(napi, skb, dev_gro_receive(napi, skb));
trace_napi_gro_receive_exit(ret);
return ret;
diff --git a/net/wireless/nl80211.c b/net/wireless/nl80211.c
index 3f7dcbc753a4..2b01f92388ac 100644
--- a/net/wireless/nl80211.c
+++ b/net/wireless/nl80211.c
@@ -5980,7 +5980,7 @@ static int nl80211_set_station(struct sk_buff *skb, struct genl_info *info)
if (info->attrs[NL80211_ATTR_HE_6GHZ_CAPABILITY])
params.he_6ghz_capa =
- nla_data(info->attrs[NL80211_ATTR_HE_CAPABILITY]);
+ nla_data(info->attrs[NL80211_ATTR_HE_6GHZ_CAPABILITY]);
if (info->attrs[NL80211_ATTR_AIRTIME_WEIGHT])
params.airtime_weight =
diff --git a/security/Kconfig.hardening b/security/Kconfig.hardening
index af4c979b38ee..269967c4fc1b 100644
--- a/security/Kconfig.hardening
+++ b/security/Kconfig.hardening
@@ -19,13 +19,16 @@ config GCC_PLUGIN_STRUCTLEAK
menu "Memory initialization"
-config CC_HAS_AUTO_VAR_INIT
+config CC_HAS_AUTO_VAR_INIT_PATTERN
def_bool $(cc-option,-ftrivial-auto-var-init=pattern)
+config CC_HAS_AUTO_VAR_INIT_ZERO
+ def_bool $(cc-option,-ftrivial-auto-var-init=zero -enable-trivial-auto-var-init-zero-knowing-it-will-be-removed-from-clang)
+
choice
prompt "Initialize kernel stack variables at function entry"
default GCC_PLUGIN_STRUCTLEAK_BYREF_ALL if COMPILE_TEST && GCC_PLUGINS
- default INIT_STACK_ALL if COMPILE_TEST && CC_HAS_AUTO_VAR_INIT
+ default INIT_STACK_ALL_PATTERN if COMPILE_TEST && CC_HAS_AUTO_VAR_INIT_PATTERN
default INIT_STACK_NONE
help
This option enables initialization of stack variables at
@@ -88,9 +91,9 @@ choice
of uninitialized stack variable exploits and information
exposures.
- config INIT_STACK_ALL
+ config INIT_STACK_ALL_PATTERN
bool "0xAA-init everything on the stack (strongest)"
- depends on CC_HAS_AUTO_VAR_INIT
+ depends on CC_HAS_AUTO_VAR_INIT_PATTERN
help
Initializes everything on the stack with a 0xAA
pattern. This is intended to eliminate all classes
@@ -98,6 +101,24 @@ choice
exposures, even variables that were warned to have been
left uninitialized.
+ Pattern initialization is known to provoke many existing bugs
+ related to uninitialized locals, e.g. pointers receive
+ non-NULL values, buffer sizes and indices are very big.
+
+ config INIT_STACK_ALL_ZERO
+ bool "zero-init everything on the stack (strongest and safest)"
+ depends on CC_HAS_AUTO_VAR_INIT_ZERO
+ help
+ Initializes everything on the stack with a zero
+ value. This is intended to eliminate all classes
+ of uninitialized stack variable exploits and information
+ exposures, even variables that were warned to have been
+ left uninitialized.
+
+ Zero initialization provides safe defaults for strings,
+ pointers, indices and sizes, and is therefore
+ more suitable as a security mitigation measure.
+
endchoice
config GCC_PLUGIN_STRUCTLEAK_VERBOSE