diff options
author | Jiri Pirko <jiri@resnulli.us> | 2015-03-19 09:28:00 +0100 |
---|---|---|
committer | Jiri Pirko <jiri@resnulli.us> | 2015-03-19 09:28:00 +0100 |
commit | d4b26a9cdd17b2b678622babb30ccfb5811849f8 (patch) | |
tree | d105fe7c2440264db1a4de93fbdfb66264ef5b39 | |
parent | 01c1e7888cd9a78c53bef3bd8cf476ebe018fa31 (diff) | |
download | libteam-d4b26a9cdd17b2b678622babb30ccfb5811849f8.tar.gz |
teamd: events: update ctx->hwaddr_len before calling hwaddr_changed handlers
Signed-off-by: Jiri Pirko <jiri@resnulli.us>
-rw-r--r-- | teamd/teamd_events.c | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/teamd/teamd_events.c b/teamd/teamd_events.c index 66829e2..db2bdea 100644 --- a/teamd/teamd_events.c +++ b/teamd/teamd_events.c @@ -124,6 +124,13 @@ int teamd_event_ifinfo_hwaddr_changed(struct teamd_context *ctx, list_for_each_node_entry(watch, &ctx->event_watch_list, list) { if (watch->ops->hwaddr_changed && ctx->ifindex == ifindex) { + /* ctx->hwaddr is previously set to + * team_get_ifinfo_hwaddr(ctx->ifinfo) in teamd_init. + * We set hwaddr_len there as well, but when it changes, + * we need to set it again now. + */ + ctx->hwaddr_len = team_get_ifinfo_hwaddr_len(ifinfo); + err = watch->ops->hwaddr_changed(ctx, watch->priv); if (err) return err; |