aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJiri Pirko <jiri@resnulli.us>2015-03-19 09:28:00 +0100
committerJiri Pirko <jiri@resnulli.us>2015-03-19 09:28:00 +0100
commitd4b26a9cdd17b2b678622babb30ccfb5811849f8 (patch)
treed105fe7c2440264db1a4de93fbdfb66264ef5b39
parent01c1e7888cd9a78c53bef3bd8cf476ebe018fa31 (diff)
downloadlibteam-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.c7
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;