[PATCH] graph: fix node shrink
Jerin Jacob
jerinjacobk at gmail.com
Mon Jan 23 14:32:48 CET 2023
On Thu, Jan 19, 2023 at 4:02 PM David Marchand
<david.marchand at redhat.com> wrote:
>
> If the node id check failed, graph_lock was not taken before releasing.
Thanks for the fix.
Why not this oneline fix?
[main][dpdk.org] $ git diff
diff --git a/lib/graph/node.c b/lib/graph/node.c
index fc6345de07..89cdcf0207 100644
--- a/lib/graph/node.c
+++ b/lib/graph/node.c
@@ -293,8 +293,8 @@ rte_node_edge_shrink(rte_node_t id, rte_edge_t size)
rte_edge_t rc = RTE_EDGE_ID_INVALID;
struct node *node;
- NODE_ID_CHECK(id);
graph_spinlock_lock();
+ NODE_ID_CHECK(id);
STAILQ_FOREACH(node, &node_list, next) {
if (node->id == id) {
>
> Fixes: c59dac2ca14a ("graph: implement node operations")
> Cc: stable at dpdk.org
>
> Signed-off-by: David Marchand <david.marchand at redhat.com>
> ---
> lib/graph/node.c | 8 ++++----
> 1 file changed, 4 insertions(+), 4 deletions(-)
>
> diff --git a/lib/graph/node.c b/lib/graph/node.c
> index fc6345de07..149414dcd9 100644
> --- a/lib/graph/node.c
> +++ b/lib/graph/node.c
> @@ -300,16 +300,16 @@ rte_node_edge_shrink(rte_node_t id, rte_edge_t size)
> if (node->id == id) {
> if (node->nb_edges < size) {
> rte_errno = E2BIG;
> - goto fail;
> + } else {
> + node->nb_edges = size;
> + rc = size;
> }
> - node->nb_edges = size;
> - rc = size;
> break;
> }
> }
>
> -fail:
> graph_spinlock_unlock();
> +fail:
> return rc;
> }
>
> --
> 2.39.0
>
More information about the stable
mailing list