diff --git a/android/ACK_SHA b/android/ACK_SHA new file mode 100644 index 000000000000..54a52facacc7 --- /dev/null +++ b/android/ACK_SHA @@ -0,0 +1 @@ +109f31ac23f5fc4fa3517bfc1cd005eccf93193b diff --git a/android/abi_gki_aarch64.xml b/android/abi_gki_aarch64.xml index 07753e497e9d..13fc6e4a3c82 100644 --- a/android/abi_gki_aarch64.xml +++ b/android/abi_gki_aarch64.xml @@ -280,6 +280,7 @@ + @@ -362,9 +363,12 @@ + + + @@ -530,6 +534,15 @@ + + + + + + + + + @@ -5668,6 +5681,7 @@ + @@ -5758,9 +5772,12 @@ + + + @@ -5944,6 +5961,15 @@ + + + + + + + + + @@ -8616,9 +8642,9 @@ - - - + + + @@ -8631,7 +8657,6 @@ - @@ -8713,7 +8738,6 @@ - @@ -11575,6 +11599,7 @@ + @@ -11981,8 +12006,8 @@ - - + + @@ -12615,7 +12640,23 @@ - + + + + + + + + + + + + + + + + + @@ -13262,6 +13303,7 @@ + @@ -14811,12 +14853,6 @@ - - - - - - @@ -15311,6 +15347,9 @@ + + + @@ -15510,7 +15549,29 @@ - + + + + + + + + + + + + + + + + + + + + + + + @@ -16865,8 +16926,8 @@ - - + + @@ -18394,7 +18455,6 @@ - @@ -18768,11 +18828,7 @@ - - - - - + @@ -19727,7 +19783,6 @@ - @@ -19925,7 +19980,6 @@ - @@ -20363,14 +20417,6 @@ - - - - - - - - @@ -20721,7 +20767,7 @@ - + @@ -21435,6 +21481,7 @@ + @@ -22175,6 +22222,11 @@ + + + + + @@ -24344,7 +24396,7 @@ - + @@ -24569,6 +24621,7 @@ + @@ -24873,7 +24926,23 @@ - + + + + + + + + + + + + + + + + + @@ -25535,7 +25604,7 @@ - + @@ -25691,7 +25760,7 @@ - + @@ -25912,7 +25981,6 @@ - @@ -25990,7 +26058,7 @@ - + @@ -26047,6 +26115,7 @@ + @@ -26400,6 +26469,7 @@ + @@ -27030,7 +27100,7 @@ - + @@ -27965,7 +28035,6 @@ - @@ -31711,9 +31780,9 @@ - - - + + + @@ -32587,7 +32656,6 @@ - @@ -32842,7 +32910,68 @@ - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -33347,7 +33476,6 @@ - @@ -33762,6 +33890,7 @@ + @@ -33960,7 +34089,7 @@ - + @@ -37507,7 +37636,6 @@ - @@ -38297,8 +38425,8 @@ - - + + @@ -39270,17 +39398,6 @@ - - - - - - - - - - - @@ -39560,9 +39677,9 @@ - - - + + + @@ -40069,6 +40186,7 @@ + @@ -41026,7 +41144,6 @@ - @@ -43528,15 +43645,7 @@ - - - - - - - - @@ -43873,18 +43982,7 @@ - - - - - - - - - - - - + @@ -43980,12 +44078,12 @@ - - - - - - + + + + + + @@ -44090,7 +44188,6 @@ - @@ -44871,21 +44968,21 @@ - + - + - + - + - + - + @@ -45331,7 +45428,6 @@ - @@ -46982,8 +47078,8 @@ - - + + @@ -47329,7 +47425,35 @@ - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -47890,7 +48014,14 @@ - + + + + + + + + @@ -48536,11 +48667,6 @@ - - - - - @@ -48946,7 +49072,7 @@ - + @@ -49072,6 +49198,11 @@ + + + + + @@ -49525,56 +49656,7 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + @@ -49915,6 +49997,7 @@ + @@ -50850,7 +50933,7 @@ - + @@ -51695,26 +51778,8 @@ - - - - - - - - - - - - - - - - - - @@ -51973,26 +52038,6 @@ - - - - - - - - - - - - - - - - - - - - @@ -52130,7 +52175,6 @@ - @@ -52181,6 +52225,7 @@ + @@ -52770,7 +52815,23 @@ - + + + + + + + + + + + + + + + + + @@ -53132,7 +53193,6 @@ - @@ -54063,9 +54123,9 @@ - - - + + + @@ -54785,6 +54845,7 @@ + @@ -55369,7 +55430,7 @@ - + @@ -55834,7 +55895,7 @@ - + @@ -56700,26 +56761,6 @@ - - - - - - - - - - - - - - - - - - - - @@ -56928,6 +56969,7 @@ + @@ -58064,7 +58106,6 @@ - @@ -58527,11 +58568,6 @@ - - - - - @@ -59756,44 +59792,7 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + @@ -60983,65 +60982,7 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + @@ -61818,7 +61759,6 @@ - @@ -62768,7 +62708,17 @@ - + + + + + + + + + + + @@ -63834,7 +63784,7 @@ - + @@ -64328,10 +64278,10 @@ - - - - + + + + @@ -64381,6 +64331,12 @@ + + + + + + @@ -64640,6 +64596,7 @@ + @@ -64963,47 +64920,7 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + @@ -65598,11 +65515,6 @@ - - - - - @@ -66629,11 +66541,6 @@ - - - - - @@ -67094,7 +67001,7 @@ - + @@ -68958,7 +68865,6 @@ - @@ -69155,6 +69061,7 @@ + @@ -70763,14 +70670,7 @@ - - - - - - - - + @@ -70904,14 +70804,6 @@ - - - - - - - - @@ -71600,8 +71492,8 @@ - - + + @@ -71720,7 +71612,6 @@ - @@ -72407,8 +72298,8 @@ - - + + @@ -72480,6 +72371,7 @@ + @@ -72944,38 +72836,7 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + @@ -73086,7 +72947,7 @@ - + @@ -75774,7 +75635,6 @@ - @@ -77182,11 +77042,11 @@ - + - + @@ -78239,12 +78099,12 @@ - - - - - - + + + + + + @@ -79530,6 +79390,7 @@ + @@ -79769,7 +79630,6 @@ - @@ -80495,6 +80355,7 @@ + @@ -81082,6 +80943,7 @@ + @@ -81154,6 +81016,9 @@ + + + @@ -81170,11 +81035,6 @@ - - - - - @@ -81197,7 +81057,6 @@ - @@ -81658,7 +81517,7 @@ - + @@ -81734,14 +81593,6 @@ - - - - - - - - @@ -84820,6 +84671,7 @@ + @@ -85438,7 +85290,7 @@ - + @@ -86119,9 +85971,9 @@ - - - + + + @@ -86590,26 +86442,7 @@ - - - - - - - - - - - - - - - - - - - - + @@ -86634,7 +86467,7 @@ - + @@ -86659,6 +86492,7 @@ + @@ -86697,6 +86531,7 @@ + @@ -88109,7 +87944,7 @@ - + @@ -88740,8 +88575,8 @@ - - + + @@ -89810,7 +89645,6 @@ - @@ -89971,6 +89805,14 @@ + + + + + + + + @@ -90405,7 +90247,20 @@ - + + + + + + + + + + + + + + @@ -90962,7 +90817,7 @@ - + @@ -91137,7 +90992,7 @@ - + @@ -91432,6 +91287,7 @@ + @@ -91567,12 +91423,12 @@ - + - + @@ -93138,7 +92994,6 @@ - @@ -93651,17 +93506,6 @@ - - - - - - - - - - - @@ -94424,7 +94268,7 @@ - + @@ -94936,7 +94780,7 @@ - + @@ -94982,7 +94826,7 @@ - + @@ -95420,7 +95264,7 @@ - + @@ -96126,9 +95970,6 @@ - - - @@ -97368,6 +97209,7 @@ + @@ -97643,8 +97485,8 @@ - - + + @@ -97853,8 +97695,8 @@ - - + + @@ -99009,6 +98851,7 @@ + @@ -99984,7 +99827,14 @@ - + + + + + + + + @@ -101467,10 +101317,10 @@ - - - + + + @@ -101494,7 +101344,7 @@ - + @@ -101635,8 +101485,8 @@ - - + + @@ -102236,7 +102086,6 @@ - @@ -102505,6 +102354,7 @@ + @@ -103030,7 +102880,20 @@ - + + + + + + + + + + + + + + @@ -103089,6 +102952,9 @@ + + + @@ -106496,6 +106362,7 @@ + @@ -106510,20 +106377,6 @@ - - - - - - - - - - - - - - @@ -106858,6 +106711,7 @@ + @@ -110782,11 +110636,6 @@ - - - - - @@ -111113,6 +110962,7 @@ + @@ -112868,7 +112718,6 @@ - @@ -112953,7 +112802,6 @@ - @@ -113072,8 +112920,8 @@ - - + + @@ -113610,6 +113458,7 @@ + @@ -114714,6 +114563,11 @@ + + + + + @@ -115255,6 +115109,19 @@ + + + + + + + + + + + + + @@ -115275,6 +115142,16 @@ + + + + + + + + + + @@ -116311,6 +116188,63 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -116641,6 +116575,7 @@ + @@ -116731,9 +116666,12 @@ + + + @@ -116917,6 +116855,15 @@ + + + + + + + + + @@ -117153,9 +117100,9 @@ - - - + + + @@ -117166,33 +117113,33 @@ - - - - - + + + + + - - - - - + + + + + - - - - - + + + + + - - - + + + - - - + + + @@ -117202,27 +117149,27 @@ - - - + + + - - - + + + - - - + + + - - - + + + @@ -117232,8 +117179,8 @@ - - + + @@ -117252,8 +117199,8 @@ - - + + @@ -117269,57 +117216,57 @@ - - + + - - + + - - + + - - + + - - + + - - + + - - - + + + - - + + - - + + @@ -117330,16 +117277,16 @@ - - + + - - + + @@ -117363,12 +117310,12 @@ - - - - - - + + + + + + @@ -117385,9 +117332,9 @@ - - - + + + @@ -117403,33 +117350,33 @@ - - + + - - - + + + - - + + - - - + + + - - - + + + - - - + + + @@ -117442,22 +117389,22 @@ - - - - + + + + - - - - + + + + - - - - + + + + @@ -117536,13 +117483,13 @@ - - - - - - - + + + + + + + @@ -117551,29 +117498,29 @@ - - - + + + - - - - - - + + + + + + - - - - + + + + - - + + @@ -117615,11 +117562,11 @@ - - - - - + + + + + @@ -117639,14 +117586,14 @@ - - + + - - - - + + + + @@ -117669,15 +117616,15 @@ - - - - + + + + - - - + + + @@ -117685,11 +117632,11 @@ - - - - - + + + + + @@ -117740,21 +117687,21 @@ - - - - - + + + + + - - - - - - + + + + + + - - + + @@ -117795,18 +117742,18 @@ - - + + - - - + + + - - - + + + @@ -117839,17 +117786,17 @@ - - - - + + + + - - - - - + + + + + @@ -117860,53 +117807,53 @@ - - - - + + + + - - + + - - - + + + - - - + + + - - + + - - - - + + + + - - + + - - + + - - + + - - - - - + + + + + @@ -117914,9 +117861,9 @@ - - - + + + @@ -117925,49 +117872,49 @@ - - - - + + + + - - - - - - - + + + + + + + - - - - + + + + - - - - - + + + + + - - - - + + + + - - - - - + + + + + @@ -117977,10 +117924,10 @@ - - - - + + + + @@ -117994,8 +117941,8 @@ - - + + @@ -118005,8 +117952,8 @@ - - + + @@ -118024,27 +117971,27 @@ - - + + - - + + - - - + + + - - - - + + + + - - - + + + @@ -118069,10 +118016,10 @@ - - - - + + + + @@ -118104,13 +118051,13 @@ - - - + + + - - + + @@ -118141,8 +118088,8 @@ - - + + @@ -118151,8 +118098,8 @@ - - + + @@ -118174,8 +118121,8 @@ - - + + @@ -118222,8 +118169,8 @@ - - + + @@ -118245,18 +118192,18 @@ - - - - + + + + - - + + - - + + @@ -118284,19 +118231,19 @@ - - - + + + - - - + + + - - - + + + @@ -118422,28 +118369,28 @@ - - + + - - + + - - + + - - + + @@ -118451,10 +118398,10 @@ - - - - + + + + @@ -118488,26 +118435,26 @@ - - - - + + + + - - - - + + + + - - - + + + - - - + + + @@ -118516,31 +118463,31 @@ - - - - + + + + - - - + + + - - - + + + - - - + + + - - - - + + + + @@ -118558,9 +118505,9 @@ - - - + + + @@ -118608,67 +118555,67 @@ - - - - + + + + - - - - - + + + + + - - - - - - + + + + + + - - - - - - - + + + + + + + - - - - - - - - + + + + + + + + - - - - - - - - - + + + + + + + + + - - - - - - - - - - + + + + + + + + + + @@ -118684,16 +118631,16 @@ - - + + - - - - - - + + + + + + @@ -118714,22 +118661,22 @@ - - + + - - + + - - + + - - + + @@ -118746,23 +118693,23 @@ - - - + + + - - - - - + + + + + - - - - - + + + + + @@ -118772,8 +118719,8 @@ - - + + @@ -118786,8 +118733,8 @@ - - + + @@ -118857,9 +118804,9 @@ - - - + + + @@ -118898,11 +118845,11 @@ - - - - - + + + + + @@ -118918,19 +118865,19 @@ - - - + + + - - - + + + - - - + + + @@ -118962,9 +118909,9 @@ - - - + + + @@ -119053,14 +119000,14 @@ - - - + + + - - - + + + @@ -119069,65 +119016,65 @@ - - - + + + - - - - + + + + - - + + - - - - - + + + + + - - - - - + + + + + - - + + - - - - + + + + - - + + - - + + - - - + + + - - - + + + @@ -119136,48 +119083,48 @@ - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - + + - - + + - - - + + + @@ -119188,8 +119135,8 @@ - - + + @@ -119307,8 +119254,8 @@ - - + + @@ -119410,28 +119357,28 @@ - - - + + + - - + + - - - - - + + + + + @@ -119446,11 +119393,11 @@ - - - - - + + + + + @@ -119462,11 +119409,11 @@ - - - - - + + + + + @@ -119485,8 +119432,8 @@ - - + + @@ -119523,10 +119470,10 @@ - - - - + + + + @@ -119564,22 +119511,22 @@ - - + + - - - - + + + + - - + + - - + + @@ -119606,22 +119553,22 @@ - - + + - - - - + + + + - - - + + + @@ -119682,8 +119629,8 @@ - - + + @@ -119714,18 +119661,18 @@ - - + + - - - + + + - - - + + + @@ -119737,8 +119684,8 @@ - - + + @@ -119754,9 +119701,9 @@ - - - + + + @@ -119789,12 +119736,12 @@ - - + + - - + + @@ -119805,23 +119752,23 @@ - - + + - - - + + + - - - - + + + + @@ -119836,9 +119783,9 @@ - - - + + + @@ -119857,8 +119804,8 @@ - - + + @@ -119878,58 +119825,58 @@ - - - + + + - - - + + + - - - - + + + + - - - - - + + + + + - - - - - + + + + + - + - + - - - + + + - - - - - + + + + + - - - - - + + + + + @@ -119972,12 +119919,12 @@ - - + + - - + + @@ -120006,10 +119953,10 @@ - - - - + + + + @@ -120064,42 +120011,42 @@ - - - - - - + + + + + + - - - - - - + + + + + + - - + + - - - + + + - - - + + + - + @@ -120142,10 +120089,10 @@ - - - - + + + + @@ -120153,9 +120100,9 @@ - - - + + + @@ -120165,7 +120112,7 @@ - + @@ -120186,8 +120133,8 @@ - - + + @@ -120208,22 +120155,22 @@ - - + + - - - + + + - - - + + + @@ -120273,11 +120220,11 @@ - - - - - + + + + + @@ -120285,44 +120232,44 @@ - - - - - + + + + + - - - - + + + + - - - - - + + + + + - - - - + + + + - - + + - - + + - - - - + + + + @@ -120343,8 +120290,8 @@ - - + + @@ -120369,18 +120316,18 @@ - - - + + + - - - + + + @@ -120397,9 +120344,9 @@ - - - + + + @@ -120410,11 +120357,11 @@ - - - - - + + + + + @@ -120424,8 +120371,8 @@ - - + + @@ -120441,18 +120388,18 @@ - - + + - - + + - - - - + + + + @@ -120483,12 +120430,12 @@ - - + + - - + + @@ -120497,7 +120444,7 @@ - + @@ -120528,11 +120475,11 @@ - - - - - + + + + + @@ -120542,25 +120489,25 @@ - - - + + + - - - - - - + + + + + + - - - - - - + + + + + + @@ -120597,11 +120544,11 @@ - - - - - + + + + + @@ -120611,11 +120558,11 @@ - - - - - + + + + + @@ -120647,9 +120594,9 @@ - - - + + + @@ -120660,8 +120607,8 @@ - - + + @@ -120671,9 +120618,9 @@ - - - + + + @@ -120682,11 +120629,11 @@ - - - - - + + + + + @@ -120699,16 +120646,16 @@ - - + + - - + + - - + + @@ -120719,8 +120666,8 @@ - - + + @@ -120762,49 +120709,49 @@ - - + + - - - - + + + + - - - + + + - - + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + @@ -120826,9 +120773,9 @@ - - - + + + @@ -120841,9 +120788,9 @@ - - - + + + @@ -120865,10 +120812,10 @@ - - - - + + + + @@ -120899,15 +120846,15 @@ - - - - + + + + - - - + + + @@ -120927,8 +120874,8 @@ - - + + @@ -120944,8 +120891,8 @@ - - + + @@ -120953,13 +120900,13 @@ - - + + - - - + + + @@ -120970,9 +120917,9 @@ - - - + + + @@ -120989,16 +120936,16 @@ - - + + - - + + @@ -121023,9 +120970,9 @@ - - - + + + @@ -121115,9 +121062,9 @@ - - - + + + @@ -121130,17 +121077,17 @@ - - - - + + + + - - - - + + + + @@ -121148,10 +121095,10 @@ - - - - + + + + @@ -121159,9 +121106,9 @@ - - - + + + @@ -121182,11 +121129,11 @@ - - - - - + + + + + @@ -121258,20 +121205,20 @@ - - + + - - + + - - + + @@ -121284,8 +121231,8 @@ - - + + @@ -121307,12 +121254,12 @@ - - - - - - + + + + + + @@ -121321,40 +121268,40 @@ - - - + + + - - - - - - - + + + + + + + - - + + - - - + + + - - - - + + + + - - - - + + + + @@ -121389,28 +121336,28 @@ - - - + + + - - + + - - - - + + + + - - - + + + @@ -121432,10 +121379,10 @@ - - - - + + + + @@ -121457,11 +121404,11 @@ - - - - - + + + + + @@ -121484,15 +121431,15 @@ - - - + + + - - - - + + + + @@ -121509,14 +121456,14 @@ - - - + + + - - - + + + @@ -121545,22 +121492,22 @@ - - + + - - + + - - - - + + + + @@ -121583,10 +121530,10 @@ - - - - + + + + @@ -121594,15 +121541,15 @@ - - - - + + + + - - - + + + @@ -121709,11 +121656,11 @@ - - - - - + + + + + @@ -121911,29 +121858,29 @@ - - - - + + + + - - - + + + - - - - + + + + - - - - - + + + + + @@ -121943,10 +121890,10 @@ - - - - + + + + @@ -121985,14 +121932,14 @@ - - - - - - - - + + + + + + + + @@ -122005,9 +121952,9 @@ - - - + + + @@ -122040,8 +121987,8 @@ - - + + @@ -122108,14 +122055,14 @@ - - - + + + - - - + + + @@ -122123,10 +122070,10 @@ - - - - + + + + @@ -122171,15 +122118,15 @@ - - - - + + + + - - - + + + @@ -122278,16 +122225,16 @@ - - - + + + - - - - - + + + + + @@ -122337,58 +122284,58 @@ - - - + + + - - - - - + + + + + - - - - - + + + + + - - + + - - - - - + + + + + - - + + - - + + - - - - + + + + - - - - + + + + @@ -122471,9 +122418,9 @@ - - - + + + @@ -122495,17 +122442,17 @@ - - + + - - - + + + - - + + @@ -122513,15 +122460,15 @@ - - - + + + - - - - + + + + @@ -122532,34 +122479,34 @@ - - + + - - - - + + + + - - + + - - - + + + - - - - + + + + @@ -122571,9 +122518,9 @@ - - - + + + @@ -122581,8 +122528,8 @@ - - + + @@ -122593,15 +122540,15 @@ - + - - - - - - + + + + + + @@ -122613,13 +122560,13 @@ - - - - + + + + - - + + @@ -122639,10 +122586,10 @@ - - - - + + + + @@ -122792,46 +122739,46 @@ - - - + + + - - - + + + - - + + - - - - - + + + + + - - + + - - - + + + - - - - + + + + - - - - - + + + + + @@ -122964,8 +122911,8 @@ - - + + @@ -122998,16 +122945,16 @@ - - + + - - + + - - + + @@ -123019,8 +122966,8 @@ - - + + @@ -123031,8 +122978,8 @@ - - + + @@ -123052,9 +122999,9 @@ - - - + + + @@ -123064,62 +123011,62 @@ - - + + - - - + + + - - + + - - - + + + - - - - + + + + - - - + + + - - - + + + - - - + + + - - - + + + - - + + - - - + + + - - - + + + @@ -123137,14 +123084,14 @@ - - - + + + - - - + + + @@ -123179,13 +123126,13 @@ - - - - - - - + + + + + + + @@ -123409,62 +123356,62 @@ - - + + - - - + + + - - + + - - - - - + + + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - + + - - + + @@ -123480,15 +123427,15 @@ - - + + - - - - - + + + + + @@ -123499,10 +123446,10 @@ - - - - + + + + @@ -123531,8 +123478,8 @@ - - + + @@ -123540,9 +123487,9 @@ - - - + + + @@ -123579,9 +123526,9 @@ - - - + + + @@ -123590,8 +123537,8 @@ - - + + @@ -123599,19 +123546,19 @@ - - - - - + + + + + - - - - - - + + + + + + @@ -123619,20 +123566,20 @@ - - + + - - + + - - + + - - + + @@ -123645,17 +123592,17 @@ - - + + - - + + - - - + + + @@ -123702,19 +123649,19 @@ - - - - - - - + + + + + + + - - - + + + @@ -123722,17 +123669,17 @@ - - - + + + - - + + @@ -123750,20 +123697,20 @@ - - + + - - + + - - + + @@ -123776,11 +123723,11 @@ - - - - - + + + + + @@ -123791,33 +123738,33 @@ - - - + + + - - - - + + + + - - - - + + + + - - + + - - + + @@ -124101,23 +124048,23 @@ - - + + - - - - + + + + - - - + + + @@ -124133,12 +124080,12 @@ - - - - - - + + + + + + @@ -124190,20 +124137,20 @@ - - + + - - - - + + + + - - - - + + + + @@ -124358,10 +124305,10 @@ - - - - + + + + @@ -124411,9 +124358,9 @@ - - - + + + @@ -124542,19 +124489,19 @@ - - - + + + - - - + + + - - - + + + @@ -124655,8 +124602,8 @@ - - + + @@ -124678,9 +124625,9 @@ - - - + + + @@ -124708,8 +124655,8 @@ - - + + @@ -124724,24 +124671,24 @@ - - + + - - - + + + - - - - + + + + - - - + + + @@ -124760,9 +124707,9 @@ - - - + + + @@ -124776,18 +124723,18 @@ - - + + - - - + + + - - - + + + @@ -124808,9 +124755,9 @@ - - - + + + @@ -124841,28 +124788,28 @@ - - + + - - + + - - - + + + - - - - + + + + - - - + + + @@ -124873,83 +124820,83 @@ - - - + + + - - - - + + + + - - - + + + - - + + - - - + + + - - + + - - + + - - - + + + - - + + - - - + + + - - + + - - + + - - + + - - - - + + + + - - - - + + + + @@ -125005,17 +124952,17 @@ - - + + - - + + - - - + + + @@ -125029,20 +124976,20 @@ - - + + - - + + - - + + @@ -125111,9 +125058,9 @@ - - - + + + @@ -125121,44 +125068,44 @@ - - + + - - - - - + + + + + - - - - - - - + + + + + + + - - - - + + + + - - - - + + + + - - - - - - + + + + + + @@ -125168,12 +125115,12 @@ - - - - - - + + + + + + @@ -125184,9 +125131,9 @@ - - - + + + @@ -125194,18 +125141,18 @@ - - - - + + + + - - - - - - - + + + + + + + @@ -125220,30 +125167,30 @@ - - - - - + + + + + - - - - - + + + + + - - - - - + + + + + - - - - + + + + @@ -125279,8 +125226,8 @@ - - + + @@ -125356,20 +125303,20 @@ - - + + - - - - - - - - - - + + + + + + + + + + @@ -125378,19 +125325,19 @@ - - - + + + - - - - + + + + - - - + + + @@ -125417,36 +125364,36 @@ - - - - + + + + - - + + - - - + + + - - - - + + + + - - - - + + + + @@ -125685,8 +125632,8 @@ - - + + @@ -125700,13 +125647,13 @@ - - + + - - - + + + @@ -125745,14 +125692,14 @@ - - - + + + - - - + + + @@ -125760,17 +125707,17 @@ - - - - + + + + - - + + @@ -125785,9 +125732,9 @@ - - - + + + @@ -125801,50 +125748,50 @@ - - - - + + + + - - + + - - + + - - + + - - - - + + + + - - - - + + + + - - + + - - - + + + - - + + @@ -125854,15 +125801,15 @@ - - - + + + - - - - + + + + @@ -125895,27 +125842,27 @@ - - - - + + + + - - - - - + + + + + - - - + + + - - + + @@ -125929,9 +125876,9 @@ - - - + + + @@ -125940,30 +125887,30 @@ - - - + + + - - + + - - - + + + - - - - + + + + - - - - + + + + @@ -125979,26 +125926,26 @@ - - + + - - - + + + - - + + - - - + + + @@ -126015,8 +125962,8 @@ - - + + @@ -126031,8 +125978,8 @@ - - + + @@ -126080,18 +126027,18 @@ - - - + + + - - + + - - - + + + @@ -126099,13 +126046,13 @@ - - + + - - - + + + @@ -126113,9 +126060,9 @@ - - - + + + @@ -126173,8 +126120,8 @@ - - + + @@ -126183,9 +126130,9 @@ - - - + + + @@ -126198,8 +126145,8 @@ - - + + @@ -126242,12 +126189,12 @@ - - + + - - + + @@ -126284,35 +126231,35 @@ - - + + - - - + + + - - - - - - - + + + + + + + - - - - - - + + + + + + - - - + + + @@ -126324,13 +126271,13 @@ - - - + + + - - + + @@ -126373,33 +126320,33 @@ - - - - - + + + + + - - - - - + + + + + - - - - + + + + - - - + + + - - - - + + + + @@ -126420,8 +126367,8 @@ - - + + @@ -126446,10 +126393,10 @@ - - - - + + + + @@ -126459,12 +126406,12 @@ - - + + - - + + @@ -126475,17 +126422,17 @@ - - - - - - - + + + + + + + - - + + @@ -126502,8 +126449,8 @@ - - + + @@ -126529,15 +126476,15 @@ - - + + - - - - - + + + + + @@ -126549,8 +126496,8 @@ - - + + @@ -126576,8 +126523,8 @@ - - + + @@ -126587,20 +126534,20 @@ - - + + - + - - - + + + @@ -126614,41 +126561,41 @@ - - - - + + + + - - - + + + - - - + + + - - - + + + - - + + - - + + - - - + + + @@ -126658,13 +126605,13 @@ - - + + - - - + + + @@ -126678,41 +126625,41 @@ - - - - - - + + + + + + - - + + - - - - - - + + + + + + - - - - - + + + + + - - - - - - - - + + + + + + + + @@ -126726,8 +126673,8 @@ - - + + @@ -126739,18 +126686,18 @@ - - + + - - - - + + + + @@ -126774,23 +126721,23 @@ - - - + + + - - - + + + - - - + + + - - + + @@ -126803,9 +126750,9 @@ - - - + + + @@ -126813,29 +126760,29 @@ - - - - + + + + - - + + - - - - - + + + + + - - - - - - + + + + + + @@ -126868,9 +126815,9 @@ - - - + + + @@ -126879,13 +126826,13 @@ - - + + - - - + + + @@ -126982,8 +126929,8 @@ - - + + @@ -127008,13 +126955,13 @@ - - - + + + - - + + @@ -127059,10 +127006,10 @@ - - + + - + @@ -127077,22 +127024,22 @@ - - - + + + - - - + + + - - + + - - + + @@ -127143,38 +127090,38 @@ - - - - + + + + - - - - - - - - + + + + + + + + - - + + - - + + - + - - + + @@ -127185,9 +127132,9 @@ - - - + + + @@ -127202,26 +127149,26 @@ - - + + - - - - + + + + - - - - - - + + + + + + - - + + @@ -127236,28 +127183,28 @@ - - + + - - - + + + - - + + - - - - - + + + + + - - - - + + + + @@ -127272,28 +127219,28 @@ - - - - - + + + + + - - + + - - - - - + + + + + - - - - + + + + @@ -127315,18 +127262,18 @@ - - + + - - + + - - + + @@ -127349,12 +127296,12 @@ - - + + - - + + @@ -127391,9 +127338,9 @@ - - - + + + @@ -127428,81 +127375,81 @@ - - - + + + - - - + + + - - - - + + + + - - - - - - + + + + + + - - - - + + + + - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + @@ -127627,12 +127574,12 @@ - - + + - - + + @@ -127675,14 +127622,14 @@ - - + + - - - - + + + + @@ -127703,36 +127650,36 @@ - - - - - + + + + + - - + + - - - + + + - - - - - - + + + + + + - - - - - - + + + + + + @@ -127743,39 +127690,39 @@ - - + + - - - + + + - - - - + + + + - - - + + + - - + + - - - + + + - - - - + + + + @@ -127801,14 +127748,14 @@ - - + + - - - - + + + + @@ -127825,8 +127772,8 @@ - - + + @@ -127916,14 +127863,14 @@ - - - - - - - - + + + + + + + + @@ -127933,8 +127880,8 @@ - - + + @@ -127958,9 +127905,9 @@ - - - + + + @@ -127980,18 +127927,18 @@ - - - - + + + + - - - + + + @@ -127999,27 +127946,27 @@ - - - - - - + + + + + + - - - + + + - - - + + + - - - + + + @@ -128029,8 +127976,8 @@ - - + + @@ -128051,8 +127998,8 @@ - - + + @@ -128067,8 +128014,8 @@ - - + + @@ -128101,20 +128048,20 @@ - - + + - - + + - - + + @@ -128151,12 +128098,12 @@ - - + + - - + + @@ -128164,34 +128111,34 @@ - - + + - - - + + + - - - - + + + + - - - - + + + + - - - + + + - - + + @@ -128273,9 +128220,9 @@ - - - + + + @@ -128436,41 +128383,41 @@ - - - + + + - - + + - - - - - - + + + + + + - - - - - - + + + + + + - - - - + + + + - - - - + + + + @@ -128478,53 +128425,53 @@ - - - - + + + + - - - - - + + + + + - - - - + + + + - - + + - - + + - - - - - - + + + + + + - - - - - + + + + + @@ -128559,8 +128506,8 @@ - - + + @@ -128660,13 +128607,13 @@ - - - + + + - - + + @@ -128677,15 +128624,15 @@ - - - - - - - - - + + + + + + + + + @@ -128721,9 +128668,9 @@ - - - + + + @@ -128749,30 +128696,30 @@ - - - + + + - - - - + + + + - - - - + + + + - - - + + + @@ -128785,10 +128732,10 @@ - - - - + + + + @@ -128796,11 +128743,11 @@ - - - - - + + + + + @@ -128823,10 +128770,10 @@ - - - - + + + + @@ -128839,20 +128786,20 @@ - - - + + + - - - - + + + + - + - - + + @@ -128862,9 +128809,9 @@ - - - + + + @@ -128953,14 +128900,14 @@ - - - + + + - - + + @@ -129042,8 +128989,8 @@ - - + + @@ -129053,66 +129000,66 @@ - - + + - - - - - - - - - + + + + + + + + + - - + + - - - - - - - - - + + + + + + + + + - - + + - - + + - - + + - - + + - + - - - - + + + + @@ -129132,21 +129079,21 @@ - - - - + + + + - - - + + + - - - - + + + + @@ -129157,23 +129104,23 @@ - - - - - - - - + + + + + + + + - - + + - - - + + + @@ -129182,10 +129129,10 @@ - - - - + + + + @@ -129217,46 +129164,46 @@ - - - - + + + + - - - + + + - - + + - - + + - - - + + + - - - - - + + + + + - - + + - - - + + + @@ -129265,31 +129212,31 @@ - - - - + + + + - - - - + + + + - - - - + + + + - - - + + + - - + + @@ -129298,23 +129245,23 @@ - - - + + + - - - + + + - - - + + + @@ -129322,34 +129269,34 @@ - - - - + + + + - - - + + + - - - - + + + + - - - - + + + + - - - - - + + + + + @@ -129359,16 +129306,16 @@ - - - - + + + + - - - - + + + + @@ -129384,10 +129331,10 @@ - - - - + + + + @@ -129397,10 +129344,10 @@ - - - - + + + + @@ -129410,37 +129357,37 @@ - - - - + + + + - - - - - + + + + + - - - - - + + + + + - - - - + + + + - - - - - + + + + + @@ -129451,9 +129398,9 @@ - - - + + + @@ -129467,11 +129414,11 @@ - - - - - + + + + + @@ -129503,11 +129450,11 @@ - - + + - + @@ -129524,15 +129471,15 @@ - - + + - - + + - - + + @@ -129552,8 +129499,8 @@ - - + + @@ -129563,8 +129510,8 @@ - - + + @@ -129576,8 +129523,8 @@ - - + + @@ -129591,18 +129538,18 @@ - - - + + + - - - - + + + + - - + + @@ -129610,10 +129557,10 @@ - - - - + + + + @@ -129626,14 +129573,14 @@ - - - - + + + + - - + + @@ -129669,18 +129616,18 @@ - - - + + + - - - + + + @@ -129691,8 +129638,8 @@ - - + + @@ -129703,29 +129650,29 @@ - - - - + + + + - - - - - + + + + + - - + + - - - + + + - - + + @@ -129744,11 +129691,11 @@ - - - - - + + + + + @@ -129756,8 +129703,8 @@ - - + + @@ -129775,11 +129722,11 @@ - - - - - + + + + + @@ -129807,21 +129754,21 @@ - - - + + + - - - - + + + + - - - - + + + + @@ -129834,9 +129781,9 @@ - - - + + + @@ -129847,13 +129794,13 @@ - - + + - - - + + + @@ -129861,50 +129808,50 @@ - - - + + + - - + + - - + + - - - + + + - - - + + + - - - + + + - - - + + + - - + + - - + + - - - + + + @@ -129918,8 +129865,8 @@ - - + + @@ -129995,9 +129942,9 @@ - - - + + + @@ -130035,12 +129982,12 @@ - - + + - - - + + + @@ -130050,17 +129997,17 @@ - - - + + + - - - + + + - + @@ -130073,9 +130020,9 @@ - - - + + + @@ -130155,10 +130102,10 @@ - - - - + + + + @@ -130186,13 +130133,13 @@ - - - - - - - + + + + + + + @@ -130379,12 +130326,12 @@ - - + + - - + + @@ -130396,11 +130343,11 @@ - - - - - + + + + + @@ -130441,8 +130388,8 @@ - - + + @@ -130495,8 +130442,8 @@ - - + + @@ -130508,9 +130455,9 @@ - - - + + + @@ -130521,28 +130468,28 @@ - - - + + + - - - - - - + + + + + + - - + + - - - - - + + + + + @@ -130553,9 +130500,9 @@ - - - + + + @@ -130616,8 +130563,8 @@ - - + + @@ -130656,9 +130603,9 @@ - - - + + + @@ -130714,8 +130661,8 @@ - - + + @@ -130768,51 +130715,51 @@ - - + + - - + + - - - + + + - - + + - - + + - - + + - - + + - - + + - - - - - + + + + + @@ -130820,18 +130767,18 @@ - - - - + + + + - - + + @@ -130839,14 +130786,14 @@ - - - - + + + + - - - + + + @@ -130882,17 +130829,17 @@ - - + + - - - + + + @@ -130902,9 +130849,9 @@ - - - + + + @@ -130946,12 +130893,12 @@ - - + + - - + + @@ -130965,67 +130912,67 @@ - - - + + + - - + + - - + + - - + + - - + + - - - - - + + + + + - - + + - - + + - - + + - - + + - - + + - - - + + + - - - + + + @@ -131033,19 +130980,19 @@ - - + + - - + + - - - - - + + + + + @@ -131056,41 +131003,41 @@ - - - - + + + + - - - + + + - - + + - - - - - + + + + + - - + + - - + + @@ -131104,16 +131051,16 @@ - - - - + + + + - - - - + + + + @@ -131134,11 +131081,11 @@ - - - - - + + + + + @@ -131155,24 +131102,24 @@ - - - - + + + + - - - - - + + + + + - - - - - + + + + + @@ -131207,12 +131154,12 @@ - - + + - - + + @@ -131237,18 +131184,18 @@ - - - + + + - - + + - - - + + + @@ -131272,18 +131219,18 @@ - - - - - + + + + + - - - - - + + + + + @@ -131294,19 +131241,19 @@ - - - - + + + + - - + + - - - + + + @@ -131325,14 +131272,14 @@ - - - + + + - - - + + + @@ -131358,9 +131305,9 @@ - - - + + + @@ -131373,22 +131320,22 @@ - - - - + + + + - - + + - - + + @@ -131402,43 +131349,43 @@ - - + + - - - + + + - - - + + + - - - - - + + + + + - - - + + + - - - - - + + + + + @@ -131451,9 +131398,9 @@ - - - + + + @@ -131486,14 +131433,14 @@ - - - - + + + + - - + + @@ -131504,44 +131451,44 @@ - - - - + + + + - - - + + + - - + + - - - + + + - - - + + + - - - + + + - - - - + + + + @@ -131575,16 +131522,16 @@ - - - - - - + + + + + + - - - + + + @@ -131592,9 +131539,9 @@ - - - + + + @@ -131638,33 +131585,33 @@ - - - + + + - - - + + + - - + + - - + + - - - + + + - - - - + + + + @@ -131689,9 +131636,9 @@ - - - + + + @@ -131707,32 +131654,32 @@ - - - - + + + + - - + + - - + + - - - + + + - - - + + + - - - + + + @@ -131741,9 +131688,9 @@ - - - + + + @@ -131751,74 +131698,74 @@ - - - + + + - - + + - - - + + + - - - + + + - - - - + + + + - - - - + + + + - - + + - - - + + + - - - + + + - - - + + + - - - - + + + + - - + + - - + + - - - - + + + + @@ -131830,42 +131777,42 @@ - - - - + + + + - - - - - - + + + + + + - - - - - - + + + + + + - - - - - - + + + + + + - - + + @@ -131880,8 +131827,8 @@ - - + + @@ -131901,8 +131848,8 @@ - - + + @@ -131916,61 +131863,61 @@ - - - - - + + + + + - - - + + + - - - - - + + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - - - + + + + + + - - - - - + + + + + - - - - + + + + @@ -131988,12 +131935,12 @@ - - - - - - + + + + + + @@ -132004,12 +131951,12 @@ - - - - - - + + + + + + @@ -132024,9 +131971,9 @@ - - - + + + @@ -132039,15 +131986,15 @@ - - + + - - - - - + + + + + @@ -132064,10 +132011,10 @@ - - - - + + + + @@ -132087,10 +132034,10 @@ - - - - + + + + @@ -132124,8 +132071,8 @@ - - + + @@ -132136,8 +132083,8 @@ - - + + @@ -132222,16 +132169,16 @@ - - - - + + + + - - - - + + + + @@ -132240,33 +132187,33 @@ - - + + - - + + - - - - - - + + + + + + - - - + + + - - + + @@ -132292,8 +132239,8 @@ - - + + @@ -132308,16 +132255,16 @@ - - + + - - + + - - + + @@ -132402,19 +132349,19 @@ - - - + + + - - - + + + - - - + + + @@ -132429,8 +132376,8 @@ - - + + @@ -132461,9 +132408,9 @@ - - - + + + @@ -132493,14 +132440,14 @@ - - - + + + - - - + + + @@ -132513,9 +132460,9 @@ - - - + + + @@ -132523,10 +132470,10 @@ - - - - + + + + @@ -132540,12 +132487,12 @@ - - + + - - + + @@ -132566,9 +132513,9 @@ - - - + + + @@ -132580,9 +132527,9 @@ - - - + + + @@ -132630,8 +132577,8 @@ - - + + @@ -132677,9 +132624,9 @@ - - - + + + @@ -132695,10 +132642,10 @@ - - - - + + + + @@ -132719,10 +132666,10 @@ - - - - + + + + @@ -132755,17 +132702,17 @@ - - + + - - - + + + @@ -132779,40 +132726,40 @@ - - + + - - + + - - - - - + + + + + - - - + + + - - - + + + - - + + - - + + - - + + @@ -132834,20 +132781,20 @@ - - - - - - + + + + + + - - + + - - + + @@ -132855,21 +132802,21 @@ - - - - - + + + + + - - - - - + + + + + - - + + @@ -132880,7 +132827,7 @@ - + @@ -132899,21 +132846,21 @@ - - - - + + + + - - - - - - - - - + + + + + + + + + @@ -132947,8 +132894,8 @@ - - + + @@ -132968,9 +132915,9 @@ - - - + + + @@ -132978,23 +132925,23 @@ - - - + + + - - - + + + - - - + + + @@ -133015,37 +132962,37 @@ - - + + - - - - + + + + - - - + + + - - + + - - - - + + + + @@ -133059,11 +133006,11 @@ - - - - - + + + + + @@ -133114,10 +133061,10 @@ - - - - + + + + @@ -133176,24 +133123,24 @@ - - + + - - + + - - + + @@ -133203,11 +133150,11 @@ - - - - - + + + + + @@ -133252,14 +133199,14 @@ - - - - + + + + - - - + + + @@ -133491,8 +133438,8 @@ - - + + @@ -133512,29 +133459,29 @@ - - - + + + - - + + - - + + - - + + - - + + - - + + @@ -133546,14 +133493,14 @@ - - - + + + - - - + + + @@ -133566,16 +133513,16 @@ - - - - + + + + - - - - + + + + @@ -133627,12 +133574,12 @@ - - + + - - + + @@ -133679,24 +133626,24 @@ - - + + - - + + - - + + - - + + @@ -133716,13 +133663,13 @@ - - + + - - - + + + @@ -133736,18 +133683,19 @@ - - - - + + + + - - - - + + + + + @@ -133765,8 +133713,8 @@ - - + + @@ -133781,8 +133729,8 @@ - - + + @@ -133816,8 +133764,8 @@ - - + + @@ -133835,10 +133783,10 @@ - - - - + + + + @@ -133851,54 +133799,54 @@ - - + + - - - + + + - - + + - + - + - - - - + + + + - - - - + + + + - - - - - - - - - + + + + + + + + + - - + + - - + + @@ -133907,36 +133855,36 @@ - - - - - + + + + + - - - - - - + + + + + + - - - - - - - + + + + + + + - - - - - - + + + + + + @@ -133947,12 +133895,12 @@ - - - - - - + + + + + + @@ -133971,9 +133919,9 @@ - - - + + + @@ -133983,8 +133931,8 @@ - - + + @@ -133998,10 +133946,10 @@ - - - - + + + + @@ -134014,13 +133962,13 @@ - - - + + + - - + + @@ -134073,11 +134021,11 @@ - - - - - + + + + + @@ -134093,20 +134041,20 @@ - - + + - - + + - - + + @@ -134114,24 +134062,24 @@ - - + + - - + + - - + + @@ -134191,8 +134139,8 @@ - - + + @@ -134202,21 +134150,21 @@ - - - - - + + + + + - - - - + + + + @@ -134230,19 +134178,19 @@ - - - + + + - - + + - - - - + + + + @@ -134265,48 +134213,48 @@ - - - + + + - - - + + + - - - + + + - - + + - - + + - - - + + + - - + + - - + + - - + + - - + + @@ -134315,7 +134263,7 @@ - + @@ -134355,17 +134303,17 @@ - + - + - - + + @@ -134384,8 +134332,8 @@ - - + + @@ -134412,31 +134360,31 @@ - - + + - - - - + + + + - - - + + + - - - + + + @@ -134496,8 +134444,8 @@ - - + + @@ -134538,16 +134486,16 @@ - - + + - - + + - - + + @@ -134558,8 +134506,8 @@ - - + + @@ -134582,12 +134530,12 @@ - - + + - - + + @@ -134603,8 +134551,8 @@ - - + + @@ -134723,10 +134671,10 @@ - - - - + + + + @@ -134735,20 +134683,20 @@ - - - - - - - - + + + + + + + + - - - - + + + + @@ -134756,14 +134704,14 @@ - - - + + + - - - + + + @@ -134781,8 +134729,8 @@ - - + + @@ -134794,8 +134742,8 @@ - - + + @@ -134832,8 +134780,8 @@ - - + + @@ -134884,22 +134832,22 @@ - - - - + + + + - - - - + + + + - - - - + + + + @@ -134989,8 +134937,8 @@ - - + + @@ -134998,22 +134946,22 @@ - - + + - - - - - - + + + + + + - - - - + + + + @@ -135026,9 +134974,9 @@ - - - + + + @@ -135036,9 +134984,9 @@ - - - + + + @@ -135086,13 +135034,13 @@ - - - - - - - + + + + + + + @@ -135100,28 +135048,28 @@ - - + + - - + + - - + + - - + + - - + + @@ -135137,20 +135085,20 @@ - - - - - - + + + + + + - - - + + + - - + + @@ -135166,8 +135114,8 @@ - - + + @@ -135184,8 +135132,8 @@ - - + + @@ -135198,15 +135146,15 @@ - - - + + + - - - - + + + + @@ -135214,39 +135162,39 @@ - - - + + + - - - - + + + + - - + + - - - + + + - - - - + + + + - - - + + + - - - + + + @@ -135254,30 +135202,30 @@ - - - - + + + + - - - - + + + + - - - - + + + + - - + + - - + + @@ -135404,8 +135352,8 @@ - - + + @@ -135508,8 +135456,8 @@ - - + + @@ -135524,12 +135472,12 @@ - - + + - - + + @@ -135546,9 +135494,9 @@ - - - + + + @@ -135556,9 +135504,9 @@ - - - + + + @@ -135566,9 +135514,9 @@ - - - + + + @@ -135593,12 +135541,12 @@ - - + + - - + + @@ -135616,10 +135564,10 @@ - - - - + + + + @@ -135636,62 +135584,62 @@ - - - - + + + + - - - + + + - - + + - - - - - - + + + + + + - - - - + + + + - - - - - - - + + + + + + + - - - + + + - - - + + + - - - + + + - - - - + + + + @@ -135702,7 +135650,7 @@ - + @@ -135736,52 +135684,52 @@ - - - - + + + + - - + + - - + + - - - - + + + + - - + + - - + + - - + + - - + + - - + + - + @@ -135789,34 +135737,34 @@ - - + + - - + + - - + + - - - - - - + + + + + + - - - - + + + + - - + + @@ -135827,10 +135775,10 @@ - - - - + + + + @@ -135840,8 +135788,8 @@ - - + + @@ -135852,8 +135800,8 @@ - - + + @@ -135891,8 +135839,8 @@ - - + + @@ -135930,14 +135878,14 @@ - - - - - + + + + + - - + + @@ -135975,11 +135923,11 @@ - - - - - + + + + + @@ -136123,21 +136071,21 @@ - - + + - - - + + + - - + + - - + + @@ -136171,11 +136119,11 @@ - - - - - + + + + + @@ -136190,21 +136138,21 @@ - - + + - - + + - - + + - - - + + + @@ -136220,11 +136168,11 @@ - - - - - + + + + + @@ -136265,21 +136213,21 @@ - - - - + + + + - - - - + + + + - - - + + + @@ -136300,26 +136248,26 @@ - - - - + + + + - - - + + + - - - - - + + + + + - - - + + + @@ -136328,20 +136276,20 @@ - - - + + + - - - + + + - - - + + + @@ -136351,26 +136299,26 @@ - - - + + + - - - + + + - - - - + + + + - - - - + + + + @@ -136516,9 +136464,9 @@ - - - + + + @@ -136527,9 +136475,9 @@ - - - + + + @@ -136537,21 +136485,21 @@ - - + + - - - - + + + + - - + + - - + + @@ -136559,15 +136507,15 @@ - - - + + + - - - - + + + + @@ -136579,33 +136527,33 @@ - - - - - - + + + + + + - - - - - - + + + + + + - - - - + + + + - - - + + + @@ -136613,28 +136561,28 @@ - - - + + + - - - - - + + + + + - - + + - - - + + + - - + + @@ -136645,13 +136593,13 @@ - - - - - - - + + + + + + + @@ -136683,14 +136631,14 @@ - - + + - - - - + + + + @@ -136698,10 +136646,10 @@ - - - - + + + + @@ -136709,10 +136657,10 @@ - - - - + + + + @@ -136735,10 +136683,10 @@ - - - - + + + + @@ -136754,29 +136702,29 @@ - + - - + + - - + + - - - - + + + + - - - - - - + + + + + + @@ -136805,13 +136753,13 @@ - - - - - - - + + + + + + + @@ -136830,10 +136778,10 @@ - - - - + + + + @@ -136850,10 +136798,10 @@ - - - - + + + + @@ -136863,30 +136811,30 @@ - - - + + + - - - - - - + + + + + + - - + + - - - - - - - + + + + + + + @@ -136903,13 +136851,13 @@ - - + + - - - + + + @@ -136928,39 +136876,39 @@ - - - + + + - - - - - + + + + + - - - - - + + + + + - - - - - + + + + + - - - + + + - - + + @@ -136983,55 +136931,55 @@ - - - - - + + + + + - - - - - + + + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - + + - - - + + + - - - + + + @@ -137041,9 +136989,9 @@ - - - + + + @@ -137053,16 +137001,16 @@ - - - - - + + + + + - - - + + + @@ -137097,15 +137045,15 @@ - - - + + + - - - - + + + + @@ -137118,11 +137066,11 @@ - - - - - + + + + + @@ -137132,16 +137080,16 @@ - - - - - + + + + + - - - + + + @@ -137151,8 +137099,8 @@ - - + + @@ -137164,25 +137112,25 @@ - - + + - - + + - - - - - - - + + + + + + + - - + + @@ -137193,9 +137141,9 @@ - - - + + + @@ -137247,9 +137195,9 @@ - - - + + + @@ -137283,22 +137231,22 @@ - - - - - + + + + + - - - - - + + + + + - - + + @@ -137377,13 +137325,13 @@ - - + + - - - + + + @@ -137435,8 +137383,8 @@ - - + + @@ -137452,9 +137400,9 @@ - - - + + + @@ -137464,17 +137412,17 @@ - - - - + + + + - - - - - + + + + + @@ -137491,17 +137439,17 @@ - - + + - - - - - - - + + + + + + + @@ -137510,23 +137458,23 @@ - - + + - - - - + + + + - - - + + + - - + + @@ -137537,12 +137485,12 @@ - - - - - - + + + + + + @@ -137554,8 +137502,8 @@ - - + + @@ -137567,18 +137515,18 @@ - - - - - - + + + + + + - - - - + + + + @@ -137586,12 +137534,12 @@ - - + + - - + + @@ -137629,9 +137577,9 @@ - - - + + + @@ -137643,8 +137591,8 @@ - - + + @@ -137676,45 +137624,45 @@ - - - + + + - - - - + + + + - - - - - - + + + + + + - - - - - - + + + + + + - - - - - + + + + + - - - - - + + + + + @@ -137759,9 +137707,9 @@ - - - + + + @@ -137792,10 +137740,10 @@ - - - - + + + + @@ -137887,14 +137835,14 @@ - - - - + + + + - - + + @@ -137912,8 +137860,8 @@ - - + + @@ -138158,9 +138106,9 @@ - - - + + + @@ -138249,9 +138197,9 @@ - - - + + + @@ -138272,13 +138220,13 @@ - - - - - - - + + + + + + + @@ -138290,29 +138238,29 @@ - - - + + + - - + + - - + + - - - - - - + + + + + + - - + + @@ -138370,9 +138318,9 @@ - - - + + + @@ -138384,17 +138332,17 @@ - - - - - - + + + + + + - - - + + + @@ -138518,9 +138466,9 @@ - - - + + + @@ -138553,30 +138501,30 @@ - - + + - - + + - - + + - - - - + + + + - - - - - - + + + + + + @@ -138599,9 +138547,9 @@ - - - + + + @@ -138619,8 +138567,8 @@ - - + + @@ -138655,10 +138603,10 @@ - - - - + + + + @@ -138667,21 +138615,21 @@ - - - - + + + + - - - + + + - - - - + + + + @@ -138689,21 +138637,21 @@ - - - - + + + + - - - - - + + + + + - - - + + + @@ -138722,12 +138670,12 @@ - - - + + + - - + + @@ -138742,26 +138690,26 @@ - - + + - - + + - - + + - + - + @@ -138773,12 +138721,12 @@ - - + + - - + + @@ -138793,23 +138741,23 @@ - - + + - - + + - - - + + + - + - + @@ -138828,15 +138776,15 @@ - - - + + + - - - - + + + + @@ -138849,20 +138797,20 @@ - - - + + + - - - - + + + + - - - + + + @@ -138884,9 +138832,9 @@ - - - + + + @@ -138895,10 +138843,10 @@ - - - - + + + + @@ -138906,9 +138854,9 @@ - - - + + + @@ -138916,9 +138864,9 @@ - - - + + + @@ -138927,17 +138875,17 @@ - - - - + + + + - + @@ -138949,8 +138897,8 @@ - - + + @@ -138992,8 +138940,8 @@ - - + + @@ -139086,8 +139034,8 @@ - - + + @@ -139096,8 +139044,8 @@ - - + + @@ -139129,19 +139077,19 @@ - - - - - - - - - + + + + + + + + + - - + + @@ -139153,9 +139101,9 @@ - - - + + + @@ -139174,14 +139122,14 @@ - - - - + + + + - - + + @@ -139209,9 +139157,9 @@ - - - + + + @@ -139229,7 +139177,6 @@ - @@ -139251,19 +139198,19 @@ - - + + - - - - + + + + - - - + + + @@ -139281,8 +139228,8 @@ - - + + @@ -139292,24 +139239,24 @@ - - - - - + + + + + - - - - + + + + - - - - - + + + + + @@ -139319,32 +139266,32 @@ - - - - + + + + - - - + + + - - - + + + - - - + + + - - - - + + + + @@ -139361,12 +139308,12 @@ - + - - - + + + @@ -139494,10 +139441,10 @@ - - - - + + + + @@ -139505,10 +139452,10 @@ - - - - + + + + @@ -139587,19 +139534,19 @@ - - - + + + - - - + + + - - - + + + @@ -139629,8 +139576,8 @@ - - + + @@ -139648,16 +139595,16 @@ - - + + - - + + @@ -139710,9 +139657,9 @@ - - - + + + @@ -139726,9 +139673,9 @@ - - - + + + @@ -139767,8 +139714,8 @@ - - + + @@ -139814,9 +139761,9 @@ - - - + + + @@ -139907,11 +139854,11 @@ - - - - - + + + + + @@ -140146,9 +140093,9 @@ - - - + + + @@ -140266,15 +140213,15 @@ - - + + - - - - - + + + + + @@ -140308,8 +140255,8 @@ - - + + @@ -140348,17 +140295,17 @@ - - + + - - + + - - - + + + @@ -140369,8 +140316,8 @@ - - + + @@ -140401,12 +140348,12 @@ - - + + - - + + @@ -140429,8 +140376,8 @@ - - + + @@ -140452,8 +140399,8 @@ - - + + @@ -140489,9 +140436,9 @@ - - - + + + @@ -140514,9 +140461,9 @@ - - - + + + @@ -140531,16 +140478,16 @@ - - + + - - + + - - + + @@ -140559,8 +140506,8 @@ - - + + @@ -140575,16 +140522,16 @@ - - - - - - - - - - + + + + + + + + + + @@ -140618,8 +140565,8 @@ - - + + @@ -140634,15 +140581,15 @@ - - - - + + + + - - - + + + @@ -140653,9 +140600,9 @@ - - - + + + @@ -140667,9 +140614,9 @@ - - - + + + @@ -140688,24 +140635,24 @@ - - - + + + - - - - + + + + - - - + + + @@ -140732,8 +140679,8 @@ - - + + @@ -140752,9 +140699,9 @@ - - - + + + @@ -140763,28 +140710,28 @@ - - - - + + + + - - + + - - + + - - - + + + - - - + + + @@ -140793,14 +140740,14 @@ - - - - + + + + - - + + @@ -140811,9 +140758,9 @@ - - - + + + @@ -140828,8 +140775,8 @@ - - + + @@ -140851,8 +140798,8 @@ - - + + @@ -140954,15 +140901,15 @@ - - - + + + - - - - + + + + @@ -140974,8 +140921,8 @@ - - + + @@ -141041,16 +140988,16 @@ - - + + - - + + @@ -141058,10 +141005,10 @@ - - - - + + + + @@ -141085,38 +141032,38 @@ - - + + - - + + - - - + + + - - - + + + - - + + - - + + @@ -141124,10 +141071,10 @@ - - - - + + + + @@ -141151,9 +141098,9 @@ - - - + + + @@ -141161,8 +141108,8 @@ - - + + @@ -141201,9 +141148,9 @@ - - - + + + @@ -141224,10 +141171,10 @@ - - - - + + + + @@ -141277,9 +141224,9 @@ - - - + + + @@ -141339,21 +141286,21 @@ - - - + + + - - - - - - + + + + + + - - + + @@ -141529,9 +141476,9 @@ - - - + + + @@ -141545,27 +141492,27 @@ - - + + - - - - + + + + - - - + + + @@ -141579,33 +141526,33 @@ - - - - - + + + + + - - - + + + - - + + - - + + - - + + - - - + + + @@ -141851,15 +141798,15 @@ - - - + + + - - - - + + + + @@ -141910,15 +141857,15 @@ - - - + + + - - - + + + @@ -141931,15 +141878,15 @@ - - - - + + + + - - - + + + @@ -142017,9 +141964,9 @@ - - - + + + @@ -142035,36 +141982,36 @@ - - - + + + - - - - - + + + + + - - - - + + + + - - - - + + + + - - - + + + - - + + @@ -142079,9 +142026,9 @@ - - - + + + @@ -142096,14 +142043,14 @@ - - - + + + - - - + + + @@ -142145,15 +142092,15 @@ - - + + - - - - - + + + + + @@ -142161,11 +142108,11 @@ - - - - - + + + + + @@ -142181,8 +142128,8 @@ - - + + @@ -142202,8 +142149,8 @@ - - + + @@ -142246,8 +142193,8 @@ - - + + @@ -142283,8 +142230,8 @@ - - + + @@ -142351,9 +142298,9 @@ - - - + + + @@ -142424,26 +142371,26 @@ - - - - - - - + + + + + + + - - + + - - - + + + @@ -142480,21 +142427,21 @@ - - - + + + - - - + + + - - - + + + @@ -142558,15 +142505,15 @@ - - + + - - + + @@ -142577,16 +142524,16 @@ - - - - - + + + + + - - - + + + @@ -142595,11 +142542,11 @@ - - - - - + + + + + @@ -142608,9 +142555,9 @@ - - - + + + @@ -142660,11 +142607,11 @@ - - - - - + + + + + @@ -142674,23 +142621,23 @@ - - - - + + + + - - - + + + - - + + - - + + @@ -142703,12 +142650,12 @@ - - + + - - + + @@ -142716,8 +142663,8 @@ - - + + @@ -142734,8 +142681,8 @@ - - + + @@ -142743,12 +142690,12 @@ - - - + + + - + @@ -142757,9 +142704,9 @@ - - - + + + @@ -142782,17 +142729,17 @@ - - - + + + - - + + @@ -142859,28 +142806,28 @@ - - - + + + - - - - - + + + + + - - - - - + + + + + - - - + + + @@ -142890,17 +142837,17 @@ - - + + - - - - + + + + @@ -142911,26 +142858,26 @@ - - - - + + + + - - - - + + + + - - + + - - - - + + + + @@ -142941,9 +142888,9 @@ - - - + + + @@ -142975,10 +142922,10 @@ - - - - + + + + @@ -143011,9 +142958,9 @@ - - - + + + @@ -143030,15 +142977,15 @@ - - - - + + + + - - - + + + @@ -143062,12 +143009,12 @@ - - - - - - + + + + + + @@ -143089,13 +143036,13 @@ - - + + - - - + + + @@ -143112,10 +143059,10 @@ - - - - + + + + @@ -143126,47 +143073,47 @@ - - - + + + - - + + - - - - - - - + + + + + + + - - + + - - - + + + - - - - - - - + + + + + + + - - - - - - + + + + + + diff --git a/android/abi_gki_aarch64_oplus b/android/abi_gki_aarch64_oplus index bb62b99da69a..9afce39e651c 100644 --- a/android/abi_gki_aarch64_oplus +++ b/android/abi_gki_aarch64_oplus @@ -2585,6 +2585,9 @@ __traceiter_android_vh_alter_rwsem_list_add __traceiter_android_vh_arch_set_freq_scale __traceiter_android_vh_binder_alloc_new_buf_locked + __traceiter_android_vh_binder_new_ref + __traceiter_android_vh_binder_del_ref + __traceiter_android_vh_binder_proc_transaction __traceiter_android_vh_binder_preset __traceiter_android_vh_binder_priority_skip __traceiter_android_vh_binder_reply @@ -2776,6 +2779,9 @@ __tracepoint_android_vh_alter_rwsem_list_add __tracepoint_android_vh_arch_set_freq_scale __tracepoint_android_vh_binder_alloc_new_buf_locked + __tracepoint_android_vh_binder_new_ref + __tracepoint_android_vh_binder_del_ref + __tracepoint_android_vh_binder_proc_transaction __tracepoint_android_vh_binder_preset __tracepoint_android_vh_binder_priority_skip __tracepoint_android_vh_binder_reply diff --git a/android/abi_gki_aarch64_qcom b/android/abi_gki_aarch64_qcom index be9112998f23..9680a3058076 100644 --- a/android/abi_gki_aarch64_qcom +++ b/android/abi_gki_aarch64_qcom @@ -2251,6 +2251,7 @@ smp_call_function smp_call_function_any smp_call_function_single + smp_call_function_single_async snd_card_free snd_card_new snd_card_register @@ -2500,6 +2501,7 @@ __traceiter_android_rvh_cpu_cgroup_online __traceiter_android_rvh_cpufreq_transition __traceiter_android_rvh_dequeue_task + __traceiter_android_rvh_do_sched_yield __traceiter_android_rvh_enqueue_task __traceiter_android_rvh_find_busiest_queue __traceiter_android_rvh_find_lowest_rq @@ -2611,6 +2613,7 @@ __tracepoint_android_rvh_cpu_cgroup_online __tracepoint_android_rvh_cpufreq_transition __tracepoint_android_rvh_dequeue_task + __tracepoint_android_rvh_do_sched_yield __tracepoint_android_rvh_enqueue_task __tracepoint_android_rvh_find_busiest_queue __tracepoint_android_rvh_find_lowest_rq diff --git a/android/abi_gki_aarch64_vivo b/android/abi_gki_aarch64_vivo index f464cbad7f17..5ff5cad3dc1c 100644 --- a/android/abi_gki_aarch64_vivo +++ b/android/abi_gki_aarch64_vivo @@ -1749,6 +1749,15 @@ __traceiter_android_vh_ufs_send_command __traceiter_android_vh_ufs_update_sdev __traceiter_binder_transaction_received + __traceiter_block_bio_complete + __traceiter_block_bio_queue + __traceiter_block_getrq + __traceiter_block_rq_complete + __traceiter_block_rq_insert + __traceiter_block_rq_issue + __traceiter_block_rq_merge + __traceiter_block_rq_requeue + __traceiter_block_split __traceiter_cpu_frequency_limits __traceiter_cpu_idle __traceiter_dwc3_complete_trb @@ -1852,6 +1861,15 @@ __tracepoint_android_vh_ufs_update_sdev __tracepoint_android_vh_vmpressure __tracepoint_binder_transaction_received + __tracepoint_block_bio_complete + __tracepoint_block_bio_queue + __tracepoint_block_getrq + __tracepoint_block_rq_complete + __tracepoint_block_rq_insert + __tracepoint_block_rq_issue + __tracepoint_block_rq_merge + __tracepoint_block_rq_requeue + __tracepoint_block_split __tracepoint_cpu_frequency_limits __tracepoint_cpu_idle __tracepoint_dwc3_complete_trb diff --git a/arch/arm64/configs/consolidate.fragment b/arch/arm64/configs/consolidate.fragment index 02dd9b4843fc..6db8abeb7c18 100644 --- a/arch/arm64/configs/consolidate.fragment +++ b/arch/arm64/configs/consolidate.fragment @@ -95,3 +95,4 @@ CONFIG_TASKS_RUDE_RCU=y # CONFIG_TEST_VMALLOC is not set # CONFIG_TEST_XARRAY is not set CONFIG_TRACE_PREEMPT_TOGGLE=y +CONFIG_USB_MON=y diff --git a/block/blk-core.c b/block/blk-core.c index 0e66579c299f..ac17d70157d6 100644 --- a/block/blk-core.c +++ b/block/blk-core.c @@ -58,6 +58,13 @@ EXPORT_TRACEPOINT_SYMBOL_GPL(block_rq_remap); EXPORT_TRACEPOINT_SYMBOL_GPL(block_bio_complete); EXPORT_TRACEPOINT_SYMBOL_GPL(block_split); EXPORT_TRACEPOINT_SYMBOL_GPL(block_unplug); +EXPORT_TRACEPOINT_SYMBOL_GPL(block_bio_queue); +EXPORT_TRACEPOINT_SYMBOL_GPL(block_getrq); +EXPORT_TRACEPOINT_SYMBOL_GPL(block_rq_insert); +EXPORT_TRACEPOINT_SYMBOL_GPL(block_rq_issue); +EXPORT_TRACEPOINT_SYMBOL_GPL(block_rq_merge); +EXPORT_TRACEPOINT_SYMBOL_GPL(block_rq_requeue); +EXPORT_TRACEPOINT_SYMBOL_GPL(block_rq_complete); DEFINE_IDA(blk_queue_ida); diff --git a/crypto/Kconfig b/crypto/Kconfig index d726b1c3a7f8..fa1617a05578 100644 --- a/crypto/Kconfig +++ b/crypto/Kconfig @@ -53,14 +53,14 @@ config CRYPTO_FIPS140_MOD meet FIPS 140 and NIAP FPT_TST_EXT.1 requirements. It shouldn't be used if you don't need to meet these requirements. -config CRYPTO_FIPS140_MOD_ERROR_INJECTION - bool "Support injecting failures into the FIPS 140 self-tests" +config CRYPTO_FIPS140_MOD_EVAL_TESTING + bool "Enable evaluation testing features in FIPS 140 module" depends on CRYPTO_FIPS140_MOD help - This option adds a module parameter "broken_alg" to the fips140 module - which can be used to fail the self-tests for a particular algorithm, - causing a kernel panic. This option is for FIPS lab testing only, and - it shouldn't be enabled on production systems. + This option adds some features to the FIPS 140 module which are needed + for lab evaluation testing of the module, e.g. support for injecting + errors and support for a userspace interface to some of the module's + services. This option should not be enabled in production builds. config CRYPTO_ALGAPI tristate diff --git a/crypto/Makefile b/crypto/Makefile index 9ada957d4cbd..f8a3677d2eec 100644 --- a/crypto/Makefile +++ b/crypto/Makefile @@ -239,11 +239,14 @@ fips140-objs := \ fips140-refs.o \ fips140-selftests.o \ crypto-fips.a +fips140-$(CONFIG_CRYPTO_FIPS140_MOD_EVAL_TESTING) += \ + fips140-eval-testing.o obj-m += fips140.o CFLAGS_fips140-alg-registration.o += $(FIPS140_CFLAGS) CFLAGS_fips140-module.o += $(FIPS140_CFLAGS) CFLAGS_fips140-selftests.o += $(FIPS140_CFLAGS) +CFLAGS_fips140-eval-testing.o += $(FIPS140_CFLAGS) hostprogs-always-y := fips140_gen_hmac HOSTLDLIBS_fips140_gen_hmac := -lcrypto -lelf diff --git a/crypto/fips140-eval-testing-uapi.h b/crypto/fips140-eval-testing-uapi.h new file mode 100644 index 000000000000..04e6cf633594 --- /dev/null +++ b/crypto/fips140-eval-testing-uapi.h @@ -0,0 +1,30 @@ +/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */ + +#ifndef _CRYPTO_FIPS140_EVAL_TESTING_H +#define _CRYPTO_FIPS140_EVAL_TESTING_H + +#include + +/* + * This header defines the ioctls that are available on the fips140 character + * device. These ioctls expose some of the module's services to userspace so + * that they can be tested by the FIPS certification lab; this is a required + * part of getting a FIPS 140 certification. These ioctls do not have any other + * purpose, and they do not need to be present in production builds. + */ + +/* + * Call the fips140_is_approved_service() function. The argument must be the + * service name as a NUL-terminated string. The return value will be 1 if + * fips140_is_approved_service() returned true, or 0 if it returned false. + */ +#define FIPS140_IOCTL_IS_APPROVED_SERVICE _IO('F', 0) + +/* + * Call the fips140_module_version() function. The argument must be a pointer + * to a buffer of size >= 256 chars. The NUL-terminated string returned by + * fips140_module_version() will be written to this buffer. + */ +#define FIPS140_IOCTL_MODULE_VERSION _IOR('F', 1, char[256]) + +#endif /* _CRYPTO_FIPS140_EVAL_TESTING_H */ diff --git a/crypto/fips140-eval-testing.c b/crypto/fips140-eval-testing.c new file mode 100644 index 000000000000..ea3cd653983a --- /dev/null +++ b/crypto/fips140-eval-testing.c @@ -0,0 +1,129 @@ +// SPDX-License-Identifier: GPL-2.0-only +/* + * Copyright 2021 Google LLC + * + * This file can optionally be built into fips140.ko in order to support certain + * types of testing that the FIPS lab has to do to evaluate the module. It + * should not be included in production builds of the module. + */ + +/* + * We have to redefine inline to mean always_inline, so that _copy_to_user() + * gets inlined. This is needed for it to be placed into the correct section. + * See fips140_copy_to_user(). + * + * We also need to undefine BUILD_FIPS140_KO to allow the use of the code + * patching which copy_to_user() requires. + */ +#undef inline +#define inline inline __attribute__((__always_inline__)) __gnu_inline \ + __inline_maybe_unused notrace +#undef BUILD_FIPS140_KO + +#include +#include +#include +#include + +#include "fips140-module.h" +#include "fips140-eval-testing-uapi.h" + +/* + * This option allows deliberately failing the self-tests for a particular + * algorithm. + */ +static char *fips140_fail_selftest; +module_param_named(fail_selftest, fips140_fail_selftest, charp, 0); + +/* This option allows deliberately failing the integrity check. */ +static bool fips140_fail_integrity_check; +module_param_named(fail_integrity_check, fips140_fail_integrity_check, bool, 0); + +static dev_t fips140_devnum; +static struct cdev fips140_cdev; + +/* Inject a self-test failure (via corrupting the result) if requested. */ +void fips140_inject_selftest_failure(const char *impl, u8 *result) +{ + if (fips140_fail_selftest && strcmp(impl, fips140_fail_selftest) == 0) + result[0] ^= 0xff; +} + +/* Inject an integrity check failure (via corrupting the text) if requested. */ +void fips140_inject_integrity_failure(u8 *textcopy) +{ + if (fips140_fail_integrity_check) + textcopy[0] ^= 0xff; +} + +static long fips140_ioctl_is_approved_service(unsigned long arg) +{ + const char *service_name = strndup_user((const char __user *)arg, 256); + long ret; + + if (IS_ERR(service_name)) + return PTR_ERR(service_name); + + ret = fips140_is_approved_service(service_name); + + kfree(service_name); + return ret; +} + +/* + * Code in fips140.ko is covered by an integrity check by default, and this + * check breaks if copy_to_user() is called. This is because copy_to_user() is + * an inline function that relies on code patching. However, since this is + * "evaluation testing" code which isn't included in the production builds of + * fips140.ko, it's acceptable to just exclude it from the integrity check. + */ +static noinline unsigned long __section("text.._fips140_unchecked") +fips140_copy_to_user(void __user *to, const void *from, unsigned long n) +{ + return copy_to_user(to, from, n); +} + +static long fips140_ioctl_module_version(unsigned long arg) +{ + const char *version = fips140_module_version(); + size_t len = strlen(version) + 1; + + if (len > 256) + return -EOVERFLOW; + + if (fips140_copy_to_user((void __user *)arg, version, len)) + return -EFAULT; + + return 0; +} + +static long fips140_ioctl(struct file *file, unsigned int cmd, + unsigned long arg) +{ + switch (cmd) { + case FIPS140_IOCTL_IS_APPROVED_SERVICE: + return fips140_ioctl_is_approved_service(arg); + case FIPS140_IOCTL_MODULE_VERSION: + return fips140_ioctl_module_version(arg); + default: + return -ENOTTY; + } +} + +static const struct file_operations fips140_fops = { + .unlocked_ioctl = fips140_ioctl, +}; + +bool fips140_eval_testing_init(void) +{ + if (alloc_chrdev_region(&fips140_devnum, 1, 1, "fips140") != 0) { + pr_err("failed to allocate device number\n"); + return false; + } + cdev_init(&fips140_cdev, &fips140_fops); + if (cdev_add(&fips140_cdev, fips140_devnum, 1) != 0) { + pr_err("failed to add fips140 character device\n"); + return false; + } + return true; +} diff --git a/crypto/fips140-module.c b/crypto/fips140-module.c index 5e42891fbd0d..cd854fe28845 100644 --- a/crypto/fips140-module.c +++ b/crypto/fips140-module.c @@ -29,15 +29,6 @@ #include "fips140-module.h" #include "internal.h" -/* - * This option allows deliberately failing the self-tests for a particular - * algorithm. This is for FIPS lab testing only. - */ -#ifdef CONFIG_CRYPTO_FIPS140_MOD_ERROR_INJECTION -char *fips140_broken_alg; -module_param_named(broken_alg, fips140_broken_alg, charp, 0); -#endif - /* * FIPS 140-2 prefers the use of HMAC with a public key over a plain hash. */ @@ -397,6 +388,8 @@ static bool __init check_fips140_module_hmac(void) offset_to_ptr(&fips140_rela_rodata.offset), fips140_rela_rodata.count); + fips140_inject_integrity_failure(textcopy); + tfm = crypto_alloc_shash("hmac(sha256)", 0, 0); if (IS_ERR(tfm)) { pr_err("failed to allocate hmac tfm (%ld)\n", PTR_ERR(tfm)); @@ -545,6 +538,9 @@ fips140_init(void) if (!update_fips140_library_routines()) goto panic; + if (!fips140_eval_testing_init()) + goto panic; + pr_info("module successfully loaded\n"); return 0; diff --git a/crypto/fips140-module.h b/crypto/fips140-module.h index b83547726a0f..a2a63194eb64 100644 --- a/crypto/fips140-module.h +++ b/crypto/fips140-module.h @@ -20,16 +20,31 @@ #define FIPS140_MODULE_NAME "Android Kernel Cryptographic Module" #define FIPS140_MODULE_VERSION UTS_RELEASE -#ifdef CONFIG_CRYPTO_FIPS140_MOD_ERROR_INJECTION -extern char *fips140_broken_alg; -#endif +/* fips140-eval-testing.c */ +#ifdef CONFIG_CRYPTO_FIPS140_MOD_EVAL_TESTING +void fips140_inject_selftest_failure(const char *impl, u8 *result); +void fips140_inject_integrity_failure(u8 *textcopy); +bool fips140_eval_testing_init(void); +#else +static inline void fips140_inject_selftest_failure(const char *impl, u8 *result) +{ +} +static inline void fips140_inject_integrity_failure(u8 *textcopy) +{ +} +static inline bool fips140_eval_testing_init(void) +{ + return true; +} +#endif /* !CONFIG_CRYPTO_FIPS140_MOD_EVAL_TESTING */ +/* fips140-module.c */ extern struct completion fips140_tests_done; extern struct task_struct *fips140_init_thread; - -bool __init __must_check fips140_run_selftests(void); - bool fips140_is_approved_service(const char *name); const char *fips140_module_version(void); +/* fips140-selftests.c */ +bool __init __must_check fips140_run_selftests(void); + #endif /* _CRYPTO_FIPS140_MODULE_H */ diff --git a/crypto/fips140-selftests.c b/crypto/fips140-selftests.c index 0ab388a9f213..56c503cacc41 100644 --- a/crypto/fips140-selftests.c +++ b/crypto/fips140-selftests.c @@ -146,11 +146,7 @@ static int __init __must_check fips_check_result(u8 *result, const u8 *expected_result, size_t result_size, const char *impl, const char *operation) { -#ifdef CONFIG_CRYPTO_FIPS140_MOD_ERROR_INJECTION - /* Inject a failure (via corrupting the result) if requested. */ - if (fips140_broken_alg && strcmp(impl, fips140_broken_alg) == 0) - result[0] ^= 0xff; -#endif + fips140_inject_selftest_failure(impl, result); if (memcmp(result, expected_result, result_size) != 0) { pr_err("wrong result from %s %s\n", impl, operation); return -EBADMSG; diff --git a/drivers/android/binder.c b/drivers/android/binder.c index b03bf4e11a08..c845c1f8a695 100644 --- a/drivers/android/binder.c +++ b/drivers/android/binder.c @@ -2797,6 +2797,7 @@ static void binder_transaction(struct binder_proc *proc, if (target_thread) e->to_thread = target_thread->pid; e->to_proc = target_proc->pid; + trace_android_rvh_binder_transaction(target_proc, proc, thread, tr); /* TODO: reuse incoming transaction for reply */ t = kzalloc(sizeof(*t), GFP_KERNEL); diff --git a/drivers/android/vendor_hooks.c b/drivers/android/vendor_hooks.c index 952053d4f5fa..17f42e726b55 100644 --- a/drivers/android/vendor_hooks.c +++ b/drivers/android/vendor_hooks.c @@ -239,6 +239,7 @@ EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_create_worker); EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_check_preempt_tick); EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_check_preempt_wakeup_ignore); EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_replace_next_task_fair); +EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_do_sched_yield); EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_binder_wait_for_work); EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_sync_txn_recvd); EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_build_sched_domains); @@ -289,6 +290,7 @@ EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_timerfd_create); EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_binder_alloc_new_buf_locked); EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_binder_reply); EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_binder_trans); +EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_binder_transaction); EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_binder_preset); EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_binder_proc_transaction); EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_binder_new_ref); diff --git a/drivers/usb/gadget/function/f_fs.c b/drivers/usb/gadget/function/f_fs.c index 725e35167837..2113e541457e 100644 --- a/drivers/usb/gadget/function/f_fs.c +++ b/drivers/usb/gadget/function/f_fs.c @@ -614,7 +614,7 @@ static int ffs_ep0_open(struct inode *inode, struct file *file) file->private_data = ffs; ffs_data_opened(ffs); - return 0; + return stream_open(inode, file); } static int ffs_ep0_release(struct inode *inode, struct file *file) @@ -1152,7 +1152,7 @@ ffs_epfile_open(struct inode *inode, struct file *file) file->private_data = epfile; ffs_data_opened(epfile->ffs); - return 0; + return stream_open(inode, file); } static int ffs_aio_cancel(struct kiocb *kiocb) diff --git a/fs/f2fs/data.c b/fs/f2fs/data.c index 4a986daad16b..9fb150cca9d7 100644 --- a/fs/f2fs/data.c +++ b/fs/f2fs/data.c @@ -1859,8 +1859,9 @@ int f2fs_fiemap(struct inode *inode, struct fiemap_extent_info *fieinfo, u64 logical = 0, phys = 0, size = 0; u32 flags = 0; int ret = 0; - bool compr_cluster = false; + bool compr_cluster = false, compr_appended; unsigned int cluster_size = F2FS_I(inode)->i_cluster_size; + unsigned int count_in_cluster = 0; loff_t maxbytes; if (fieinfo->fi_flags & FIEMAP_FLAG_CACHE) { @@ -1908,15 +1909,17 @@ next: map.m_next_pgofs = &next_pgofs; map.m_seg_type = NO_CHECK_TYPE; - if (compr_cluster) - map.m_len = cluster_size - 1; + if (compr_cluster) { + map.m_lblk += 1; + map.m_len = cluster_size - count_in_cluster; + } ret = f2fs_map_blocks(inode, &map, 0, F2FS_GET_BLOCK_FIEMAP); if (ret) goto out; /* HOLE */ - if (!(map.m_flags & F2FS_MAP_FLAGS)) { + if (!compr_cluster && !(map.m_flags & F2FS_MAP_FLAGS)) { start_blk = next_pgofs; if (blks_to_bytes(inode, start_blk) < blks_to_bytes(inode, @@ -1926,6 +1929,14 @@ next: flags |= FIEMAP_EXTENT_LAST; } + compr_appended = false; + /* In a case of compressed cluster, append this to the last extent */ + if (compr_cluster && ((map.m_flags & F2FS_MAP_UNWRITTEN) || + !(map.m_flags & F2FS_MAP_FLAGS))) { + compr_appended = true; + goto skip_fill; + } + if (size) { flags |= FIEMAP_EXTENT_MERGED; if (IS_ENCRYPTED(inode)) @@ -1942,39 +1953,37 @@ next: if (start_blk > last_blk) goto out; - if (compr_cluster) { - compr_cluster = false; - - - logical = blks_to_bytes(inode, start_blk - 1); - phys = blks_to_bytes(inode, map.m_pblk); - size = blks_to_bytes(inode, cluster_size); - - flags |= FIEMAP_EXTENT_ENCODED; - - start_blk += cluster_size - 1; - - if (start_blk > last_blk) - goto out; - - goto prep_next; - } - +skip_fill: if (map.m_pblk == COMPRESS_ADDR) { compr_cluster = true; - start_blk++; - goto prep_next; + count_in_cluster = 1; + } else if (compr_appended) { + unsigned int appended_blks = cluster_size - + count_in_cluster + 1; + size += blks_to_bytes(inode, appended_blks); + start_blk += appended_blks; + compr_cluster = false; + } else { + logical = blks_to_bytes(inode, start_blk); + phys = __is_valid_data_blkaddr(map.m_pblk) ? + blks_to_bytes(inode, map.m_pblk) : 0; + size = blks_to_bytes(inode, map.m_len); + flags = 0; + + if (compr_cluster) { + flags = FIEMAP_EXTENT_ENCODED; + count_in_cluster += map.m_len; + if (count_in_cluster == cluster_size) { + compr_cluster = false; + size += blks_to_bytes(inode, 1); + } + } else if (map.m_flags & F2FS_MAP_UNWRITTEN) { + flags = FIEMAP_EXTENT_UNWRITTEN; + } + + start_blk += bytes_to_blks(inode, size); } - logical = blks_to_bytes(inode, start_blk); - phys = blks_to_bytes(inode, map.m_pblk); - size = blks_to_bytes(inode, map.m_len); - flags = 0; - if (map.m_flags & F2FS_MAP_UNWRITTEN) - flags = FIEMAP_EXTENT_UNWRITTEN; - - start_blk += bytes_to_blks(inode, size); - prep_next: cond_resched(); if (fatal_signal_pending(current)) diff --git a/include/trace/hooks/binder.h b/include/trace/hooks/binder.h index ffba8746e58b..36a70248f5cf 100644 --- a/include/trace/hooks/binder.h +++ b/include/trace/hooks/binder.h @@ -52,6 +52,10 @@ DECLARE_HOOK(android_vh_binder_trans, TP_PROTO(struct binder_proc *target_proc, struct binder_proc *proc, struct binder_thread *thread, struct binder_transaction_data *tr), TP_ARGS(target_proc, proc, thread, tr)); +DECLARE_RESTRICTED_HOOK(android_rvh_binder_transaction, + TP_PROTO(struct binder_proc *target_proc, struct binder_proc *proc, + struct binder_thread *thread, struct binder_transaction_data *tr), + TP_ARGS(target_proc, proc, thread, tr), 1); DECLARE_HOOK(android_vh_binder_preset, TP_PROTO(struct hlist_head *hhead, struct mutex *lock), TP_ARGS(hhead, lock)); diff --git a/include/trace/hooks/sched.h b/include/trace/hooks/sched.h index 78f57b106e6c..0844244c9aff 100644 --- a/include/trace/hooks/sched.h +++ b/include/trace/hooks/sched.h @@ -291,6 +291,10 @@ DECLARE_RESTRICTED_HOOK(android_rvh_replace_next_task_fair, bool simple, struct task_struct *prev), TP_ARGS(rq, p, se, repick, simple, prev), 1); +DECLARE_RESTRICTED_HOOK(android_rvh_do_sched_yield, + TP_PROTO(struct rq *rq), + TP_ARGS(rq), 1); + DECLARE_RESTRICTED_HOOK(android_rvh_util_est_update, TP_PROTO(struct cfs_rq *cfs_rq, struct task_struct *p, bool task_sleep, int *ret), TP_ARGS(cfs_rq, p, task_sleep, ret), 1); diff --git a/include/uapi/linux/virtio_ids.h b/include/uapi/linux/virtio_ids.h index b052355ac7a3..bc740d6d2259 100644 --- a/include/uapi/linux/virtio_ids.h +++ b/include/uapi/linux/virtio_ids.h @@ -45,6 +45,7 @@ #define VIRTIO_ID_CRYPTO 20 /* virtio crypto */ #define VIRTIO_ID_IOMMU 23 /* virtio IOMMU */ #define VIRTIO_ID_MEM 24 /* virtio mem */ +#define VIRTIO_ID_SOUND 25 /* virtio sound */ #define VIRTIO_ID_FS 26 /* virtio filesystem */ #define VIRTIO_ID_PMEM 27 /* virtio pmem */ #define VIRTIO_ID_MAC80211_HWSIM 29 /* virtio mac80211-hwsim */ diff --git a/kernel/locking/rwsem.c b/kernel/locking/rwsem.c index e0505b9b8a31..7b0d64f0d550 100644 --- a/kernel/locking/rwsem.c +++ b/kernel/locking/rwsem.c @@ -1287,7 +1287,7 @@ out_nolock: list_del(&waiter.list); if (unlikely(wstate == WRITER_HANDOFF)) - atomic_long_add(-RWSEM_FLAG_HANDOFF, &sem->count); + atomic_long_andnot(RWSEM_FLAG_HANDOFF, &sem->count); if (list_empty(&sem->wait_list)) atomic_long_andnot(RWSEM_FLAG_WAITERS, &sem->count); diff --git a/kernel/sched/core.c b/kernel/sched/core.c index b519f3a561a0..a7b56e61067d 100644 --- a/kernel/sched/core.c +++ b/kernel/sched/core.c @@ -6343,6 +6343,8 @@ static void do_sched_yield(void) schedstat_inc(rq->yld_count); current->sched_class->yield_task(rq); + trace_android_rvh_do_sched_yield(rq); + preempt_disable(); rq_unlock_irq(rq, &rf); sched_preempt_enable_no_resched(); diff --git a/kernel/sched/fair.c b/kernel/sched/fair.c index 8b45d14616ee..7d009aaccb72 100644 --- a/kernel/sched/fair.c +++ b/kernel/sched/fair.c @@ -3511,9 +3511,10 @@ update_tg_cfs_runnable(struct cfs_rq *cfs_rq, struct sched_entity *se, struct cf static inline void update_tg_cfs_load(struct cfs_rq *cfs_rq, struct sched_entity *se, struct cfs_rq *gcfs_rq) { - long delta, running_sum, runnable_sum = gcfs_rq->prop_runnable_sum; + long delta_avg, running_sum, runnable_sum = gcfs_rq->prop_runnable_sum; unsigned long load_avg; u64 load_sum = 0; + s64 delta_sum; u32 divider; if (!runnable_sum) @@ -3560,13 +3561,13 @@ update_tg_cfs_load(struct cfs_rq *cfs_rq, struct sched_entity *se, struct cfs_rq load_sum = (s64)se_weight(se) * runnable_sum; load_avg = div_s64(load_sum, divider); - delta = load_avg - se->avg.load_avg; + delta_sum = load_sum - (s64)se_weight(se) * se->avg.load_sum; + delta_avg = load_avg - se->avg.load_avg; se->avg.load_sum = runnable_sum; se->avg.load_avg = load_avg; - - add_positive(&cfs_rq->avg.load_avg, delta); - cfs_rq->avg.load_sum = cfs_rq->avg.load_avg * divider; + add_positive(&cfs_rq->avg.load_avg, delta_avg); + add_positive(&cfs_rq->avg.load_sum, delta_sum); } static inline void add_tg_cfs_propagate(struct cfs_rq *cfs_rq, long runnable_sum) @@ -3682,15 +3683,15 @@ update_cfs_rq_load_avg(u64 now, struct cfs_rq *cfs_rq) r = removed_load; sub_positive(&sa->load_avg, r); - sa->load_sum = sa->load_avg * divider; + sub_positive(&sa->load_sum, r * divider); r = removed_util; sub_positive(&sa->util_avg, r); - sa->util_sum = sa->util_avg * divider; + sub_positive(&sa->util_sum, r * divider); r = removed_runnable; sub_positive(&sa->runnable_avg, r); - sa->runnable_sum = sa->runnable_avg * divider; + sub_positive(&sa->runnable_sum, r * divider); /* * removed_runnable is the unweighted version of removed_load so we @@ -3777,17 +3778,11 @@ static void attach_entity_load_avg(struct cfs_rq *cfs_rq, struct sched_entity *s */ static void detach_entity_load_avg(struct cfs_rq *cfs_rq, struct sched_entity *se) { - /* - * cfs_rq->avg.period_contrib can be used for both cfs_rq and se. - * See ___update_load_avg() for details. - */ - u32 divider = get_pelt_divider(&cfs_rq->avg); - dequeue_load_avg(cfs_rq, se); sub_positive(&cfs_rq->avg.util_avg, se->avg.util_avg); - cfs_rq->avg.util_sum = cfs_rq->avg.util_avg * divider; + sub_positive(&cfs_rq->avg.util_sum, se->avg.util_sum); sub_positive(&cfs_rq->avg.runnable_avg, se->avg.runnable_avg); - cfs_rq->avg.runnable_sum = cfs_rq->avg.runnable_avg * divider; + sub_positive(&cfs_rq->avg.runnable_sum, se->avg.runnable_sum); add_tg_cfs_propagate(cfs_rq, -se->avg.load_sum); diff --git a/samples/crypto/fips140_lab_test.c b/samples/crypto/fips140_lab_test.c new file mode 100644 index 000000000000..dd2324b8f84a --- /dev/null +++ b/samples/crypto/fips140_lab_test.c @@ -0,0 +1,187 @@ +// SPDX-License-Identifier: GPL-2.0-only +/* + * Copyright 2021 Google LLC + * + * This is a sample program which calls some ioctls on /dev/fips140 and prints + * the results. The purpose of this program is to allow the FIPS certification + * lab to test some services of fips140.ko, which they are required to do. This + * is a sample program only, and it can be modified by the lab as needed. This + * program must be run as root, and it only works if the system has loaded a + * build of fips140.ko with evaluation testing support enabled. + * + * This program can be compiled and run on an Android device as follows: + * + * NDK_DIR=$HOME/android-ndk-r23b # adjust directory path as needed + * $NDK_DIR/toolchains/llvm/prebuilt/linux-x86_64/bin/aarch64-linux-android31-clang \ + * fips140_lab_test.c -O2 -Wall -o fips140_lab_test + * adb push fips140_lab_test /data/local/tmp/ + * adb root + * adb shell /data/local/tmp/fips140_lab_test + */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include "../../crypto/fips140-eval-testing-uapi.h" + +static int fips140_dev_fd = -1; + +#define ARRAY_SIZE(A) (sizeof(A) / sizeof((A)[0])) + +static const char *booltostr(bool b) +{ + return b ? "true" : "false"; +} + +static void __attribute__((noreturn)) +do_die(const char *format, va_list va, int err) +{ + fputs("ERROR: ", stderr); + vfprintf(stderr, format, va); + if (err) + fprintf(stderr, ": %s", strerror(err)); + putc('\n', stderr); + exit(1); +} + +static void __attribute__((noreturn, format(printf, 1, 2))) +die_errno(const char *format, ...) +{ + va_list va; + + va_start(va, format); + do_die(format, va, errno); + va_end(va); +} + +static void __attribute__((noreturn, format(printf, 1, 2))) +die(const char *format, ...) +{ + va_list va; + + va_start(va, format); + do_die(format, va, 0); + va_end(va); +} + +static int get_fips140_device_number(void) +{ + FILE *f; + char line[128]; + int number; + char name[32]; + + f = fopen("/proc/devices", "r"); + if (!f) + die_errno("failed to open /proc/devices"); + while (fgets(line, sizeof(line), f)) { + if (sscanf(line, "%d %31s", &number, name) == 2 && + strcmp(name, "fips140") == 0) + return number; + } + fclose(f); + die("fips140 device node is unavailable.\n" +"The fips140 device node is only available when the fips140 module is loaded\n" +"and has been built with evaluation testing support."); +} + +static void create_fips140_node_if_needed(void) +{ + struct stat stbuf; + int major; + + if (stat("/dev/fips140", &stbuf) == 0) + return; + + major = get_fips140_device_number(); + if (mknod("/dev/fips140", S_IFCHR | 0600, makedev(major, 1)) != 0) + die_errno("failed to create fips140 device node"); +} + +static bool fips140_is_approved_service(const char *name) +{ + int ret = ioctl(fips140_dev_fd, FIPS140_IOCTL_IS_APPROVED_SERVICE, name); + + if (ret < 0) + die_errno("FIPS140_IOCTL_IS_APPROVED_SERVICE unexpectedly failed"); + if (ret == 1) + return true; + if (ret == 0) + return false; + die("FIPS140_IOCTL_IS_APPROVED_SERVICE returned unexpected value %d", + ret); +} + +static const char *fips140_module_version(void) +{ + char buf[256]; + char *str; + int ret = ioctl(fips140_dev_fd, FIPS140_IOCTL_MODULE_VERSION, buf); + + if (ret < 0) + die_errno("FIPS140_IOCTL_MODULE_VERSION unexpectedly failed"); + if (ret != 0) + die("FIPS140_IOCTL_MODULE_VERSION returned unexpected value %d", ret); + str = strdup(buf); + if (!str) + die("out of memory"); + return str; +} + +static const char * const services_to_check[] = { + "aes", + "cbc(aes)", + "cbcmac(aes)", + "cmac(aes)", + "ctr(aes)", + "cts(cbc(aes))", + "ecb(aes)", + "essiv(cbc(aes),sha256)", + "gcm(aes)", + "hmac(sha1)", + "hmac(sha224)", + "hmac(sha256)", + "hmac(sha384)", + "hmac(sha512)", + "jitterentropy_rng", + "sha1", + "sha224", + "sha256", + "sha384", + "sha512", + "stdrng", + "xcbc(aes)", + "xts(aes)", +}; + +int main(void) +{ + size_t i; + + if (getuid() != 0) + die("This program requires root. Run 'adb root' first."); + + create_fips140_node_if_needed(); + + fips140_dev_fd = open("/dev/fips140", O_RDONLY); + if (fips140_dev_fd < 0) + die_errno("failed to open /dev/fips140"); + + printf("fips140_module_version() => \"%s\"\n", fips140_module_version()); + for (i = 0; i < ARRAY_SIZE(services_to_check); i++) { + const char *service = services_to_check[i]; + + printf("fips140_is_approved_service(\"%s\") => %s\n", service, + booltostr(fips140_is_approved_service(service))); + } + return 0; +} diff --git a/scripts/module.lds.S b/scripts/module.lds.S index 8b9dcec11d1e..6cca5d88744e 100644 --- a/scripts/module.lds.S +++ b/scripts/module.lds.S @@ -71,6 +71,7 @@ SECTIONS { *(.text..L.cfi.jumptable .text..L.cfi.jumptable.*) __cfi_jt_end = .; *(.text.._end) + *(.text.._fips140_unchecked) } #endif } diff --git a/scripts/setlocalversion b/scripts/setlocalversion index 3f8a8ee14b10..842936656b84 100755 --- a/scripts/setlocalversion +++ b/scripts/setlocalversion @@ -41,8 +41,6 @@ if test $# -gt 0; then kmi_generation=$1 [ $(expr $kmi_generation : '^[0-9]\+$') -eq 0 ] && usage shift - else - usage fi fi if test $# -gt 0 -o ! -d "$srctree"; then @@ -68,6 +66,8 @@ scm_version() if [ -n "$android_release" ] && [ -n "$kmi_generation" ]; then printf '%s' "-$android_release-$kmi_generation" + elif [ -n "$android_release" ]; then + printf '%s' "-$android_release" fi # If we are at a tagged commit (like "v2.6.30-rc6"), we ignore