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

Commit acbba0d0 authored by Jiri Pirko's avatar Jiri Pirko Committed by David S. Miller
Browse files

team: introduce two default team_modeop functions and use them in modes



No need to duplicate code for this.

Signed-off-by: default avatarJiri Pirko <jiri@resnulli.us>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent 6fac4115
Loading
Loading
Loading
Loading
+16 −3
Original line number Diff line number Diff line
@@ -73,11 +73,24 @@ static int team_port_set_orig_dev_addr(struct team_port *port)
	return __set_port_dev_addr(port->dev, port->orig.dev_addr);
}

int team_port_set_team_dev_addr(struct team_port *port)
static int team_port_set_team_dev_addr(struct team *team,
				       struct team_port *port)
{
	return __set_port_dev_addr(port->dev, team->dev->dev_addr);
}

int team_modeop_port_enter(struct team *team, struct team_port *port)
{
	return team_port_set_team_dev_addr(team, port);
}
EXPORT_SYMBOL(team_modeop_port_enter);

void team_modeop_port_change_dev_addr(struct team *team,
				      struct team_port *port)
{
	return __set_port_dev_addr(port->dev, port->team->dev->dev_addr);
	team_port_set_team_dev_addr(team, port);
}
EXPORT_SYMBOL(team_port_set_team_dev_addr);
EXPORT_SYMBOL(team_modeop_port_change_dev_addr);

static void team_refresh_port_linkup(struct team_port *port)
{
+2 −12
Original line number Diff line number Diff line
@@ -46,20 +46,10 @@ static bool bc_transmit(struct team *team, struct sk_buff *skb)
	return sum_ret;
}

static int bc_port_enter(struct team *team, struct team_port *port)
{
	return team_port_set_team_dev_addr(port);
}

static void bc_port_change_dev_addr(struct team *team, struct team_port *port)
{
	team_port_set_team_dev_addr(port);
}

static const struct team_mode_ops bc_mode_ops = {
	.transmit		= bc_transmit,
	.port_enter		= bc_port_enter,
	.port_change_dev_addr	= bc_port_change_dev_addr,
	.port_enter		= team_modeop_port_enter,
	.port_change_dev_addr	= team_modeop_port_change_dev_addr,
};

static const struct team_mode bc_mode = {
+2 −12
Original line number Diff line number Diff line
@@ -64,20 +64,10 @@ static bool rr_transmit(struct team *team, struct sk_buff *skb)
	return false;
}

static int rr_port_enter(struct team *team, struct team_port *port)
{
	return team_port_set_team_dev_addr(port);
}

static void rr_port_change_dev_addr(struct team *team, struct team_port *port)
{
	team_port_set_team_dev_addr(port);
}

static const struct team_mode_ops rr_mode_ops = {
	.transmit		= rr_transmit,
	.port_enter		= rr_port_enter,
	.port_change_dev_addr	= rr_port_change_dev_addr,
	.port_enter		= team_modeop_port_enter,
	.port_change_dev_addr	= team_modeop_port_change_dev_addr,
};

static const struct team_mode rr_mode = {
+4 −1
Original line number Diff line number Diff line
@@ -112,6 +112,10 @@ struct team_mode_ops {
	void (*port_disabled)(struct team *team, struct team_port *port);
};

extern int team_modeop_port_enter(struct team *team, struct team_port *port);
extern void team_modeop_port_change_dev_addr(struct team *team,
					     struct team_port *port);

enum team_option_type {
	TEAM_OPTION_TYPE_U32,
	TEAM_OPTION_TYPE_STRING,
@@ -236,7 +240,6 @@ static inline struct team_port *team_get_port_by_index_rcu(struct team *team,
	return NULL;
}

extern int team_port_set_team_dev_addr(struct team_port *port);
extern int team_options_register(struct team *team,
				 const struct team_option *option,
				 size_t option_count);