diff --git a/Makefile b/Makefile
index d6c2636959ca4..b38c776079a70 100644
--- a/Makefile
+++ b/Makefile
@@ -1,7 +1,7 @@
# SPDX-License-Identifier: GPL-2.0
VERSION = 5
PATCHLEVEL = 4
-SUBLEVEL = 54
+SUBLEVEL = 55
EXTRAVERSION =
NAME = Kleptomaniac Octopus
diff --git a/android/abi_gki_aarch64.xml b/android/abi_gki_aarch64.xml
index 84154e5670d30..b6c4d207f0e38 100644
--- a/android/abi_gki_aarch64.xml
+++ b/android/abi_gki_aarch64.xml
@@ -104,7 +104,7 @@
-
+
@@ -226,7 +226,7 @@
-
+
@@ -921,8 +921,8 @@
-
-
+
+
@@ -967,25 +967,25 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -1213,37 +1213,37 @@
-
-
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -1327,7 +1327,7 @@
-
+
@@ -1773,7 +1773,6 @@
-
@@ -1820,14 +1819,14 @@
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
@@ -2612,22 +2611,22 @@
-
+
-
-
-
-
+
+
+
+
-
-
-
+
+
+
-
-
+
+
-
+
@@ -2887,24 +2886,21 @@
-
-
-
-
+
+
+
+
-
-
-
@@ -2916,7 +2912,6 @@
-
@@ -2924,7 +2919,6 @@
-
@@ -3011,13 +3005,13 @@
-
+
-
+
@@ -3626,7 +3620,6 @@
-
@@ -3673,7 +3666,6 @@
-
@@ -3712,7 +3704,6 @@
-
@@ -3746,11 +3737,9 @@
-
-
@@ -3803,15 +3792,15 @@
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
@@ -3827,17 +3816,17 @@
-
-
+
+
-
-
-
+
+
+
-
-
-
-
+
+
+
+
@@ -3851,23 +3840,23 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
+
+
+
@@ -3888,12 +3877,12 @@
-
-
-
-
+
+
+
+
-
+
@@ -3953,7 +3942,7 @@
-
+
@@ -4154,7 +4143,7 @@
-
+
@@ -14975,7 +14964,6 @@
-
@@ -14984,6 +14972,14 @@
+
+
+
+
+
+
+
+
@@ -16540,7 +16536,7 @@
-
+
@@ -21575,6 +21571,17 @@
+
+
+
+
+
+
+
+
+
+
+
@@ -21673,47 +21680,8 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
@@ -22138,6 +22106,17 @@
+
+
+
+
+
+
+
+
+
+
+
@@ -22286,7 +22265,7 @@
-
+
@@ -22344,7 +22323,7 @@
-
+
@@ -23514,7 +23493,7 @@
-
+
@@ -24309,7 +24288,7 @@
-
+
@@ -26091,8 +26070,14 @@
+
+
+
+
+
+
@@ -26109,6 +26094,11 @@
+
+
+
+
+
@@ -26707,6 +26697,10 @@
+
+
+
+
@@ -27568,55 +27562,55 @@
-
-
-
+
+
+
-
-
-
-
-
+
+
+
+
+
-
-
-
+
+
+
-
-
-
-
-
+
+
+
+
+
-
-
-
+
+
+
-
-
-
-
+
+
+
+
-
-
-
-
+
+
+
+
-
-
-
+
+
+
-
-
-
+
+
+
@@ -28024,6 +28018,18 @@
+
+
+
+
+
+
+
+
+
+
+
+
@@ -28857,13 +28863,13 @@
-
+
-
+
@@ -29954,7 +29960,6 @@
-
@@ -30011,7 +30016,7 @@
-
+
@@ -30246,7 +30251,7 @@
-
+
@@ -30544,7 +30549,7 @@
-
+
@@ -33158,7 +33163,7 @@
-
+
@@ -33665,7 +33670,7 @@
-
+
@@ -33937,7 +33942,7 @@
-
+
@@ -35013,7 +35018,7 @@
-
+
@@ -35097,7 +35102,7 @@
-
+
@@ -35143,8 +35148,9 @@
-
+
+
@@ -35170,7 +35176,7 @@
-
+
@@ -35184,12 +35190,6 @@
-
-
-
-
-
-
@@ -35259,14 +35259,6 @@
-
-
-
-
-
-
-
-
@@ -35305,7 +35297,7 @@
-
+
@@ -35400,7 +35392,7 @@
-
+
@@ -35440,7 +35432,7 @@
-
+
@@ -35773,23 +35765,6 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
@@ -36304,6 +36279,14 @@
+
+
+
+
+
+
+
+
@@ -36357,27 +36340,27 @@
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
@@ -36417,7 +36400,7 @@
-
+
@@ -36428,7 +36411,7 @@
-
+
@@ -36445,7 +36428,7 @@
-
+
@@ -36465,23 +36448,23 @@
-
+
-
+
-
+
-
+
@@ -37066,7 +37049,7 @@
-
+
@@ -37976,128 +37959,128 @@
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
@@ -38114,8 +38097,9 @@
+
-
+
@@ -38206,32 +38190,32 @@
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
@@ -38259,7 +38243,7 @@
-
+
@@ -38285,18 +38269,18 @@
-
+
-
+
-
+
@@ -38394,11 +38378,11 @@
-
+
-
+
@@ -39908,7 +39892,7 @@
-
+
@@ -39927,7 +39911,7 @@
-
+
@@ -40600,6 +40584,11 @@
+
+
+
+
+
@@ -40628,6 +40617,11 @@
+
+
+
+
+
@@ -41202,7 +41196,7 @@
-
+
@@ -41219,7 +41213,7 @@
-
+
@@ -41819,7 +41813,7 @@
-
+
@@ -44460,7 +44454,7 @@
-
+
@@ -44475,7 +44469,7 @@
-
+
@@ -46284,20 +46278,23 @@
-
+
+
+
+
-
+
@@ -46313,7 +46310,7 @@
-
+
@@ -48925,7 +48922,7 @@
-
+
@@ -50069,7 +50066,7 @@
-
+
@@ -50456,7 +50453,7 @@
-
+
@@ -50728,7 +50725,7 @@
-
+
@@ -50890,6 +50887,8 @@
+
+
@@ -50923,6 +50922,9 @@
+
+
+
@@ -51030,7 +51032,7 @@
-
+
@@ -51492,7 +51494,7 @@
-
+
@@ -51505,6 +51507,25 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -51512,7 +51533,7 @@
-
+
@@ -51520,15 +51541,12 @@
-
+
-
+
-
-
-
-
+
@@ -51558,6 +51576,17 @@
+
+
+
+
+
+
+
+
+
+
+
@@ -52072,7 +52101,7 @@
-
+
@@ -53413,6 +53442,25 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -53429,7 +53477,7 @@
-
+
@@ -53765,7 +53813,7 @@
-
+
@@ -55627,7 +55675,7 @@
-
+
@@ -56170,7 +56218,7 @@
-
+
@@ -56200,7 +56248,7 @@
-
+
@@ -56664,7 +56712,7 @@
-
+
@@ -60960,7 +61008,7 @@
-
+
@@ -61011,7 +61059,7 @@
-
+
@@ -61300,7 +61348,7 @@
-
+
@@ -61533,6 +61581,35 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -62931,6 +63008,35 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -62953,6 +63059,13 @@
+
+
+
+
+
+
+
@@ -62975,8 +63088,8 @@
-
-
+
+
@@ -63071,13 +63184,13 @@
-
-
+
+
-
-
-
+
+
+
@@ -63088,6 +63201,30 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -63174,43 +63311,7 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
@@ -63283,30 +63384,6 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
@@ -64489,64 +64566,64 @@
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
@@ -65883,6 +65960,10 @@
+
+
+
+
@@ -66126,10 +66207,10 @@
-
+
-
+
@@ -66410,6 +66491,20 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -67281,6 +67376,7 @@
+
@@ -67435,7 +67531,7 @@
-
+
@@ -67451,7 +67547,7 @@
-
+
@@ -69078,10 +69174,10 @@
-
+
-
+
@@ -70540,7 +70636,7 @@
-
+
@@ -70549,7 +70645,7 @@
-
+
@@ -71070,7 +71166,7 @@
-
+
@@ -71099,36 +71195,39 @@
-
+
-
+
-
-
+
+
-
+
-
+
-
-
+
+
-
-
+
+
+
+
+
-
+
-
+
-
+
-
+
@@ -71148,7 +71247,7 @@
-
+
@@ -71195,7 +71294,7 @@
-
+
@@ -71206,27 +71305,27 @@
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
@@ -71455,7 +71554,7 @@
-
+
@@ -72750,7 +72849,7 @@
-
+
@@ -72771,7 +72870,7 @@
-
+
@@ -75600,6 +75699,13 @@
+
+
+
+
+
+
+
@@ -75608,6 +75714,10 @@
+
+
+
+
@@ -76214,162 +76324,6 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
@@ -78958,7 +78912,7 @@
-
+
@@ -79159,12 +79113,25 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -79242,6 +79209,7 @@
+
@@ -79385,6 +79353,41 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -79788,6 +79791,7 @@
+
@@ -79825,6 +79829,7 @@
+
@@ -79842,6 +79847,17 @@
+
+
+
+
+
+
+
+
+
+
+
@@ -79974,7 +79990,7 @@
-
+
@@ -80143,6 +80159,18 @@
+
+
+
+
+
+
+
+
+
+
+
+
@@ -80151,39 +80179,17 @@
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
@@ -80205,32 +80211,10 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
@@ -80247,31 +80231,10 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
@@ -80281,15 +80244,6 @@
-
-
-
-
-
-
-
-
-
@@ -80316,11 +80270,6 @@
-
-
-
-
-
@@ -82598,6 +82547,23 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -82761,7 +82727,7 @@
-
+
@@ -82780,7 +82746,7 @@
-
+
@@ -83282,14 +83248,6 @@
-
-
-
-
-
-
-
-
@@ -83528,7 +83486,6 @@
-
@@ -83929,20 +83886,6 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
@@ -84324,10 +84267,10 @@
-
+
-
+
@@ -84577,7 +84520,7 @@
-
+
@@ -84679,7 +84622,7 @@
-
+
@@ -84975,7 +84918,7 @@
-
+
@@ -84995,7 +84938,7 @@
-
+
@@ -85140,14 +85083,6 @@
-
-
-
-
-
-
-
-
@@ -86517,8 +86452,6 @@
-
-
@@ -87847,49 +87780,6 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
@@ -88480,7 +88370,7 @@
-
+
@@ -89255,7 +89145,7 @@
-
+
@@ -89355,7 +89245,7 @@
-
+
@@ -90782,7 +90672,7 @@
-
+
@@ -90806,7 +90696,7 @@
-
+
@@ -91406,51 +91296,51 @@
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
@@ -91476,33 +91366,33 @@
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
@@ -97165,7 +97055,7 @@
-
+
@@ -97531,7 +97421,7 @@
-
+
@@ -97584,7 +97474,6 @@
-
@@ -98219,12 +98108,6 @@
-
-
-
-
-
-
@@ -98503,7 +98386,7 @@
-
+
@@ -98611,7 +98494,7 @@
-
+
@@ -100335,6 +100218,10 @@
+
+
+
+
@@ -100759,8 +100646,6 @@
-
-
@@ -100910,7 +100795,7 @@
-
+
@@ -100921,7 +100806,7 @@
-
+
@@ -100999,7 +100884,7 @@
-
+
@@ -101016,28 +100901,6 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
@@ -101255,7 +101118,50 @@
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -101274,6 +101180,25 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -101376,7 +101301,7 @@
-
+
@@ -101465,7 +101390,7 @@
-
+
@@ -101483,10 +101408,10 @@
-
+
-
+
@@ -101567,15 +101492,15 @@
-
-
-
-
-
+
+
+
+
+
-
-
+
+
@@ -101620,23 +101545,6 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
@@ -101788,15 +101696,7 @@
-
-
-
-
-
-
-
-
-
+
@@ -102050,7 +101950,7 @@
-
+
@@ -102075,17 +101975,6 @@
-
-
-
-
-
-
-
-
-
-
-
@@ -102576,39 +102465,6 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
@@ -102938,25 +102794,6 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
@@ -103039,6 +102876,20 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -103677,7 +103528,7 @@
-
+
@@ -103740,7 +103591,7 @@
-
+
@@ -104324,15 +104175,7 @@
-
-
-
-
-
-
-
-
-
+
@@ -104351,22 +104194,6 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
@@ -104543,6 +104370,49 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -104568,7 +104438,7 @@
-
+
@@ -105266,7 +105136,7 @@
-
+
@@ -105288,7 +105158,7 @@
-
+
@@ -105321,6 +105191,25 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -106341,7 +106230,7 @@
-
+
@@ -106351,7 +106240,7 @@
-
+
@@ -107057,7 +106946,7 @@
-
+
@@ -107135,84 +107024,6 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
@@ -107235,7 +107046,7 @@
-
+
@@ -107248,9 +107059,9 @@
-
-
-
+
+
+
@@ -107305,25 +107116,6 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
@@ -108449,10 +108241,10 @@
-
+
-
+
@@ -108816,6 +108608,17 @@
+
+
+
+
+
+
+
+
+
+
+
@@ -108896,7 +108699,36 @@
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -108925,10 +108757,10 @@
-
+
-
+
@@ -108936,7 +108768,7 @@
-
+
@@ -108950,6 +108782,7 @@
+
@@ -108960,18 +108793,7 @@
-
-
-
-
-
-
-
-
-
-
-
-
+
@@ -108979,7 +108801,7 @@
-
+
@@ -109118,23 +108940,12 @@
-
-
-
-
-
-
-
-
-
-
-
-
+
-
+
@@ -109149,7 +108960,7 @@
-
+
@@ -109247,7 +109058,7 @@
-
+
@@ -109355,17 +109166,6 @@
-
-
-
-
-
-
-
-
-
-
-
@@ -109475,6 +109275,17 @@
+
+
+
+
+
+
+
+
+
+
+
@@ -109483,7 +109294,7 @@
-
+
@@ -109886,6 +109697,128 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -109995,7 +109928,7 @@
-
+
@@ -110296,7 +110229,7 @@
-
+
@@ -111459,9 +111392,9 @@
-
+
-
+
@@ -111470,7 +111403,26 @@
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -111489,10 +111441,10 @@
-
+
-
+
@@ -112102,10 +112054,10 @@
-
+
-
+
@@ -113050,7 +113002,7 @@
-
+
@@ -113062,7 +113014,7 @@
-
+
@@ -114576,7 +114528,7 @@
-
+
@@ -114584,15 +114536,96 @@
-
+
-
+
-
+
+
+
+
+
+
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -115408,19 +115441,19 @@
-
+
-
+
-
+
-
+
-
+
@@ -115452,12 +115485,12 @@
-
+
-
+
@@ -115468,7 +115501,7 @@
-
+
@@ -115482,7 +115515,7 @@
-
+
@@ -115539,10 +115572,10 @@
-
+
-
+
@@ -116270,6 +116303,17 @@
+
+
+
+
+
+
+
+
+
+
+
@@ -116284,13 +116328,13 @@
-
+
-
+
@@ -116414,7 +116458,7 @@
-
+
@@ -117211,7 +117255,7 @@
-
+
@@ -117223,10 +117267,10 @@
-
+
-
+
@@ -117243,7 +117287,7 @@
-
+
@@ -117254,7 +117298,7 @@
-
+
@@ -117271,7 +117315,7 @@
-
+
@@ -117288,7 +117332,7 @@
-
+
@@ -117297,15 +117341,15 @@
-
+
-
+
-
+
@@ -117314,7 +117358,7 @@
-
+
@@ -117330,7 +117374,7 @@
-
+
@@ -117439,13 +117483,13 @@
-
+
-
+
@@ -117930,8 +117974,8 @@
-
-
+
+
@@ -117940,24 +117984,24 @@
-
-
-
-
+
+
+
+
-
-
-
-
+
+
+
+
-
-
-
-
-
-
+
+
+
+
+
+
@@ -119196,7 +119240,7 @@
-
+
@@ -119401,10 +119445,10 @@
-
+
-
+
@@ -119423,10 +119467,10 @@
-
+
-
+
@@ -120274,7 +120318,7 @@
-
+
@@ -121474,11 +121518,11 @@
-
-
-
-
-
+
+
+
+
+
diff --git a/android/abi_gki_aarch64_261a54f37d.xml b/android/abi_gki_aarch64_53b501f197.xml
similarity index 99%
rename from android/abi_gki_aarch64_261a54f37d.xml
rename to android/abi_gki_aarch64_53b501f197.xml
index 8a94e79b80b26..68a1d9e2e296f 100644
--- a/android/abi_gki_aarch64_261a54f37d.xml
+++ b/android/abi_gki_aarch64_53b501f197.xml
@@ -154,7 +154,7 @@
-
+
@@ -604,8 +604,8 @@
-
-
+
+
@@ -1742,13 +1742,13 @@
-
-
-
-
-
+
+
+
+
+
-
+
@@ -1931,8 +1931,8 @@
-
-
+
+
@@ -2005,14 +2005,14 @@
-
+
-
+
@@ -2519,14 +2519,14 @@
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
@@ -2541,8 +2541,8 @@
-
-
+
+
@@ -2597,12 +2597,12 @@
-
-
-
-
+
+
+
+
-
+
@@ -2625,7 +2625,7 @@
-
+
@@ -2732,7 +2732,7 @@
-
+
@@ -4034,7 +4034,7 @@
-
+
@@ -6074,6 +6074,7 @@
+
@@ -6262,7 +6263,7 @@
-
+
@@ -6274,7 +6275,7 @@
-
+
@@ -6470,7 +6471,7 @@
-
+
@@ -6597,8 +6598,8 @@
-
-
+
+
@@ -6879,7 +6880,6 @@
-
@@ -11031,44 +11031,44 @@
-
-
-
+
+
+
-
-
-
-
-
+
+
+
+
+
-
-
-
+
+
+
-
-
-
-
-
+
+
+
+
+
-
-
-
+
+
+
-
-
-
-
+
+
+
+
-
-
-
+
+
+
@@ -12081,6 +12081,26 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -13813,7 +13833,7 @@
-
+
@@ -18630,7 +18650,7 @@
-
+
@@ -18727,12 +18747,12 @@
-
+
-
+
@@ -18857,57 +18877,57 @@
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
@@ -18963,27 +18983,27 @@
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
@@ -19014,15 +19034,15 @@
-
+
-
+
-
+
-
+
@@ -19634,27 +19654,27 @@
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
@@ -19700,17 +19720,9 @@
-
-
-
-
-
-
-
-
-
+
@@ -19721,7 +19733,7 @@
-
+
@@ -19733,7 +19745,7 @@
-
+
@@ -19753,23 +19765,23 @@
-
+
-
+
-
+
-
+
@@ -20056,7 +20068,7 @@
-
+
@@ -20079,7 +20091,7 @@
-
+
@@ -21635,7 +21647,7 @@
-
+
@@ -21655,7 +21667,7 @@
-
+
@@ -22887,7 +22899,7 @@
-
+
@@ -23054,7 +23066,7 @@
-
+
@@ -24545,13 +24557,16 @@
-
+
+
+
+
@@ -24582,13 +24597,13 @@
-
+
-
+
@@ -27350,7 +27365,7 @@
-
+
@@ -28014,7 +28029,7 @@
-
+
@@ -30134,7 +30149,58 @@
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -30145,14 +30211,6 @@
-
-
-
-
-
-
-
-
@@ -30981,13 +31039,13 @@
-
+
-
+
@@ -31006,7 +31064,7 @@
-
+
@@ -31149,10 +31207,10 @@
-
+
-
+
@@ -31174,10 +31232,10 @@
-
+
-
+
@@ -31551,7 +31609,7 @@
-
+
@@ -33100,7 +33158,7 @@
-
+
@@ -33215,6 +33273,35 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -38329,7 +38416,7 @@
-
+
@@ -38566,7 +38653,7 @@
-
+
@@ -38574,7 +38661,7 @@
-
+
@@ -38585,25 +38672,9 @@
-
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
@@ -38614,7 +38685,7 @@
-
+
@@ -38628,15 +38699,7 @@
-
-
-
-
-
-
-
-
-
+
@@ -38644,24 +38707,7 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
@@ -38669,7 +38715,7 @@
-
+
@@ -38677,7 +38723,7 @@
-
+
@@ -38823,17 +38869,6 @@
-
-
-
-
-
-
-
-
-
-
-
@@ -38898,7 +38933,7 @@
-
+
@@ -39579,14 +39614,6 @@
-
-
-
-
-
-
-
-
@@ -39601,14 +39628,6 @@
-
-
-
-
-
-
-
-
@@ -39623,6 +39642,14 @@
+
+
+
+
+
+
+
+
@@ -39663,6 +39690,14 @@
+
+
+
+
+
+
+
+
@@ -40178,7 +40213,7 @@
-
+
@@ -40232,10 +40267,10 @@
-
+
-
+
@@ -40718,19 +40753,19 @@
-
+
-
+
-
+
@@ -41160,12 +41195,12 @@
-
+
-
+
-
+
@@ -43154,7 +43189,7 @@
-
+
@@ -43173,7 +43208,7 @@
-
+
@@ -44895,267 +44930,309 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
-
-
-
-
+
+
+
+
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
+
+
-
+
-
+
+
+
+
+
+
+
-
+
-
+
-
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
+
-
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -45364,21 +45441,159 @@
-
+
-
+
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
+
-
-
+
+
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -45395,455 +45610,6 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
@@ -45947,43 +45713,79 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -46010,6 +45812,31 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -46040,12 +45867,48 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -46053,6 +45916,11 @@
+
+
+
+
+
@@ -46066,6 +45934,15 @@
+
+
+
+
+
+
+
+
+
@@ -46074,6 +45951,20 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -47342,6 +47233,11 @@
+
+
+
+
+
@@ -47378,6 +47274,37 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -47464,10 +47391,57 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -47878,128 +47852,129 @@
-
+
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
@@ -48016,8 +47991,9 @@
+
-
+
@@ -48235,34 +48211,40 @@
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
+
+
+
+
+
+
@@ -48286,6 +48268,7 @@
+
@@ -48293,7 +48276,7 @@
-
+
@@ -48308,11 +48291,11 @@
-
+
-
+
@@ -49686,7 +49669,7 @@
-
+
@@ -49714,7 +49697,7 @@
-
+
@@ -49998,7 +49981,7 @@
-
+
@@ -50020,7 +50003,7 @@
-
+
@@ -50052,7 +50035,7 @@
-
+
@@ -50158,7 +50141,7 @@
-
+
@@ -50286,22 +50269,6 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
@@ -50355,7 +50322,7 @@
-
+
@@ -50570,7 +50537,7 @@
-
+
@@ -50585,7 +50552,7 @@
-
+
@@ -50841,7 +50808,7 @@
-
+
@@ -51036,10 +51003,10 @@
-
+
-
+
@@ -51654,7 +51621,7 @@
-
+
@@ -51997,7 +51964,7 @@
-
+
@@ -52089,7 +52056,7 @@
-
+
@@ -52106,7 +52073,7 @@
-
+
@@ -52262,6 +52229,14 @@
+
+
+
+
+
+
+
+
@@ -52307,10 +52282,10 @@
-
+
-
+
@@ -52364,14 +52339,6 @@
-
-
-
-
-
-
-
-
@@ -52419,7 +52386,7 @@
-
+
@@ -52437,7 +52404,7 @@
-
+
@@ -53205,7 +53172,7 @@
-
+
@@ -53353,13 +53320,13 @@
-
+
-
+
@@ -56004,7 +55971,7 @@
-
+
@@ -56745,7 +56712,7 @@
-
+
@@ -56784,7 +56751,7 @@
-
+
@@ -56795,7 +56762,7 @@
-
+
@@ -56812,7 +56779,7 @@
-
+
@@ -56825,7 +56792,7 @@
-
+
@@ -56837,7 +56804,7 @@
-
+
@@ -57056,10 +57023,10 @@
-
+
-
+
@@ -57123,570 +57090,570 @@
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
@@ -57723,310 +57690,310 @@
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
@@ -58061,10 +58028,10 @@
-
+
-
+
@@ -58103,7 +58070,7 @@
-
+
@@ -58115,7 +58082,7 @@
-
+
@@ -58272,15 +58239,15 @@
-
+
-
+
-
+
-
+
@@ -58898,9 +58865,9 @@
-
+
-
+
@@ -59334,7 +59301,7 @@
-
+
@@ -59516,7 +59483,7 @@
-
+
@@ -59549,10 +59516,10 @@
-
+
-
+
@@ -65025,7 +64992,7 @@
-
+
@@ -65854,7 +65821,7 @@
-
+
@@ -67593,7 +67560,7 @@
-
+
@@ -67636,7 +67603,7 @@
-
+
@@ -67660,7 +67627,7 @@
-
+
@@ -67687,7 +67654,7 @@
-
+
@@ -67706,7 +67673,7 @@
-
+
@@ -67720,12 +67687,12 @@
-
+
-
+
-
+
@@ -67895,7 +67862,7 @@
-
+
@@ -67911,7 +67878,7 @@
-
+
@@ -67922,7 +67889,7 @@
-
+
@@ -67935,7 +67902,7 @@
-
+
@@ -67959,13 +67926,13 @@
-
+
-
+
@@ -68118,7 +68085,7 @@
-
+
@@ -68131,6 +68098,22 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -68577,7 +68560,7 @@
-
+
@@ -68596,7 +68579,7 @@
-
+
@@ -68922,7 +68905,7 @@
-
+
@@ -68946,7 +68929,7 @@
-
+
@@ -68992,7 +68975,7 @@
-
+
@@ -69203,7 +69186,7 @@
-
+
@@ -69217,7 +69200,7 @@
-
+
@@ -69958,18 +69941,18 @@
-
+
-
+
-
+
-
+
@@ -70716,7 +70699,7 @@
-
+
@@ -70857,7 +70840,7 @@
-
+
@@ -71014,7 +70997,7 @@
-
+
@@ -71032,7 +71015,7 @@
-
+
@@ -71132,7 +71115,7 @@
-
+
@@ -71218,7 +71201,7 @@
-
+
@@ -71264,7 +71247,7 @@
-
+
@@ -76320,10 +76303,10 @@
-
+
-
+
@@ -76331,7 +76314,7 @@
-
+
@@ -76380,7 +76363,7 @@
-
+
@@ -76407,7 +76390,7 @@
-
+
@@ -76448,7 +76431,7 @@
-
+
@@ -76468,7 +76451,7 @@
-
+
@@ -76699,7 +76682,7 @@
-
+
@@ -77067,7 +77050,7 @@
-
+
@@ -77075,7 +77058,7 @@
-
+
@@ -77307,7 +77290,7 @@
-
+
@@ -78107,7 +78090,7 @@
-
+
@@ -78154,7 +78137,7 @@
-
+
@@ -78202,10 +78185,10 @@
-
+
-
+
@@ -79332,7 +79315,7 @@
-
+
@@ -79353,7 +79336,7 @@
-
+
@@ -80212,9 +80195,9 @@
-
+
-
+
@@ -80226,7 +80209,7 @@
-
+
@@ -80234,7 +80217,7 @@
-
+
@@ -80263,7 +80246,7 @@
-
+
@@ -80972,6 +80955,7 @@
+
@@ -80999,6 +80983,93 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -81027,6 +81098,14 @@
+
+
+
+
+
+
+
+
@@ -81326,7 +81405,7 @@
-
+
@@ -81451,7 +81530,7 @@
-
+
@@ -81599,7 +81678,7 @@
-
+
@@ -81706,7 +81785,7 @@
-
+
@@ -82288,7 +82367,7 @@
-
+
@@ -82753,10 +82832,10 @@
-
+
-
+
@@ -82843,7 +82922,7 @@
-
+
@@ -82867,7 +82946,7 @@
-
+
@@ -83313,7 +83392,7 @@
-
+
@@ -83377,7 +83456,7 @@
-
+
@@ -83441,51 +83520,51 @@
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
@@ -83511,33 +83590,33 @@
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
@@ -83624,7 +83703,6 @@
-
@@ -83761,12 +83839,6 @@
-
-
-
-
-
-
@@ -83981,7 +84053,7 @@
-
+
@@ -84114,7 +84186,7 @@
-
+
@@ -84805,7 +84877,7 @@
-
+
@@ -85020,7 +85092,7 @@
-
+
@@ -85097,7 +85169,7 @@
-
+
@@ -85143,7 +85215,7 @@
-
+
@@ -85188,7 +85260,7 @@
-
+
@@ -85552,7 +85624,7 @@
-
+
@@ -86126,7 +86198,7 @@
-
+
@@ -86135,7 +86207,7 @@
-
+
@@ -86239,7 +86311,7 @@
-
+
@@ -86248,7 +86320,7 @@
-
+
@@ -86282,7 +86354,7 @@
-
+
@@ -86299,7 +86371,7 @@
-
+
@@ -86775,7 +86847,7 @@
-
+
@@ -86911,10 +86983,10 @@
-
+
-
+
@@ -86933,15 +87005,15 @@
-
+
-
+
-
+
@@ -86963,7 +87035,7 @@
-
+
@@ -87048,7 +87120,7 @@
-
+
@@ -87064,7 +87136,7 @@
-
+
@@ -87097,21 +87169,10 @@
-
+
-
-
-
-
-
-
-
-
-
-
-
-
+
@@ -87159,7 +87220,7 @@
-
+
@@ -87167,7 +87228,7 @@
-
+
@@ -87422,7 +87483,7 @@
-
+
@@ -87457,7 +87518,7 @@
-
+
@@ -87465,7 +87526,7 @@
-
+
@@ -87513,7 +87574,7 @@
-
+
@@ -87557,7 +87618,7 @@
-
+
@@ -87831,7 +87892,7 @@
-
+
@@ -88468,13 +88529,13 @@
-
+
-
+
@@ -88486,7 +88547,7 @@
-
+
@@ -88496,7 +88557,7 @@
-
+
@@ -89052,9 +89113,9 @@
-
+
-
+
@@ -89094,7 +89155,7 @@
-
+
@@ -89262,8 +89323,8 @@
-
-
+
+
@@ -89396,7 +89457,7 @@
-
+
@@ -89735,7 +89796,7 @@
-
+
@@ -90080,9 +90141,9 @@
-
+
-
+
@@ -90091,7 +90152,7 @@
-
+
@@ -90153,7 +90214,7 @@
-
+
@@ -91771,10 +91832,10 @@
-
+
-
+
@@ -93332,7 +93393,7 @@
-
+
@@ -93344,7 +93405,7 @@
-
+
@@ -94786,7 +94847,7 @@
-
+
@@ -94827,7 +94888,7 @@
-
+
@@ -94835,7 +94896,7 @@
-
+
@@ -94846,7 +94907,7 @@
-
+
@@ -94865,10 +94926,10 @@
-
+
-
+
@@ -94876,7 +94937,7 @@
-
+
@@ -94892,7 +94953,7 @@
-
+
@@ -94900,7 +94961,7 @@
-
+
@@ -94916,7 +94977,7 @@
-
+
@@ -94975,7 +95036,7 @@
-
+
@@ -94983,7 +95044,7 @@
-
+
@@ -95649,18 +95710,18 @@
-
+
-
+
-
+
-
+
@@ -95687,7 +95748,7 @@
-
+
@@ -95706,7 +95767,7 @@
-
+
@@ -96174,7 +96235,7 @@
-
+
@@ -96298,12 +96359,12 @@
-
+
-
+
@@ -96330,9 +96391,9 @@
-
+
-
+
@@ -96341,7 +96402,7 @@
-
+
@@ -96349,10 +96410,10 @@
-
+
-
+
@@ -96368,7 +96429,7 @@
-
+
@@ -96382,7 +96443,7 @@
-
+
@@ -96393,7 +96454,7 @@
-
+
@@ -96492,7 +96553,7 @@
-
+
@@ -96888,7 +96949,7 @@
-
+
@@ -96934,7 +96995,7 @@
-
+
@@ -97178,19 +97239,19 @@
-
+
-
+
-
+
@@ -97212,7 +97273,7 @@
-
+
@@ -97257,22 +97318,22 @@
-
+
-
+
-
+
-
+
-
+
@@ -97280,7 +97341,7 @@
-
+
@@ -97288,7 +97349,7 @@
-
+
@@ -97296,7 +97357,7 @@
-
+
@@ -97319,7 +97380,7 @@
-
+
@@ -97704,7 +97765,7 @@
-
+
@@ -97878,7 +97939,7 @@
-
+
@@ -98031,9 +98092,9 @@
-
-
-
+
+
+
@@ -98552,7 +98613,7 @@
-
+
@@ -99989,7 +100050,7 @@
-
+
@@ -100946,7 +101007,7 @@
-
+
@@ -101192,7 +101253,7 @@
-
+
@@ -101587,7 +101648,7 @@
-
+
@@ -101648,9 +101709,9 @@
-
+
-
+
diff --git a/android/abi_gki_aarch64_sunxi b/android/abi_gki_aarch64_sunxi
index d8b8c1998f291..81091a19b7a6c 100644
--- a/android/abi_gki_aarch64_sunxi
+++ b/android/abi_gki_aarch64_sunxi
@@ -39,20 +39,6 @@
iommu_group_alloc
iommu_group_register_notifier
-# required by uas.ko
- int_to_scsilun
- scmd_printk
- scsi_block_requests
- scsi_change_queue_depth
- scsi_print_command
- scsi_unblock_requests
- usb_alloc_streams
- usb_free_streams
- usb_kill_anchored_urbs
- usb_unanchor_urb
- usb_wait_anchor_empty_timeout
- usb_set_interface
-
# required by ums-realtek.ko
usb_bulk_msg
diff --git a/arch/arm/mach-tegra/cpuidle-tegra114.c b/arch/arm/mach-tegra/cpuidle-tegra114.c
index 5118f777fd66a..0ccdcc89eeb94 100644
--- a/arch/arm/mach-tegra/cpuidle-tegra114.c
+++ b/arch/arm/mach-tegra/cpuidle-tegra114.c
@@ -51,11 +51,13 @@ static int tegra114_idle_power_down(struct cpuidle_device *dev,
return index;
}
-static void tegra114_idle_enter_s2idle(struct cpuidle_device *dev,
+static int tegra114_idle_enter_s2idle(struct cpuidle_device *dev,
struct cpuidle_driver *drv,
int index)
{
tegra114_idle_power_down(dev, drv, index);
+
+ return 0;
}
#endif
diff --git a/arch/arm64/configs/gki_defconfig b/arch/arm64/configs/gki_defconfig
index 489114f6bb42e..5b0f87097d8da 100644
--- a/arch/arm64/configs/gki_defconfig
+++ b/arch/arm64/configs/gki_defconfig
@@ -341,6 +341,7 @@ CONFIG_REGULATOR=y
CONFIG_REGULATOR_FIXED_VOLTAGE=y
CONFIG_MEDIA_CAMERA_SUPPORT=y
CONFIG_MEDIA_CONTROLLER=y
+CONFIG_VIDEO_V4L2_SUBDEV_API=y
CONFIG_V4L_PLATFORM_DRIVERS=y
# CONFIG_VGA_ARB is not set
CONFIG_DRM=y
@@ -381,7 +382,6 @@ CONFIG_USB_EHCI_HCD=y
CONFIG_USB_EHCI_HCD_PLATFORM=y
CONFIG_USB_STORAGE=y
CONFIG_USB_UAS=y
-CONFIG_USB_DWC3=y
CONFIG_USB_GADGET=y
CONFIG_USB_DUMMY_HCD=y
CONFIG_USB_CONFIGFS=y
diff --git a/arch/x86/configs/gki_defconfig b/arch/x86/configs/gki_defconfig
index adc34ead937c0..171251de96758 100644
--- a/arch/x86/configs/gki_defconfig
+++ b/arch/x86/configs/gki_defconfig
@@ -338,7 +338,6 @@ CONFIG_USB_EHCI_HCD=y
CONFIG_USB_EHCI_HCD_PLATFORM=y
CONFIG_USB_STORAGE=y
CONFIG_USB_UAS=y
-CONFIG_USB_DWC3=y
CONFIG_USB_GADGET=y
CONFIG_USB_DUMMY_HCD=y
CONFIG_USB_CONFIGFS=y
diff --git a/drivers/acpi/processor_idle.c b/drivers/acpi/processor_idle.c
index ed56c6d20b084..53b6c3bb2f90b 100644
--- a/drivers/acpi/processor_idle.c
+++ b/drivers/acpi/processor_idle.c
@@ -791,8 +791,8 @@ static int acpi_idle_enter(struct cpuidle_device *dev,
return index;
}
-static void acpi_idle_enter_s2idle(struct cpuidle_device *dev,
- struct cpuidle_driver *drv, int index)
+static int acpi_idle_enter_s2idle(struct cpuidle_device *dev,
+ struct cpuidle_driver *drv, int index)
{
struct acpi_processor_cx *cx = per_cpu(acpi_cstate[index], dev->cpu);
@@ -800,16 +800,18 @@ static void acpi_idle_enter_s2idle(struct cpuidle_device *dev,
struct acpi_processor *pr = __this_cpu_read(processors);
if (unlikely(!pr))
- return;
+ return 0;
if (pr->flags.bm_check) {
acpi_idle_enter_bm(pr, cx, false);
- return;
+ return 0;
} else {
ACPI_FLUSH_CPU_CACHE();
}
}
acpi_idle_do_entry(cx);
+
+ return 0;
}
static int acpi_processor_setup_cpuidle_cx(struct acpi_processor *pr,
diff --git a/drivers/base/power/wakeup.c b/drivers/base/power/wakeup.c
index 9146b6d8fe053..aa0ba384284ad 100644
--- a/drivers/base/power/wakeup.c
+++ b/drivers/base/power/wakeup.c
@@ -1130,6 +1130,9 @@ static void *wakeup_sources_stats_seq_next(struct seq_file *m,
break;
}
+ if (!next_ws)
+ print_wakeup_source_stats(m, &deleted_ws);
+
return next_ws;
}
diff --git a/drivers/base/regmap/regmap-debugfs.c b/drivers/base/regmap/regmap-debugfs.c
index ff0698e71beef..760953ce11ec3 100644
--- a/drivers/base/regmap/regmap-debugfs.c
+++ b/drivers/base/regmap/regmap-debugfs.c
@@ -227,6 +227,9 @@ static ssize_t regmap_read_debugfs(struct regmap *map, unsigned int from,
if (*ppos < 0 || !count)
return -EINVAL;
+ if (count > (PAGE_SIZE << (MAX_ORDER - 1)))
+ count = PAGE_SIZE << (MAX_ORDER - 1);
+
buf = kmalloc(count, GFP_KERNEL);
if (!buf)
return -ENOMEM;
@@ -436,6 +439,9 @@ static ssize_t regmap_reg_ranges_read_file(struct file *file,
if (*ppos < 0 || !count)
return -EINVAL;
+ if (count > (PAGE_SIZE << (MAX_ORDER - 1)))
+ count = PAGE_SIZE << (MAX_ORDER - 1);
+
buf = kmalloc(count, GFP_KERNEL);
if (!buf)
return -ENOMEM;
diff --git a/drivers/cpuidle/lpm-levels.c b/drivers/cpuidle/lpm-levels.c
index 6d1ca58603277..829cfe9aea7c3 100644
--- a/drivers/cpuidle/lpm-levels.c
+++ b/drivers/cpuidle/lpm-levels.c
@@ -1473,7 +1473,7 @@ exit:
return idx;
}
-static void lpm_cpuidle_s2idle(struct cpuidle_device *dev,
+static int lpm_cpuidle_s2idle(struct cpuidle_device *dev,
struct cpuidle_driver *drv, int idx)
{
struct lpm_cpu *cpu = per_cpu(cpu_lpm, dev->cpu);
@@ -1487,7 +1487,7 @@ static void lpm_cpuidle_s2idle(struct cpuidle_device *dev,
}
if (idx < 0) {
pr_err("Failed suspend\n");
- return;
+ return -EPERM;
}
cpu_prepare(cpu, idx, true);
@@ -1498,6 +1498,7 @@ static void lpm_cpuidle_s2idle(struct cpuidle_device *dev,
cluster_unprepare(cpu->parent, cpumask, idx, false, 0, success);
cpu_unprepare(cpu, idx, true);
+ return 0;
}
#ifdef CONFIG_CPU_IDLE_MULTIPLE_DRIVERS
diff --git a/drivers/idle/intel_idle.c b/drivers/idle/intel_idle.c
index 347b08b56042f..a5d6adc5b3993 100644
--- a/drivers/idle/intel_idle.c
+++ b/drivers/idle/intel_idle.c
@@ -85,7 +85,7 @@ static const struct idle_cpu *icpu;
static struct cpuidle_device __percpu *intel_idle_cpuidle_devices;
static int intel_idle(struct cpuidle_device *dev,
struct cpuidle_driver *drv, int index);
-static void intel_idle_s2idle(struct cpuidle_device *dev,
+static int intel_idle_s2idle(struct cpuidle_device *dev,
struct cpuidle_driver *drv, int index);
static struct cpuidle_state *cpuidle_state_table;
@@ -935,13 +935,15 @@ static __cpuidle int intel_idle(struct cpuidle_device *dev,
* @drv: cpuidle driver
* @index: state index
*/
-static void intel_idle_s2idle(struct cpuidle_device *dev,
+static int intel_idle_s2idle(struct cpuidle_device *dev,
struct cpuidle_driver *drv, int index)
{
unsigned long ecx = 1; /* break on interrupt flag */
unsigned long eax = flg2MWAIT(drv->states[index].flags);
mwait_idle_with_hints(eax, ecx);
+
+ return 0;
}
static void __setup_broadcast_timer(bool on)
diff --git a/drivers/net/ethernet/freescale/dpaa/dpaa_eth.c b/drivers/net/ethernet/freescale/dpaa/dpaa_eth.c
index cd9d08695cc19..00c4beb760c35 100644
--- a/drivers/net/ethernet/freescale/dpaa/dpaa_eth.c
+++ b/drivers/net/ethernet/freescale/dpaa/dpaa_eth.c
@@ -2802,7 +2802,7 @@ static int dpaa_eth_probe(struct platform_device *pdev)
}
/* Do this here, so we can be verbose early */
- SET_NETDEV_DEV(net_dev, dev->parent);
+ SET_NETDEV_DEV(net_dev, dev);
dev_set_drvdata(dev, net_dev);
priv = netdev_priv(net_dev);
diff --git a/drivers/net/wan/x25_asy.c b/drivers/net/wan/x25_asy.c
index 914be58473866..cdcc380b4c268 100644
--- a/drivers/net/wan/x25_asy.c
+++ b/drivers/net/wan/x25_asy.c
@@ -183,7 +183,7 @@ static inline void x25_asy_unlock(struct x25_asy *sl)
netif_wake_queue(sl->dev);
}
-/* Send one completely decapsulated IP datagram to the IP layer. */
+/* Send an LAPB frame to the LAPB module to process. */
static void x25_asy_bump(struct x25_asy *sl)
{
@@ -195,13 +195,12 @@ static void x25_asy_bump(struct x25_asy *sl)
count = sl->rcount;
dev->stats.rx_bytes += count;
- skb = dev_alloc_skb(count+1);
+ skb = dev_alloc_skb(count);
if (skb == NULL) {
netdev_warn(sl->dev, "memory squeeze, dropping packet\n");
dev->stats.rx_dropped++;
return;
}
- skb_push(skb, 1); /* LAPB internal control */
skb_put_data(skb, sl->rbuff, count);
skb->protocol = x25_type_trans(skb, sl->dev);
err = lapb_data_received(skb->dev, skb);
@@ -209,7 +208,6 @@ static void x25_asy_bump(struct x25_asy *sl)
kfree_skb(skb);
printk(KERN_DEBUG "x25_asy: data received err - %d\n", err);
} else {
- netif_rx(skb);
dev->stats.rx_packets++;
}
}
@@ -356,12 +354,21 @@ static netdev_tx_t x25_asy_xmit(struct sk_buff *skb,
*/
/*
- * Called when I frame data arrives. We did the work above - throw it
- * at the net layer.
+ * Called when I frame data arrive. We add a pseudo header for upper
+ * layers and pass it to upper layers.
*/
static int x25_asy_data_indication(struct net_device *dev, struct sk_buff *skb)
{
+ if (skb_cow(skb, 1)) {
+ kfree_skb(skb);
+ return NET_RX_DROP;
+ }
+ skb_push(skb, 1);
+ skb->data[0] = X25_IFACE_DATA;
+
+ skb->protocol = x25_type_trans(skb, dev);
+
return netif_rx(skb);
}
@@ -657,7 +664,7 @@ static void x25_asy_unesc(struct x25_asy *sl, unsigned char s)
switch (s) {
case X25_END:
if (!test_and_clear_bit(SLF_ERROR, &sl->flags) &&
- sl->rcount > 2)
+ sl->rcount >= 2)
x25_asy_bump(sl);
clear_bit(SLF_ESCAPE, &sl->flags);
sl->rcount = 0;
diff --git a/drivers/power/supply/power_supply_sysfs.c b/drivers/power/supply/power_supply_sysfs.c
index 4d6e1d5015d6e..51a1383a7f23c 100644
--- a/drivers/power/supply/power_supply_sysfs.c
+++ b/drivers/power/supply/power_supply_sysfs.c
@@ -56,6 +56,7 @@ static const char * const POWER_SUPPLY_TYPE_TEXT[] = {
[POWER_SUPPLY_TYPE_USB_PD] = "USB_PD",
[POWER_SUPPLY_TYPE_USB_PD_DRP] = "USB_PD_DRP",
[POWER_SUPPLY_TYPE_APPLE_BRICK_ID] = "BrickID",
+ [POWER_SUPPLY_TYPE_WIRELESS] = "Wireless",
};
static const char * const POWER_SUPPLY_USB_TYPE_TEXT[] = {
diff --git a/include/linux/cpuidle.h b/include/linux/cpuidle.h
index 954cd9b3a4ec6..372fa432bcad2 100644
--- a/include/linux/cpuidle.h
+++ b/include/linux/cpuidle.h
@@ -61,10 +61,13 @@ struct cpuidle_state {
* CPUs execute ->enter_s2idle with the local tick or entire timekeeping
* suspended, so it must not re-enable interrupts at any point (even
* temporarily) or attempt to change states of clock event devices.
+ *
+ * This callback may point to the same function as ->enter if all of
+ * the above requirements are met by it.
*/
- void (*enter_s2idle) (struct cpuidle_device *dev,
- struct cpuidle_driver *drv,
- int index);
+ int (*enter_s2idle)(struct cpuidle_device *dev,
+ struct cpuidle_driver *drv,
+ int index);
};
/* Idle State Flags */
diff --git a/include/linux/power_supply.h b/include/linux/power_supply.h
index 4dcdbfb363577..f4473c233dab0 100644
--- a/include/linux/power_supply.h
+++ b/include/linux/power_supply.h
@@ -185,6 +185,7 @@ enum power_supply_type {
POWER_SUPPLY_TYPE_USB_PD, /* Power Delivery Port */
POWER_SUPPLY_TYPE_USB_PD_DRP, /* PD Dual Role Port */
POWER_SUPPLY_TYPE_APPLE_BRICK_ID, /* Apple Charging Method */
+ POWER_SUPPLY_TYPE_WIRELESS, /* Wireless */
};
enum power_supply_usb_type {
diff --git a/include/linux/tcp.h b/include/linux/tcp.h
index 668e25a76d698..358deb4ff8301 100644
--- a/include/linux/tcp.h
+++ b/include/linux/tcp.h
@@ -216,6 +216,8 @@ struct tcp_sock {
} rack;
u16 advmss; /* Advertised MSS */
u8 compressed_ack;
+ u8 tlp_retrans:1, /* TLP is a retransmission */
+ unused_1:7;
u32 chrono_start; /* Start time in jiffies of a TCP chrono */
u32 chrono_stat[3]; /* Time in jiffies for chrono_stat stats */
u8 chrono_type:2, /* current chronograph type */
@@ -238,7 +240,7 @@ struct tcp_sock {
save_syn:1, /* Save headers of SYN packet */
is_cwnd_limited:1,/* forward progress limited by snd_cwnd? */
syn_smc:1; /* SYN includes SMC */
- u32 tlp_high_seq; /* snd_nxt at the time of TLP retransmit. */
+ u32 tlp_high_seq; /* snd_nxt at the time of TLP */
u32 tcp_tx_delay; /* delay (in usec) added to TX packets */
u64 tcp_wstamp_ns; /* departure time for next sent data packet */
diff --git a/net/ax25/af_ax25.c b/net/ax25/af_ax25.c
index e5a3dc28116da..2fdb1b573e8c8 100644
--- a/net/ax25/af_ax25.c
+++ b/net/ax25/af_ax25.c
@@ -1187,7 +1187,10 @@ static int __must_check ax25_connect(struct socket *sock,
if (addr_len > sizeof(struct sockaddr_ax25) &&
fsa->fsa_ax25.sax25_ndigis != 0) {
/* Valid number of digipeaters ? */
- if (fsa->fsa_ax25.sax25_ndigis < 1 || fsa->fsa_ax25.sax25_ndigis > AX25_MAX_DIGIS) {
+ if (fsa->fsa_ax25.sax25_ndigis < 1 ||
+ fsa->fsa_ax25.sax25_ndigis > AX25_MAX_DIGIS ||
+ addr_len < sizeof(struct sockaddr_ax25) +
+ sizeof(ax25_address) * fsa->fsa_ax25.sax25_ndigis) {
err = -EINVAL;
goto out_release;
}
@@ -1507,7 +1510,10 @@ static int ax25_sendmsg(struct socket *sock, struct msghdr *msg, size_t len)
struct full_sockaddr_ax25 *fsa = (struct full_sockaddr_ax25 *)usax;
/* Valid number of digipeaters ? */
- if (usax->sax25_ndigis < 1 || usax->sax25_ndigis > AX25_MAX_DIGIS) {
+ if (usax->sax25_ndigis < 1 ||
+ usax->sax25_ndigis > AX25_MAX_DIGIS ||
+ addr_len < sizeof(struct sockaddr_ax25) +
+ sizeof(ax25_address) * usax->sax25_ndigis) {
err = -EINVAL;
goto out;
}
diff --git a/net/core/dev.c b/net/core/dev.c
index 727965565d311..25858f1f67cf7 100644
--- a/net/core/dev.c
+++ b/net/core/dev.c
@@ -5229,7 +5229,7 @@ static void flush_backlog(struct work_struct *work)
skb_queue_walk_safe(&sd->input_pkt_queue, skb, tmp) {
if (skb->dev->reg_state == NETREG_UNREGISTERING) {
__skb_unlink(skb, &sd->input_pkt_queue);
- kfree_skb(skb);
+ dev_kfree_skb_irq(skb);
input_queue_head_incr(sd);
}
}
diff --git a/net/core/net-sysfs.c b/net/core/net-sysfs.c
index 4c826b8bf9b1e..2ebf9b252779d 100644
--- a/net/core/net-sysfs.c
+++ b/net/core/net-sysfs.c
@@ -1036,7 +1036,7 @@ static ssize_t tx_timeout_show(struct netdev_queue *queue, char *buf)
trans_timeout = queue->trans_timeout;
spin_unlock_irq(&queue->_xmit_lock);
- return sprintf(buf, "%lu", trans_timeout);
+ return sprintf(buf, fmt_ulong, trans_timeout);
}
static unsigned int get_netdev_queue_index(struct netdev_queue *queue)
diff --git a/net/core/rtnetlink.c b/net/core/rtnetlink.c
index 944acb1a9f29c..b0c06a0637765 100644
--- a/net/core/rtnetlink.c
+++ b/net/core/rtnetlink.c
@@ -3231,7 +3231,8 @@ replay:
*/
if (err < 0) {
/* If device is not registered at all, free it now */
- if (dev->reg_state == NETREG_UNINITIALIZED)
+ if (dev->reg_state == NETREG_UNINITIALIZED ||
+ dev->reg_state == NETREG_UNREGISTERED)
free_netdev(dev);
goto out;
}
diff --git a/net/core/sock_reuseport.c b/net/core/sock_reuseport.c
index f3ceec93f3923..40829111fe00c 100644
--- a/net/core/sock_reuseport.c
+++ b/net/core/sock_reuseport.c
@@ -112,6 +112,7 @@ static struct sock_reuseport *reuseport_grow(struct sock_reuseport *reuse)
more_reuse->prog = reuse->prog;
more_reuse->reuseport_id = reuse->reuseport_id;
more_reuse->bind_inany = reuse->bind_inany;
+ more_reuse->has_conns = reuse->has_conns;
memcpy(more_reuse->socks, reuse->socks,
reuse->num_socks * sizeof(struct sock *));
diff --git a/net/ipv4/tcp_input.c b/net/ipv4/tcp_input.c
index 6d331307beca8..5040f7ca37ec4 100644
--- a/net/ipv4/tcp_input.c
+++ b/net/ipv4/tcp_input.c
@@ -3505,10 +3505,8 @@ static void tcp_replace_ts_recent(struct tcp_sock *tp, u32 seq)
}
}
-/* This routine deals with acks during a TLP episode.
- * We mark the end of a TLP episode on receiving TLP dupack or when
- * ack is after tlp_high_seq.
- * Ref: loss detection algorithm in draft-dukkipati-tcpm-tcp-loss-probe.
+/* This routine deals with acks during a TLP episode and ends an episode by
+ * resetting tlp_high_seq. Ref: TLP algorithm in draft-ietf-tcpm-rack
*/
static void tcp_process_tlp_ack(struct sock *sk, u32 ack, int flag)
{
@@ -3517,7 +3515,10 @@ static void tcp_process_tlp_ack(struct sock *sk, u32 ack, int flag)
if (before(ack, tp->tlp_high_seq))
return;
- if (flag & FLAG_DSACKING_ACK) {
+ if (!tp->tlp_retrans) {
+ /* TLP of new data has been acknowledged */
+ tp->tlp_high_seq = 0;
+ } else if (flag & FLAG_DSACKING_ACK) {
/* This DSACK means original and TLP probe arrived; no loss */
tp->tlp_high_seq = 0;
} else if (after(ack, tp->tlp_high_seq)) {
diff --git a/net/ipv4/tcp_output.c b/net/ipv4/tcp_output.c
index 5dc7485c40762..4407193bd7029 100644
--- a/net/ipv4/tcp_output.c
+++ b/net/ipv4/tcp_output.c
@@ -2564,6 +2564,11 @@ void tcp_send_loss_probe(struct sock *sk)
int pcount;
int mss = tcp_current_mss(sk);
+ /* At most one outstanding TLP */
+ if (tp->tlp_high_seq)
+ goto rearm_timer;
+
+ tp->tlp_retrans = 0;
skb = tcp_send_head(sk);
if (skb && tcp_snd_wnd_test(tp, skb, mss)) {
pcount = tp->packets_out;
@@ -2581,10 +2586,6 @@ void tcp_send_loss_probe(struct sock *sk)
return;
}
- /* At most one outstanding TLP retransmission. */
- if (tp->tlp_high_seq)
- goto rearm_timer;
-
if (skb_still_in_host_queue(sk, skb))
goto rearm_timer;
@@ -2606,10 +2607,12 @@ void tcp_send_loss_probe(struct sock *sk)
if (__tcp_retransmit_skb(sk, skb, 1))
goto rearm_timer;
+ tp->tlp_retrans = 1;
+
+probe_sent:
/* Record snd_nxt for loss detection. */
tp->tlp_high_seq = tp->snd_nxt;
-probe_sent:
NET_INC_STATS(sock_net(sk), LINUX_MIB_TCPLOSSPROBES);
/* Reset s.t. tcp_rearm_rto will restart timer from now */
inet_csk(sk)->icsk_pending = 0;
diff --git a/net/ipv4/udp.c b/net/ipv4/udp.c
index c24f77ba29c5d..88c4bb50c9bed 100644
--- a/net/ipv4/udp.c
+++ b/net/ipv4/udp.c
@@ -413,7 +413,7 @@ static struct sock *udp4_lib_lookup2(struct net *net,
struct udp_hslot *hslot2,
struct sk_buff *skb)
{
- struct sock *sk, *result;
+ struct sock *sk, *result, *reuseport_result;
int score, badness;
u32 hash = 0;
@@ -423,17 +423,20 @@ static struct sock *udp4_lib_lookup2(struct net *net,
score = compute_score(sk, net, saddr, sport,
daddr, hnum, dif, sdif);
if (score > badness) {
+ reuseport_result = NULL;
+
if (sk->sk_reuseport &&
sk->sk_state != TCP_ESTABLISHED) {
hash = udp_ehashfn(net, daddr, hnum,
saddr, sport);
- result = reuseport_select_sock(sk, hash, skb,
- sizeof(struct udphdr));
- if (result && !reuseport_has_conns(sk, false))
- return result;
+ reuseport_result = reuseport_select_sock(sk, hash, skb,
+ sizeof(struct udphdr));
+ if (reuseport_result && !reuseport_has_conns(sk, false))
+ return reuseport_result;
}
+
+ result = reuseport_result ? : sk;
badness = score;
- result = sk;
}
}
return result;
@@ -2045,7 +2048,7 @@ static int udp_queue_rcv_one_skb(struct sock *sk, struct sk_buff *skb)
/*
* UDP-Lite specific tests, ignored on UDP sockets
*/
- if ((is_udplite & UDPLITE_RECV_CC) && UDP_SKB_CB(skb)->partial_cov) {
+ if ((up->pcflag & UDPLITE_RECV_CC) && UDP_SKB_CB(skb)->partial_cov) {
/*
* MIB statistics other than incrementing the error count are
diff --git a/net/ipv6/ip6_gre.c b/net/ipv6/ip6_gre.c
index 04d76f043e180..44876509d2155 100644
--- a/net/ipv6/ip6_gre.c
+++ b/net/ipv6/ip6_gre.c
@@ -1560,17 +1560,18 @@ static void ip6gre_destroy_tunnels(struct net *net, struct list_head *head)
static int __net_init ip6gre_init_net(struct net *net)
{
struct ip6gre_net *ign = net_generic(net, ip6gre_net_id);
+ struct net_device *ndev;
int err;
if (!net_has_fallback_tunnels(net))
return 0;
- ign->fb_tunnel_dev = alloc_netdev(sizeof(struct ip6_tnl), "ip6gre0",
- NET_NAME_UNKNOWN,
- ip6gre_tunnel_setup);
- if (!ign->fb_tunnel_dev) {
+ ndev = alloc_netdev(sizeof(struct ip6_tnl), "ip6gre0",
+ NET_NAME_UNKNOWN, ip6gre_tunnel_setup);
+ if (!ndev) {
err = -ENOMEM;
goto err_alloc_dev;
}
+ ign->fb_tunnel_dev = ndev;
dev_net_set(ign->fb_tunnel_dev, net);
/* FB netdevice is special: we have one, and only one per netns.
* Allowing to move it to another netns is clearly unsafe.
@@ -1590,7 +1591,7 @@ static int __net_init ip6gre_init_net(struct net *net)
return 0;
err_reg_dev:
- free_netdev(ign->fb_tunnel_dev);
+ free_netdev(ndev);
err_alloc_dev:
return err;
}
diff --git a/net/ipv6/udp.c b/net/ipv6/udp.c
index 9fec580c968e0..6762430280f5e 100644
--- a/net/ipv6/udp.c
+++ b/net/ipv6/udp.c
@@ -148,7 +148,7 @@ static struct sock *udp6_lib_lookup2(struct net *net,
int dif, int sdif, struct udp_hslot *hslot2,
struct sk_buff *skb)
{
- struct sock *sk, *result;
+ struct sock *sk, *result, *reuseport_result;
int score, badness;
u32 hash = 0;
@@ -158,17 +158,20 @@ static struct sock *udp6_lib_lookup2(struct net *net,
score = compute_score(sk, net, saddr, sport,
daddr, hnum, dif, sdif);
if (score > badness) {
+ reuseport_result = NULL;
+
if (sk->sk_reuseport &&
sk->sk_state != TCP_ESTABLISHED) {
hash = udp6_ehashfn(net, daddr, hnum,
saddr, sport);
- result = reuseport_select_sock(sk, hash, skb,
- sizeof(struct udphdr));
- if (result && !reuseport_has_conns(sk, false))
- return result;
+ reuseport_result = reuseport_select_sock(sk, hash, skb,
+ sizeof(struct udphdr));
+ if (reuseport_result && !reuseport_has_conns(sk, false))
+ return reuseport_result;
}
- result = sk;
+
+ result = reuseport_result ? : sk;
badness = score;
}
}
@@ -643,7 +646,7 @@ static int udpv6_queue_rcv_one_skb(struct sock *sk, struct sk_buff *skb)
/*
* UDP-Lite specific tests, ignored on UDP sockets (see net/ipv4/udp.c).
*/
- if ((is_udplite & UDPLITE_RECV_CC) && UDP_SKB_CB(skb)->partial_cov) {
+ if ((up->pcflag & UDPLITE_RECV_CC) && UDP_SKB_CB(skb)->partial_cov) {
if (up->pcrlen == 0) { /* full coverage was set */
net_dbg_ratelimited("UDPLITE6: partial coverage %d while full coverage %d requested\n",
diff --git a/net/rxrpc/recvmsg.c b/net/rxrpc/recvmsg.c
index 8578c39ec8395..6896a33ef8427 100644
--- a/net/rxrpc/recvmsg.c
+++ b/net/rxrpc/recvmsg.c
@@ -464,7 +464,7 @@ try_again:
list_empty(&rx->recvmsg_q) &&
rx->sk.sk_state != RXRPC_SERVER_LISTENING) {
release_sock(&rx->sk);
- return -ENODATA;
+ return -EAGAIN;
}
if (list_empty(&rx->recvmsg_q)) {
diff --git a/net/rxrpc/sendmsg.c b/net/rxrpc/sendmsg.c
index 5e9c43d4a314b..49d03c8c64da9 100644
--- a/net/rxrpc/sendmsg.c
+++ b/net/rxrpc/sendmsg.c
@@ -306,7 +306,7 @@ static int rxrpc_send_data(struct rxrpc_sock *rx,
/* this should be in poll */
sk_clear_bit(SOCKWQ_ASYNC_NOSPACE, sk);
- if (sk->sk_err || (sk->sk_shutdown & SEND_SHUTDOWN))
+ if (sk->sk_shutdown & SEND_SHUTDOWN)
return -EPIPE;
more = msg->msg_flags & MSG_MORE;
diff --git a/net/sctp/stream.c b/net/sctp/stream.c
index c1a100d2fed39..e13cbd5c01932 100644
--- a/net/sctp/stream.c
+++ b/net/sctp/stream.c
@@ -22,17 +22,11 @@
#include
#include
-/* Migrates chunks from stream queues to new stream queues if needed,
- * but not across associations. Also, removes those chunks to streams
- * higher than the new max.
- */
-static void sctp_stream_outq_migrate(struct sctp_stream *stream,
- struct sctp_stream *new, __u16 outcnt)
+static void sctp_stream_shrink_out(struct sctp_stream *stream, __u16 outcnt)
{
struct sctp_association *asoc;
struct sctp_chunk *ch, *temp;
struct sctp_outq *outq;
- int i;
asoc = container_of(stream, struct sctp_association, stream);
outq = &asoc->outqueue;
@@ -56,6 +50,19 @@ static void sctp_stream_outq_migrate(struct sctp_stream *stream,
sctp_chunk_free(ch);
}
+}
+
+/* Migrates chunks from stream queues to new stream queues if needed,
+ * but not across associations. Also, removes those chunks to streams
+ * higher than the new max.
+ */
+static void sctp_stream_outq_migrate(struct sctp_stream *stream,
+ struct sctp_stream *new, __u16 outcnt)
+{
+ int i;
+
+ if (stream->outcnt > outcnt)
+ sctp_stream_shrink_out(stream, outcnt);
if (new) {
/* Here we actually move the old ext stuff into the new
@@ -1038,11 +1045,13 @@ struct sctp_chunk *sctp_process_strreset_resp(
nums = ntohs(addstrm->number_of_streams);
number = stream->outcnt - nums;
- if (result == SCTP_STRRESET_PERFORMED)
+ if (result == SCTP_STRRESET_PERFORMED) {
for (i = number; i < stream->outcnt; i++)
SCTP_SO(stream, i)->state = SCTP_STREAM_OPEN;
- else
+ } else {
+ sctp_stream_shrink_out(stream, number);
stream->outcnt = number;
+ }
*evp = sctp_ulpevent_make_stream_change_event(asoc, flags,
0, nums, GFP_ATOMIC);