Sophie

Sophie

distrib > Scientific%20Linux > 5x > x86_64 > by-pkgid > fc11cd6e1c513a17304da94a5390f3cd > files > 1292

kernel-2.6.18-194.11.1.el5.src.rpm

From: Doug Ledford <dledford@redhat.com>
Date: Tue, 1 Dec 2009 19:33:18 -0500
Subject: [infiniband] init neigh->dgid.raw on bonding events
Message-id: <1259696003-21028-4-git-send-email-dledford@redhat.com>
Patchwork-id: 21587
O-Subject: [Patch RHEL5.5] [ipoib] init the neigh->dgid.raw struct on bonding
	events
Bugzilla: 538067

We are confusing the bond structures by failing to init the dgid.raw struct
to 0 in order to force re-setting arp and other info on a bonded slave when
it was previously the active link, then it failed, then it came back to
being active.

Resolves bz538067

Signed-off-by: Doug Ledford <dledford@redhat.com>

diff --git a/drivers/infiniband/ulp/ipoib/ipoib_main.c b/drivers/infiniband/ulp/ipoib/ipoib_main.c
index c70f04f..acaa723 100644
--- a/drivers/infiniband/ulp/ipoib/ipoib_main.c
+++ b/drivers/infiniband/ulp/ipoib/ipoib_main.c
@@ -917,6 +917,7 @@ struct ipoib_neigh *ipoib_neigh_alloc(struct neighbour *neighbour,
 
 	neigh->neighbour = neighbour;
 	neigh->dev = dev;
+	memset(&neigh->dgid.raw, 0, sizeof(union ib_gid));
 	*to_ipoib_neigh(neighbour) = neigh;
 	skb_queue_head_init(&neigh->queue);
 	ipoib_cm_set(neigh, NULL);