| 87063aaf | 22-Mar-2022 |
Mike Pattrick <[email protected]> |
net/i40e: populate error in flow director parser
Errors from i40e_flow_parse_fdir_pattern() can bubble up to rte_flow_create. If rte_flow_error is not initialized a caller may dereference error->mes
net/i40e: populate error in flow director parser
Errors from i40e_flow_parse_fdir_pattern() can bubble up to rte_flow_create. If rte_flow_error is not initialized a caller may dereference error->message. This may be uninitialized memory, leading to a segemntation fault.
Fixes: 4a072ad43442 ("net/i40e: fix flow director config after flow validate") Cc: [email protected]
Signed-off-by: Mike Pattrick <[email protected]> Reviewed-by: David Marchand <[email protected]>
show more ...
|
| 778602fe | 15-Sep-2021 |
Ruifeng Wang <[email protected]> |
net/i40e: fix risk in descriptor read in NEON Rx
Rx descriptor is 16B/32B in size. If the DD bit is set, it indicates that the rest of the descriptor words have valid values. Hence, the word contain
net/i40e: fix risk in descriptor read in NEON Rx
Rx descriptor is 16B/32B in size. If the DD bit is set, it indicates that the rest of the descriptor words have valid values. Hence, the word containing DD bit must be read first before reading the rest of the descriptor words.
In NEON vector PMD, vector load loads two contiguous 8B of descriptor data into vector register. Given vector load ensures no 16B atomicity, read of the word that includes DD field could be reordered after read of other words. In this case, some words could contain invalid data.
Read barrier is added after read of qword1 that includes DD field. And qword0 is reloaded to update vector register. This ensures that the fetched data is correct.
Testpmd single core test on N1SDP/ThunderX2 showed no performance drop.
Fixes: ae0eb310f253 ("net/i40e: implement vector PMD for ARM") Cc: [email protected]
Signed-off-by: Ruifeng Wang <[email protected]> Reviewed-by: Honnappa Nagarahalli <[email protected]>
show more ...
|
| c454435d | 19-Oct-2021 |
Leyi Rong <[email protected]> |
net/i40e: fix generic build on FreeBSD
The common header file for vectorization is included in multiple files, and so must use macros for the current compilation unit, rather than the compiler-capab
net/i40e: fix generic build on FreeBSD
The common header file for vectorization is included in multiple files, and so must use macros for the current compilation unit, rather than the compiler-capability flag set for the whole driver. With the current, incorrect, macro, the AVX512 or AVX2 flags may be set when compiling up SSE code, leading to compilation errors. Changing from "CC_AVX*_SUPPORT" to the compiler-defined "__AVX*__" macros fixes this issue. In addition, splitting AVX-specific code into the new i40e_rxtx_common_avx.h header file to avoid such bugs.
Bugzilla ID: 788 Fixes: 0604b1f2208f ("net/i40e: fix crash in AVX512") Cc: [email protected]
Signed-off-by: Leyi Rong <[email protected]> Signed-off-by: Bruce Richardson <[email protected]> Reviewed-by: Ferruh Yigit <[email protected]>
show more ...
|