From: Tobias Brunner Date: Thu, 20 May 2021 07:46:55 +0000 (+0200) Subject: trap-manager: Add support to handle acquires for per-CPU SAs X-Git-Tag: 6.0.2dr1~5^2~13 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=4a595508b792838c9f4eff0ade5481b23fb22afd;p=thirdparty%2Fstrongswan.git trap-manager: Add support to handle acquires for per-CPU SAs --- diff --git a/src/libcharon/sa/trap_manager.c b/src/libcharon/sa/trap_manager.c index c550695a46..17953010a1 100644 --- a/src/libcharon/sa/trap_manager.c +++ b/src/libcharon/sa/trap_manager.c @@ -159,11 +159,12 @@ static void destroy_acquire(acquire_t *this) CALLBACK(acquire_by_reqid, bool, acquire_t *this, va_list args) { - uint32_t reqid; + uint32_t reqid, cpu; sec_label_t *label; - VA_ARGS_VGET(args, reqid, label); - return this->reqid == reqid && sec_labels_equal(this->data->label, label); + VA_ARGS_VGET(args, reqid, cpu, label); + return this->reqid == reqid && this->data->cpu == cpu && + sec_labels_equal(this->data->label, label); } CALLBACK(acquire_by_dst, bool, @@ -573,7 +574,8 @@ METHOD(trap_manager_t, acquire, void, else { this->acquires->find_first(this->acquires, acquire_by_reqid, - (void**)&acquire, reqid, data->label); + (void**)&acquire, reqid, data->cpu, + data->label); } if (!acquire) { @@ -643,7 +645,7 @@ METHOD(trap_manager_t, acquire, void, { child_init_args_t args = { .reqid = allocated_reqid, - .cpu = CPU_ID_MAX, + .cpu = data->cpu, .src = data->src, .dst = data->dst, .label = data->label,