app/testpmd: fix parsing RSS queue rule
authorHaiyue Wang <haiyue.wang@intel.com>
Tue, 25 Jun 2019 10:38:03 +0000 (18:38 +0800)
committerFerruh Yigit <ferruh.yigit@intel.com>
Thu, 4 Jul 2019 23:52:02 +0000 (01:52 +0200)
commit9a45c4981c351bdef78a69d1f7b7788f2614913f
treef4486b82c81f66e4f9c99a909415f0be9d3c6710
parent3f22e3153fb5bd1ae2eebfa77678117eb15b33d8
app/testpmd: fix parsing RSS queue rule

Declare a local variable 'arg' to hold the pointer to ARGS_ENTRY_ARB,
otherwise, the pop 'arg' in 'parse_int' holds wrong data like 'arg->
offset = 5912737, arg->size = 0', this caused the parse failure.

If calling like 'push_args(ctx, ARGS_ENTRY_ARB..)', the below code for
assigning 'offset & size' will be missed for some gcc optimization.

parse_vc_action_rss_queue
    29c5: c5 f9 ef c0           vpxor  %xmm0,%xmm0,%xmm0
    29c9: 43 8d 44 24 68        lea    0x68(%r12,%r12,1),%eax
    29ce: 48 c7 44 24 20 00 00  movq   $0x0,0x20(%rsp)
    29d5: 00 00
    29d7: c5 f8 29 44 24 10     vmovaps %xmm0,0x10(%rsp)
    29dd: 89 44 24 18           mov    %eax,0x18(%rsp)
    29e1: 48 63 83 0c 01 00 00  movslq 0x10c(%rbx),%rax
    29e8: c7 44 24 1c 02 00 00  movl   $0x2,0x1c(%rsp)
    29ef: 00
    29f0: c5 f8 29 04 24        vmovaps %xmm0,(%rsp)

The above assembly code is from this modification with:
    gcc version 9.1.1 20190503 (Red Hat 9.1.1-1) (GCC)
    Fedora release 30 (Thirty)
    5.1.11-300.fc30.x86_64

Fixes: d0ad8648b1c5 ("app/testpmd: fix RSS flow action configuration")
Cc: stable@dpdk.org
Signed-off-by: Haiyue Wang <haiyue.wang@intel.com>
Reviewed-by: Xiaolong Ye <xiaolong.ye@intel.com>
Acked-by: Bernard Iremonger <bernard.iremonger@intel.com>
app/test-pmd/cmdline_flow.c