From f540130618e106d79b5eef0ef548d761a4585632 Mon Sep 17 00:00:00 2001 From: Jonathan Aillet Date: Fri, 11 Oct 2019 15:25:42 +0200 Subject: Unmanage all halmap before deleting hal api Unmanage all halmap before deleting hal api. This assures removing all added custom ALSA control before deleting hal api. BUG-AGL: SPEC-2893 Change-Id: Id7af6c198d3d215709e81679e4e310d24b501458 Signed-off-by: Jonathan Aillet --- src/4a-internals-hal/4a-internals-hal-api-loader.c | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/src/4a-internals-hal/4a-internals-hal-api-loader.c b/src/4a-internals-hal/4a-internals-hal-api-loader.c index c833521..a8b62c6 100644 --- a/src/4a-internals-hal/4a-internals-hal-api-loader.c +++ b/src/4a-internals-hal/4a-internals-hal-api-loader.c @@ -210,10 +210,21 @@ int InternalHalDeleteApi(afb_api_t apiHandle, struct cds_list_head *halDataListH return -1; } + err = InternalHalUnmanageAllHalMap(toDeleteHalData->internalHalData->apiHandle, + &toDeleteHalData->internalHalData->halMapListHead, + &toDeleteHalData->internalHalData->probedDevicesListHead); + if(err) { + AFB_API_ERROR(apiHandle, + "Error %i happened while trying to unmanage all halmap of '%s' hal api", + err, + toDeleteHalData->apiName); + return -2; + } + toDeleteApiName = strdup(toDeleteHalData->apiName); if(! toDeleteApiName) { AFB_API_ERROR(apiHandle, "Didn't succeed to store (allocate) 'apiName' string"); - return -2; + return -3; } err = HalUtlRemoveHalDataAndDeleteHalApi(toDeleteHalData->internalHalData->apiHandle, @@ -225,7 +236,7 @@ int InternalHalDeleteApi(afb_api_t apiHandle, struct cds_list_head *halDataListH err, toDeleteApiName); free(toDeleteApiName); - return -3; + return -4; } AFB_API_NOTICE(apiHandle, -- cgit 1.2.3-korg