From patchwork Tue Jul 23 11:14:05 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= X-Patchwork-Id: 1963816 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@legolas.ozlabs.org Authentication-Results: legolas.ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=linaro.org header.i=@linaro.org header.a=rsa-sha256 header.s=google header.b=rOPMod1u; dkim-atps=neutral Authentication-Results: legolas.ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=nongnu.org (client-ip=209.51.188.17; helo=lists.gnu.org; envelope-from=qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org; receiver=patchwork.ozlabs.org) Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-ECDSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by legolas.ozlabs.org (Postfix) with ESMTPS id 4WSvhM2TMPz20FM for ; Tue, 23 Jul 2024 21:15:29 +1000 (AEST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1sWDTX-0008WU-Jr; Tue, 23 Jul 2024 07:14:35 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1sWDTT-0008Ne-Ra for qemu-devel@nongnu.org; Tue, 23 Jul 2024 07:14:31 -0400 Received: from mail-wm1-x336.google.com ([2a00:1450:4864:20::336]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1sWDTJ-0006OV-Ef for qemu-devel@nongnu.org; Tue, 23 Jul 2024 07:14:24 -0400 Received: by mail-wm1-x336.google.com with SMTP id 5b1f17b1804b1-42793fc0a6dso38564665e9.0 for ; Tue, 23 Jul 2024 04:14:21 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1721733259; x=1722338059; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=mzdAeTmVzX5BA7pT+fF+VfrDZygQBDin0XNPxTXT+RQ=; b=rOPMod1u3Bedw6L3xu1mo9/cpuVyApsKS0//4nf77Vp8kz4z9QhzLHJkzoAPspbOdK WuTFP4AI+DfAUWEMvlsVfEQBILVELxqlMyZKsmy/ZMQx5L66UF/v1oDwVAMC+P4epbSq WU+uJQcO4R7/wuu5nkuNHQb1hUOMpANeEyRmqIKszvarvNMbdpeUfvxYAhTKoytYbRtP GV5b6lEiQQ/XxBwuVuEbpGj26eEx60VGy4hFMS41L26TTOTmd/ZjPWySy+lC2iXGv8WK V69K5K66qAlpoU5rq6azJ4BjbGsYeD+1XTRFduKu/2bN/JWiyRds2nJgBSLELLqNjtz9 dvvQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1721733259; x=1722338059; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=mzdAeTmVzX5BA7pT+fF+VfrDZygQBDin0XNPxTXT+RQ=; b=JwhiCsXgz0zuFyFNej49Tig5SrqEfSDR6WpIVITDfHzOI6m5ln3x8QozWXS/jK2rnz CSpknSSYzhdGvJo0Rsiqj9bLNDFS0R1E2eH5KXaSnAIpOR9sxYpaXTsbovO1d8lVeku8 AxwrIVUUoaxOeOh7AGHA0tIpwGldOzYnaIFBQldr3rVxWI6QsUOFxVE/VMNhDuEjfIX8 7CUC+Pdf8Aur0xjEJB0FUU8e3Vk8VvcbiQUwyCUXVwknIFh9rDRKvS2iL2O4kDN8yKG3 ICOX1HE/EM/XEQOP+x3M+u4tgfddxDh3IPAl74JR1knW7QItkThRfVbO/Kw8qoy55cVk BqRA== X-Gm-Message-State: AOJu0YwrknkUAqi/Bk3oB30E4jU8q4Nw6IAv8PHtPwMSnv6MTNi2wxNT 6oZQRHqkZN2aU8g9tIlMuoNcnQNJSuNHdZn3Je2sqcoQxBtTNBtq9VQFsgGlUTwMLy+D3rpb7jD 3UMY= X-Google-Smtp-Source: AGHT+IGlWSkIIEysLGKW/3ShrI0yzetSGAdLm6xZhsixenICE0r2XqtTojMLhsBH/zwZxnxctxGR0g== X-Received: by 2002:a05:6000:507:b0:369:b838:9155 with SMTP id ffacd0b85a97d-369dee579cbmr1777349f8f.40.1721733259656; Tue, 23 Jul 2024 04:14:19 -0700 (PDT) Received: from localhost.localdomain (5.red-95-127-46.staticip.rima-tde.net. [95.127.46.5]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-368787eced0sm11128295f8f.98.2024.07.23.04.14.18 (version=TLS1_3 cipher=TLS_CHACHA20_POLY1305_SHA256 bits=256/256); Tue, 23 Jul 2024 04:14:19 -0700 (PDT) From: =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= To: qemu-devel@nongnu.org Cc: Huacai Chen , Song Gao , Jiaxun Yang , =?utf-8?q?Philippe_Mathieu-Daud?= =?utf-8?q?=C3=A9?= , qemu-stable@nongnu.org Subject: [PATCH 2/2] hw/intc/loongson_ipi: Fix resource leak Date: Tue, 23 Jul 2024 13:14:05 +0200 Message-ID: <20240723111405.14208-3-philmd@linaro.org> X-Mailer: git-send-email 2.41.0 In-Reply-To: <20240723111405.14208-1-philmd@linaro.org> References: <20240723111405.14208-1-philmd@linaro.org> MIME-Version: 1.0 Received-SPF: pass client-ip=2a00:1450:4864:20::336; envelope-from=philmd@linaro.org; helo=mail-wm1-x336.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=unavailable autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org Sender: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org Once initialised, QOM objects can be realized and unrealized multiple times before being finalized. Resources allocated in REALIZE must be deallocated in an equivalent UNREALIZE handler. Free the CPU array in loongson_ipi_unrealize() instead of loongson_ipi_finalize(). Cc: qemu-stable@nongnu.org Fixes: 5e90b8db382 ("hw/loongarch: Set iocsr address space per-board rather than percpu") Signed-off-by: Philippe Mathieu-Daudé Reviewed-by: Song Gao --- hw/intc/loongson_ipi.c | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/hw/intc/loongson_ipi.c b/hw/intc/loongson_ipi.c index e7979dbdd8b..4013f81745e 100644 --- a/hw/intc/loongson_ipi.c +++ b/hw/intc/loongson_ipi.c @@ -318,6 +318,13 @@ static void loongson_ipi_realize(DeviceState *dev, Error **errp) } } +static void loongson_ipi_unrealize(DeviceState *dev) +{ + LoongsonIPI *s = LOONGSON_IPI(dev); + + g_free(s->cpu); +} + static const VMStateDescription vmstate_ipi_core = { .name = "ipi-single", .version_id = 2, @@ -353,23 +360,16 @@ static void loongson_ipi_class_init(ObjectClass *klass, void *data) DeviceClass *dc = DEVICE_CLASS(klass); dc->realize = loongson_ipi_realize; + dc->unrealize = loongson_ipi_unrealize; device_class_set_props(dc, ipi_properties); dc->vmsd = &vmstate_loongson_ipi; } -static void loongson_ipi_finalize(Object *obj) -{ - LoongsonIPI *s = LOONGSON_IPI(obj); - - g_free(s->cpu); -} - static const TypeInfo loongson_ipi_info = { .name = TYPE_LOONGSON_IPI, .parent = TYPE_SYS_BUS_DEVICE, .instance_size = sizeof(LoongsonIPI), .class_init = loongson_ipi_class_init, - .instance_finalize = loongson_ipi_finalize, }; static void loongson_ipi_register_types(void)