resource-manager: fix free_resource() 49/286649/3
authorYoungjae Cho <y0.cho@samsung.com>
Wed, 11 Jan 2023 01:56:27 +0000 (10:56 +0900)
committerYoungjae Cho <y0.cho@samsung.com>
Wed, 11 Jan 2023 08:13:32 +0000 (17:13 +0900)
Change-Id: I15855cc6ce7eef4859a94fbc0d959d91abdd0c06
Signed-off-by: Youngjae Cho <y0.cho@samsung.com>
src/resource-manager/resource-manager.c

index 36ec43f5ddf25c635d3cda145e92248fb2e71ead..629df2147607538ec4971570bb5ddfdd6ca8cc8e 100644 (file)
@@ -23,7 +23,6 @@
 #include "resource-manager.h"
 #include "resource-type.h"
 
-#define RESOURCE_ATTR_MASK                     (ULLONG_MAX)
 #define BIT64_INDEX(id)                                (63 - __builtin_clzll(id))
 #define RESOURCE_ATTR_INDEX(id)                        BIT64_INDEX(id)
 #define RESOURCE_CTRL_INDEX(id)                        BIT64_INDEX(id)
@@ -94,10 +93,13 @@ static int alloc_resource_id(void)
 
 static void free_resource(struct syscommon_resman_resource *resource)
 {
-       if (!resource->name)
-               free(resource->name);
-       if (!resource->attrs_value)
-               free(resource->attrs_value);
+       free(resource->name);
+       resource->name = NULL;
+
+       unset_resource_attr_interest(resource, resource->attr_interest);
+       free(resource->attrs_value);
+       resource->attrs_value = NULL;
+
        resource->attrs = NULL;
        resource->num_attrs = 0;
 
@@ -114,8 +116,6 @@ static void delete_resource(void *data)
        if (resource->driver && resource->driver->ops.delete)
                resource->driver->ops.delete(resource->id);
 
-       unset_resource_attr_interest(resource, RESOURCE_ATTR_MASK);
-
        free_resource(resource);
 }