distributor: fix scalar matching
authorLukasz Wojciechowski <l.wojciechow@partner.samsung.com>
Sat, 17 Oct 2020 03:06:56 +0000 (05:06 +0200)
committerDavid Marchand <david.marchand@redhat.com>
Mon, 19 Oct 2020 08:57:17 +0000 (10:57 +0200)
Fix improper indexes while comparing tags.
In the find_match_scalar() function:
* j iterates over flow tags of following packets;
* w iterates over backlog or in flight tags positions.

Fixes: 775003ad2f96 ("distributor: add new burst-capable library")
Cc: stable@dpdk.org
Signed-off-by: Lukasz Wojciechowski <l.wojciechow@partner.samsung.com>
Acked-by: David Hunt <david.hunt@intel.com>
lib/librte_distributor/rte_distributor.c

index 6e3eae5..9fea3f6 100644 (file)
@@ -259,13 +259,13 @@ find_match_scalar(struct rte_distributor *d,
 
                for (j = 0; j < RTE_DIST_BURST_SIZE ; j++)
                        for (w = 0; w < RTE_DIST_BURST_SIZE; w++)
-                               if (d->in_flight_tags[i][j] == data_ptr[w]) {
+                               if (d->in_flight_tags[i][w] == data_ptr[j]) {
                                        output_ptr[j] = i+1;
                                        break;
                                }
                for (j = 0; j < RTE_DIST_BURST_SIZE; j++)
                        for (w = 0; w < RTE_DIST_BURST_SIZE; w++)
-                               if (bl->tags[j] == data_ptr[w]) {
+                               if (bl->tags[w] == data_ptr[j]) {
                                        output_ptr[j] = i+1;
                                        break;
                                }