Преглед на файлове

[HACK] net: hsr/prp: Set PTP master clock address to slave ports

Overload the ethtool op set_dump to set the PTP master clock
address to slave port of a redundant network interface.

Signed-off-by: WingMan Kwok <w-kwok2@ti.com>
WingMan Kwok преди 7 години
родител
ревизия
5aaf64f7a1
променени са 1 файла, в които са добавени 22 реда и са изтрити 0 реда
  1. 22 0
      net/hsr-prp/hsr_prp_device.c

+ 22 - 0
net/hsr-prp/hsr_prp_device.c

@@ -780,9 +780,31 @@ static int hsr_prp_get_ts_info(struct net_device *dev,
 	return ret;
 }
 
+static int hsr_prp_set_dump(struct net_device *dev, struct ethtool_dump *dump)
+{
+	struct hsr_prp_priv *priv = netdev_priv(dev);
+	struct hsr_prp_port *port;
+	const struct ethtool_ops *ops;
+	int ret = -ENOTSUPP;
+
+	hsr_prp_for_each_port(priv, port) {
+		if (is_slave_port(port)) {
+			ops = port->dev->ethtool_ops;
+			if (ops && ops->set_dump) {
+				ret = ops->set_dump(port->dev, dump);
+				if (ret < 0)
+					return ret;
+			}
+		}
+	}
+
+	return 0;
+}
+
 static const struct ethtool_ops hsr_prp_ethtool_ops = {
 	.get_link = ethtool_op_get_link,
 	.get_ts_info = hsr_prp_get_ts_info,
+	.set_dump = hsr_prp_set_dump,
 };
 
 static void hsr_prp_dev_setup(struct net_device *dev, struct device_type *type)