reporter 18 drivers/net/ethernet/broadcom/bnxt/bnxt_devlink.c static int bnxt_fw_reporter_diagnose(struct devlink_health_reporter *reporter, reporter 21 drivers/net/ethernet/broadcom/bnxt/bnxt_devlink.c struct bnxt *bp = devlink_health_reporter_priv(reporter); reporter 62 drivers/net/ethernet/broadcom/bnxt/bnxt_devlink.c static int bnxt_fw_reset_recover(struct devlink_health_reporter *reporter, reporter 65 drivers/net/ethernet/broadcom/bnxt/bnxt_devlink.c struct bnxt *bp = devlink_health_reporter_priv(reporter); reporter 80 drivers/net/ethernet/broadcom/bnxt/bnxt_devlink.c static int bnxt_fw_fatal_recover(struct devlink_health_reporter *reporter, reporter 83 drivers/net/ethernet/broadcom/bnxt/bnxt_devlink.c struct bnxt *bp = devlink_health_reporter_priv(reporter); reporter 197 drivers/net/ethernet/mellanox/mlx5/core/en/health.c struct devlink_health_reporter *reporter, char *err_str, reporter 202 drivers/net/ethernet/mellanox/mlx5/core/en/health.c if (!reporter) reporter 205 drivers/net/ethernet/mellanox/mlx5/core/en/health.c return devlink_health_report(reporter, err_str, err_ctx); reporter 45 drivers/net/ethernet/mellanox/mlx5/core/en/health.h struct devlink_health_reporter *reporter, char *err_str, reporter 224 drivers/net/ethernet/mellanox/mlx5/core/en/reporter_rx.c static int mlx5e_rx_reporter_recover(struct devlink_health_reporter *reporter, reporter 227 drivers/net/ethernet/mellanox/mlx5/core/en/reporter_rx.c struct mlx5e_priv *priv = devlink_health_reporter_priv(reporter); reporter 303 drivers/net/ethernet/mellanox/mlx5/core/en/reporter_rx.c static int mlx5e_rx_reporter_diagnose(struct devlink_health_reporter *reporter, reporter 306 drivers/net/ethernet/mellanox/mlx5/core/en/reporter_rx.c struct mlx5e_priv *priv = devlink_health_reporter_priv(reporter); reporter 383 drivers/net/ethernet/mellanox/mlx5/core/en/reporter_rx.c struct devlink_health_reporter *reporter; reporter 385 drivers/net/ethernet/mellanox/mlx5/core/en/reporter_rx.c reporter = devlink_health_reporter_create(devlink, reporter 389 drivers/net/ethernet/mellanox/mlx5/core/en/reporter_rx.c if (IS_ERR(reporter)) { reporter 391 drivers/net/ethernet/mellanox/mlx5/core/en/reporter_rx.c PTR_ERR(reporter)); reporter 392 drivers/net/ethernet/mellanox/mlx5/core/en/reporter_rx.c return PTR_ERR(reporter); reporter 394 drivers/net/ethernet/mellanox/mlx5/core/en/reporter_rx.c priv->rx_reporter = reporter; reporter 137 drivers/net/ethernet/mellanox/mlx5/core/en/reporter_tx.c static int mlx5e_tx_reporter_recover(struct devlink_health_reporter *reporter, reporter 140 drivers/net/ethernet/mellanox/mlx5/core/en/reporter_tx.c struct mlx5e_priv *priv = devlink_health_reporter_priv(reporter); reporter 207 drivers/net/ethernet/mellanox/mlx5/core/en/reporter_tx.c static int mlx5e_tx_reporter_diagnose(struct devlink_health_reporter *reporter, reporter 210 drivers/net/ethernet/mellanox/mlx5/core/en/reporter_tx.c struct mlx5e_priv *priv = devlink_health_reporter_priv(reporter); reporter 286 drivers/net/ethernet/mellanox/mlx5/core/en/reporter_tx.c struct devlink_health_reporter *reporter; reporter 291 drivers/net/ethernet/mellanox/mlx5/core/en/reporter_tx.c reporter = reporter 295 drivers/net/ethernet/mellanox/mlx5/core/en/reporter_tx.c if (IS_ERR(reporter)) { reporter 298 drivers/net/ethernet/mellanox/mlx5/core/en/reporter_tx.c PTR_ERR(reporter)); reporter 299 drivers/net/ethernet/mellanox/mlx5/core/en/reporter_tx.c return PTR_ERR(reporter); reporter 301 drivers/net/ethernet/mellanox/mlx5/core/en/reporter_tx.c priv->tx_reporter = reporter; reporter 400 drivers/net/ethernet/mellanox/mlx5/core/health.c mlx5_fw_reporter_diagnose(struct devlink_health_reporter *reporter, reporter 403 drivers/net/ethernet/mellanox/mlx5/core/health.c struct mlx5_core_dev *dev = devlink_health_reporter_priv(reporter); reporter 501 drivers/net/ethernet/mellanox/mlx5/core/health.c mlx5_fw_reporter_dump(struct devlink_health_reporter *reporter, reporter 504 drivers/net/ethernet/mellanox/mlx5/core/health.c struct mlx5_core_dev *dev = devlink_health_reporter_priv(reporter); reporter 555 drivers/net/ethernet/mellanox/mlx5/core/health.c mlx5_fw_fatal_reporter_recover(struct devlink_health_reporter *reporter, reporter 558 drivers/net/ethernet/mellanox/mlx5/core/health.c struct mlx5_core_dev *dev = devlink_health_reporter_priv(reporter); reporter 565 drivers/net/ethernet/mellanox/mlx5/core/health.c mlx5_fw_fatal_reporter_dump(struct devlink_health_reporter *reporter, reporter 568 drivers/net/ethernet/mellanox/mlx5/core/health.c struct mlx5_core_dev *dev = devlink_health_reporter_priv(reporter); reporter 87 include/linux/igmp.h char reporter; reporter 509 include/net/devlink.h int (*recover)(struct devlink_health_reporter *reporter, reporter 511 include/net/devlink.h int (*dump)(struct devlink_health_reporter *reporter, reporter 513 include/net/devlink.h int (*diagnose)(struct devlink_health_reporter *reporter, reporter 942 include/net/devlink.h devlink_health_reporter_destroy(struct devlink_health_reporter *reporter); reporter 945 include/net/devlink.h devlink_health_reporter_priv(struct devlink_health_reporter *reporter); reporter 946 include/net/devlink.h int devlink_health_report(struct devlink_health_reporter *reporter, reporter 949 include/net/devlink.h devlink_health_reporter_state_update(struct devlink_health_reporter *reporter, reporter 4647 net/core/devlink.c devlink_health_reporter_priv(struct devlink_health_reporter *reporter) reporter 4649 net/core/devlink.c return reporter->priv; reporter 4657 net/core/devlink.c struct devlink_health_reporter *reporter; reporter 4660 net/core/devlink.c list_for_each_entry(reporter, &devlink->reporter_list, list) reporter 4661 net/core/devlink.c if (!strcmp(reporter->ops->name, reporter_name)) reporter 4662 net/core/devlink.c return reporter; reporter 4681 net/core/devlink.c struct devlink_health_reporter *reporter; reporter 4685 net/core/devlink.c reporter = ERR_PTR(-EEXIST); reporter 4691 net/core/devlink.c reporter = ERR_PTR(-EINVAL); reporter 4695 net/core/devlink.c reporter = kzalloc(sizeof(*reporter), GFP_KERNEL); reporter 4696 net/core/devlink.c if (!reporter) { reporter 4697 net/core/devlink.c reporter = ERR_PTR(-ENOMEM); reporter 4701 net/core/devlink.c reporter->priv = priv; reporter 4702 net/core/devlink.c reporter->ops = ops; reporter 4703 net/core/devlink.c reporter->devlink = devlink; reporter 4704 net/core/devlink.c reporter->graceful_period = graceful_period; reporter 4705 net/core/devlink.c reporter->auto_recover = auto_recover; reporter 4706 net/core/devlink.c mutex_init(&reporter->dump_lock); reporter 4707 net/core/devlink.c refcount_set(&reporter->refcount, 1); reporter 4708 net/core/devlink.c list_add_tail(&reporter->list, &devlink->reporter_list); reporter 4711 net/core/devlink.c return reporter; reporter 4721 net/core/devlink.c devlink_health_reporter_destroy(struct devlink_health_reporter *reporter) reporter 4723 net/core/devlink.c mutex_lock(&reporter->devlink->reporters_lock); reporter 4724 net/core/devlink.c list_del(&reporter->list); reporter 4725 net/core/devlink.c mutex_unlock(&reporter->devlink->reporters_lock); reporter 4726 net/core/devlink.c while (refcount_read(&reporter->refcount) > 1) reporter 4728 net/core/devlink.c mutex_destroy(&reporter->dump_lock); reporter 4729 net/core/devlink.c if (reporter->dump_fmsg) reporter 4730 net/core/devlink.c devlink_fmsg_free(reporter->dump_fmsg); reporter 4731 net/core/devlink.c kfree(reporter); reporter 4736 net/core/devlink.c devlink_health_reporter_state_update(struct devlink_health_reporter *reporter, reporter 4743 net/core/devlink.c if (reporter->health_state == state) reporter 4746 net/core/devlink.c reporter->health_state = state; reporter 4747 net/core/devlink.c trace_devlink_health_reporter_state_update(reporter->devlink, reporter 4748 net/core/devlink.c reporter->ops->name, state); reporter 4753 net/core/devlink.c devlink_health_reporter_recover(struct devlink_health_reporter *reporter, reporter 4758 net/core/devlink.c if (!reporter->ops->recover) reporter 4761 net/core/devlink.c err = reporter->ops->recover(reporter, priv_ctx); reporter 4765 net/core/devlink.c reporter->recovery_count++; reporter 4766 net/core/devlink.c reporter->health_state = DEVLINK_HEALTH_REPORTER_STATE_HEALTHY; reporter 4767 net/core/devlink.c reporter->last_recovery_ts = jiffies; reporter 4773 net/core/devlink.c devlink_health_dump_clear(struct devlink_health_reporter *reporter) reporter 4775 net/core/devlink.c if (!reporter->dump_fmsg) reporter 4777 net/core/devlink.c devlink_fmsg_free(reporter->dump_fmsg); reporter 4778 net/core/devlink.c reporter->dump_fmsg = NULL; reporter 4781 net/core/devlink.c static int devlink_health_do_dump(struct devlink_health_reporter *reporter, reporter 4786 net/core/devlink.c if (!reporter->ops->dump) reporter 4789 net/core/devlink.c if (reporter->dump_fmsg) reporter 4792 net/core/devlink.c reporter->dump_fmsg = devlink_fmsg_alloc(); reporter 4793 net/core/devlink.c if (!reporter->dump_fmsg) { reporter 4798 net/core/devlink.c err = devlink_fmsg_obj_nest_start(reporter->dump_fmsg); reporter 4802 net/core/devlink.c err = reporter->ops->dump(reporter, reporter->dump_fmsg, reporter 4807 net/core/devlink.c err = devlink_fmsg_obj_nest_end(reporter->dump_fmsg); reporter 4811 net/core/devlink.c reporter->dump_ts = jiffies; reporter 4812 net/core/devlink.c reporter->dump_real_ts = ktime_get_real_ns(); reporter 4817 net/core/devlink.c devlink_health_dump_clear(reporter); reporter 4821 net/core/devlink.c int devlink_health_report(struct devlink_health_reporter *reporter, reporter 4825 net/core/devlink.c struct devlink *devlink = reporter->devlink; reporter 4829 net/core/devlink.c trace_devlink_health_report(devlink, reporter->ops->name, msg); reporter 4830 net/core/devlink.c reporter->error_count++; reporter 4831 net/core/devlink.c prev_health_state = reporter->health_state; reporter 4832 net/core/devlink.c reporter->health_state = DEVLINK_HEALTH_REPORTER_STATE_ERROR; reporter 4835 net/core/devlink.c if (reporter->auto_recover && reporter 4837 net/core/devlink.c jiffies - reporter->last_recovery_ts < reporter 4838 net/core/devlink.c msecs_to_jiffies(reporter->graceful_period))) { reporter 4840 net/core/devlink.c reporter->ops->name, reporter 4841 net/core/devlink.c reporter->health_state, reporter 4843 net/core/devlink.c reporter->last_recovery_ts); reporter 4847 net/core/devlink.c reporter->health_state = DEVLINK_HEALTH_REPORTER_STATE_ERROR; reporter 4849 net/core/devlink.c mutex_lock(&reporter->dump_lock); reporter 4851 net/core/devlink.c devlink_health_do_dump(reporter, priv_ctx); reporter 4852 net/core/devlink.c mutex_unlock(&reporter->dump_lock); reporter 4854 net/core/devlink.c if (reporter->auto_recover) reporter 4855 net/core/devlink.c return devlink_health_reporter_recover(reporter, priv_ctx); reporter 4865 net/core/devlink.c struct devlink_health_reporter *reporter; reporter 4873 net/core/devlink.c reporter = devlink_health_reporter_find_by_name(devlink, reporter_name); reporter 4874 net/core/devlink.c if (reporter) reporter 4875 net/core/devlink.c refcount_inc(&reporter->refcount); reporter 4877 net/core/devlink.c return reporter; reporter 4890 net/core/devlink.c struct devlink_health_reporter *reporter; reporter 4911 net/core/devlink.c reporter = devlink_health_reporter_get_from_attrs(devlink, attrs); reporter 4914 net/core/devlink.c return reporter; reporter 4923 net/core/devlink.c devlink_health_reporter_put(struct devlink_health_reporter *reporter) reporter 4925 net/core/devlink.c refcount_dec(&reporter->refcount); reporter 4931 net/core/devlink.c struct devlink_health_reporter *reporter, reporter 4950 net/core/devlink.c reporter->ops->name)) reporter 4953 net/core/devlink.c reporter->health_state)) reporter 4956 net/core/devlink.c reporter->error_count, DEVLINK_ATTR_PAD)) reporter 4959 net/core/devlink.c reporter->recovery_count, DEVLINK_ATTR_PAD)) reporter 4961 net/core/devlink.c if (reporter->ops->recover && reporter 4963 net/core/devlink.c reporter->graceful_period, reporter 4966 net/core/devlink.c if (reporter->ops->recover && reporter 4968 net/core/devlink.c reporter->auto_recover)) reporter 4970 net/core/devlink.c if (reporter->dump_fmsg && reporter 4972 net/core/devlink.c jiffies_to_msecs(reporter->dump_ts), reporter 4975 net/core/devlink.c if (reporter->dump_fmsg && reporter 4977 net/core/devlink.c reporter->dump_real_ts, DEVLINK_ATTR_PAD)) reporter 4995 net/core/devlink.c struct devlink_health_reporter *reporter; reporter 4999 net/core/devlink.c reporter = devlink_health_reporter_get_from_info(devlink, info); reporter 5000 net/core/devlink.c if (!reporter) reporter 5009 net/core/devlink.c err = devlink_nl_health_reporter_fill(msg, devlink, reporter, reporter 5020 net/core/devlink.c devlink_health_reporter_put(reporter); reporter 5028 net/core/devlink.c struct devlink_health_reporter *reporter; reporter 5039 net/core/devlink.c list_for_each_entry(reporter, &devlink->reporter_list, reporter 5046 net/core/devlink.c reporter, reporter 5071 net/core/devlink.c struct devlink_health_reporter *reporter; reporter 5074 net/core/devlink.c reporter = devlink_health_reporter_get_from_info(devlink, info); reporter 5075 net/core/devlink.c if (!reporter) reporter 5078 net/core/devlink.c if (!reporter->ops->recover && reporter 5086 net/core/devlink.c reporter->graceful_period = reporter 5090 net/core/devlink.c reporter->auto_recover = reporter 5093 net/core/devlink.c devlink_health_reporter_put(reporter); reporter 5096 net/core/devlink.c devlink_health_reporter_put(reporter); reporter 5104 net/core/devlink.c struct devlink_health_reporter *reporter; reporter 5107 net/core/devlink.c reporter = devlink_health_reporter_get_from_info(devlink, info); reporter 5108 net/core/devlink.c if (!reporter) reporter 5111 net/core/devlink.c err = devlink_health_reporter_recover(reporter, NULL); reporter 5113 net/core/devlink.c devlink_health_reporter_put(reporter); reporter 5121 net/core/devlink.c struct devlink_health_reporter *reporter; reporter 5125 net/core/devlink.c reporter = devlink_health_reporter_get_from_info(devlink, info); reporter 5126 net/core/devlink.c if (!reporter) reporter 5129 net/core/devlink.c if (!reporter->ops->diagnose) { reporter 5130 net/core/devlink.c devlink_health_reporter_put(reporter); reporter 5136 net/core/devlink.c devlink_health_reporter_put(reporter); reporter 5144 net/core/devlink.c err = reporter->ops->diagnose(reporter, fmsg); reporter 5157 net/core/devlink.c devlink_health_reporter_put(reporter); reporter 5165 net/core/devlink.c struct devlink_health_reporter *reporter; reporter 5169 net/core/devlink.c reporter = devlink_health_reporter_get_from_cb(cb); reporter 5170 net/core/devlink.c if (!reporter) reporter 5173 net/core/devlink.c if (!reporter->ops->dump) { reporter 5177 net/core/devlink.c mutex_lock(&reporter->dump_lock); reporter 5179 net/core/devlink.c err = devlink_health_do_dump(reporter, NULL); reporter 5182 net/core/devlink.c cb->args[1] = reporter->dump_ts; reporter 5184 net/core/devlink.c if (!reporter->dump_fmsg || cb->args[1] != reporter->dump_ts) { reporter 5190 net/core/devlink.c err = devlink_fmsg_dumpit(reporter->dump_fmsg, skb, cb, reporter 5193 net/core/devlink.c mutex_unlock(&reporter->dump_lock); reporter 5195 net/core/devlink.c devlink_health_reporter_put(reporter); reporter 5204 net/core/devlink.c struct devlink_health_reporter *reporter; reporter 5206 net/core/devlink.c reporter = devlink_health_reporter_get_from_info(devlink, info); reporter 5207 net/core/devlink.c if (!reporter) reporter 5210 net/core/devlink.c if (!reporter->ops->dump) { reporter 5211 net/core/devlink.c devlink_health_reporter_put(reporter); reporter 5215 net/core/devlink.c mutex_lock(&reporter->dump_lock); reporter 5216 net/core/devlink.c devlink_health_dump_clear(reporter); reporter 5217 net/core/devlink.c mutex_unlock(&reporter->dump_lock); reporter 5218 net/core/devlink.c devlink_health_reporter_put(reporter); reporter 210 net/ipv4/igmp.c im->reporter = 0; reporter 839 net/ipv4/igmp.c im->reporter = 1; reporter 1283 net/ipv4/igmp.c int reporter; reporter 1297 net/ipv4/igmp.c reporter = im->reporter; reporter 1304 net/ipv4/igmp.c if (reporter) reporter 2858 net/ipv4/igmp.c im->reporter);