Lines Matching refs:fmsg

6785 	struct devlink_fmsg *fmsg;  in devlink_fmsg_alloc()  local
6787 fmsg = kzalloc(sizeof(*fmsg), GFP_KERNEL); in devlink_fmsg_alloc()
6788 if (!fmsg) in devlink_fmsg_alloc()
6791 INIT_LIST_HEAD(&fmsg->item_list); in devlink_fmsg_alloc()
6793 return fmsg; in devlink_fmsg_alloc()
6796 static void devlink_fmsg_free(struct devlink_fmsg *fmsg) in devlink_fmsg_free() argument
6800 list_for_each_entry_safe(item, tmp, &fmsg->item_list, list) { in devlink_fmsg_free()
6804 kfree(fmsg); in devlink_fmsg_free()
6807 static int devlink_fmsg_nest_common(struct devlink_fmsg *fmsg, in devlink_fmsg_nest_common() argument
6817 list_add_tail(&item->list, &fmsg->item_list); in devlink_fmsg_nest_common()
6822 int devlink_fmsg_obj_nest_start(struct devlink_fmsg *fmsg) in devlink_fmsg_obj_nest_start() argument
6824 if (fmsg->putting_binary) in devlink_fmsg_obj_nest_start()
6827 return devlink_fmsg_nest_common(fmsg, DEVLINK_ATTR_FMSG_OBJ_NEST_START); in devlink_fmsg_obj_nest_start()
6831 static int devlink_fmsg_nest_end(struct devlink_fmsg *fmsg) in devlink_fmsg_nest_end() argument
6833 if (fmsg->putting_binary) in devlink_fmsg_nest_end()
6836 return devlink_fmsg_nest_common(fmsg, DEVLINK_ATTR_FMSG_NEST_END); in devlink_fmsg_nest_end()
6839 int devlink_fmsg_obj_nest_end(struct devlink_fmsg *fmsg) in devlink_fmsg_obj_nest_end() argument
6841 if (fmsg->putting_binary) in devlink_fmsg_obj_nest_end()
6844 return devlink_fmsg_nest_end(fmsg); in devlink_fmsg_obj_nest_end()
6850 static int devlink_fmsg_put_name(struct devlink_fmsg *fmsg, const char *name) in devlink_fmsg_put_name() argument
6854 if (fmsg->putting_binary) in devlink_fmsg_put_name()
6868 list_add_tail(&item->list, &fmsg->item_list); in devlink_fmsg_put_name()
6873 int devlink_fmsg_pair_nest_start(struct devlink_fmsg *fmsg, const char *name) in devlink_fmsg_pair_nest_start() argument
6877 if (fmsg->putting_binary) in devlink_fmsg_pair_nest_start()
6880 err = devlink_fmsg_nest_common(fmsg, DEVLINK_ATTR_FMSG_PAIR_NEST_START); in devlink_fmsg_pair_nest_start()
6884 err = devlink_fmsg_put_name(fmsg, name); in devlink_fmsg_pair_nest_start()
6892 int devlink_fmsg_pair_nest_end(struct devlink_fmsg *fmsg) in devlink_fmsg_pair_nest_end() argument
6894 if (fmsg->putting_binary) in devlink_fmsg_pair_nest_end()
6897 return devlink_fmsg_nest_end(fmsg); in devlink_fmsg_pair_nest_end()
6901 int devlink_fmsg_arr_pair_nest_start(struct devlink_fmsg *fmsg, in devlink_fmsg_arr_pair_nest_start() argument
6906 if (fmsg->putting_binary) in devlink_fmsg_arr_pair_nest_start()
6909 err = devlink_fmsg_pair_nest_start(fmsg, name); in devlink_fmsg_arr_pair_nest_start()
6913 err = devlink_fmsg_nest_common(fmsg, DEVLINK_ATTR_FMSG_ARR_NEST_START); in devlink_fmsg_arr_pair_nest_start()
6921 int devlink_fmsg_arr_pair_nest_end(struct devlink_fmsg *fmsg) in devlink_fmsg_arr_pair_nest_end() argument
6925 if (fmsg->putting_binary) in devlink_fmsg_arr_pair_nest_end()
6928 err = devlink_fmsg_nest_end(fmsg); in devlink_fmsg_arr_pair_nest_end()
6932 err = devlink_fmsg_nest_end(fmsg); in devlink_fmsg_arr_pair_nest_end()
6940 int devlink_fmsg_binary_pair_nest_start(struct devlink_fmsg *fmsg, in devlink_fmsg_binary_pair_nest_start() argument
6945 err = devlink_fmsg_arr_pair_nest_start(fmsg, name); in devlink_fmsg_binary_pair_nest_start()
6949 fmsg->putting_binary = true; in devlink_fmsg_binary_pair_nest_start()
6954 int devlink_fmsg_binary_pair_nest_end(struct devlink_fmsg *fmsg) in devlink_fmsg_binary_pair_nest_end() argument
6956 if (!fmsg->putting_binary) in devlink_fmsg_binary_pair_nest_end()
6959 fmsg->putting_binary = false; in devlink_fmsg_binary_pair_nest_end()
6960 return devlink_fmsg_arr_pair_nest_end(fmsg); in devlink_fmsg_binary_pair_nest_end()
6964 static int devlink_fmsg_put_value(struct devlink_fmsg *fmsg, in devlink_fmsg_put_value() argument
6981 list_add_tail(&item->list, &fmsg->item_list); in devlink_fmsg_put_value()
6986 static int devlink_fmsg_bool_put(struct devlink_fmsg *fmsg, bool value) in devlink_fmsg_bool_put() argument
6988 if (fmsg->putting_binary) in devlink_fmsg_bool_put()
6991 return devlink_fmsg_put_value(fmsg, &value, sizeof(value), NLA_FLAG); in devlink_fmsg_bool_put()
6994 static int devlink_fmsg_u8_put(struct devlink_fmsg *fmsg, u8 value) in devlink_fmsg_u8_put() argument
6996 if (fmsg->putting_binary) in devlink_fmsg_u8_put()
6999 return devlink_fmsg_put_value(fmsg, &value, sizeof(value), NLA_U8); in devlink_fmsg_u8_put()
7002 int devlink_fmsg_u32_put(struct devlink_fmsg *fmsg, u32 value) in devlink_fmsg_u32_put() argument
7004 if (fmsg->putting_binary) in devlink_fmsg_u32_put()
7007 return devlink_fmsg_put_value(fmsg, &value, sizeof(value), NLA_U32); in devlink_fmsg_u32_put()
7011 static int devlink_fmsg_u64_put(struct devlink_fmsg *fmsg, u64 value) in devlink_fmsg_u64_put() argument
7013 if (fmsg->putting_binary) in devlink_fmsg_u64_put()
7016 return devlink_fmsg_put_value(fmsg, &value, sizeof(value), NLA_U64); in devlink_fmsg_u64_put()
7019 int devlink_fmsg_string_put(struct devlink_fmsg *fmsg, const char *value) in devlink_fmsg_string_put() argument
7021 if (fmsg->putting_binary) in devlink_fmsg_string_put()
7024 return devlink_fmsg_put_value(fmsg, value, strlen(value) + 1, in devlink_fmsg_string_put()
7029 int devlink_fmsg_binary_put(struct devlink_fmsg *fmsg, const void *value, in devlink_fmsg_binary_put() argument
7032 if (!fmsg->putting_binary) in devlink_fmsg_binary_put()
7035 return devlink_fmsg_put_value(fmsg, value, value_len, NLA_BINARY); in devlink_fmsg_binary_put()
7039 int devlink_fmsg_bool_pair_put(struct devlink_fmsg *fmsg, const char *name, in devlink_fmsg_bool_pair_put() argument
7044 err = devlink_fmsg_pair_nest_start(fmsg, name); in devlink_fmsg_bool_pair_put()
7048 err = devlink_fmsg_bool_put(fmsg, value); in devlink_fmsg_bool_pair_put()
7052 err = devlink_fmsg_pair_nest_end(fmsg); in devlink_fmsg_bool_pair_put()
7060 int devlink_fmsg_u8_pair_put(struct devlink_fmsg *fmsg, const char *name, in devlink_fmsg_u8_pair_put() argument
7065 err = devlink_fmsg_pair_nest_start(fmsg, name); in devlink_fmsg_u8_pair_put()
7069 err = devlink_fmsg_u8_put(fmsg, value); in devlink_fmsg_u8_pair_put()
7073 err = devlink_fmsg_pair_nest_end(fmsg); in devlink_fmsg_u8_pair_put()
7081 int devlink_fmsg_u32_pair_put(struct devlink_fmsg *fmsg, const char *name, in devlink_fmsg_u32_pair_put() argument
7086 err = devlink_fmsg_pair_nest_start(fmsg, name); in devlink_fmsg_u32_pair_put()
7090 err = devlink_fmsg_u32_put(fmsg, value); in devlink_fmsg_u32_pair_put()
7094 err = devlink_fmsg_pair_nest_end(fmsg); in devlink_fmsg_u32_pair_put()
7102 int devlink_fmsg_u64_pair_put(struct devlink_fmsg *fmsg, const char *name, in devlink_fmsg_u64_pair_put() argument
7107 err = devlink_fmsg_pair_nest_start(fmsg, name); in devlink_fmsg_u64_pair_put()
7111 err = devlink_fmsg_u64_put(fmsg, value); in devlink_fmsg_u64_pair_put()
7115 err = devlink_fmsg_pair_nest_end(fmsg); in devlink_fmsg_u64_pair_put()
7123 int devlink_fmsg_string_pair_put(struct devlink_fmsg *fmsg, const char *name, in devlink_fmsg_string_pair_put() argument
7128 err = devlink_fmsg_pair_nest_start(fmsg, name); in devlink_fmsg_string_pair_put()
7132 err = devlink_fmsg_string_put(fmsg, value); in devlink_fmsg_string_pair_put()
7136 err = devlink_fmsg_pair_nest_end(fmsg); in devlink_fmsg_string_pair_put()
7144 int devlink_fmsg_binary_pair_put(struct devlink_fmsg *fmsg, const char *name, in devlink_fmsg_binary_pair_put() argument
7152 err = devlink_fmsg_binary_pair_nest_start(fmsg, name); in devlink_fmsg_binary_pair_put()
7160 err = devlink_fmsg_binary_put(fmsg, value + offset, data_size); in devlink_fmsg_binary_pair_put()
7169 end_err = devlink_fmsg_binary_pair_nest_end(fmsg); in devlink_fmsg_binary_pair_put()
7223 devlink_fmsg_prepare_skb(struct devlink_fmsg *fmsg, struct sk_buff *skb, in devlink_fmsg_prepare_skb() argument
7235 list_for_each_entry(item, &fmsg->item_list, list) { in devlink_fmsg_prepare_skb()
7272 static int devlink_fmsg_snd(struct devlink_fmsg *fmsg, in devlink_fmsg_snd() argument
7297 err = devlink_fmsg_prepare_skb(fmsg, skb, &index); in devlink_fmsg_snd()
7326 static int devlink_fmsg_dumpit(struct devlink_fmsg *fmsg, struct sk_buff *skb, in devlink_fmsg_dumpit() argument
7342 err = devlink_fmsg_prepare_skb(fmsg, skb, &index); in devlink_fmsg_dumpit()
8027 struct devlink_fmsg *fmsg; in devlink_nl_cmd_health_reporter_diagnose_doit() local
8039 fmsg = devlink_fmsg_alloc(); in devlink_nl_cmd_health_reporter_diagnose_doit()
8040 if (!fmsg) { in devlink_nl_cmd_health_reporter_diagnose_doit()
8045 err = devlink_fmsg_obj_nest_start(fmsg); in devlink_nl_cmd_health_reporter_diagnose_doit()
8049 err = reporter->ops->diagnose(reporter, fmsg, info->extack); in devlink_nl_cmd_health_reporter_diagnose_doit()
8053 err = devlink_fmsg_obj_nest_end(fmsg); in devlink_nl_cmd_health_reporter_diagnose_doit()
8057 err = devlink_fmsg_snd(fmsg, info, in devlink_nl_cmd_health_reporter_diagnose_doit()
8061 devlink_fmsg_free(fmsg); in devlink_nl_cmd_health_reporter_diagnose_doit()