From nobody Mon May 25 02:42:36 2026 Received: from mail-qt1-f171.google.com (mail-qt1-f171.google.com [209.85.160.171]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 41B8C348C41 for ; Tue, 19 May 2026 13:50:59 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.160.171 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1779198660; cv=none; b=GihUn0WydxbyhYKz6CUWokyKG4LrgOYxbFycKw/WQzxxD5TO5uTYp42xbx2XevascZeKbX4U3zTBwx7nlq5qkDGf5/6Jst0VgNS5NhkKQscMMcvLf0iIsq0pZcFCOONpfBYpNsZXhmU2JTOMZ8lO6Dxh3ufgdlJ83rl+Xc6q98Q= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1779198660; c=relaxed/simple; bh=bG/QhvrDzqOyTT25ScqRVuCKWen5BPNvWMdOdivWRMA=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=RqP7KOyNsETu87Xd5+W1sdam3v08T7Rpyd8XCRiwFXKkU4HkY6V44SqZGvElJIIGaHFw3jtVAg7QU5PegvI+Dfta1TeR+ellhtV6vHthuh0vv3Bw++oaj5ZHwFwU06BCgVsios+cBhjwrvrgSvI2Oj9x51y7dRf7QokiW4foTxo= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=GpAJtIWq; arc=none smtp.client-ip=209.85.160.171 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="GpAJtIWq" Received: by mail-qt1-f171.google.com with SMTP id d75a77b69052e-50e5c7eb565so42689691cf.3 for ; Tue, 19 May 2026 06:50:59 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1779198658; x=1779803458; darn=vger.kernel.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=yUcArKvUj1jkcs2OK6MvhEPcHSKMY4c3Dv90/tfztKo=; b=GpAJtIWqlaPedXXMydnT00OZTNIjv+WCoN11VCtC76YjXIj3s4SbneP/We2Wxylluw B1ddqzLhIjV/eLzYNe7/LntPCPfg+T+KlY4wvySWJuav198Bfda3N/Qs/lcOqAtWNP9a zmeCQH+UigUztUgAswslwh9AStbMYkTctecUF/dpwGTqN73CO8zaJIXpCuaaETkGskq5 zo4XZ3298eANsmXOfXopXH8IwdkbK34k4BeTBbAZGl7DT2I9UTgXDHsXIpSdlxUt1Ld6 UGU0j/rHu9u2+JodkwVKacqHDuceItlafFImLhtcirLMzgwfEjLMXsoixnZPiVK6KILG vN5A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1779198658; x=1779803458; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=yUcArKvUj1jkcs2OK6MvhEPcHSKMY4c3Dv90/tfztKo=; b=S7AxUyUIYF8kZJkglvJn8ISTu05j/L2028Fwiijj6zClC2X75CRvbxHLagfVsCHUO7 3o7IaRmPsF9pUI1SLTyTmnaHj/ow/ZPRnj2PddGddt2pKlmHIcf0xynfVTYXzYFvy3qf NPrhn5uqVPE9qGNV5NwRX6Nw942arkOc69fQMWmvlEW7ib8xLHjcS9t+jlVe5q9t+D9G SCSHdNMCAIGfcDMF/iNGNwmpmY3Y9t/uQW96rn8qyVJ1r2hJniiRICReKiX7iL9n9pBs rT6cBPbiZP7oJFHBuP/Fb/t9JgWUA2bpt22wj29UIEaSGMpKW7pAfDg50igirI+xN9xy UOUw== X-Forwarded-Encrypted: i=1; AFNElJ/9bIYVhQ99akjOSJMArTlz0wlSTCbJwOgFCnBanRTLfVhA5Zmba3QTYKG2kUJs0/Uklf7NIhRGa+reXp8=@vger.kernel.org X-Gm-Message-State: AOJu0YyNFdQxEsyf8pPTlO0XHopJUn365Pb56su/7aCQoxenXs6YMPfw GIeeUsQ98f3khE5Ik+7vRt26XEmIqMzSc5AXmVPbmhtIdvkTeFaFE9fZ X-Gm-Gg: Acq92OEb5NAQMb9eUVALJj8lqvAKm90e8AJ+mLAqmAF56IkXhtvkaQ4NPtw5+ox23/W sWLA0eh2F9O4nVv3Z/X3RIr1rSbQ5Gw4yRyXUYU+Ih0kwuVWDlCWIwZmGbAet7m1+7P91OFng6u kchWpmUU6WpFwPCDjpEc8hrbnaBKNs5CUYvZmCCKxH0eFDjOpcHR+ypUBlw7naL8hugcrCJFLg+ gAS6ZxaEmLYFeSH3kUxpTuvalKwXYcQuUOCAYK3nRlmlqHNGmuEyRE9rIvsM2XqGNED6ZfGlsS6 hWgHI6zVB/go8Bn5RoaThFK04WDmeppE8UX0unlN5zzV+DPCiL5FyDfbiWf1QAZCaJ5PdEThKDe CgihyCJU+MyPaxpvyrCwOgfloik0c4CKXOOJMw3Hycx5jPsd7qKHrcFS7HZcYk7FR/3aYYQCZL2 zEuwraWpfHDd4L1TycoHTdCyiQsYehJRlAg+MfVjK5mwt7JEDhaqdZkP+3EEm28t0Us+GrOhhFR 4adzUDwYled35cJ0ndL X-Received: by 2002:a05:622a:5e16:b0:50b:445a:4139 with SMTP id d75a77b69052e-5165a30cb12mr283906821cf.54.1779198658020; Tue, 19 May 2026 06:50:58 -0700 (PDT) Received: from server0 (c-68-48-65-54.hsd1.mi.comcast.net. [68.48.65.54]) by smtp.gmail.com with ESMTPSA id d75a77b69052e-516457da48dsm162585401cf.17.2026.05.19.06.50.56 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 19 May 2026 06:50:57 -0700 (PDT) From: Michael Bommarito To: Marc Zyngier , Oliver Upton Cc: Yao Yuan , Joey Gouly , Suzuki K Poulose , Zenghui Yu , Catalin Marinas , Will Deacon , linux-arm-kernel@lists.infradead.org, kvmarm@lists.linux.dev, linux-kernel@vger.kernel.org, stable@vger.kernel.org Subject: [PATCH v2] KVM: arm64: vgic: free private_irqs when init fails after allocation Date: Tue, 19 May 2026 09:50:42 -0400 Message-ID: <20260519135042.2219239-1-michael.bommarito@gmail.com> X-Mailer: git-send-email 2.53.0 In-Reply-To: <20260517181331.367676-1-michael.bommarito@gmail.com> References: <20260517181331.367676-1-michael.bommarito@gmail.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Companion to commit 250f25367b58 ("KVM: arm64: Tear down vGIC on failed vCPU creation"), which added the missing kvm_vgic_vcpu_destroy() call to the kvm_share_hyp() failure path in kvm_arch_vcpu_create(). The kvm_vgic_vcpu_init() failure path immediately above it has the same shape and still needs the same cleanup. Call kvm_vgic_vcpu_destroy() when kvm_vgic_vcpu_init() fails so private IRQs allocated before a redistributor iodev registration failure are released before the failed vCPU is freed. Fixes: 03b3d00a70b5 ("KVM: arm64: vgic: Allocate private interrupts on dema= nd") Cc: stable@vger.kernel.org Cc: Will Deacon Reviewed-by: Yuan Yao Assisted-by: Claude:claude-opus-4-7 Signed-off-by: Michael Bommarito --- Changes in v2: - Add the Fixes tag Marc agreed with. - Add Yao's Reviewed-by tag. - Trim the commit message. arch/arm64/kvm/arm.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/arch/arm64/kvm/arm.c b/arch/arm64/kvm/arm.c index 176cbe8baad30..5d5e2f81b9c94 100644 --- a/arch/arm64/kvm/arm.c +++ b/arch/arm64/kvm/arm.c @@ -554,8 +554,10 @@ int kvm_arch_vcpu_create(struct kvm_vcpu *vcpu) kvm_destroy_mpidr_data(vcpu->kvm); =20 err =3D kvm_vgic_vcpu_init(vcpu); - if (err) + if (err) { + kvm_vgic_vcpu_destroy(vcpu); return err; + } =20 err =3D kvm_share_hyp(vcpu, vcpu + 1); if (err) --=20 2.53.0