Page MenuHomeFreeBSD

D54053.id167481.diff
No OneTemporary

D54053.id167481.diff

diff --git a/sys/net/ieee8023ad_lacp.c b/sys/net/ieee8023ad_lacp.c
--- a/sys/net/ieee8023ad_lacp.c
+++ b/sys/net/ieee8023ad_lacp.c
@@ -1036,6 +1036,29 @@
}
}
+static int
+lacp_pm_compare(const void *p1, const void *p2)
+{
+ struct lacp_port *const *a = p1;
+ struct lacp_port *const *b = p2;
+ int left, right;
+
+ if (a == NULL || b == NULL || *a == NULL || *b == NULL)
+ return (0);
+
+ if ((*a)->lp_ifp == NULL)
+ left = INT_MAX;
+ else
+ left = (*a)->lp_ifp->if_index;
+
+ if ((*b)->lp_ifp == NULL)
+ right = INT_MAX;
+ else
+ right = (*b)->lp_ifp->if_index;
+
+ return ((left > right) - (left < right));
+}
+
/*
* Updated the inactive portmap array with the new list of ports and
* make it live.
@@ -1079,12 +1102,24 @@
#ifdef NUMA
for (i = 0; i < MAXMEMDOM; i++) {
- if (p->pm_numa[i].count != 0)
+ if (p->pm_numa[i].count != 0) {
p->pm_num_dom++;
+ if (p->pm_numa[i].count > 1) {
+ qsort(&p->pm_numa[i].map[0],
+ p->pm_numa[i].count,
+ sizeof(p->pm_numa[i].map[0]),
+ lacp_pm_compare);
+ }
+ }
}
#endif
speed = lacp_aggregator_bandwidth(la);
}
+
+ if (p->pm_count > 1) {
+ qsort(&p->pm_map[0], p->pm_count,
+ sizeof(p->pm_map[0]), lacp_pm_compare);
+ }
sc->sc_ifp->if_baudrate = speed;
EVENTHANDLER_INVOKE(ifnet_event, sc->sc_ifp,
IFNET_EVENT_UPDATE_BAUDRATE);

File Metadata

Mime Type
text/plain
Expires
Fri, May 29, 1:01 AM (12 h, 35 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
33595738
Default Alt Text
D54053.id167481.diff (1 KB)

Event Timeline