We keep track of the number of tunnels using the different types of
matching in order to avoid doing the lookup when there are no ports
of that type. However, when updating the configuration we weren't
changing the port pool counts, which could lead to incorrectly not
finding a tunnel on receive.
Signed-off-by: Jesse Gross <jesse@nicira.com>
err = tbl_insert(port_table, &tnl_vport->tbl_node, mutable_hash(tnl_vport->mutable));
if (err) {
+ (*find_port_pool(tnl_vport->mutable))--;
check_table_empty();
return err;
}
}
table_updated:
+ (*find_port_pool(tnl_vport->mutable))--;
assign_config_rcu(vport, new_mutable);
+ (*find_port_pool(tnl_vport->mutable))++;
return 0;
}