@@ -1213,7 +1213,7 @@ static int config_attr(struct perf_event_attr *attr,
1213
1213
static int get_config_terms (struct list_head * head_config ,
1214
1214
struct list_head * head_terms __maybe_unused )
1215
1215
{
1216
- #define ADD_CONFIG_TERM (__type ) \
1216
+ #define ADD_CONFIG_TERM (__type , __weak ) \
1217
1217
struct perf_evsel_config_term *__t; \
1218
1218
\
1219
1219
__t = zalloc(sizeof(*__t)); \
@@ -1222,18 +1222,18 @@ static int get_config_terms(struct list_head *head_config,
1222
1222
\
1223
1223
INIT_LIST_HEAD(&__t->list); \
1224
1224
__t->type = PERF_EVSEL__CONFIG_TERM_ ## __type; \
1225
- __t->weak = term->weak ; \
1225
+ __t->weak = __weak ; \
1226
1226
list_add_tail(&__t->list, head_terms)
1227
1227
1228
- #define ADD_CONFIG_TERM_VAL (__type , __name , __val ) \
1228
+ #define ADD_CONFIG_TERM_VAL (__type , __name , __val , __weak ) \
1229
1229
do { \
1230
- ADD_CONFIG_TERM(__type); \
1230
+ ADD_CONFIG_TERM(__type, __weak); \
1231
1231
__t->val.__name = __val; \
1232
1232
} while (0)
1233
1233
1234
- #define ADD_CONFIG_TERM_STR (__type , __val ) \
1234
+ #define ADD_CONFIG_TERM_STR (__type , __val , __weak ) \
1235
1235
do { \
1236
- ADD_CONFIG_TERM(__type); \
1236
+ ADD_CONFIG_TERM(__type, __weak); \
1237
1237
__t->val.str = strdup(__val); \
1238
1238
if (!__t->val.str) { \
1239
1239
zfree(&__t); \
@@ -1247,62 +1247,62 @@ do { \
1247
1247
list_for_each_entry (term , head_config , list ) {
1248
1248
switch (term -> type_term ) {
1249
1249
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 );
1251
1251
break ;
1252
1252
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 );
1254
1254
break ;
1255
1255
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 );
1257
1257
break ;
1258
1258
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 );
1260
1260
break ;
1261
1261
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 );
1263
1263
break ;
1264
1264
case PARSE_EVENTS__TERM_TYPE_STACKSIZE :
1265
1265
ADD_CONFIG_TERM_VAL (STACK_USER , stack_user ,
1266
- term -> val .num );
1266
+ term -> val .num , term -> weak );
1267
1267
break ;
1268
1268
case PARSE_EVENTS__TERM_TYPE_INHERIT :
1269
1269
ADD_CONFIG_TERM_VAL (INHERIT , inherit ,
1270
- term -> val .num ? 1 : 0 );
1270
+ term -> val .num ? 1 : 0 , term -> weak );
1271
1271
break ;
1272
1272
case PARSE_EVENTS__TERM_TYPE_NOINHERIT :
1273
1273
ADD_CONFIG_TERM_VAL (INHERIT , inherit ,
1274
- term -> val .num ? 0 : 1 );
1274
+ term -> val .num ? 0 : 1 , term -> weak );
1275
1275
break ;
1276
1276
case PARSE_EVENTS__TERM_TYPE_MAX_STACK :
1277
1277
ADD_CONFIG_TERM_VAL (MAX_STACK , max_stack ,
1278
- term -> val .num );
1278
+ term -> val .num , term -> weak );
1279
1279
break ;
1280
1280
case PARSE_EVENTS__TERM_TYPE_MAX_EVENTS :
1281
1281
ADD_CONFIG_TERM_VAL (MAX_EVENTS , max_events ,
1282
- term -> val .num );
1282
+ term -> val .num , term -> weak );
1283
1283
break ;
1284
1284
case PARSE_EVENTS__TERM_TYPE_OVERWRITE :
1285
1285
ADD_CONFIG_TERM_VAL (OVERWRITE , overwrite ,
1286
- term -> val .num ? 1 : 0 );
1286
+ term -> val .num ? 1 : 0 , term -> weak );
1287
1287
break ;
1288
1288
case PARSE_EVENTS__TERM_TYPE_NOOVERWRITE :
1289
1289
ADD_CONFIG_TERM_VAL (OVERWRITE , overwrite ,
1290
- term -> val .num ? 0 : 1 );
1290
+ term -> val .num ? 0 : 1 , term -> weak );
1291
1291
break ;
1292
1292
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 );
1294
1294
break ;
1295
1295
case PARSE_EVENTS__TERM_TYPE_PERCORE :
1296
1296
ADD_CONFIG_TERM_VAL (PERCORE , percore ,
1297
- term -> val .num ? true : false);
1297
+ term -> val .num ? true : false, term -> weak );
1298
1298
break ;
1299
1299
case PARSE_EVENTS__TERM_TYPE_AUX_OUTPUT :
1300
1300
ADD_CONFIG_TERM_VAL (AUX_OUTPUT , aux_output ,
1301
- term -> val .num ? 1 : 0 );
1301
+ term -> val .num ? 1 : 0 , term -> weak );
1302
1302
break ;
1303
1303
case PARSE_EVENTS__TERM_TYPE_AUX_SAMPLE_SIZE :
1304
1304
ADD_CONFIG_TERM_VAL (AUX_SAMPLE_SIZE , aux_sample_size ,
1305
- term -> val .num );
1305
+ term -> val .num , term -> weak );
1306
1306
break ;
1307
1307
default :
1308
1308
break ;
@@ -1339,7 +1339,7 @@ static int get_config_chgs(struct perf_pmu *pmu, struct list_head *head_config,
1339
1339
}
1340
1340
1341
1341
if (bits )
1342
- ADD_CONFIG_TERM_VAL (CFG_CHG , cfg_chg , bits );
1342
+ ADD_CONFIG_TERM_VAL (CFG_CHG , cfg_chg , bits , false );
1343
1343
1344
1344
#undef ADD_CONFIG_TERM
1345
1345
return 0 ;
0 commit comments