VLAN discovery is restarted after a network interface is removed and the re-added (network driver reload); but if the FIP socket is reused from before it will be bound to the wrong ifindex and received frames will not be correctly routed to fcoemon. Make sure we destroy the FIP socket when leaving the VLAN discovery state, so a new one will be created later when needed.
Signed-off-by: Chris Leech <[email protected]> --- fcoemon.c | 6 ++++++ 1 files changed, 6 insertions(+), 0 deletions(-) diff --git a/fcoemon.c b/fcoemon.c index 2b6de00..fe7cba7 100644 --- a/fcoemon.c +++ b/fcoemon.c @@ -753,6 +753,12 @@ static void fcp_set_next_action(struct fcoe_port *p, enum fcp_action action) case FCP_DISABLE_IF: case FCP_RESET_IF: case FCP_SCAN_IF: + if (p->fip_socket >= 0) { + sa_timer_cancel(&p->vlan_disc_timer); + sa_select_rem_fd(p->fip_socket); + close(p->fip_socket); + p->fip_socket = -1; + } p->action = action; break; default: _______________________________________________ devel mailing list [email protected] http://www.open-fcoe.org/mailman/listinfo/devel
