OSDN Git Service

net: Remove duplicate data from query-rx-filter on multiqueue net devices
authorVladislav Yasevich <vyasevic@redhat.com>
Mon, 19 Oct 2015 13:04:38 +0000 (09:04 -0400)
committerJason Wang <jasowang@redhat.com>
Tue, 27 Oct 2015 02:30:39 +0000 (10:30 +0800)
When responding to a query-rx-filter command on a multiqueue
netdev, qemu reports the data for each queue.  The data, however,
is not per-queue, but per device and the same data is reported
multiple times.  This causes confusion and may also cause extra
unnecessary processing when looking at the data.

Commit 638fb14169 (net: Make qmp_query_rx_filter() with name argument
more obvious) partially addresses this issue, by limiting the output
when the name is specified.  However, when the name is not specified,
the issue still persists.

Signed-off-by: Vladislav Yasevich <vyasevic@redhat.com>
Signed-off-by: Jason Wang <jasowang@redhat.com>
net/net.c

index 3c68f3f..70a3576 100644 (file)
--- a/net/net.c
+++ b/net/net.c
@@ -1227,6 +1227,12 @@ RxFilterInfoList *qmp_query_rx_filter(bool has_name, const char *name,
             continue;
         }
 
+        /* only query information on queue 0 since the info is per nic,
+         * not per queue
+         */
+        if (nc->queue_index != 0)
+            continue;
+
         if (nc->info->query_rx_filter) {
             info = nc->info->query_rx_filter(nc);
             entry = g_malloc0(sizeof(*entry));