aboutsummaryrefslogtreecommitdiffstats
path: root/debian/patches/ubuntu-backport-39-lpm-fix-freeing-in-compatibility-mode.patch
diff options
context:
space:
mode:
authorChristian Ehrhardt <christian.ehrhardt@canonical.com>2016-07-06 11:01:55 +0200
committerChristian Ehrhardt <christian.ehrhardt@canonical.com>2016-07-06 16:15:21 +0200
commitc232c8f7c34280780aa153ffc6efa643898cbe7e (patch)
treeeb25745056843224da43fa83ba6b7a52e508d0a6 /debian/patches/ubuntu-backport-39-lpm-fix-freeing-in-compatibility-mode.patch
parent809f08006d56e7ba4ce190b0a63d44acf62d8044 (diff)
adapt packaging to the import of 16.07-rc1
This includes dropping already accepted and forward-porting the other patches. Change-Id: I10fc222d49c99b20b23fe8bd8882b2e555259823 Signed-off-by: Christian Ehrhardt <christian.ehrhardt@canonical.com>
Diffstat (limited to 'debian/patches/ubuntu-backport-39-lpm-fix-freeing-in-compatibility-mode.patch')
-rw-r--r--debian/patches/ubuntu-backport-39-lpm-fix-freeing-in-compatibility-mode.patch52
1 files changed, 0 insertions, 52 deletions
diff --git a/debian/patches/ubuntu-backport-39-lpm-fix-freeing-in-compatibility-mode.patch b/debian/patches/ubuntu-backport-39-lpm-fix-freeing-in-compatibility-mode.patch
deleted file mode 100644
index 4224cad8..00000000
--- a/debian/patches/ubuntu-backport-39-lpm-fix-freeing-in-compatibility-mode.patch
+++ /dev/null
@@ -1,52 +0,0 @@
-Description: backport of dpdk 16.07 fix 7cc3f2c2
-
-Author: Christian Ehrhardt <christian.ehrhardt@canonical.com>
-Date: Tue Apr 12 15:49:27 2016 +0200
-
- lpm: fix freeing in compatibility mode
-
- Back then when we fixed the missing free lpm I was to quickly to say yes
- if it applies not only to the lpm6 but also to all of the lpm code.
-
- It turned out to not apply to all of them. In rte_lpm_create_v20 there
- is an unexpected fused allocation:
- mem_size = sizeof(*lpm) + (sizeof(lpm->rules_tbl[0]) * max_rules);
- [...]
- lpm = (struct rte_lpm_v20 *)rte_zmalloc_socket(mem_name,mem_size,
- RTE_CACHE_LINE_SIZE, socket_id);
-
- That causes lpm->rules_tbl not to have an own struct malloc_elem that
- can be derived via RTE_PTR_SUB(data, MALLOC_ELEM_HEADER_LEN) in
- malloc_elem_from_data.
- Due to that the rte_lpm_free_v20 accidentially misderives the elem and
- assumes it is ELEM_FREE triggering in malloc_elem_free
- if (!malloc_elem_cookies_ok(elem) || elem->state !=
- return -1;
-
- While it seems counter-intuitive the way to properly remove rules_tbl in
- the old fused allocation style of rte_lpm_free_v20 is to not remove it.
-
- The newer rte_lpm_free_v1604 is safe because in rte_lpm_create_v1604
- rules_tbl is a separate allocation.
-
- Fixes: d4c18f0a1d5d ("lpm: fix missing free")
-
- Signed-off-by: Christian Ehrhardt <christian.ehrhardt@canonical.com>
- Acked-by: Olivier Matz <olivier.matz@6wind.com>
-
-Forwarded: yes (in DPDK 16.07)
-Author: Christian Ehrhardt <christian.ehrhardt@canonical.com>
-Last-Update: 2016-05-17
-
-Index: dpdk/lib/librte_lpm/rte_lpm.c
-===================================================================
---- dpdk.orig/lib/librte_lpm/rte_lpm.c
-+++ dpdk/lib/librte_lpm/rte_lpm.c
-@@ -373,7 +373,6 @@ rte_lpm_free_v20(struct rte_lpm_v20 *lpm
-
- rte_rwlock_write_unlock(RTE_EAL_TAILQ_RWLOCK);
-
-- rte_free(lpm->rules_tbl);
- rte_free(lpm);
- rte_free(te);
- }