net: dsa: Add devlink port regions support to DSA
authorAndrew Lunn <andrew@lunn.ch>
Sun, 4 Oct 2020 16:12:55 +0000 (18:12 +0200)
committerDavid S. Miller <davem@davemloft.net>
Sun, 4 Oct 2020 21:38:53 +0000 (14:38 -0700)
Allow DSA drivers to make use of devlink port regions, via simple
wrappers.

Reviewed-by: Vladimir Oltean <olteanv@gmail.com>
Tested-by: Vladimir Oltean <olteanv@gmail.com>
Signed-off-by: Andrew Lunn <andrew@lunn.ch>
Reviewed-by: Florian Fainelli <f.fainelli@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
include/net/dsa.h
net/dsa/dsa.c

index 049140b..ca426cf 100644 (file)
@@ -681,6 +681,11 @@ struct devlink_region *
 dsa_devlink_region_create(struct dsa_switch *ds,
                          const struct devlink_region_ops *ops,
                          u32 region_max_snapshots, u64 region_size);
+struct devlink_region *
+dsa_devlink_port_region_create(struct dsa_switch *ds,
+                              int port,
+                              const struct devlink_port_region_ops *ops,
+                              u32 region_max_snapshots, u64 region_size);
 void dsa_devlink_region_destroy(struct devlink_region *region);
 
 struct dsa_port *dsa_port_from_netdev(struct net_device *netdev);
index dec4ab5..2131bf2 100644 (file)
@@ -423,6 +423,20 @@ dsa_devlink_region_create(struct dsa_switch *ds,
 }
 EXPORT_SYMBOL_GPL(dsa_devlink_region_create);
 
+struct devlink_region *
+dsa_devlink_port_region_create(struct dsa_switch *ds,
+                              int port,
+                              const struct devlink_port_region_ops *ops,
+                              u32 region_max_snapshots, u64 region_size)
+{
+       struct dsa_port *dp = dsa_to_port(ds, port);
+
+       return devlink_port_region_create(&dp->devlink_port, ops,
+                                         region_max_snapshots,
+                                         region_size);
+}
+EXPORT_SYMBOL_GPL(dsa_devlink_port_region_create);
+
 void dsa_devlink_region_destroy(struct devlink_region *region)
 {
        devlink_region_destroy(region);