mirror of
https://github.com/Fishwaldo/Star64_linux.git
synced 2025-07-06 06:21:31 +00:00
team: introduce two default team_modeop functions and use them in modes
No need to duplicate code for this. Signed-off-by: Jiri Pirko <jiri@resnulli.us> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
6fac411572
commit
acbba0d0f8
4 changed files with 24 additions and 28 deletions
|
@ -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);
|
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, port->team->dev->dev_addr);
|
return __set_port_dev_addr(port->dev, team->dev->dev_addr);
|
||||||
}
|
}
|
||||||
EXPORT_SYMBOL(team_port_set_team_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)
|
||||||
|
{
|
||||||
|
team_port_set_team_dev_addr(team, port);
|
||||||
|
}
|
||||||
|
EXPORT_SYMBOL(team_modeop_port_change_dev_addr);
|
||||||
|
|
||||||
static void team_refresh_port_linkup(struct team_port *port)
|
static void team_refresh_port_linkup(struct team_port *port)
|
||||||
{
|
{
|
||||||
|
|
|
@ -46,20 +46,10 @@ static bool bc_transmit(struct team *team, struct sk_buff *skb)
|
||||||
return sum_ret;
|
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 = {
|
static const struct team_mode_ops bc_mode_ops = {
|
||||||
.transmit = bc_transmit,
|
.transmit = bc_transmit,
|
||||||
.port_enter = bc_port_enter,
|
.port_enter = team_modeop_port_enter,
|
||||||
.port_change_dev_addr = bc_port_change_dev_addr,
|
.port_change_dev_addr = team_modeop_port_change_dev_addr,
|
||||||
};
|
};
|
||||||
|
|
||||||
static const struct team_mode bc_mode = {
|
static const struct team_mode bc_mode = {
|
||||||
|
|
|
@ -64,20 +64,10 @@ drop:
|
||||||
return false;
|
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 = {
|
static const struct team_mode_ops rr_mode_ops = {
|
||||||
.transmit = rr_transmit,
|
.transmit = rr_transmit,
|
||||||
.port_enter = rr_port_enter,
|
.port_enter = team_modeop_port_enter,
|
||||||
.port_change_dev_addr = rr_port_change_dev_addr,
|
.port_change_dev_addr = team_modeop_port_change_dev_addr,
|
||||||
};
|
};
|
||||||
|
|
||||||
static const struct team_mode rr_mode = {
|
static const struct team_mode rr_mode = {
|
||||||
|
|
|
@ -112,6 +112,10 @@ struct team_mode_ops {
|
||||||
void (*port_disabled)(struct team *team, struct team_port *port);
|
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 {
|
enum team_option_type {
|
||||||
TEAM_OPTION_TYPE_U32,
|
TEAM_OPTION_TYPE_U32,
|
||||||
TEAM_OPTION_TYPE_STRING,
|
TEAM_OPTION_TYPE_STRING,
|
||||||
|
@ -236,7 +240,6 @@ static inline struct team_port *team_get_port_by_index_rcu(struct team *team,
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
extern int team_port_set_team_dev_addr(struct team_port *port);
|
|
||||||
extern int team_options_register(struct team *team,
|
extern int team_options_register(struct team *team,
|
||||||
const struct team_option *option,
|
const struct team_option *option,
|
||||||
size_t option_count);
|
size_t option_count);
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue