Skip to content

Commit 4b151e7

Browse files
committed
Merge branch 'devlink-finish-file-split-and-get-retire-leftover-c'
Jiri Pirko says: ==================== devlink: finish file split and get retire leftover.c This patchset finishes a move Jakub started and Moshe continued in the past. I was planning to do this for a long time, so here it is, finally. This patchset does not change any behaviour. It just splits leftover.c into per-object files and do necessary changes, like declaring functions used from other code, on the way. The last 3 patches are pushing the rest of the code into appropriate existing files. ==================== Link: https://lore.kernel.org/r/[email protected] Signed-off-by: Jakub Kicinski <[email protected]>
2 parents 8be6f88 + 71179ac commit 4b151e7

File tree

15 files changed

+9710
-9540
lines changed

15 files changed

+9710
-9540
lines changed

net/devlink/Makefile

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
11
# SPDX-License-Identifier: GPL-2.0
22

3-
obj-y := leftover.o core.o netlink.o netlink_gen.o dev.o health.o
3+
obj-y := core.o netlink.o netlink_gen.o dev.o port.o sb.o dpipe.o \
4+
resource.o param.o region.o health.o trap.o rate.o linecard.o

net/devlink/core.c

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,9 +5,15 @@
55
*/
66

77
#include <net/genetlink.h>
8+
#define CREATE_TRACE_POINTS
9+
#include <trace/events/devlink.h>
810

911
#include "devl_internal.h"
1012

13+
EXPORT_TRACEPOINT_SYMBOL_GPL(devlink_hwmsg);
14+
EXPORT_TRACEPOINT_SYMBOL_GPL(devlink_hwerr);
15+
EXPORT_TRACEPOINT_SYMBOL_GPL(devlink_trap_report);
16+
1117
DEFINE_XARRAY_FLAGS(devlinks, XA_FLAGS_ALLOC);
1218

1319
void *devlink_priv(struct devlink *devlink)

net/devlink/dev.c

Lines changed: 27 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -174,7 +174,7 @@ static int devlink_nl_fill(struct sk_buff *msg, struct devlink *devlink,
174174
return -EMSGSIZE;
175175
}
176176

177-
void devlink_notify(struct devlink *devlink, enum devlink_command cmd)
177+
static void devlink_notify(struct devlink *devlink, enum devlink_command cmd)
178178
{
179179
struct sk_buff *msg;
180180
int err;
@@ -230,6 +230,32 @@ int devlink_nl_get_dumpit(struct sk_buff *msg, struct netlink_callback *cb)
230230
return devlink_nl_dumpit(msg, cb, devlink_nl_get_dump_one);
231231
}
232232

233+
void devlink_notify_register(struct devlink *devlink)
234+
{
235+
devlink_notify(devlink, DEVLINK_CMD_NEW);
236+
devlink_linecards_notify_register(devlink);
237+
devlink_ports_notify_register(devlink);
238+
devlink_trap_policers_notify_register(devlink);
239+
devlink_trap_groups_notify_register(devlink);
240+
devlink_traps_notify_register(devlink);
241+
devlink_rates_notify_register(devlink);
242+
devlink_regions_notify_register(devlink);
243+
devlink_params_notify_register(devlink);
244+
}
245+
246+
void devlink_notify_unregister(struct devlink *devlink)
247+
{
248+
devlink_params_notify_unregister(devlink);
249+
devlink_regions_notify_unregister(devlink);
250+
devlink_rates_notify_unregister(devlink);
251+
devlink_traps_notify_unregister(devlink);
252+
devlink_trap_groups_notify_unregister(devlink);
253+
devlink_trap_policers_notify_unregister(devlink);
254+
devlink_ports_notify_unregister(devlink);
255+
devlink_linecards_notify_unregister(devlink);
256+
devlink_notify(devlink, DEVLINK_CMD_DEL);
257+
}
258+
233259
static void devlink_reload_failed_set(struct devlink *devlink,
234260
bool reload_failed)
235261
{

net/devlink/devl_internal.h

Lines changed: 88 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
* Copyright (c) 2016 Jiri Pirko <[email protected]>
44
*/
55

6+
#include <linux/etherdevice.h>
67
#include <linux/mutex.h>
78
#include <linux/netdevice.h>
89
#include <linux/notifier.h>
@@ -11,6 +12,8 @@
1112
#include <linux/xarray.h>
1213
#include <net/devlink.h>
1314
#include <net/net_namespace.h>
15+
#include <net/rtnetlink.h>
16+
#include <rdma/ib_verbs.h>
1417

1518
#include "netlink_gen.h"
1619

@@ -118,14 +121,9 @@ typedef int devlink_nl_dump_one_func_t(struct sk_buff *msg,
118121
struct netlink_callback *cb,
119122
int flags);
120123

121-
extern const struct genl_small_ops devlink_nl_small_ops[40];
122-
123124
struct devlink *
124125
devlink_get_from_attrs_lock(struct net *net, struct nlattr **attrs);
125126

126-
void devlink_notify_unregister(struct devlink *devlink);
127-
void devlink_notify_register(struct devlink *devlink);
128-
129127
int devlink_nl_dumpit(struct sk_buff *msg, struct netlink_callback *cb,
130128
devlink_nl_dump_one_func_t *dump_one);
131129

@@ -147,13 +145,36 @@ devlink_nl_put_handle(struct sk_buff *msg, struct devlink *devlink)
147145
return 0;
148146
}
149147

