Go to file
Chengwen Feng c064f6918c net/hns3: fix crash when flushing RSS flow rules with FLR
Currently, we encounter segmentation fault when performing the following
test case:
1. Run testpmd application, config the flow filter rules then flush them
   repeatedly.
2. Inject FLR concurrently every 5 second.
The calltrace info:

This GDB was configured as "aarch64-linux-gnu".
Reading symbols from ./testpmd...(no debugging symbols found)...done.
[New LWP 322]
[New LWP 325]
[New LWP 324]
[New LWP 326]
[New LWP 323]
[New LWP 327]
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/aarch64-linux-gnu/
libthread_db.so.1".
Core was generated by `/home/root/app/testpmd -w 0000:00:01.0 -w
0000:00:02.0 -w 0000:00:03.0 -l 0-3 -'.
Program terminated with signal SIGSEGV, Segmentation fault.
libc.so.6
[Current thread is 1 (Thread 0xffff8bb35110 (LWP 322))]
(gdb) bt
 #0  0x0000ffff8b936a90 in strlen () from /lib/aarch64-linux-gnu/
 libc.so.6
 #1  0x0000ffff8b905ccc in vfprintf () from /lib/aarch64-linux-gnu/
 libc.so.6
 #2  0x0000ffff8b993d04 in __printf_chk () from /lib/aarch64-linux-gnu/
 libc.so.6
 #3  0x0000000000754828 in port_flow_flush ()
 #4  0x0000000000870f3c in cmdline_parse ()

The root cause as follows:
In the '.flush' ops implementation function named hns3_flow_flush, By
the way the '.flush' ops is defined in the struct rte_flow_ops, if
failed to call hns3_clear_rss_filter, the out parameter error is not
set, and then the member variable name message in the struct error is
invalid(filled with 0x44444444 in port_flow_flush function of the
testpmd application), it leads to segmentation fault when format the
message.

We fixes it by filling error parameter when failure in calling static
function named hns3_clear_rss_filter in the the '.flush' ops
implementation function named hns3_flow_flush.

Fixes: c37ca66f2b ("net/hns3: support RSS")
Cc: stable@dpdk.org

Signed-off-by: Chengwen Feng <fengchengwen@huawei.com>
Signed-off-by: Wei Hu (Xavier) <xavier.huwei@huawei.com>
2020-04-21 13:57:04 +02:00
.ci ci: reduce examples in static builds 2020-04-17 23:34:08 +02:00
app test/trace: add performance test cases 2020-04-23 15:40:04 +02:00
buildtools eal: move common header files 2020-03-31 13:08:55 +02:00
config trace: introduce new subsystem 2020-04-23 15:39:06 +02:00
devtools ring: introduce RTS ring mode 2020-04-21 12:52:55 +02:00
doc doc: add trace library guide 2020-04-23 15:40:12 +02:00
drivers net/hns3: fix crash when flushing RSS flow rules with FLR 2020-04-21 13:57:04 +02:00
examples ethdev: add tracepoints 2020-04-23 15:40:06 +02:00
kernel eal: move OS-specific sub-directories 2020-03-31 13:08:55 +02:00
lib mempool: add tracepoints 2020-04-23 15:40:11 +02:00
license eal: move OS-specific sub-directories 2020-03-31 13:08:55 +02:00
mk baseband/fpga_5gnr_fec: add PMD for FPGA 5GNR FEC 2020-04-19 22:33:07 +02:00
usertools usertools: fix telemetry client with python 3 2020-02-16 22:23:20 +01:00
.editorconfig devtools: add EditorConfig file 2020-02-22 21:05:22 +01:00
.gitattributes improve git diff 2016-11-13 15:25:12 +01:00
.gitignore doc: add feature matrix table for bbdev 2020-04-19 22:34:26 +02:00
.travis.yml ci: fix telemetry dependency in Travis 2020-04-10 10:03:22 +02:00
ABI_VERSION version: 20.05-rc0 2020-02-27 12:02:19 +01:00
GNUmakefile test: move to app directory 2019-02-26 15:29:27 +01:00
MAINTAINERS doc: add trace library guide 2020-04-23 15:40:12 +02:00
Makefile remove blank lines at end of file 2019-11-26 00:12:08 +01:00
meson_options.txt trace: introduce new subsystem 2020-04-23 15:39:06 +02:00
meson.build eal: move OS-specific sub-directories 2020-03-31 13:08:55 +02:00
README license: introduce SPDX identifiers 2018-01-04 22:41:38 +01:00
VERSION version: 20.05-rc0 2020-02-27 12:02:19 +01:00

DPDK is a set of libraries and drivers for fast packet processing.
It supports many processor architectures and both FreeBSD and Linux.

The DPDK uses the Open Source BSD-3-Clause license for the core libraries
and drivers. The kernel components are GPL-2.0 licensed.

Please check the doc directory for release notes,
API documentation, and sample application information.

For questions and usage discussions, subscribe to: users@dpdk.org
Report bugs and issues to the development mailing list: dev@dpdk.org