summaryrefslogtreecommitdiffstats
path: root/net/switchdev/switchdev.c
diff options
context:
space:
mode:
Diffstat (limited to 'net/switchdev/switchdev.c')
-rw-r--r--net/switchdev/switchdev.c10
1 files changed, 5 insertions, 5 deletions
diff --git a/net/switchdev/switchdev.c b/net/switchdev/switchdev.c
index 1031a0327fff..10b819308439 100644
--- a/net/switchdev/switchdev.c
+++ b/net/switchdev/switchdev.c
@@ -1042,7 +1042,7 @@ static int switchdev_port_fdb_dump_cb(struct switchdev_obj *obj)
1042 struct nlmsghdr *nlh; 1042 struct nlmsghdr *nlh;
1043 struct ndmsg *ndm; 1043 struct ndmsg *ndm;
1044 1044
1045 if (dump->idx < dump->cb->args[0]) 1045 if (dump->idx < dump->cb->args[2])
1046 goto skip; 1046 goto skip;
1047 1047
1048 nlh = nlmsg_put(dump->skb, portid, seq, RTM_NEWNEIGH, 1048 nlh = nlmsg_put(dump->skb, portid, seq, RTM_NEWNEIGH,
@@ -1089,7 +1089,7 @@ nla_put_failure:
1089 */ 1089 */
1090int switchdev_port_fdb_dump(struct sk_buff *skb, struct netlink_callback *cb, 1090int switchdev_port_fdb_dump(struct sk_buff *skb, struct netlink_callback *cb,
1091 struct net_device *dev, 1091 struct net_device *dev,
1092 struct net_device *filter_dev, int idx) 1092 struct net_device *filter_dev, int *idx)
1093{ 1093{
1094 struct switchdev_fdb_dump dump = { 1094 struct switchdev_fdb_dump dump = {
1095 .fdb.obj.orig_dev = dev, 1095 .fdb.obj.orig_dev = dev,
@@ -1097,14 +1097,14 @@ int switchdev_port_fdb_dump(struct sk_buff *skb, struct netlink_callback *cb,
1097 .dev = dev, 1097 .dev = dev,
1098 .skb = skb, 1098 .skb = skb,
1099 .cb = cb, 1099 .cb = cb,
1100 .idx = idx, 1100 .idx = *idx,
1101 }; 1101 };
1102 int err; 1102 int err;
1103 1103
1104 err = switchdev_port_obj_dump(dev, &dump.fdb.obj, 1104 err = switchdev_port_obj_dump(dev, &dump.fdb.obj,
1105 switchdev_port_fdb_dump_cb); 1105 switchdev_port_fdb_dump_cb);
1106 cb->args[1] = err; 1106 *idx = dump.idx;
1107 return dump.idx; 1107 return err;
1108} 1108}
1109EXPORT_SYMBOL_GPL(switchdev_port_fdb_dump); 1109EXPORT_SYMBOL_GPL(switchdev_port_fdb_dump);
1110 1110