+ * An overall lock guarding every operation comming from userspace.
+ * If also guards devlink devices list and it is taken when
+ * driver registers/unregisters it.
Several typos in comment.
+static void devlink_notify(struct devlink *devlink, enum
+devlink_command cmd) {
...
+ WARN_ON(cmd != DEVLINK_CMD_NEW && cmd !=
DEVLINK_CMD_DEL);
Given this should never happen, shouldn't this be ONCE?
+static void devlink_port_notify(struct devlink_port *devlink_port,
...
+ WARN_ON(cmd != DEVLINK_CMD_PORT_NEW && cmd !=
DEVLINK_CMD_PORT_DEL);
Likewise
+static void __devlink_port_type_set(struct devlink_port *devlink_port,
...
+ devlink_port_notify(devlink_port, DEVLINK_CMD_PORT_NEW); }
Why is this PORT_NEW? Shouldn't it be PORT_SET?
Also, curly bracers are repeatedly on last line of function [if this file].
Is this by design?