148+
int devlink_nl_msg_reply_and_new(struct sk_buff **msg, struct genl_info *info);
149+
150150
/* Notify */
151-
void devlink_notify(struct devlink *devlink, enum devlink_command cmd);
151+
void devlink_notify_register(struct devlink *devlink);
152+
void devlink_notify_unregister(struct devlink *devlink);
153+
void devlink_ports_notify_register(struct devlink *devlink);
154+
void devlink_ports_notify_unregister(struct devlink *devlink);
155+
void devlink_params_notify_register(struct devlink *devlink);
156+
void devlink_params_notify_unregister(struct devlink *devlink);
157+
void devlink_regions_notify_register(struct devlink *devlink);
158+
void devlink_regions_notify_unregister(struct devlink *devlink);
159+
void devlink_trap_policers_notify_register(struct devlink *devlink);
160+
void devlink_trap_policers_notify_unregister(struct devlink *devlink);
161+
void devlink_trap_groups_notify_register(struct devlink *devlink);
162+
void devlink_trap_groups_notify_unregister(struct devlink *devlink);
163+
void devlink_traps_notify_register(struct devlink *devlink);
164+
void devlink_traps_notify_unregister(struct devlink *devlink);
165+
void devlink_rates_notify_register(struct devlink *devlink);
166+
void devlink_rates_notify_unregister(struct devlink *devlink);
167+
void devlink_linecards_notify_register(struct devlink *devlink);
168+
void devlink_linecards_notify_unregister(struct devlink *devlink);
152169

