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>
This commit is contained in:
Родитель
e02a06b2a7
Коммит
03d5fb1862
|
@ -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;
|
||||
}
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
|
|
|
@ -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);
|
||||
|
|
Загрузка…
Ссылка в новой задаче