From nobody Thu Apr 9 18:03:26 2026 Received: from mail-pl1-f201.google.com (mail-pl1-f201.google.com [209.85.214.201]) (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 C2DFC3EB81E for ; Tue, 3 Mar 2026 19:03:44 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.214.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1772564626; cv=none; b=Y59cmpLdETTJI4Wyhr2QK7Lpm4Inbm89+ENOC0Yf8TY5mZZ0z9wV/9H2f1VNIzHg3Z9pU8qsRGwTK9Fz+g7LSP81ZiyIUW6HuxrFCklhDqcwLJoEVXB2T/srnl+igm12O/uuG+UzraxY3/eYKiAtVrYwli5J0+t5FqOaIZQvvA0= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1772564626; c=relaxed/simple; bh=u7/13Qa3F2z+DYiu+VjB8O1ezedwn/ik7S2XPnbA6UQ=; h=Date:In-Reply-To:Mime-Version:References:Message-ID:Subject:From: To:Cc:Content-Type; b=eJYHlLx3lwF2zvSpxRrwyvbB3F/g/VQeNZjGHKzDEZZRhrFr9v+5OAmV87CDdvyPeUDXs2jUo2bhHRbbPI8dA8bamVIDumQ2fHnT/taLRBApOESJkWn6s+SF1wReaqDOnIRrhds3t+0qzEheuf2sykuWtRp24Uq9nbU8oEKwKeA= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=google.com; spf=pass smtp.mailfrom=flex--seanjc.bounces.google.com; dkim=pass (2048-bit key) header.d=google.com header.i=@google.com header.b=b42AJugh; arc=none smtp.client-ip=209.85.214.201 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=google.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=flex--seanjc.bounces.google.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=google.com header.i=@google.com header.b="b42AJugh" Received: by mail-pl1-f201.google.com with SMTP id d9443c01a7336-2ae4f27033cso24593305ad.3 for ; Tue, 03 Mar 2026 11:03:44 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20230601; t=1772564624; x=1773169424; darn=vger.kernel.org; h=cc:to:from:subject:message-id:references:mime-version:in-reply-to :date:reply-to:from:to:cc:subject:date:message-id:reply-to; bh=yz3MkihpO/3OgXiBEUXwzX0zyHyXB+v43DwfQqlp7z0=; b=b42AJughBKEH5TfXni8ocol6gvLPQvtAgGd34hmwo3BD54brWnVck2y80n2o3Eorf5 PLKQEF3WL7NajAbLvbHjPRJAvb2azW3Pc5auPEt3YCh01wyrh5pJvTNgV2/nzjDMkhvv MJF1Mf+eYbm0NaBrSIzMhidTkhBz5pjdYVpz8wm+F27a5pYKcu554VpLvqAPXNgFtiqU d2fTrCiLumXOmFhNqjC9Ng7+dP/nhI53T6D9gnwvg6ZexN5yN6N1NuOXe9h+OnO6Hxgb ZNPj5VOutSI2jB9aJblLImdjM6rCq7UlGyDc4LY+eshel0JcEaNKSU/0Z/2nFym+8t/o 9ucw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1772564624; x=1773169424; h=cc:to:from:subject:message-id:references:mime-version:in-reply-to :date:reply-to:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=yz3MkihpO/3OgXiBEUXwzX0zyHyXB+v43DwfQqlp7z0=; b=q1wSej1jQAvZJzcRNbrbDmLdOrSuR1UzBPavlw9cvNUTPlCwTyEWfoozRhX/8nQVp7 Q/Z+mkuWyULtyPHgTcPDIVBdKyk4FyP/EZIQN/yLj+Nxftd7mWA8XGEv+ggohnTCVrOv NKcTa2Jnh6eAJDSnCO7vNL8Q98p+Af5WS6z4IpjYALY90Ebpn8iBhg2W0hbp68iggsVQ NcXNipQgy8a1lnt0VamzmqVcx21bA1fVudW4QruBzTU8oFsQTA+B+PZLQ1bp4Y6Km+SF 3XqifrqJzoFSr17J5NvLAeoiQq3CPjLtOpGWvAYdmOsMJZBz2dD9DJyQ68dUOdy4QIb6 wUcA== X-Forwarded-Encrypted: i=1; AJvYcCUsprN7L1PkPDUsdlQSh6e8lTmWSYXEijWqTiS4nE4W0rJUjOPVRypFtYCET8i5nHf1DvIV48lnxNp7Ryk=@vger.kernel.org X-Gm-Message-State: AOJu0YzUrj0mD/phwvAf8PsunnGHV+Z/CxjKALPYq7be26548IdO+g8u hRlHTIawEBY3wfWbMAuGomx97csweXqQ4hfIZ64PqRlis/0ugLP0m62hLcRoOMxroElyu63hJqi +6iSx4g== X-Received: from plcm18.prod.google.com ([2002:a17:902:f212:b0:2ae:5419:3a0a]) (user=seanjc job=prod-delivery.src-stubby-dispatcher) by 2002:a17:903:1aad:b0:2a9:47d0:12cb with SMTP id d9443c01a7336-2ae2e401dabmr174603315ad.22.1772564624033; Tue, 03 Mar 2026 11:03:44 -0800 (PST) Reply-To: Sean Christopherson Date: Tue, 3 Mar 2026 11:03:38 -0800 In-Reply-To: <20260303190339.974325-1-seanjc@google.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: Mime-Version: 1.0 References: <20260303190339.974325-1-seanjc@google.com> X-Mailer: git-send-email 2.53.0.473.g4a7958ca14-goog Message-ID: <20260303190339.974325-2-seanjc@google.com> Subject: [PATCH 1/2] KVM: PPC: e500: Fix build error due to using kmalloc_obj() with wrong type From: Sean Christopherson To: Madhavan Srinivasan Cc: linuxppc-dev@lists.ozlabs.org, kvm@vger.kernel.org, linux-kernel@vger.kernel.org, Kees Cook , Sean Christopherson Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Fix a build error in kvmppc_e500_tlb_init() that was introduced by the conversion to use kzalloc_objs(), as KVM confusingly uses the size of the structure that is one and only field in tlbe_priv: arch/powerpc/kvm/e500_mmu.c:923:33: error: assignment to 'struct tlbe_pri= v *' from incompatible pointer type 'struct tlbe_ref *' [-Wincompatible-poin= ter-types] 923 | vcpu_e500->gtlb_priv[0] =3D kzalloc_objs(struct tlbe_ref, | ^ KVM has been flawed since commit 0164c0f0c404 ("KVM: PPC: e500: clear up confusion between host and guest entries"), but the issue went unnoticed until kmalloc_obj() came along and enforced types, as "struct tlbe_priv" was just a wrapper of "struct tlbe_ref" (why on earth the two ever existed separately...). Fixes: 69050f8d6d07 ("treewide: Replace kmalloc with kmalloc_obj for non-sc= alar types") Cc: Kees Cook Signed-off-by: Sean Christopherson Reviewed-by: Christophe Leroy (CS GROUP) --- arch/powerpc/kvm/e500_mmu.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/arch/powerpc/kvm/e500_mmu.c b/arch/powerpc/kvm/e500_mmu.c index 48580c85f23b..75ed1496ead5 100644 --- a/arch/powerpc/kvm/e500_mmu.c +++ b/arch/powerpc/kvm/e500_mmu.c @@ -920,12 +920,12 @@ int kvmppc_e500_tlb_init(struct kvmppc_vcpu_e500 *vcp= u_e500) vcpu_e500->gtlb_offset[0] =3D 0; vcpu_e500->gtlb_offset[1] =3D KVM_E500_TLB0_SIZE; =20 - vcpu_e500->gtlb_priv[0] =3D kzalloc_objs(struct tlbe_ref, + vcpu_e500->gtlb_priv[0] =3D kzalloc_objs(struct tlbe_priv, vcpu_e500->gtlb_params[0].entries); if (!vcpu_e500->gtlb_priv[0]) goto free_vcpu; =20 - vcpu_e500->gtlb_priv[1] =3D kzalloc_objs(struct tlbe_ref, + vcpu_e500->gtlb_priv[1] =3D kzalloc_objs(struct tlbe_priv, vcpu_e500->gtlb_params[1].entries); if (!vcpu_e500->gtlb_priv[1]) goto free_vcpu; --=20 2.53.0.473.g4a7958ca14-goog From nobody Thu Apr 9 18:03:26 2026 Received: from mail-pl1-f202.google.com (mail-pl1-f202.google.com [209.85.214.202]) (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 6A02448C8CD for ; Tue, 3 Mar 2026 19:03:46 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.214.202 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1772564627; cv=none; b=QbDDoLpiIn/iojH7aVe9I/AcDLWjFXoZ2zerHMTyS4kKV+jbwdhCfJA+hy1sYZOrXzaTZ7eHqmPNvnkYDZ6LcsGTdMc3tpecsqrPhoo7Raf99EgRyJBjAgvjfmSWh3XdJjxU+1DtbgsboMFMvFBUmjFCuuH/yy4eqy7eGlV3x+E= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1772564627; c=relaxed/simple; bh=JO+cq/Bz4llSo+/NA9YKyRFMOPe0oAzVAp9Gb1fMqpY=; h=Date:In-Reply-To:Mime-Version:References:Message-ID:Subject:From: To:Cc:Content-Type; b=BDpvhYlwokp6zkqepPrisFJTOvxvvuJEFZgQ0nl0ucO3osPUQhNovrBn7JHgbYNx89dir0x44n1GlAy4lMD4yPDiJ39dBWLaowldKW2s94UTvIStY18sfftSD99bTM2flraZsKMDd1mFEuhiZasiAgTXw3ZFyPKpTbra8zNfSBY= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=google.com; spf=pass smtp.mailfrom=flex--seanjc.bounces.google.com; dkim=pass (2048-bit key) header.d=google.com header.i=@google.com header.b=2I5fSgZN; arc=none smtp.client-ip=209.85.214.202 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=google.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=flex--seanjc.bounces.google.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=google.com header.i=@google.com header.b="2I5fSgZN" Received: by mail-pl1-f202.google.com with SMTP id d9443c01a7336-2adef9d486bso53928605ad.2 for ; Tue, 03 Mar 2026 11:03:46 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20230601; t=1772564626; x=1773169426; darn=vger.kernel.org; h=cc:to:from:subject:message-id:references:mime-version:in-reply-to :date:reply-to:from:to:cc:subject:date:message-id:reply-to; bh=99DC7OhlXTRR+D72sFLb9VSn0W5lbhfdlhpUdwYerhc=; b=2I5fSgZN289jv/g7RRgk0Hbh1itbqI8BULXkl9EuqQJgEHUffe7T0LnhTYjLZmvv61 6+MNsfqxun+4j3YNPxUiGSDBDkAbNUPWiqVXpITNZ6+2b1aJaOnLvEaFX0IEyopwP2Vl UB1iS7yytDbmoDn2GZNOVBe7ji8NO4UJh22tAKIjicISZhlMa+7Ji/xsq7o6IhzalkdR /VM7p1k+1VXmHBEgiBplIVzMA/u/a66zJYutzwmHnzNaVffzAYoSjDsJbezrpuuzZa4W O1AgQlKbM13KSMnuOkJCzK+/RhlWbKdZt3+m2Ps34rXgJuQGhpj6N4vBeSQzBvExzbth bhWQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1772564626; x=1773169426; h=cc:to:from:subject:message-id:references:mime-version:in-reply-to :date:reply-to:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=99DC7OhlXTRR+D72sFLb9VSn0W5lbhfdlhpUdwYerhc=; b=VFZ/pU+6DxnJWL7fIcipdS684u6aXD6HbLpBkaJIDa77MBeaKdLV0oQ0T+P6krF6++ Fc7/n/fvAqUOYHN0DxGQKF50KzMVPvdkv/UTF7aHUDKV4MZYyS+1VbKYVRT+pvSkbMcq z9KxnDTLMGqy/3FTM3JslG/xf9vrc23aBCvAQGe7W5zx9h6OOc6fEupFIVyPsoVns/hN dkOsHUqv3pIDyMW0a+ZVGtrLCCXbC2XHJvbH9zCzmsCa2M6uSTkHZVD+VKRSLicg8C6Q KxMdrtBvD1iI1/cSPy+V4x0AgX2cL8fBlMkaDq7hNFqYtHzVTaS1u9F7GYV6Zz1rdoiK ksgg== X-Forwarded-Encrypted: i=1; AJvYcCXllVHpCru6uCEbkofYTKA/S8aSGuWZFccn8oPSKlB5qGp2qLhBK8DR0Ybbuwd+6Ry0BzZyEbhBke7q5Fs=@vger.kernel.org X-Gm-Message-State: AOJu0YxsCRq5UQ2TxG2uGtqw59gMhTyfRYd8lQlbKRIdluFoU7/uRlr3 H6Rjy2v5D0+QQF+IG6e9AGiIUbQrDFdGuJ6HqsvUEbhRJbMK6Ic2B9fwkKATLXV22mhvJOMQ1cp 486FeXw== X-Received: from plkz9.prod.google.com ([2002:a17:902:7089:b0:2ae:3bca:37a0]) (user=seanjc job=prod-delivery.src-stubby-dispatcher) by 2002:a17:902:f705:b0:2ae:6887:5c2c with SMTP id d9443c01a7336-2ae68876411mr2958095ad.50.1772564625724; Tue, 03 Mar 2026 11:03:45 -0800 (PST) Reply-To: Sean Christopherson Date: Tue, 3 Mar 2026 11:03:39 -0800 In-Reply-To: <20260303190339.974325-1-seanjc@google.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: Mime-Version: 1.0 References: <20260303190339.974325-1-seanjc@google.com> X-Mailer: git-send-email 2.53.0.473.g4a7958ca14-goog Message-ID: <20260303190339.974325-3-seanjc@google.com> Subject: [PATCH 2/2] KVM: PPC: e500: Rip out "struct tlbe_ref" From: Sean Christopherson To: Madhavan Srinivasan Cc: linuxppc-dev@lists.ozlabs.org, kvm@vger.kernel.org, linux-kernel@vger.kernel.org, Kees Cook , Sean Christopherson Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Complete the ~13 year journey started by commit 47bf379742bf ("kvm/ppc/e500: eliminate tlb_refs"), and actually remove "struct tlbe_ref". No functional change intended (verified disassembly of e500_mmu.o and e500_mmu_host.o is identical before and after). Signed-off-by: Sean Christopherson --- arch/powerpc/kvm/e500.h | 6 +-- arch/powerpc/kvm/e500_mmu_host.c | 91 +++++++++++++++----------------- 2 files changed, 45 insertions(+), 52 deletions(-) diff --git a/arch/powerpc/kvm/e500.h b/arch/powerpc/kvm/e500.h index f9acf866c709..e4469ad73a2e 100644 --- a/arch/powerpc/kvm/e500.h +++ b/arch/powerpc/kvm/e500.h @@ -39,15 +39,11 @@ enum vcpu_ftr { /* bits [6-5] MAS2_X1 and MAS2_X0 and [4-0] bits for WIMGE */ #define E500_TLB_MAS2_ATTR (0x7f) =20 -struct tlbe_ref { +struct tlbe_priv { kvm_pfn_t pfn; /* valid only for TLB0, except briefly */ unsigned int flags; /* E500_TLB_* */ }; =20 -struct tlbe_priv { - struct tlbe_ref ref; -}; - #ifdef CONFIG_KVM_E500V2 struct vcpu_id_table; #endif diff --git a/arch/powerpc/kvm/e500_mmu_host.c b/arch/powerpc/kvm/e500_mmu_h= ost.c index 06caf8bbbe2b..37e0d3d9e244 100644 --- a/arch/powerpc/kvm/e500_mmu_host.c +++ b/arch/powerpc/kvm/e500_mmu_host.c @@ -189,16 +189,16 @@ void inval_gtlbe_on_host(struct kvmppc_vcpu_e500 *vcp= u_e500, int tlbsel, { struct kvm_book3e_206_tlb_entry *gtlbe =3D get_entry(vcpu_e500, tlbsel, esel); - struct tlbe_ref *ref =3D &vcpu_e500->gtlb_priv[tlbsel][esel].ref; + struct tlbe_priv *tlbe =3D &vcpu_e500->gtlb_priv[tlbsel][esel]; =20 /* Don't bother with unmapped entries */ - if (!(ref->flags & E500_TLB_VALID)) { - WARN(ref->flags & (E500_TLB_BITMAP | E500_TLB_TLB0), - "%s: flags %x\n", __func__, ref->flags); + if (!(tlbe->flags & E500_TLB_VALID)) { + WARN(tlbe->flags & (E500_TLB_BITMAP | E500_TLB_TLB0), + "%s: flags %x\n", __func__, tlbe->flags); WARN_ON(tlbsel =3D=3D 1 && vcpu_e500->g2h_tlb1_map[esel]); } =20 - if (tlbsel =3D=3D 1 && ref->flags & E500_TLB_BITMAP) { + if (tlbsel =3D=3D 1 && tlbe->flags & E500_TLB_BITMAP) { u64 tmp =3D vcpu_e500->g2h_tlb1_map[esel]; int hw_tlb_indx; unsigned long flags; @@ -216,28 +216,28 @@ void inval_gtlbe_on_host(struct kvmppc_vcpu_e500 *vcp= u_e500, int tlbsel, } mb(); vcpu_e500->g2h_tlb1_map[esel] =3D 0; - ref->flags &=3D ~(E500_TLB_BITMAP | E500_TLB_VALID); + tlbe->flags &=3D ~(E500_TLB_BITMAP | E500_TLB_VALID); local_irq_restore(flags); } =20 - if (tlbsel =3D=3D 1 && ref->flags & E500_TLB_TLB0) { + if (tlbsel =3D=3D 1 && tlbe->flags & E500_TLB_TLB0) { /* * TLB1 entry is backed by 4k pages. This should happen * rarely and is not worth optimizing. Invalidate everything. */ kvmppc_e500_tlbil_all(vcpu_e500); - ref->flags &=3D ~(E500_TLB_TLB0 | E500_TLB_VALID); + tlbe->flags &=3D ~(E500_TLB_TLB0 | E500_TLB_VALID); } =20 /* * If TLB entry is still valid then it's a TLB0 entry, and thus * backed by at most one host tlbe per shadow pid */ - if (ref->flags & E500_TLB_VALID) + if (tlbe->flags & E500_TLB_VALID) kvmppc_e500_tlbil_one(vcpu_e500, gtlbe); =20 /* Mark the TLB as not backed by the host anymore */ - ref->flags =3D 0; + tlbe->flags =3D 0; } =20 static inline int tlbe_is_writable(struct kvm_book3e_206_tlb_entry *tlbe) @@ -245,26 +245,26 @@ static inline int tlbe_is_writable(struct kvm_book3e_= 206_tlb_entry *tlbe) return tlbe->mas7_3 & (MAS3_SW|MAS3_UW); } =20 -static inline void kvmppc_e500_ref_setup(struct tlbe_ref *ref, - struct kvm_book3e_206_tlb_entry *gtlbe, - kvm_pfn_t pfn, unsigned int wimg, - bool writable) +static inline void kvmppc_e500_tlbe_setup(struct tlbe_priv *tlbe, + struct kvm_book3e_206_tlb_entry *gtlbe, + kvm_pfn_t pfn, unsigned int wimg, + bool writable) { - ref->pfn =3D pfn; - ref->flags =3D E500_TLB_VALID; + tlbe->pfn =3D pfn; + tlbe->flags =3D E500_TLB_VALID; if (writable) - ref->flags |=3D E500_TLB_WRITABLE; + tlbe->flags |=3D E500_TLB_WRITABLE; =20 /* Use guest supplied MAS2_G and MAS2_E */ - ref->flags |=3D (gtlbe->mas2 & MAS2_ATTRIB_MASK) | wimg; + tlbe->flags |=3D (gtlbe->mas2 & MAS2_ATTRIB_MASK) | wimg; } =20 -static inline void kvmppc_e500_ref_release(struct tlbe_ref *ref) +static inline void kvmppc_e500_tlbe_release(struct tlbe_priv *tlbe) { - if (ref->flags & E500_TLB_VALID) { + if (tlbe->flags & E500_TLB_VALID) { /* FIXME: don't log bogus pfn for TLB1 */ - trace_kvm_booke206_ref_release(ref->pfn, ref->flags); - ref->flags =3D 0; + trace_kvm_booke206_ref_release(tlbe->pfn, tlbe->flags); + tlbe->flags =3D 0; } } =20 @@ -284,11 +284,8 @@ static void clear_tlb_privs(struct kvmppc_vcpu_e500 *v= cpu_e500) int i; =20 for (tlbsel =3D 0; tlbsel <=3D 1; tlbsel++) { - for (i =3D 0; i < vcpu_e500->gtlb_params[tlbsel].entries; i++) { - struct tlbe_ref *ref =3D - &vcpu_e500->gtlb_priv[tlbsel][i].ref; - kvmppc_e500_ref_release(ref); - } + for (i =3D 0; i < vcpu_e500->gtlb_params[tlbsel].entries; i++) + kvmppc_e500_tlbe_release(&vcpu_e500->gtlb_priv[tlbsel][i]); } } =20 @@ -304,18 +301,18 @@ void kvmppc_core_flush_tlb(struct kvm_vcpu *vcpu) static void kvmppc_e500_setup_stlbe( struct kvm_vcpu *vcpu, struct kvm_book3e_206_tlb_entry *gtlbe, - int tsize, struct tlbe_ref *ref, u64 gvaddr, + int tsize, struct tlbe_priv *tlbe, u64 gvaddr, struct kvm_book3e_206_tlb_entry *stlbe) { - kvm_pfn_t pfn =3D ref->pfn; + kvm_pfn_t pfn =3D tlbe->pfn; u32 pr =3D vcpu->arch.shared->msr & MSR_PR; - bool writable =3D !!(ref->flags & E500_TLB_WRITABLE); + bool writable =3D !!(tlbe->flags & E500_TLB_WRITABLE); =20 - BUG_ON(!(ref->flags & E500_TLB_VALID)); + BUG_ON(!(tlbe->flags & E500_TLB_VALID)); =20 /* Force IPROT=3D0 for all guest mappings. */ stlbe->mas1 =3D MAS1_TSIZE(tsize) | get_tlb_sts(gtlbe) | MAS1_VALID; - stlbe->mas2 =3D (gvaddr & MAS2_EPN) | (ref->flags & E500_TLB_MAS2_ATTR); + stlbe->mas2 =3D (gvaddr & MAS2_EPN) | (tlbe->flags & E500_TLB_MAS2_ATTR); stlbe->mas7_3 =3D ((u64)pfn << PAGE_SHIFT) | e500_shadow_mas3_attrib(gtlbe->mas7_3, writable, pr); } @@ -323,7 +320,7 @@ static void kvmppc_e500_setup_stlbe( static inline int kvmppc_e500_shadow_map(struct kvmppc_vcpu_e500 *vcpu_e50= 0, u64 gvaddr, gfn_t gfn, struct kvm_book3e_206_tlb_entry *gtlbe, int tlbsel, struct kvm_book3e_206_tlb_entry *stlbe, - struct tlbe_ref *ref) + struct tlbe_priv *tlbe) { struct kvm_memory_slot *slot; unsigned int psize; @@ -455,9 +452,9 @@ static inline int kvmppc_e500_shadow_map(struct kvmppc_= vcpu_e500 *vcpu_e500, } } =20 - kvmppc_e500_ref_setup(ref, gtlbe, pfn, wimg, writable); + kvmppc_e500_tlbe_setup(tlbe, gtlbe, pfn, wimg, writable); kvmppc_e500_setup_stlbe(&vcpu_e500->vcpu, gtlbe, tsize, - ref, gvaddr, stlbe); + tlbe, gvaddr, stlbe); writable =3D tlbe_is_writable(stlbe); =20 /* Clear i-cache for new pages */ @@ -474,17 +471,17 @@ static int kvmppc_e500_tlb0_map(struct kvmppc_vcpu_e5= 00 *vcpu_e500, int esel, struct kvm_book3e_206_tlb_entry *stlbe) { struct kvm_book3e_206_tlb_entry *gtlbe; - struct tlbe_ref *ref; + struct tlbe_priv *tlbe; int stlbsel =3D 0; int sesel =3D 0; int r; =20 gtlbe =3D get_entry(vcpu_e500, 0, esel); - ref =3D &vcpu_e500->gtlb_priv[0][esel].ref; + tlbe =3D &vcpu_e500->gtlb_priv[0][esel]; =20 r =3D kvmppc_e500_shadow_map(vcpu_e500, get_tlb_eaddr(gtlbe), get_tlb_raddr(gtlbe) >> PAGE_SHIFT, - gtlbe, 0, stlbe, ref); + gtlbe, 0, stlbe, tlbe); if (r) return r; =20 @@ -494,7 +491,7 @@ static int kvmppc_e500_tlb0_map(struct kvmppc_vcpu_e500= *vcpu_e500, int esel, } =20 static int kvmppc_e500_tlb1_map_tlb1(struct kvmppc_vcpu_e500 *vcpu_e500, - struct tlbe_ref *ref, + struct tlbe_priv *tlbe, int esel) { unsigned int sesel =3D vcpu_e500->host_tlb1_nv++; @@ -507,10 +504,10 @@ static int kvmppc_e500_tlb1_map_tlb1(struct kvmppc_vc= pu_e500 *vcpu_e500, vcpu_e500->g2h_tlb1_map[idx] &=3D ~(1ULL << sesel); } =20 - vcpu_e500->gtlb_priv[1][esel].ref.flags |=3D E500_TLB_BITMAP; + vcpu_e500->gtlb_priv[1][esel].flags |=3D E500_TLB_BITMAP; vcpu_e500->g2h_tlb1_map[esel] |=3D (u64)1 << sesel; vcpu_e500->h2g_tlb1_rmap[sesel] =3D esel + 1; - WARN_ON(!(ref->flags & E500_TLB_VALID)); + WARN_ON(!(tlbe->flags & E500_TLB_VALID)); =20 return sesel; } @@ -522,24 +519,24 @@ static int kvmppc_e500_tlb1_map(struct kvmppc_vcpu_e5= 00 *vcpu_e500, u64 gvaddr, gfn_t gfn, struct kvm_book3e_206_tlb_entry *gtlbe, struct kvm_book3e_206_tlb_entry *stlbe, int esel) { - struct tlbe_ref *ref =3D &vcpu_e500->gtlb_priv[1][esel].ref; + struct tlbe_priv *tlbe =3D &vcpu_e500->gtlb_priv[1][esel]; int sesel; int r; =20 r =3D kvmppc_e500_shadow_map(vcpu_e500, gvaddr, gfn, gtlbe, 1, stlbe, - ref); + tlbe); if (r) return r; =20 /* Use TLB0 when we can only map a page with 4k */ if (get_tlb_tsize(stlbe) =3D=3D BOOK3E_PAGESZ_4K) { - vcpu_e500->gtlb_priv[1][esel].ref.flags |=3D E500_TLB_TLB0; + vcpu_e500->gtlb_priv[1][esel].flags |=3D E500_TLB_TLB0; write_stlbe(vcpu_e500, gtlbe, stlbe, 0, 0); return 0; } =20 /* Otherwise map into TLB1 */ - sesel =3D kvmppc_e500_tlb1_map_tlb1(vcpu_e500, ref, esel); + sesel =3D kvmppc_e500_tlb1_map_tlb1(vcpu_e500, tlbe, esel); write_stlbe(vcpu_e500, gtlbe, stlbe, 1, sesel); =20 return 0; @@ -561,11 +558,11 @@ void kvmppc_mmu_map(struct kvm_vcpu *vcpu, u64 eaddr,= gpa_t gpaddr, priv =3D &vcpu_e500->gtlb_priv[tlbsel][esel]; =20 /* Triggers after clear_tlb_privs or on initial mapping */ - if (!(priv->ref.flags & E500_TLB_VALID)) { + if (!(priv->flags & E500_TLB_VALID)) { kvmppc_e500_tlb0_map(vcpu_e500, esel, &stlbe); } else { kvmppc_e500_setup_stlbe(vcpu, gtlbe, BOOK3E_PAGESZ_4K, - &priv->ref, eaddr, &stlbe); + priv, eaddr, &stlbe); write_stlbe(vcpu_e500, gtlbe, &stlbe, 0, 0); } break; --=20 2.53.0.473.g4a7958ca14-goog