153170
/* Ports */
171+
#define ASSERT_DEVLINK_PORT_INITIALIZED(devlink_port) \
172+
WARN_ON_ONCE(!(devlink_port)->initialized)
173+
174+
struct devlink_port *devlink_port_get_by_index(struct devlink *devlink,
175+
unsigned int port_index);
154176
int devlink_port_netdevice_event(struct notifier_block *nb,
155177
unsigned long event, void *ptr);
156-
157178
struct devlink_port *
158179
devlink_port_get_from_info(struct devlink *devlink, struct genl_info *info);
159180
struct devlink_port *devlink_port_get_from_attrs(struct devlink *devlink,
@@ -184,12 +205,62 @@ int devlink_resources_validate(struct devlink *devlink,
184205
int devlink_rate_nodes_check(struct devlink *devlink, u16 mode,
185206
struct netlink_ext_ack *extack);
186207

208+
/* Linecards */
209+
struct devlink_linecard {
210+
struct list_head list;
211+
struct devlink *devlink;
212+
unsigned int index;
213+
const struct devlink_linecard_ops *ops;
214+
void *priv;
215+
enum devlink_linecard_state state;
216+
struct mutex state_lock; /* Protects state */
217+
const char *type;
218+
struct devlink_linecard_type *types;
219+
unsigned int types_count;
220+
struct devlink *nested_devlink;
221+
};
222+
187223
/* Devlink nl cmds */
188224
int devlink_nl_cmd_reload(struct sk_buff *skb, struct genl_info *info);
189225
int devlink_nl_cmd_eswitch_get_doit(struct sk_buff *skb, struct genl_info *info);
190226
int devlink_nl_cmd_eswitch_set_doit(struct sk_buff *skb, struct genl_info *info);
191227
int devlink_nl_cmd_flash_update(struct sk_buff *skb, struct genl_info *info);
192228
int devlink_nl_cmd_selftests_run(struct sk_buff *skb, struct genl_info *info);
229+
int devlink_nl_cmd_port_set_doit(struct sk_buff *skb, struct genl_info *info);
230+
int devlink_nl_cmd_port_split_doit(struct sk_buff *skb, struct genl_info *info);
231+
int devlink_nl_cmd_port_unsplit_doit(struct sk_buff *skb,
232+
struct genl_info *info);
233+
int devlink_nl_cmd_port_new_doit(struct sk_buff *skb, struct genl_info *info);
234+
int devlink_nl_cmd_port_del_doit(struct sk_buff *skb, struct genl_info *info);
235+
int devlink_nl_cmd_sb_pool_set_doit(struct sk_buff *skb, struct genl_info *info);
236+
int devlink_nl_cmd_sb_port_pool_set_doit(struct sk_buff *skb,
237+
struct genl_info *info);
238+
int devlink_nl_cmd_sb_tc_pool_bind_set_doit(struct sk_buff *skb,
239+
struct genl_info *info);
240+
int devlink_nl_cmd_sb_occ_snapshot_doit(struct sk_buff *skb,
241+
struct genl_info *info);
242+
int devlink_nl_cmd_sb_occ_max_clear_doit(struct sk_buff *skb,
243+
struct genl_info *info);
244+
int devlink_nl_cmd_dpipe_table_get(struct sk_buff *skb, struct genl_info *info);
245+
int devlink_nl_cmd_dpipe_entries_get(struct sk_buff *skb,
246+
struct genl_info *info);
247+
int devlink_nl_cmd_dpipe_headers_get(struct sk_buff *skb,
248+
struct genl_info *info);
249+
int devlink_nl_cmd_dpipe_table_counters_set(struct sk_buff *skb,
250+
struct genl_info *info);
251+
int devlink_nl_cmd_resource_set(struct sk_buff *skb, struct genl_info *info);
252+
int devlink_nl_cmd_resource_dump(struct sk_buff *skb, struct genl_info *info);
253+
int devlink_nl_cmd_param_set_doit(struct sk_buff *skb, struct genl_info *info);
254+
int devlink_nl_cmd_port_param_get_dumpit(struct sk_buff *msg,
255+
struct netlink_callback *cb);
256+
int devlink_nl_cmd_port_param_get_doit(struct sk_buff *skb,
257+
struct genl_info *info);
258+
int devlink_nl_cmd_port_param_set_doit(struct sk_buff *skb,
259+
struct genl_info *info);
260+
int devlink_nl_cmd_region_new(struct sk_buff *skb, struct genl_info *info);
261+
int devlink_nl_cmd_region_del(struct sk_buff *skb, struct genl_info *info);
262+
int devlink_nl_cmd_region_read_dumpit(struct sk_buff *skb,
263+
struct netlink_callback *cb);
193264
int devlink_nl_cmd_health_reporter_set_doit(struct sk_buff *skb,
194265
struct genl_info *info);
195266
int devlink_nl_cmd_health_reporter_recover_doit(struct sk_buff *skb,
@@ -202,3 +273,13 @@ int devlink_nl_cmd_health_reporter_dump_clear_doit(struct sk_buff *skb,
202273
struct genl_info *info);
203274
int devlink_nl_cmd_health_reporter_test_doit(struct sk_buff *skb,
204275
struct genl_info *info);
276+
int devlink_nl_cmd_trap_set_doit(struct sk_buff *skb, struct genl_info *info);
277+
int devlink_nl_cmd_trap_group_set_doit(struct sk_buff *skb,
278+
struct genl_info *info);
279+
int devlink_nl_cmd_trap_policer_set_doit(struct sk_buff *skb,
280+
struct genl_info *info);
281+
int devlink_nl_cmd_rate_set_doit(struct sk_buff *skb, struct genl_info *info);
282+
int devlink_nl_cmd_rate_new_doit(struct sk_buff *skb, struct genl_info *info);
283+
int devlink_nl_cmd_rate_del_doit(struct sk_buff *skb, struct genl_info *info);
284+
int devlink_nl_cmd_linecard_set_doit(struct sk_buff *skb,
285+
struct genl_info *info);

0 commit comments

Comments
 (0)