@@ -1213,7 +1213,7 @@ static int config_attr(struct perf_event_attr *attr,
12131213static int get_config_terms (struct list_head * head_config ,
12141214 struct list_head * head_terms __maybe_unused )
12151215{
1216- #define ADD_CONFIG_TERM (__type ) \
1216+ #define ADD_CONFIG_TERM (__type , __weak ) \
12171217 struct perf_evsel_config_term *__t; \
12181218 \
12191219 __t = zalloc(sizeof(*__t)); \
@@ -1222,18 +1222,18 @@ static int get_config_terms(struct list_head *head_config,
12221222 \
12231223 INIT_LIST_HEAD(&__t->list); \
12241224 __t->type = PERF_EVSEL__CONFIG_TERM_ ## __type; \
1225- __t->weak = term->weak ; \
1225+ __t->weak = __weak ; \
12261226 list_add_tail(&__t->list, head_terms)
12271227
1228- #define ADD_CONFIG_TERM_VAL (__type , __name , __val ) \
1228+ #define ADD_CONFIG_TERM_VAL (__type , __name , __val , __weak ) \
12291229do { \
1230- ADD_CONFIG_TERM(__type); \
1230+ ADD_CONFIG_TERM(__type, __weak); \
12311231 __t->val.__name = __val; \
12321232} while (0)
12331233
1234- #define ADD_CONFIG_TERM_STR (__type , __val ) \
1234+ #define ADD_CONFIG_TERM_STR (__type , __val , __weak ) \
12351235do { \
1236- ADD_CONFIG_TERM(__type); \
1236+ ADD_CONFIG_TERM(__type, __weak); \
12371237 __t->val.str = strdup(__val); \
12381238 if (!__t->val.str) { \
12391239 zfree(&__t); \
@@ -1247,62 +1247,62 @@ do { \
12471247 list_for_each_entry (term , head_config , list ) {
12481248 switch (term -> type_term ) {
12491249 case PARSE_EVENTS__TERM_TYPE_SAMPLE_PERIOD :
1250- ADD_CONFIG_TERM_VAL (PERIOD , period , term -> val .num );
1250+ ADD_CONFIG_TERM_VAL (PERIOD , period , term -> val .num , term -> weak );
12511251 break ;
12521252 case PARSE_EVENTS__TERM_TYPE_SAMPLE_FREQ :
1253- ADD_CONFIG_TERM_VAL (FREQ , freq , term -> val .num );
1253+ ADD_CONFIG_TERM_VAL (FREQ , freq , term -> val .num , term -> weak );
12541254 break ;
12551255 case PARSE_EVENTS__TERM_TYPE_TIME :
1256- ADD_CONFIG_TERM_VAL (TIME , time , term -> val .num );
1256+ ADD_CONFIG_TERM_VAL (TIME , time , term -> val .num , term -> weak );
12571257 break ;
12581258 case PARSE_EVENTS__TERM_TYPE_CALLGRAPH :
1259- ADD_CONFIG_TERM_STR (CALLGRAPH , term -> val .str );
1259+ ADD_CONFIG_TERM_STR (CALLGRAPH , term -> val .str , term -> weak );
12601260 break ;
12611261 case PARSE_EVENTS__TERM_TYPE_BRANCH_SAMPLE_TYPE :
1262- ADD_CONFIG_TERM_STR (BRANCH , term -> val .str );
1262+ ADD_CONFIG_TERM_STR (BRANCH , term -> val .str , term -> weak );
12631263 break ;
12641264 case PARSE_EVENTS__TERM_TYPE_STACKSIZE :
12651265 ADD_CONFIG_TERM_VAL (STACK_USER , stack_user ,
1266- term -> val .num );
1266+ term -> val .num , term -> weak );
12671267 break ;
12681268 case PARSE_EVENTS__TERM_TYPE_INHERIT :
12691269 ADD_CONFIG_TERM_VAL (INHERIT , inherit ,
1270- term -> val .num ? 1 : 0 );
1270+ term -> val .num ? 1 : 0 , term -> weak );
12711271 break ;
12721272 case PARSE_EVENTS__TERM_TYPE_NOINHERIT :
12731273 ADD_CONFIG_TERM_VAL (INHERIT , inherit ,
1274- term -> val .num ? 0 : 1 );
1274+ term -> val .num ? 0 : 1 , term -> weak );
12751275 break ;
12761276 case PARSE_EVENTS__TERM_TYPE_MAX_STACK :
12771277 ADD_CONFIG_TERM_VAL (MAX_STACK , max_stack ,
1278- term -> val .num );
1278+ term -> val .num , term -> weak );
12791279 break ;
12801280 case PARSE_EVENTS__TERM_TYPE_MAX_EVENTS :
12811281 ADD_CONFIG_TERM_VAL (MAX_EVENTS , max_events ,
1282- term -> val .num );
1282+ term -> val .num , term -> weak );
12831283 break ;
12841284 case PARSE_EVENTS__TERM_TYPE_OVERWRITE :
12851285 ADD_CONFIG_TERM_VAL (OVERWRITE , overwrite ,
1286- term -> val .num ? 1 : 0 );
1286+ term -> val .num ? 1 : 0 , term -> weak );
12871287 break ;
12881288 case PARSE_EVENTS__TERM_TYPE_NOOVERWRITE :
12891289 ADD_CONFIG_TERM_VAL (OVERWRITE , overwrite ,
1290- term -> val .num ? 0 : 1 );
1290+ term -> val .num ? 0 : 1 , term -> weak );
12911291 break ;
12921292 case PARSE_EVENTS__TERM_TYPE_DRV_CFG :
1293- ADD_CONFIG_TERM_STR (DRV_CFG , term -> val .str );
1293+ ADD_CONFIG_TERM_STR (DRV_CFG , term -> val .str , term -> weak );
12941294 break ;
12951295 case PARSE_EVENTS__TERM_TYPE_PERCORE :
12961296 ADD_CONFIG_TERM_VAL (PERCORE , percore ,
1297- term -> val .num ? true : false);
1297+ term -> val .num ? true : false, term -> weak );
12981298 break ;
12991299 case PARSE_EVENTS__TERM_TYPE_AUX_OUTPUT :
13001300 ADD_CONFIG_TERM_VAL (AUX_OUTPUT , aux_output ,
1301- term -> val .num ? 1 : 0 );
1301+ term -> val .num ? 1 : 0 , term -> weak );
13021302 break ;
13031303 case PARSE_EVENTS__TERM_TYPE_AUX_SAMPLE_SIZE :
13041304 ADD_CONFIG_TERM_VAL (AUX_SAMPLE_SIZE , aux_sample_size ,
1305- term -> val .num );
1305+ term -> val .num , term -> weak );
13061306 break ;
13071307 default :
13081308 break ;
@@ -1339,7 +1339,7 @@ static int get_config_chgs(struct perf_pmu *pmu, struct list_head *head_config,
13391339 }
13401340
13411341 if (bits )
1342- ADD_CONFIG_TERM_VAL (CFG_CHG , cfg_chg , bits );
1342+ ADD_CONFIG_TERM_VAL (CFG_CHG , cfg_chg , bits , false );
13431343
13441344#undef ADD_CONFIG_TERM
13451345 return 0 ;
0 commit comments