summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorVivien Didelot <vivien.didelot@savoirfairelinux.com>2015-09-29 12:07:15 -0400
committerDavid S. Miller <davem@davemloft.net>2015-09-29 21:31:59 -0700
commit03d5fb18626aff95426a380aef0d1c6904cac7c9 (patch)
treee7fe66fd345a18402ff0ce169e4f493c134f7842
parente02a06b2a7c6e8b43c60ed8e0181172231af13d7 (diff)
net: switchdev: remove dev from switchdev_obj cb
The net_device associated to a dump operation does not have to be passed to the callback. switchdev stores it in a superset struct, if needed. Also some drivers (such as DSA drivers) may not have easy access to it. This will simplify pushing the callback function down to the drivers. Signed-off-by: Vivien Didelot <vivien.didelot@savoirfairelinux.com> Signed-off-by: David S. Miller <davem@davemloft.net>
-rw-r--r--drivers/net/ethernet/rocker/rocker.c4
-rw-r--r--include/net/switchdev.h2
-rw-r--r--net/dsa/slave.c4
-rw-r--r--net/switchdev/switchdev.c6
4 files changed, 7 insertions, 9 deletions
diff --git a/drivers/net/ethernet/rocker/rocker.c b/drivers/net/ethernet/rocker/rocker.c
index d3f663262184..78fd443f2ea1 100644
--- a/drivers/net/ethernet/rocker/rocker.c
+++ b/drivers/net/ethernet/rocker/rocker.c
@@ -4556,7 +4556,7 @@ static int rocker_port_fdb_dump(const struct rocker_port *rocker_port,
fdb->ndm_state = NUD_REACHABLE;
fdb->vid = rocker_port_vlan_to_vid(rocker_port,
found->key.vlan_id);
- err = obj->cb(rocker_port->dev, obj);
+ err = obj->cb(obj);
if (err)
break;
}
@@ -4579,7 +4579,7 @@ static int rocker_port_vlan_dump(const struct rocker_port *rocker_port,
if (rocker_vlan_id_is_internal(htons(vid)))
vlan->flags |= BRIDGE_VLAN_INFO_PVID;
vlan->vid_begin = vlan->vid_end = vid;
- err = obj->cb(rocker_port->dev, obj);
+ err = obj->cb(obj);
if (err)
break;
}
diff --git a/include/net/switchdev.h b/include/net/switchdev.h
index 18207878e407..9ef7c5635769 100644
--- a/include/net/switchdev.h
+++ b/include/net/switchdev.h
@@ -66,7 +66,7 @@ enum switchdev_obj_id {
struct switchdev_obj {
enum switchdev_obj_id id;
- int (*cb)(struct net_device *dev, struct switchdev_obj *obj);
+ int (*cb)(struct switchdev_obj *obj);
union {
struct switchdev_obj_vlan { /* PORT_VLAN */
u16 flags;
diff --git a/net/dsa/slave.c b/net/dsa/slave.c
index f18cae54a5d8..0b47647961e8 100644
--- a/net/dsa/slave.c
+++ b/net/dsa/slave.c
@@ -334,7 +334,7 @@ static int dsa_slave_port_vlan_dump(struct net_device *dev,
if (test_bit(p->port, untagged))
vlan->flags |= BRIDGE_VLAN_INFO_UNTAGGED;
- err = obj->cb(dev, obj);
+ err = obj->cb(obj);
if (err)
break;
}
@@ -397,7 +397,7 @@ static int dsa_slave_port_fdb_dump(struct net_device *dev,
obj->u.fdb.vid = vid;
obj->u.fdb.ndm_state = is_static ? NUD_NOARP : NUD_REACHABLE;
- ret = obj->cb(dev, obj);
+ ret = obj->cb(obj);
if (ret < 0)
break;
}
diff --git a/net/switchdev/switchdev.c b/net/switchdev/switchdev.c
index c0e2047f8984..93f4971e68db 100644
--- a/net/switchdev/switchdev.c
+++ b/net/switchdev/switchdev.c
@@ -514,8 +514,7 @@ static int switchdev_port_vlan_dump_put(struct switchdev_vlan_dump *dump)
return 0;
}
-static int switchdev_port_vlan_dump_cb(struct net_device *dev,
- struct switchdev_obj *obj)
+static int switchdev_port_vlan_dump_cb(struct switchdev_obj *obj)
{
struct switchdev_vlan_dump *dump =
container_of(obj, struct switchdev_vlan_dump, obj);
@@ -864,8 +863,7 @@ struct switchdev_fdb_dump {
int idx;
};
-static int switchdev_port_fdb_dump_cb(struct net_device *dev,
- struct switchdev_obj *obj)
+static int switchdev_port_fdb_dump_cb(struct switchdev_obj *obj)
{
struct switchdev_fdb_dump *dump =
container_of(obj, struct switchdev_fdb_dump, obj);