From 111b58cc7921e54caa384851c2f11c066014a49b Mon Sep 17 00:00:00 2001 From: Alin Gabriel Serdean Date: Tue, 7 Aug 2018 00:34:45 +0300 Subject: ofctl: Fixup compare_flows function In the case there was no sorting criteria the flows on Windows were being rearranged because it was always returning zero. Also check if there we need sorting to save a few cycles. CC: Ben Pfaff Co-authored-by: Ben Pfaff Signed-off-by: Alin Gabriel Serdean Acked-by: Ben Pfaff Signed-off-by: Ben Pfaff --- utilities/ovs-ofctl.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) (limited to 'utilities') diff --git a/utilities/ovs-ofctl.c b/utilities/ovs-ofctl.c index 8d14a9b59..c3b49dbac 100644 --- a/utilities/ovs-ofctl.c +++ b/utilities/ovs-ofctl.c @@ -1543,7 +1543,7 @@ compare_flows(const void *afs_, const void *bfs_) } } - return 0; + return a < b ? -1 : 1; } static void @@ -1565,7 +1565,9 @@ ofctl_dump_flows(struct ovs_cmdl_context *ctx) run(vconn_dump_flows(vconn, &fsr, protocol, &fses, &n_fses), "dump flows"); - qsort(fses, n_fses, sizeof *fses, compare_flows); + if (n_criteria) { + qsort(fses, n_fses, sizeof *fses, compare_flows); + } struct ds s = DS_EMPTY_INITIALIZER; for (size_t i = 0; i < n_fses; i++) { -- cgit v1.2.1