From: Ahmad Fatoum <[email protected]>

Neither has users and devres doesn't reparent, so let's drop them
instead of teaching them about destructors. Internally, call
mem_set_parent() directly, which talloc_steal() just wrapped.

Assisted-by: Claude:opus-5.5
Signed-off-by: Ahmad Fatoum <[email protected]>
---
 include/talloc.h |  2 --
 lib/talloc.c     | 67 ++----------------------------------------------
 2 files changed, 2 insertions(+), 67 deletions(-)

diff --git a/include/talloc.h b/include/talloc.h
index 79a175bd5441..1f2dd346a7c1 100644
--- a/include/talloc.h
+++ b/include/talloc.h
@@ -35,8 +35,6 @@ const char *talloc_strdup_const(const void *parent, const 
char *str);
 void talloc_free_const(const void *ptr);
 
 void *talloc_parent(const void *mem);
-void talloc_steal(const void *parent, void *mem);
-void talloc_steal_children(const void *parent, void *mem);
 
 size_t talloc_total_blocks(const void *mem);
 
diff --git a/lib/talloc.c b/lib/talloc.c
index a1a7f8f0adc8..2bfbac2e9c29 100644
--- a/lib/talloc.c
+++ b/lib/talloc.c
@@ -34,7 +34,6 @@
 #include <asm/sections.h>
 #include "talloc.h"
 
-// TODO difference between set_parent and steal?
 // TODO use a bit from TLSF for extra safety to differentiate talloc
 // TODO allow leaf nodes (that have no children to be destructors!!)
 #define  is_root(hdr) (!(hdr)->prev)
@@ -69,7 +68,7 @@ static void *talloc_ctx_init(struct talloc *hdr, const void 
*parent)
        memset(hdr, 0, sizeof(*hdr));
 
        mem = hdr2mem(hdr);
-       talloc_steal(parent, mem);
+       mem_set_parent(hdr, mem2hdr(parent));
        return mem;
 }
 
@@ -261,7 +260,7 @@ void talloc_free(void *mem)
        if (ZERO_OR_NULL_PTR(mem))
                return;
 
-       talloc_steal(NULL, mem);
+       mem_set_parent(hdr, NULL);
 
        __tfree(hdr->child);
 
@@ -335,68 +334,6 @@ void mem_set_parent(struct talloc *hdr, struct talloc 
*parent_hdr)
 }
 EXPORT_SYMBOL(mem_set_parent);
 
-/**
- * talloc_steal() - Reparent talloc'ed memory chunk
- *
- * @parent: pointer to previously talloc'ed memory chunk from which this
- *          chunk depends, or NULL.
- * @mem: pointer to previously talloc'ed memory chunk.
- *
- * Change the parent of a talloc'ed memory chunk. This will affect the
- * dependencies of the entire subtree rooted at the given chunk.
- */
-void talloc_steal(const void *parent, void *mem)
-{
-       struct talloc *hdr = mem2hdr(mem);
-       struct talloc *parent_hdr = mem2hdr(parent);
-
-       mem_set_parent(hdr, parent_hdr);
-}
-EXPORT_SYMBOL(talloc_steal);
-
-/**
- * talloc_steal_children() - Remove a talloc'ed memory chunk from the 
dependency tree
- *
- * @parent: pointer to previously talloc'ed memory chunk from which this
- *          chunk's children will depend, or NULL.
- * @mem: pointer to previously talloc'ed memory chunk.
- *
- * Removing a talloc'ed memory chunk from the dependency tree takes care of its
- * children (they will depend on the specified parent).
- */
-void talloc_steal_children(const void *parent, void *mem)
-{
-       struct talloc *hdr = mem2hdr(mem);
-       struct talloc *parent_hdr = mem2hdr(parent);
-
-       if (ZERO_OR_NULL_PTR(hdr))
-               return;
-
-       talloc_steal(NULL, mem);
-
-       if (!hdr->child)
-               return;
-
-       if (parent_hdr) {
-               /* Insert mem children in front of the list of parent children. 
*/
-               if (parent_hdr->child) {
-                       struct talloc *last = hdr->child;
-
-                       while (last->next)
-                               last = last->next;
-
-                       parent_hdr->child->prev = last;
-                       last->next = parent_hdr->child;
-               }
-
-               parent_hdr->child = hdr->child;
-       }
-
-       hdr->child->parent = parent_hdr;
-       hdr->child = NULL;
-}
-EXPORT_SYMBOL(talloc_steal_children);
-
 size_t talloc_total_blocks(const void *mem)
 {
        struct talloc *hdr = mem2hdr(mem);
-- 
2.47.3


Reply via email to