dev.c (b470ebc9e0e57f53d1db9c49b8a3de4086babd05) dev.c (a8700c3dd0a48f379d269ac6ddcf8bd857042771)
1/*
2 * Copyright (c) 2018 Cumulus Networks. All rights reserved.
3 * Copyright (c) 2018 David Ahern <dsa@cumulusnetworks.com>
4 * Copyright (c) 2019 Mellanox Technologies. All rights reserved.
5 *
6 * This software is licensed under the GNU General License Version 2,
7 * June 1991 as shown in the file COPYING in the top-level directory of this
8 * source tree.

--- 1018 unchanged lines hidden (view full) ---

1027 err = PTR_ERR(nsim_dev->fib_data);
1028 goto err_traps_exit;
1029 }
1030
1031 err = nsim_dev_health_init(nsim_dev, devlink);
1032 if (err)
1033 goto err_fib_destroy;
1034
1/*
2 * Copyright (c) 2018 Cumulus Networks. All rights reserved.
3 * Copyright (c) 2018 David Ahern <dsa@cumulusnetworks.com>
4 * Copyright (c) 2019 Mellanox Technologies. All rights reserved.
5 *
6 * This software is licensed under the GNU General License Version 2,
7 * June 1991 as shown in the file COPYING in the top-level directory of this
8 * source tree.

--- 1018 unchanged lines hidden (view full) ---

1027 err = PTR_ERR(nsim_dev->fib_data);
1028 goto err_traps_exit;
1029 }
1030
1031 err = nsim_dev_health_init(nsim_dev, devlink);
1032 if (err)
1033 goto err_fib_destroy;
1034
1035 err = nsim_dev_port_add_all(nsim_dev, nsim_bus_dev->port_count);
1035 err = nsim_dev_psample_init(nsim_dev);
1036 if (err)
1037 goto err_health_exit;
1038
1036 if (err)
1037 goto err_health_exit;
1038
1039 err = nsim_dev_port_add_all(nsim_dev, nsim_bus_dev->port_count);
1040 if (err)
1041 goto err_psample_exit;
1042
1039 nsim_dev->take_snapshot = debugfs_create_file("take_snapshot",
1040 0200,
1041 nsim_dev->ddir,
1042 nsim_dev,
1043 &nsim_dev_take_snapshot_fops);
1044 return 0;
1045
1043 nsim_dev->take_snapshot = debugfs_create_file("take_snapshot",
1044 0200,
1045 nsim_dev->ddir,
1046 nsim_dev,
1047 &nsim_dev_take_snapshot_fops);
1048 return 0;
1049
1050err_psample_exit:
1051 nsim_dev_psample_exit(nsim_dev);
1046err_health_exit:
1047 nsim_dev_health_exit(nsim_dev);
1048err_fib_destroy:
1049 nsim_fib_destroy(devlink, nsim_dev->fib_data);
1050err_traps_exit:
1051 nsim_dev_traps_exit(devlink);
1052err_dummy_region_exit:
1053 nsim_dev_dummy_region_exit(nsim_dev);

--- 59 unchanged lines hidden (view full) ---

1113 err = nsim_dev_health_init(nsim_dev, devlink);
1114 if (err)
1115 goto err_fib_destroy;
1116
1117 err = nsim_bpf_dev_init(nsim_dev);
1118 if (err)
1119 goto err_health_exit;
1120
1052err_health_exit:
1053 nsim_dev_health_exit(nsim_dev);
1054err_fib_destroy:
1055 nsim_fib_destroy(devlink, nsim_dev->fib_data);
1056err_traps_exit:
1057 nsim_dev_traps_exit(devlink);
1058err_dummy_region_exit:
1059 nsim_dev_dummy_region_exit(nsim_dev);

--- 59 unchanged lines hidden (view full) ---

1119 err = nsim_dev_health_init(nsim_dev, devlink);
1120 if (err)
1121 goto err_fib_destroy;
1122
1123 err = nsim_bpf_dev_init(nsim_dev);
1124 if (err)
1125 goto err_health_exit;
1126
1121 err = nsim_dev_port_add_all(nsim_dev, nsim_bus_dev->port_count);
1127 err = nsim_dev_psample_init(nsim_dev);
1122 if (err)
1123 goto err_bpf_dev_exit;
1124
1128 if (err)
1129 goto err_bpf_dev_exit;
1130
1131 err = nsim_dev_port_add_all(nsim_dev, nsim_bus_dev->port_count);
1132 if (err)
1133 goto err_psample_exit;
1134
1125 devlink_params_publish(devlink);
1126 devlink_reload_enable(devlink);
1127 return 0;
1128
1135 devlink_params_publish(devlink);
1136 devlink_reload_enable(devlink);
1137 return 0;
1138
1139err_psample_exit:
1140 nsim_dev_psample_exit(nsim_dev);
1129err_bpf_dev_exit:
1130 nsim_bpf_dev_exit(nsim_dev);
1131err_health_exit:
1132 nsim_dev_health_exit(nsim_dev);
1133err_fib_destroy:
1134 nsim_fib_destroy(devlink, nsim_dev->fib_data);
1135err_debugfs_exit:
1136 nsim_dev_debugfs_exit(nsim_dev);

--- 16 unchanged lines hidden (view full) ---

1153static void nsim_dev_reload_destroy(struct nsim_dev *nsim_dev)
1154{
1155 struct devlink *devlink = priv_to_devlink(nsim_dev);
1156
1157 if (devlink_is_reload_failed(devlink))
1158 return;
1159 debugfs_remove(nsim_dev->take_snapshot);
1160 nsim_dev_port_del_all(nsim_dev);
1141err_bpf_dev_exit:
1142 nsim_bpf_dev_exit(nsim_dev);
1143err_health_exit:
1144 nsim_dev_health_exit(nsim_dev);
1145err_fib_destroy:
1146 nsim_fib_destroy(devlink, nsim_dev->fib_data);
1147err_debugfs_exit:
1148 nsim_dev_debugfs_exit(nsim_dev);

--- 16 unchanged lines hidden (view full) ---

1165static void nsim_dev_reload_destroy(struct nsim_dev *nsim_dev)
1166{
1167 struct devlink *devlink = priv_to_devlink(nsim_dev);
1168
1169 if (devlink_is_reload_failed(devlink))
1170 return;
1171 debugfs_remove(nsim_dev->take_snapshot);
1172 nsim_dev_port_del_all(nsim_dev);
1173 nsim_dev_psample_exit(nsim_dev);
1161 nsim_dev_health_exit(nsim_dev);
1162 nsim_fib_destroy(devlink, nsim_dev->fib_data);
1163 nsim_dev_traps_exit(devlink);
1164 nsim_dev_dummy_region_exit(nsim_dev);
1165 mutex_destroy(&nsim_dev->port_list_lock);
1166}
1167
1168void nsim_dev_remove(struct nsim_bus_dev *nsim_bus_dev)

--- 70 unchanged lines hidden ---
1174 nsim_dev_health_exit(nsim_dev);
1175 nsim_fib_destroy(devlink, nsim_dev->fib_data);
1176 nsim_dev_traps_exit(devlink);
1177 nsim_dev_dummy_region_exit(nsim_dev);
1178 mutex_destroy(&nsim_dev->port_list_lock);
1179}
1180
1181void nsim_dev_remove(struct nsim_bus_dev *nsim_bus_dev)

--- 70 unchanged lines hidden ---