From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail-wm1-f44.google.com (mail-wm1-f44.google.com [209.85.128.44]) (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 17E5F3E9C0D for ; Wed, 19 Aug 2026 22:43:05 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.128.44 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1787179386; cv=none; b=aMlS6rSjYKkmcO4y7kJPDrbDtE+uq/ogtqpi9inAxyNPKzDGQnulOUR6Tl+qVDiA0mQ5U+qNpzHxpo5EX1+m8io1aISUi0lUxpG+Pd6lcnrgo+y1yV0K3ufGbFr5Pgst8ppa1rdLTWIN09+HRQZY5aLRi1T+edzybpGclOXWs2E= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1787179386; c=relaxed/simple; bh=2UF/dpEtNwUpXIy2/lsLjKtKkOc89V1LHpzMmRW/PXY=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=SQwXlLrm4FcJhHkXIPqSq66zDGi+Un0rs5C83WK8pKx5j/bUknFzYWcGCsPySVMb8fqDgxDC4QEoCpjZRyKj3PX7InDuvBwEV3qyYhpwG4GQv98lBbnllxToRuziHx3KY3rahjzioagu01O8h0Qf6XFh/1e/PArYeiyB9QxOo+c= 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=IiRnFXjl; arc=none smtp.client-ip=209.85.128.44 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="IiRnFXjl" Received: by mail-wm1-f44.google.com with SMTP id 5b1f17b1804b1-4954a9e8490so2326315e9.1 for ; Wed, 19 Aug 2026 15:43:04 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1787179383; x=1787784183; 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:content-type; bh=3M8fODVTfcIR6x1BvOAoZIGong7qKVQ1WDu7Gk51RQs=; b=IiRnFXjlT192IJiaPsi5tX4fJIV/6L+/EPA9rxNKGssq2Fn90xYVETYiSjlnejToBX 1Jt0I06KbYthVi2fyC9cDrqHz0Df/XXRU9+3kEhqRnykbwLsZxAgsvpK6Tp/ojR+63gL yWVvJPVmos3AFpQAPOX23NNUjMfh9SEUDuG/XHHj5wc5AH8C26k/sP56kY7PxsZmruhe MeF2aZ7QT11Sk0Mq9K49V+RxVX6dlLfFxo5lB+RqUdHu2pEGoTS6frCFA27pZHipDNvu E3JAs3n5tsL02KrKwvNBxLJDIvhXwzXd0U1mfU9AyhptLAkcFncozyXFo17/BqsvMQZd t+7A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1787179383; x=1787784183; 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:content-type; bh=3M8fODVTfcIR6x1BvOAoZIGong7qKVQ1WDu7Gk51RQs=; b=Se2PYaGVPaosauuMiGWo/X4I22/sHwG8xsKOimLoJdAm753mJTwDaGJ9Twz/kMgvYU +Bz0Aw8cNjJpfW7OShP7oRJzMG1CLgdvAOI9PDuHLtlbKN0TwMr0caYiVF8eUcpblGu/ ISWHMRzlyCZJAnNZt+9DYgvKdCe++IN5JEgGIEIl90unRUp595p4fGzy7QUoAhHYQ4iG FcPZoBQVhZELhAO1wDbKe7FLNbf8QhoNnBxLAxu6o0lc83KKD6bMm7u/hpViQgo6LCIb 0mqRaokBEg0eiLu6u5IUBRCt7sFUkiFZkYgOZ2VDJAeJIlSCzyaf6h4SbKVAtmHSYkbE 2vSA== X-Forwarded-Encrypted: i=1; AHgh+RqRg9PBFUb2NsEIxgUhH5QPst35++pp/cvdKVO86u4qSMSk2mpNqc1utHMuNhLjga74RpENQIu9OqZuWYM=@vger.kernel.org X-Gm-Message-State: AOJu0YzRT/84rPZn/lQ74J5FtJwkqK0V1SjTY/+qFaQDy/letic16iKy 50IGDa38yBPGtTXyr/+OSeFoXVA/Lyydo7dd9n94JtlTySH45cikOMhV X-Gm-Gg: AR+sD13LSdJAlaIx/1Ky63vsKUEw/ABd9WkXXiiXk3zz2ptl9VrQeuphbmVcQHXIJo9 dVvpMdhuE+wPh4CK+r72xrn0NZyPX7wpCUFaNzg2luSgpq/b4E1218vi4wGo0Dgic0iT7Ql57vA uhdwpYcbNmGRB57+1XbiZN2aayV2AKBS/XO/HWZd9sVCTuftm3G/TM7ndhnOJyHwafEQRAaKrEa RgXCT1lLN6TMq14yUn2ylRqfXjVIDIGWW6Cs/jGYBOjlkZKZNReJDaytoFtt4N/5eWQhNlfMtHP h0OAEwSKaPp6FT3MalFui1/GVG2on9bsf/iV2owYWeXXAKTfvLndoAqv/oR/FNIKgVQ9PEqN4De z05snfW0D1vAjoy0Vjs0J6yD+qPnow4fEX8LtjeQW2h1CE/QcNEfrxNOJyyRtvrps0E+3mZtVb4 4B+SZt1I6n51t1sZnHGv4TsIsJXghb/4275OQsUbNEGttZycAh2ecMGqZbCrRqLqc51unYSLMU+ LlgtHRE9L9PJJQb2zL6+ypxzTzFyXQEDb5/8lzLB1OBWtZohfsNf3KtW07CD5MAcHUdreEyoxM5 +mKH3VaDyUbQl7jggbnxWt6/QDWRi2177Hf2rB98NQWO0XnLUmLV6Dmepl9cJ/FkYOE= X-Received: by 2002:a05:600c:4309:b0:499:60e5:248a with SMTP id 5b1f17b1804b1-499b06ea247mr24837485e9.4.1787179383250; Wed, 19 Aug 2026 15:43:03 -0700 (PDT) Received: from localhost.localdomain (dynamic-2a02-3100-ae9e-1d01-58d3-443d-4fa6-01cd.310.pool.telefonica.de. [2a02:3100:ae9e:1d01:58d3:443d:4fa6:1cd]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-482b1450e61sm8553317f8f.13.2026.08.19.15.43.01 (version=TLS1_3 cipher=TLS_CHACHA20_POLY1305_SHA256 bits=256/256); Wed, 19 Aug 2026 15:43:02 -0700 (PDT) From: Karl Mehltretter To: Marc Zyngier , Oliver Upton , kvmarm@lists.linux.dev Cc: Karl Mehltretter , Fuad Tabba , Joey Gouly , Steffen Eiden , Suzuki K Poulose , Zenghui Yu , Catalin Marinas , Will Deacon , Paolo Bonzini , Shuah Khan , Eric Auger , Christoffer Dall , linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, kvm@vger.kernel.org, linux-kselftest@vger.kernel.org, stable@vger.kernel.org Subject: [PATCH v2 2/5] KVM: arm64: vgic-v3: Reset assignments after failed region setup Date: Thu, 20 Aug 2026 00:42:26 +0200 Message-Id: <20260819224229.82948-3-kmehltretter@gmail.com> X-Mailer: git-send-email 2.39.5 (Apple Git-154) In-Reply-To: <20260819224229.82948-1-kmehltretter@gmail.com> References: <20260819224229.82948-1-kmehltretter@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: 8bit A REDIST_REGION write can fail after redistributors from earlier regions have been registered. The rollback removes their iodevs from the MMIO bus but leaves rdreg and base_addr set. It also leaves free_index unchanged. A retry sees base_addr set and skips registration, leaving the redistributors absent from the MMIO bus. Make redistributor unregistration clear the cached assignment and return the region slot. The failing vCPU already unassigns itself, so the existing rollback resets the vCPUs processed before the failure. A retry can then assign and register all redistributors again. Fixes: c011f4ea106b ("KVM: arm/arm64: Check vcpu redist base before registering an iodev") Suggested-by: Marc Zyngier Cc: stable@vger.kernel.org Assisted-by: Codex:gpt-5.6-sol Signed-off-by: Karl Mehltretter --- arch/arm64/kvm/vgic/vgic-mmio-v3.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/arch/arm64/kvm/vgic/vgic-mmio-v3.c b/arch/arm64/kvm/vgic/vgic-mmio-v3.c index c75caadbd1d3..331d203acb43 100644 --- a/arch/arm64/kvm/vgic/vgic-mmio-v3.c +++ b/arch/arm64/kvm/vgic/vgic-mmio-v3.c @@ -852,6 +852,7 @@ void vgic_unregister_redist_iodev(struct kvm_vcpu *vcpu) struct vgic_io_device *rd_dev = &vcpu->arch.vgic_cpu.rd_iodev; kvm_io_bus_unregister_dev(vcpu->kvm, KVM_MMIO_BUS, &rd_dev->dev); + vgic_unassign_redist_iodev(vcpu); } static int vgic_register_all_redist_iodevs(struct kvm *kvm) @@ -869,7 +870,7 @@ static int vgic_register_all_redist_iodevs(struct kvm *kvm) } if (ret) { - /* The current c failed, so iterate over the previous ones. */ + /* The failing vCPU has no assignment to undo. */ int i; for (i = 0; i < c; i++) { -- 2.39.5 (Apple Git-154)