Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 44bbcf5c authored by Vivien Didelot's avatar Vivien Didelot Committed by David S. Miller
Browse files

net: switchdev: extract struct switchdev_obj_*



Now that switchdev and its drivers directly use specific switchdev_obj_*
structures, move them out of the switchdev_obj union and get rif of this
outer structure.

Signed-off-by: default avatarVivien Didelot <vivien.didelot@savoirfairelinux.com>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent ab069002
Loading
Loading
Loading
Loading
+26 −27
Original line number Diff line number Diff line
@@ -64,16 +64,15 @@ enum switchdev_obj_id {
	SWITCHDEV_OBJ_PORT_FDB,
};

struct switchdev_obj {
	enum switchdev_obj_id id;
	int (*cb)(struct switchdev_obj *obj);
	union {
		struct switchdev_obj_vlan {		/* PORT_VLAN */
/* SWITCHDEV_OBJ_PORT_VLAN */
struct switchdev_obj_vlan {
	u16 flags;
	u16 vid_begin;
	u16 vid_end;
		} vlan;
		struct switchdev_obj_ipv4_fib {		/* IPV4_FIB */
};

/* SWITCHDEV_OBJ_IPV4_FIB */
struct switchdev_obj_ipv4_fib {
	u32 dst;
	int dst_len;
	struct fib_info *fi;
@@ -81,13 +80,13 @@ struct switchdev_obj {
	u8 type;
	u32 nlflags;
	u32 tb_id;
		} ipv4_fib;
		struct switchdev_obj_fdb {		/* PORT_FDB */
};

/* SWITCHDEV_OBJ_PORT_FDB */
struct switchdev_obj_fdb {
	const unsigned char *addr;
	u16 vid;
	u16 ndm_state;
		} fdb;
	} u;
};

void switchdev_trans_item_enqueue(struct switchdev_trans *trans,
@@ -102,11 +101,11 @@ void *switchdev_trans_item_dequeue(struct switchdev_trans *trans);
 *
 * @switchdev_port_attr_set: Set a port attribute (see switchdev_attr).
 *
 * @switchdev_port_obj_add: Add an object to port (see switchdev_obj).
 * @switchdev_port_obj_add: Add an object to port (see switchdev_obj_*).
 *
 * @switchdev_port_obj_del: Delete an object from port (see switchdev_obj).
 * @switchdev_port_obj_del: Delete an object from port (see switchdev_obj_*).
 *
 * @switchdev_port_obj_dump: Dump port objects (see switchdev_obj).
 * @switchdev_port_obj_dump: Dump port objects (see switchdev_obj_*).
 */
struct switchdev_ops {
	int	(*switchdev_port_attr_get)(struct net_device *dev,