Anatoly Burakov
d6cf31419e
ivshmem: avoid infinite loop when concatenating segments
This patch aligns the logic used to check for the presence of adjacent segments in has_adjacent_segments() with the logic used in cleanup_segments() when actually deciding to concatenate or not a pair of segments. Additionally, adjacent segments are no longer considered overlapping to avoid generating errors for segments that can happily coexist together. This fixes an infinite loop that happened when segments where adjacent in their physical or virtual addresses but not in their ioremap addresses: has_adjacent_segments() reported the presence of adjacent segments while cleanup_segments() was not considering them for concatenation, resulting in an infinite loop since the result of has_adjacent_segments() is used in the decision to continue looping in cleanup_segments(). Signed-off-by: David Verbeiren <david.verbeiren@intel.com> Signed-off-by: Anatoly Burakov <anatoly.burakov@intel.com>
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 license for the core libraries and drivers. The kernel components are GPLv2 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
Description
Languages
C
99.1%
Meson
0.5%
Python
0.2%
Shell
0.1%