Lines Matching refs:fmsg

6118 	struct devlink_fmsg *fmsg;  in devlink_fmsg_alloc()  local
6120 fmsg = kzalloc(sizeof(*fmsg), GFP_KERNEL); in devlink_fmsg_alloc()
6121 if (!fmsg) in devlink_fmsg_alloc()
6124 INIT_LIST_HEAD(&fmsg->item_list); in devlink_fmsg_alloc()
6126 return fmsg; in devlink_fmsg_alloc()
6129 static void devlink_fmsg_free(struct devlink_fmsg *fmsg) in devlink_fmsg_free() argument
6133 list_for_each_entry_safe(item, tmp, &fmsg->item_list, list) { in devlink_fmsg_free()
6137 kfree(fmsg); in devlink_fmsg_free()
6140 static int devlink_fmsg_nest_common(struct devlink_fmsg *fmsg, in devlink_fmsg_nest_common() argument
6150 list_add_tail(&item->list, &fmsg->item_list); in devlink_fmsg_nest_common()
6155 int devlink_fmsg_obj_nest_start(struct devlink_fmsg *fmsg) in devlink_fmsg_obj_nest_start() argument
6157 if (fmsg->putting_binary) in devlink_fmsg_obj_nest_start()
6160 return devlink_fmsg_nest_common(fmsg, DEVLINK_ATTR_FMSG_OBJ_NEST_START); in devlink_fmsg_obj_nest_start()
6164 static int devlink_fmsg_nest_end(struct devlink_fmsg *fmsg) in devlink_fmsg_nest_end() argument
6166 if (fmsg->putting_binary) in devlink_fmsg_nest_end()
6169 return devlink_fmsg_nest_common(fmsg, DEVLINK_ATTR_FMSG_NEST_END); in devlink_fmsg_nest_end()
6172 int devlink_fmsg_obj_nest_end(struct devlink_fmsg *fmsg) in devlink_fmsg_obj_nest_end() argument
6174 if (fmsg->putting_binary) in devlink_fmsg_obj_nest_end()
6177 return devlink_fmsg_nest_end(fmsg); in devlink_fmsg_obj_nest_end()
6183 static int devlink_fmsg_put_name(struct devlink_fmsg *fmsg, const char *name) in devlink_fmsg_put_name() argument
6187 if (fmsg->putting_binary) in devlink_fmsg_put_name()
6201 list_add_tail(&item->list, &fmsg->item_list); in devlink_fmsg_put_name()
6206 int devlink_fmsg_pair_nest_start(struct devlink_fmsg *fmsg, const char *name) in devlink_fmsg_pair_nest_start() argument
6210 if (fmsg->putting_binary) in devlink_fmsg_pair_nest_start()
6213 err = devlink_fmsg_nest_common(fmsg, DEVLINK_ATTR_FMSG_PAIR_NEST_START); in devlink_fmsg_pair_nest_start()
6217 err = devlink_fmsg_put_name(fmsg, name); in devlink_fmsg_pair_nest_start()
6225 int devlink_fmsg_pair_nest_end(struct devlink_fmsg *fmsg) in devlink_fmsg_pair_nest_end() argument
6227 if (fmsg->putting_binary) in devlink_fmsg_pair_nest_end()
6230 return devlink_fmsg_nest_end(fmsg); in devlink_fmsg_pair_nest_end()
6234 int devlink_fmsg_arr_pair_nest_start(struct devlink_fmsg *fmsg, in devlink_fmsg_arr_pair_nest_start() argument
6239 if (fmsg->putting_binary) in devlink_fmsg_arr_pair_nest_start()
6242 err = devlink_fmsg_pair_nest_start(fmsg, name); in devlink_fmsg_arr_pair_nest_start()
6246 err = devlink_fmsg_nest_common(fmsg, DEVLINK_ATTR_FMSG_ARR_NEST_START); in devlink_fmsg_arr_pair_nest_start()
6254 int devlink_fmsg_arr_pair_nest_end(struct devlink_fmsg *fmsg) in devlink_fmsg_arr_pair_nest_end() argument
6258 if (fmsg->putting_binary) in devlink_fmsg_arr_pair_nest_end()
6261 err = devlink_fmsg_nest_end(fmsg); in devlink_fmsg_arr_pair_nest_end()
6265 err = devlink_fmsg_nest_end(fmsg); in devlink_fmsg_arr_pair_nest_end()
6273 int devlink_fmsg_binary_pair_nest_start(struct devlink_fmsg *fmsg, in devlink_fmsg_binary_pair_nest_start() argument
6278 err = devlink_fmsg_arr_pair_nest_start(fmsg, name); in devlink_fmsg_binary_pair_nest_start()
6282 fmsg->putting_binary = true; in devlink_fmsg_binary_pair_nest_start()
6287 int devlink_fmsg_binary_pair_nest_end(struct devlink_fmsg *fmsg) in devlink_fmsg_binary_pair_nest_end() argument
6289 if (!fmsg->putting_binary) in devlink_fmsg_binary_pair_nest_end()
6292 fmsg->putting_binary = false; in devlink_fmsg_binary_pair_nest_end()
6293 return devlink_fmsg_arr_pair_nest_end(fmsg); in devlink_fmsg_binary_pair_nest_end()
6297 static int devlink_fmsg_put_value(struct devlink_fmsg *fmsg, in devlink_fmsg_put_value() argument
6314 list_add_tail(&item->list, &fmsg->item_list); in devlink_fmsg_put_value()
6319 static int devlink_fmsg_bool_put(struct devlink_fmsg *fmsg, bool value) in devlink_fmsg_bool_put() argument
6321 if (fmsg->putting_binary) in devlink_fmsg_bool_put()
6324 return devlink_fmsg_put_value(fmsg, &value, sizeof(value), NLA_FLAG); in devlink_fmsg_bool_put()
6327 static int devlink_fmsg_u8_put(struct devlink_fmsg *fmsg, u8 value) in devlink_fmsg_u8_put() argument
6329 if (fmsg->putting_binary) in devlink_fmsg_u8_put()
6332 return devlink_fmsg_put_value(fmsg, &value, sizeof(value), NLA_U8); in devlink_fmsg_u8_put()
6335 int devlink_fmsg_u32_put(struct devlink_fmsg *fmsg, u32 value) in devlink_fmsg_u32_put() argument
6337 if (fmsg->putting_binary) in devlink_fmsg_u32_put()
6340 return devlink_fmsg_put_value(fmsg, &value, sizeof(value), NLA_U32); in devlink_fmsg_u32_put()
6344 static int devlink_fmsg_u64_put(struct devlink_fmsg *fmsg, u64 value) in devlink_fmsg_u64_put() argument
6346 if (fmsg->putting_binary) in devlink_fmsg_u64_put()
6349 return devlink_fmsg_put_value(fmsg, &value, sizeof(value), NLA_U64); in devlink_fmsg_u64_put()
6352 int devlink_fmsg_string_put(struct devlink_fmsg *fmsg, const char *value) in devlink_fmsg_string_put() argument
6354 if (fmsg->putting_binary) in devlink_fmsg_string_put()
6357 return devlink_fmsg_put_value(fmsg, value, strlen(value) + 1, in devlink_fmsg_string_put()
6362 int devlink_fmsg_binary_put(struct devlink_fmsg *fmsg, const void *value, in devlink_fmsg_binary_put() argument
6365 if (!fmsg->putting_binary) in devlink_fmsg_binary_put()
6368 return devlink_fmsg_put_value(fmsg, value, value_len, NLA_BINARY); in devlink_fmsg_binary_put()
6372 int devlink_fmsg_bool_pair_put(struct devlink_fmsg *fmsg, const char *name, in devlink_fmsg_bool_pair_put() argument
6377 err = devlink_fmsg_pair_nest_start(fmsg, name); in devlink_fmsg_bool_pair_put()
6381 err = devlink_fmsg_bool_put(fmsg, value); in devlink_fmsg_bool_pair_put()
6385 err = devlink_fmsg_pair_nest_end(fmsg); in devlink_fmsg_bool_pair_put()
6393 int devlink_fmsg_u8_pair_put(struct devlink_fmsg *fmsg, const char *name, in devlink_fmsg_u8_pair_put() argument
6398 err = devlink_fmsg_pair_nest_start(fmsg, name); in devlink_fmsg_u8_pair_put()
6402 err = devlink_fmsg_u8_put(fmsg, value); in devlink_fmsg_u8_pair_put()
6406 err = devlink_fmsg_pair_nest_end(fmsg); in devlink_fmsg_u8_pair_put()
6414 int devlink_fmsg_u32_pair_put(struct devlink_fmsg *fmsg, const char *name, in devlink_fmsg_u32_pair_put() argument
6419 err = devlink_fmsg_pair_nest_start(fmsg, name); in devlink_fmsg_u32_pair_put()
6423 err = devlink_fmsg_u32_put(fmsg, value); in devlink_fmsg_u32_pair_put()
6427 err = devlink_fmsg_pair_nest_end(fmsg); in devlink_fmsg_u32_pair_put()
6435 int devlink_fmsg_u64_pair_put(struct devlink_fmsg *fmsg, const char *name, in devlink_fmsg_u64_pair_put() argument
6440 err = devlink_fmsg_pair_nest_start(fmsg, name); in devlink_fmsg_u64_pair_put()
6444 err = devlink_fmsg_u64_put(fmsg, value); in devlink_fmsg_u64_pair_put()
6448 err = devlink_fmsg_pair_nest_end(fmsg); in devlink_fmsg_u64_pair_put()
6456 int devlink_fmsg_string_pair_put(struct devlink_fmsg *fmsg, const char *name, in devlink_fmsg_string_pair_put() argument
6461 err = devlink_fmsg_pair_nest_start(fmsg, name); in devlink_fmsg_string_pair_put()
6465 err = devlink_fmsg_string_put(fmsg, value); in devlink_fmsg_string_pair_put()
6469 err = devlink_fmsg_pair_nest_end(fmsg); in devlink_fmsg_string_pair_put()
6477 int devlink_fmsg_binary_pair_put(struct devlink_fmsg *fmsg, const char *name, in devlink_fmsg_binary_pair_put() argument
6485 err = devlink_fmsg_binary_pair_nest_start(fmsg, name); in devlink_fmsg_binary_pair_put()
6493 err = devlink_fmsg_binary_put(fmsg, value + offset, data_size); in devlink_fmsg_binary_pair_put()
6502 end_err = devlink_fmsg_binary_pair_nest_end(fmsg); in devlink_fmsg_binary_pair_put()
6556 devlink_fmsg_prepare_skb(struct devlink_fmsg *fmsg, struct sk_buff *skb, in devlink_fmsg_prepare_skb() argument
6568 list_for_each_entry(item, &fmsg->item_list, list) { in devlink_fmsg_prepare_skb()
6605 static int devlink_fmsg_snd(struct devlink_fmsg *fmsg, in devlink_fmsg_snd() argument
6630 err = devlink_fmsg_prepare_skb(fmsg, skb, &index); in devlink_fmsg_snd()
6659 static int devlink_fmsg_dumpit(struct devlink_fmsg *fmsg, struct sk_buff *skb, in devlink_fmsg_dumpit() argument
6675 err = devlink_fmsg_prepare_skb(fmsg, skb, &index); in devlink_fmsg_dumpit()
7378 struct devlink_fmsg *fmsg; in devlink_nl_cmd_health_reporter_diagnose_doit() local
7390 fmsg = devlink_fmsg_alloc(); in devlink_nl_cmd_health_reporter_diagnose_doit()
7391 if (!fmsg) { in devlink_nl_cmd_health_reporter_diagnose_doit()
7396 err = devlink_fmsg_obj_nest_start(fmsg); in devlink_nl_cmd_health_reporter_diagnose_doit()
7400 err = reporter->ops->diagnose(reporter, fmsg, info->extack); in devlink_nl_cmd_health_reporter_diagnose_doit()
7404 err = devlink_fmsg_obj_nest_end(fmsg); in devlink_nl_cmd_health_reporter_diagnose_doit()
7408 err = devlink_fmsg_snd(fmsg, info, in devlink_nl_cmd_health_reporter_diagnose_doit()
7412 devlink_fmsg_free(fmsg); in devlink_nl_cmd_health_reporter_diagnose_doit()