rocker: forbid to change world type
Port to world assignment should be permitted only by qemu user. Driver should not be able to do it, so forbid that possibility. Signed-off-by: Jiri Pirko <jiri@mellanox.com> Signed-off-by: Jason Wang <jasowang@redhat.com>
This commit is contained in:
parent
9fbad2ca36
commit
0ab9cd9a4b
@ -400,7 +400,13 @@ static int cmd_set_port_settings(Rocker *r,
|
||||
|
||||
if (tlvs[ROCKER_TLV_CMD_PORT_SETTINGS_MODE]) {
|
||||
mode = rocker_tlv_get_u8(tlvs[ROCKER_TLV_CMD_PORT_SETTINGS_MODE]);
|
||||
fp_port_set_world(fp_port, r->worlds[mode]);
|
||||
if (mode >= ROCKER_WORLD_TYPE_MAX) {
|
||||
return -ROCKER_EINVAL;
|
||||
}
|
||||
/* We don't support world change. */
|
||||
if (!fp_port_check_world(fp_port, r->worlds[mode])) {
|
||||
return -ROCKER_EINVAL;
|
||||
}
|
||||
}
|
||||
|
||||
if (tlvs[ROCKER_TLV_CMD_PORT_SETTINGS_LEARNING]) {
|
||||
|
@ -186,6 +186,11 @@ void fp_port_set_world(FpPort *port, World *world)
|
||||
port->world = world;
|
||||
}
|
||||
|
||||
bool fp_port_check_world(FpPort *port, World *world)
|
||||
{
|
||||
return port->world == world;
|
||||
}
|
||||
|
||||
bool fp_port_enabled(FpPort *port)
|
||||
{
|
||||
return port->enabled;
|
||||
|
@ -40,6 +40,7 @@ int fp_port_set_settings(FpPort *port, uint32_t speed,
|
||||
bool fp_port_from_pport(uint32_t pport, uint32_t *port);
|
||||
World *fp_port_get_world(FpPort *port);
|
||||
void fp_port_set_world(FpPort *port, World *world);
|
||||
bool fp_port_check_world(FpPort *port, World *world);
|
||||
bool fp_port_enabled(FpPort *port);
|
||||
void fp_port_enable(FpPort *port);
|
||||
void fp_port_disable(FpPort *port);
|
||||
|
Loading…
Reference in New Issue
Block a user