Commit b6f23b31 authored by Jiri Pirko's avatar Jiri Pirko Committed by David S. Miller
Browse files

Documentation: devlink: add nested instance section



Add a part talking about nested devlink instances describing
the helpers and locking ordering.

Signed-off-by: default avatarJiri Pirko <jiri@nvidia.com>
Reviewed-by: default avatarSimon Horman <horms@kernel.org>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent b5f4e371
Loading
Loading
Loading
Loading
+24 −0
Original line number Diff line number Diff line
@@ -18,6 +18,30 @@ netlink commands.

Drivers are encouraged to use the devlink instance lock for their own needs.

Nested instances
----------------

Some objects, like linecards or port functions, could have another
devlink instances created underneath. In that case, drivers should make
sure to respect following rules:

 - Lock ordering should be maintained. If driver needs to take instance
   lock of both nested and parent instances at the same time, devlink
   instance lock of the parent instance should be taken first, only then
   instance lock of the nested instance could be taken.
 - Driver should use object-specific helpers to setup the
   nested relationship:

   - ``devl_nested_devlink_set()`` - called to setup devlink -> nested
     devlink relationship (could be user for multiple nested instances.
   - ``devl_port_fn_devlink_set()`` - called to setup port function ->
     nested devlink relationship.
   - ``devlink_linecard_nested_dl_set()`` - called to setup linecard ->
     nested devlink relationship.

The nested devlink info is exposed to the userspace over object-specific
attributes of devlink netlink.

Interface documentation
-----------------------