From: Youngjae Cho Date: Thu, 16 Mar 2023 03:54:51 +0000 (+0900) Subject: Revert "resource-manager: Relocate add_resource() in create_resource()" X-Git-Tag: accepted/tizen/unified/20230317.081018~1 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=ba823a0294b55f2eefa317a069578c6c64a26f8d;p=platform%2Fcore%2Fsystem%2Flibsyscommon.git Revert "resource-manager: Relocate add_resource() in create_resource()" This reverts commit 5880b22f3e55b60c7b9326c51012b95f05416145. The resource instance must be added to hashtable prior to the operation driver->ops.create(resource->id). As this operation passes resource id, it is possible that the operation work based on that resource id, which denotes resource instance and must have been registered to hashtable. Therefore, add_resource() must be followed by driver->ops.create(). Change-Id: I05b8a9f85741313c14201501fe6bbc4a5b8c7233 Signed-off-by: Youngjae Cho --- diff --git a/src/resource-manager/resource-manager.c b/src/resource-manager/resource-manager.c index a870a0b..b3f3b9d 100644 --- a/src/resource-manager/resource-manager.c +++ b/src/resource-manager/resource-manager.c @@ -248,6 +248,12 @@ create_resource(int *resource_id, int resource_type, int instance_type) return -ENOMEM; } + ret = add_resource(resource); + if (ret < 0) { + free_resource(resource); + return ret; + } + for (i = 0; i < resource->num_attrs; i++) resource->attrs_value[i].type = driver->attrs[i].type; @@ -265,14 +271,6 @@ create_resource(int *resource_id, int resource_type, int instance_type) *resource_id = resource->id; - ret = add_resource(resource); - if (ret < 0) { - if (driver->ops.delete) - driver->ops.delete(resource->id); - free_resource(resource); - return ret; - } - return 0; }