From c666f11f2e581c5d527e46130cf771208b5d1367 Mon Sep 17 00:00:00 2001 From: Greg Kroah-Hartman Date: Fri, 3 Nov 2023 14:17:13 +0100 Subject: [PATCH] Reapply "perf: Disallow mis-matched inherited group reads" This reverts commit 9c20bfd64d3f79d929a37d70e8aaaad5405d4d6e. It's needed back in the tree as it fixes a real issue, and it turns out to nicely fit into an unused slot within the structure, so there's no ABI breakage. Update the .xml file with the new structure field: Leaf changes summary: 1 artifact changed Changed leaf types summary: 1 leaf type changed Removed/Changed/Added functions summary: 0 Removed, 0 Changed, 0 Added function Removed/Changed/Added variables summary: 0 Removed, 0 Changed, 0 Added variable 'struct perf_event at perf_event.h:564:1' changed: type size hasn't changed 1 data member insertion: 'unsigned int group_generation', at offset 1120 (in bits) at perf_event.h:601:1 1242 impacted interfaces Bug: 307236803 Change-Id: I921c19d115869d8b0517d44d271d56d557da4167 Signed-off-by: Greg Kroah-Hartman --- android/abi_gki_aarch64.xml | 7161 ++++++++++++++++++----------------- include/linux/perf_event.h | 3 + kernel/events/core.c | 39 +- 3 files changed, 3646 insertions(+), 3557 deletions(-) diff --git a/android/abi_gki_aarch64.xml b/android/abi_gki_aarch64.xml index 18c8d22e584d..20921dd6c6f6 100644 --- a/android/abi_gki_aarch64.xml +++ b/android/abi_gki_aarch64.xml @@ -3793,259 +3793,262 @@ + + + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -8653,21 +8656,21 @@ - + - + - + - + - + - + @@ -9536,24 +9539,24 @@ - + - + - + - + - + - + - + @@ -9952,12 +9955,12 @@ - + - + - + @@ -11891,12 +11894,12 @@ - + - + - + @@ -12645,176 +12648,176 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -15517,10 +15520,10 @@ - + - + @@ -16730,18 +16733,18 @@ - + - + - + - + - + @@ -18082,431 +18085,431 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -18655,39 +18658,39 @@ - + - + - + - + - + - + - + - + - + - + - + - + @@ -21032,18 +21035,18 @@ - + - + - + - + - + @@ -21756,21 +21759,21 @@ - + - + - + - + - + - + @@ -22007,15 +22010,15 @@ - + - + - + - + @@ -22184,18 +22187,18 @@ - + - + - + - + - + @@ -22304,23 +22307,23 @@ - + - + - + - + - + - + - + @@ -22515,12 +22518,12 @@ - + - + - + @@ -22688,7 +22691,7 @@ - + @@ -22697,7 +22700,7 @@ - + @@ -22875,21 +22878,21 @@ - + - + - + - + - + - + @@ -23165,7 +23168,23 @@ - + + + + + + + + + + + + + + + + + @@ -23174,12 +23193,12 @@ - + - + - + @@ -23871,41 +23890,41 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -24368,60 +24387,60 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -24512,120 +24531,120 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -24737,12 +24756,12 @@ - + - + - + @@ -25056,12 +25075,12 @@ - + - + - + @@ -25125,6 +25144,9 @@ + + + @@ -25245,21 +25267,21 @@ - + - + - + - + - + - + @@ -25366,45 +25388,45 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -26101,222 +26123,222 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -26357,21 +26379,21 @@ - + - + - + - + - + - + @@ -26437,45 +26459,45 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -26764,12 +26786,12 @@ - + - + - + @@ -27875,237 +27897,237 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -28309,6 +28331,14 @@ + + + + + + + + @@ -28803,158 +28833,158 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -29231,50 +29261,50 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -29303,18 +29333,18 @@ - + - + - + - + - + @@ -29354,7 +29384,7 @@ - + @@ -29485,88 +29515,88 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -29659,26 +29689,26 @@ - + - + - + - + - + - + - + - + @@ -29991,30 +30021,30 @@ - + - + - + - + - + - + - + - + - + @@ -30080,12 +30110,12 @@ - + - + - + @@ -30194,86 +30224,86 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -30308,12 +30338,12 @@ - + - + - + @@ -30362,176 +30392,176 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -31011,31 +31041,31 @@ - + - + - + - + - + - + - + - + - + - + @@ -31105,12 +31135,12 @@ - + - + - + @@ -31137,21 +31167,21 @@ - + - + - + - + - + - + @@ -31510,11 +31540,11 @@ - + - + @@ -32445,313 +32475,313 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -32771,155 +32801,155 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -32940,12 +32970,12 @@ - + - + - + @@ -33002,21 +33032,21 @@ - + - + - + - + - + - + @@ -33044,24 +33074,24 @@ - + - + - + - + - + - + - + @@ -33566,7 +33596,7 @@ - + @@ -34303,7 +34333,23 @@ - + + + + + + + + + + + + + + + + + @@ -34790,18 +34836,18 @@ - + - + - + - + - + @@ -35499,71 +35545,71 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -35730,120 +35776,120 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -36116,421 +36162,421 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -36605,222 +36651,222 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -37225,7 +37271,7 @@ - + @@ -37571,7 +37617,7 @@ - + @@ -37674,23 +37720,23 @@ - + - + - + - + - + - + - + @@ -37704,69 +37750,69 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -38760,33 +38806,33 @@ - + - + - + - + - + - + - + - + - + - + @@ -38936,29 +38982,29 @@ - + - + - + - + - + - + - + - + - + @@ -38967,7 +39013,7 @@ - + @@ -38978,48 +39024,48 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -40204,10 +40250,10 @@ - + - + @@ -44750,42 +44796,42 @@ - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - + + - - + + @@ -46531,10 +46577,10 @@ - - - - + + + + @@ -46560,69 +46606,69 @@ - - - - - + + + + + - - - - - - - + + + + + + + - - - - - + + + + + - - - - + + + + - - - - + + + + - - - - - + + + + + - - - - - + + + + + - - - + + + - - - - - + + + + + - - + + @@ -47012,24 +47058,24 @@ - + - + - + - + - + @@ -47193,13 +47239,13 @@ - + - + @@ -48970,12 +49016,12 @@ - + - + @@ -49345,30 +49391,30 @@ - - - - - + + + + + - - + + - - - - - + + + + + - - + + - - + + @@ -50661,48 +50707,48 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -50736,48 +50782,48 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -50787,56 +50833,56 @@ - - - - + + + + - - - - - + + + + + - - - - - + + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - + + - - + + @@ -56334,22 +56380,22 @@ - - + + - - + + - - + + - - - - + + + + @@ -62642,9 +62688,9 @@ - - - + + + @@ -62653,14 +62699,14 @@ - - + + - - - - + + + + @@ -66304,6 +66350,15 @@ + + + + + + + + + @@ -66774,20 +66829,13 @@ - - - - - - - - + - + @@ -68892,7 +68940,7 @@ - + @@ -69919,7 +69967,7 @@ - + @@ -70568,415 +70616,415 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -71020,63 +71068,63 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -71102,39 +71150,39 @@ - + - + - + - + - + - + - + - + - + - + - + @@ -71177,7 +71225,7 @@ - + @@ -72671,7 +72719,7 @@ - + @@ -80076,7 +80124,7 @@ - + @@ -80089,11 +80137,11 @@ - + - + @@ -80103,7 +80151,7 @@ - + @@ -80112,11 +80160,11 @@ - + - + @@ -80321,11 +80369,11 @@ - + - + @@ -80333,12 +80381,12 @@ - + - + @@ -80346,12 +80394,12 @@ - + - + @@ -80365,7 +80413,7 @@ - + @@ -80381,11 +80429,11 @@ - + - + @@ -80401,12 +80449,12 @@ - + - + @@ -80535,21 +80583,21 @@ - + - + - + - + @@ -80570,38 +80618,38 @@ - + - + - + - + - + - + - + @@ -80611,22 +80659,22 @@ - + - + - + - + @@ -80651,7 +80699,7 @@ - + @@ -80739,12 +80787,12 @@ - + - + - + @@ -81041,165 +81089,165 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -82180,18 +82228,18 @@ - + - + - + - + - + @@ -83027,30 +83075,30 @@ - + - + - + - + - + - + - + - + - + @@ -83259,12 +83307,12 @@ - + - + - + @@ -84514,12 +84562,12 @@ - + - + @@ -84551,7 +84599,7 @@ - + @@ -84574,10 +84622,10 @@ - + - + @@ -84586,7 +84634,7 @@ - + @@ -85443,7 +85491,7 @@ - + @@ -86857,7 +86905,7 @@ - + @@ -86885,7 +86933,7 @@ - + @@ -86964,8 +87012,8 @@ - - + + @@ -87082,12 +87130,12 @@ - + - + @@ -88171,32 +88219,32 @@ - - + + - - + + - - - - + + + + - - - - + + + + - - + + - - + + @@ -91003,9 +91051,9 @@ - + - + @@ -91176,17 +91224,17 @@ - - + + - - + + - - - + + + @@ -92505,9 +92553,9 @@ - + - + @@ -94215,7 +94263,7 @@ - + @@ -104054,7 +104102,7 @@ - + @@ -104098,7 +104146,7 @@ - + @@ -106422,56 +106470,56 @@ - - - - - - + + + + + + - - - - - + + + + + - - - - + + + + - - - + + + - - - - + + + + - - - - - + + + + + - - - - - - - + + + + + + + @@ -106573,7 +106621,7 @@ - + @@ -106584,7 +106632,7 @@ - + @@ -106598,7 +106646,7 @@ - + @@ -106659,12 +106707,12 @@ - + - + @@ -107848,24 +107896,24 @@ - + - + - + - + - + - + - + @@ -107986,7 +108034,7 @@ - + @@ -108007,13 +108055,13 @@ - + - + @@ -108034,12 +108082,12 @@ - + - + @@ -108050,7 +108098,7 @@ - + @@ -108119,18 +108167,18 @@ - + - + - + - + - + @@ -109250,7 +109298,7 @@ - + @@ -109258,7 +109306,7 @@ - + @@ -109511,20 +109559,20 @@ - - - - + + + + - - + + - - - - + + + + @@ -110255,12 +110303,12 @@ - - - - - - + + + + + + @@ -110488,7 +110536,7 @@ - + @@ -111676,7 +111724,7 @@ - + @@ -112540,12 +112588,12 @@ - + - + - + @@ -113352,18 +113400,18 @@ - + - + - + - + - + @@ -114969,7 +115017,6 @@ - @@ -114978,6 +115025,7 @@ + @@ -115802,24 +115850,24 @@ - + - + - + - + - + - + - + @@ -116392,15 +116440,15 @@ - + - + - + - + @@ -119497,47 +119545,47 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -119958,66 +120006,66 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -120125,20 +120173,20 @@ - + - + - + - + - + - + @@ -120261,42 +120309,42 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -120378,202 +120426,202 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -120582,21 +120630,21 @@ - + - + - + - + - + - + @@ -120628,50 +120676,50 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -123534,7 +123582,7 @@ - + @@ -124349,18 +124397,18 @@ - + - + - + - + - + @@ -124663,23 +124711,23 @@ - + - + - + - + - + - + - + @@ -124688,12 +124736,12 @@ - - - - - - + + + + + + @@ -124702,16 +124750,16 @@ - - + + - - + + - - + + @@ -124720,12 +124768,12 @@ - - + + - - + + @@ -124842,12 +124890,12 @@ - + - + @@ -127173,7 +127221,7 @@ - + @@ -127193,6 +127241,217 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -127201,24 +127460,35 @@ - + + + + + + + + + + + + - - + + - - - + + + - - - + + + @@ -127269,62 +127539,62 @@ - - + + - - - - + + + + - - - + + + - - + + - + - - - - + + + + - - - - - - + + + + + + - - - + + + - - + + - - - + + + - - + + @@ -127338,6 +127608,17 @@ + + + + + + + + + + + @@ -127978,8 +128259,8 @@ - - + + @@ -128025,11 +128306,11 @@ - + - - + + @@ -128040,124 +128321,124 @@ - - - - - + + + + + - - - - + + + + - - - + + + - - - + + + - - - - - + + + + + - - - - - - - - - - - - + - + + - + - - - - + - - - - - - + + + - - - - + + + + + + - - - + + + + + + - - - - - - + + + + - - - - - - + + + - - - - - - + + + + + + - - - - - - + + + + + + - - + + + + + + + + + + + + + + + + + + - - - - + + + + - - - + + + @@ -128287,15 +128568,15 @@ - + - + - + - + @@ -128483,36 +128764,36 @@ - - - - - - + + + + + + - - - - - - + + + + + + - - - - - - + + + + + + - - - - - - + + + + + + @@ -128710,7 +128991,7 @@ - + @@ -128719,56 +129000,56 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -128815,7 +129096,7 @@ - + @@ -129094,15 +129375,15 @@ - + - - - - - + + + + + @@ -129211,13 +129492,13 @@ - + - + @@ -129244,7 +129525,7 @@ - + @@ -129446,7 +129727,7 @@ - + @@ -129698,7 +129979,7 @@ - + @@ -129734,7 +130015,7 @@ - + @@ -130042,7 +130323,7 @@ - + @@ -130075,7 +130356,7 @@ - + @@ -130442,27 +130723,27 @@ - - - - - + + + + + - - - - - - - + + + + + + + - - - - - + + + + + @@ -130561,22 +130842,22 @@ - - - - + + + + - - + + - - - - - - + + + + + + @@ -130587,69 +130868,69 @@ - - - - + + + + - - - - - - - + + + + + + + - - - - + + + + - - - - - + + + + + - - - - - - + + + + + + - + - - - - - + + + + + - - - + + + - - - - - - + + + + + + - + @@ -130740,7 +131021,6 @@ - @@ -130753,9 +131033,6 @@ - - - @@ -130796,348 +131073,341 @@ - - - - - - - - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -131151,100 +131421,100 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -131269,98 +131539,98 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -131369,31 +131639,31 @@ - + - + - + - + - + - + - + - + - + - + @@ -131403,195 +131673,6 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @@ -131621,21 +131702,21 @@ - + - + - + - + - + - + @@ -131678,57 +131759,57 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -131781,38 +131862,38 @@ - + - + - + - + - + - + - + - + - + - + - + - + @@ -131863,18 +131944,18 @@ - + - + - + - + - + @@ -132193,38 +132274,38 @@ - + - + - + - + - + - + - + - + - + - + - + - + @@ -132235,453 +132316,453 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -132690,45 +132771,45 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -132753,15 +132834,15 @@ - + - + - + - + @@ -132769,23 +132850,23 @@ - + - + - + - + - + - + - + @@ -132794,90 +132875,90 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -132889,174 +132970,174 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -133067,287 +133148,287 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -133358,285 +133439,285 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -133645,12 +133726,12 @@ - + - + - + @@ -133662,68 +133743,68 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -133732,99 +133813,99 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -133835,15 +133916,15 @@ - + - + - + - + @@ -133854,26 +133935,26 @@ - + - + - + - + - + - + - + - + @@ -133881,145 +133962,145 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -134030,46 +134111,46 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -134077,18 +134158,18 @@ - + - + - + - + - + @@ -134156,10 +134237,6 @@ - - - - @@ -134184,7 +134261,6 @@ - @@ -134268,13 +134344,7 @@ - - - - - - @@ -134314,18 +134384,11 @@ - + - - - - - - - @@ -134879,10 +134942,6 @@ - - - - @@ -135414,21 +135473,21 @@ - + - + - + - + - + - + @@ -135567,7 +135626,7 @@ - + @@ -135581,33 +135640,33 @@ - + - + - + - + - + - + - + - + - + - + @@ -136106,56 +136165,56 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -136165,30 +136224,30 @@ - + - + - + - + - + - + - + - + - + @@ -136250,11 +136309,11 @@ - - - - - + + + + + @@ -143010,7 +143069,7 @@ - + diff --git a/include/linux/perf_event.h b/include/linux/perf_event.h index bac97441074a..12f7c7138702 100644 --- a/include/linux/perf_event.h +++ b/include/linux/perf_event.h @@ -597,6 +597,9 @@ struct perf_event { /* The cumulative AND of all event_caps for events in this group. */ int group_caps; +#ifndef __GENKSYMS__ /* ANDROID Bug: 307236803 to keep the crc preserved */ + unsigned int group_generation; +#endif struct perf_event *group_leader; struct pmu *pmu; void *pmu_private; diff --git a/kernel/events/core.c b/kernel/events/core.c index 5fc26042a906..cb9b49a5d71c 100644 --- a/kernel/events/core.c +++ b/kernel/events/core.c @@ -1848,6 +1848,7 @@ static void perf_group_attach(struct perf_event *event) list_add_tail(&event->sibling_list, &group_leader->sibling_list); group_leader->nr_siblings++; + group_leader->group_generation++; perf_event__header_size(group_leader); @@ -1918,6 +1919,7 @@ static void perf_group_detach(struct perf_event *event) if (event->group_leader != event) { list_del_init(&event->sibling_list); event->group_leader->nr_siblings--; + event->group_leader->group_generation++; goto out; } @@ -4736,7 +4738,7 @@ static int __perf_read_group_add(struct perf_event *leader, u64 read_format, u64 *values) { struct perf_event_context *ctx = leader->ctx; - struct perf_event *sub; + struct perf_event *sub, *parent; unsigned long flags; int n = 1; /* skip @nr */ int ret; @@ -4746,6 +4748,33 @@ static int __perf_read_group_add(struct perf_event *leader, return ret; raw_spin_lock_irqsave(&ctx->lock, flags); + /* + * Verify the grouping between the parent and child (inherited) + * events is still in tact. + * + * Specifically: + * - leader->ctx->lock pins leader->sibling_list + * - parent->child_mutex pins parent->child_list + * - parent->ctx->mutex pins parent->sibling_list + * + * Because parent->ctx != leader->ctx (and child_list nests inside + * ctx->mutex), group destruction is not atomic between children, also + * see perf_event_release_kernel(). Additionally, parent can grow the + * group. + * + * Therefore it is possible to have parent and child groups in a + * different configuration and summing over such a beast makes no sense + * what so ever. + * + * Reject this. + */ + parent = leader->parent; + if (parent && + (parent->group_generation != leader->group_generation || + parent->nr_siblings != leader->nr_siblings)) { + ret = -ECHILD; + goto unlock; + } /* * Since we co-schedule groups, {enabled,running} times of siblings @@ -4775,8 +4804,9 @@ static int __perf_read_group_add(struct perf_event *leader, values[n++] = primary_event_id(sub); } +unlock: raw_spin_unlock_irqrestore(&ctx->lock, flags); - return 0; + return ret; } static int perf_read_group(struct perf_event *event, @@ -4795,10 +4825,6 @@ static int perf_read_group(struct perf_event *event, values[0] = 1 + leader->nr_siblings; - /* - * By locking the child_mutex of the leader we effectively - * lock the child list of all siblings.. XXX explain how. - */ mutex_lock(&leader->child_mutex); ret = __perf_read_group_add(leader, read_format, values); @@ -11587,6 +11613,7 @@ static int inherit_group(struct perf_event *parent_event, if (IS_ERR(child_ctr)) return PTR_ERR(child_ctr); } + leader->group_generation = parent_event->group_generation; return 0; }