Page MenuHomeFreeBSD

D3301.id7649.diff
No OneTemporary

D3301.id7649.diff

Index: sys/net/if_lagg.c
===================================================================
--- sys/net/if_lagg.c
+++ sys/net/if_lagg.c
@@ -691,22 +691,23 @@
* Traverse the queue and set the lladdr on each ifp. It is safe to do
* unlocked as we have the only reference to it.
*/
+
for (llq = head; llq != NULL; llq = head) {
ifp = llq->llq_ifp;
-
CURVNET_SET(ifp->if_vnet);
- if (llq->llq_primary == 0) {
- /*
- * Set the link layer address on the laggport interface.
- * if_setlladdr() triggers gratuitous ARPs for INET.
- */
- error = if_setlladdr(ifp, llq->llq_lladdr,
- ETHER_ADDR_LEN);
- if (error)
- printf("%s: setlladdr failed on %s\n", __func__,
- ifp->if_xname);
- } else
+
+ /*
+ * Set the link layer address on the laggport interface.
+ * if_setlladdr() triggers gratuitous ARPs for INET.
+ */
+ error = if_setlladdr(ifp, llq->llq_lladdr,
+ ETHER_ADDR_LEN);
+ if (error)
+ printf("%s: setlladdr failed on %s\n", __func__,
+ ifp->if_xname);
+ if (llq->llq_primary) {
EVENTHANDLER_INVOKE(iflladdr_event, ifp);
+ }
CURVNET_RESTORE();
head = SLIST_NEXT(llq, llq_entries);
free(llq, M_DEVBUF);

File Metadata

Mime Type
text/plain
Expires
Mon, Mar 2, 9:37 AM (1 h, 29 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
29152033
Default Alt Text
D3301.id7649.diff (1 KB)

Event Timeline