linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Sasha Levin <Alexander.Levin@microsoft.com>
To: "stable@vger.kernel.org" <stable@vger.kernel.org>,
	"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>
Cc: Paul Mackerras <paulus@ozlabs.org>,
	Sasha Levin <Alexander.Levin@microsoft.com>
Subject: [PATCH AUTOSEL 4.4 01/18] KVM: PPC: Book3S HV: Don't truncate HPTE index in xlate function
Date: Mon, 24 Sep 2018 14:49:45 +0000	[thread overview]
Message-ID: <20180924144942.164688-1-alexander.levin@microsoft.com> (raw)

From: Paul Mackerras <paulus@ozlabs.org>

[ Upstream commit 46dec40fb741f00f1864580130779aeeaf24fb3d ]

This fixes a bug which causes guest virtual addresses to get translated
to guest real addresses incorrectly when the guest is using the HPT MMU
and has more than 256GB of RAM, or more specifically has a HPT larger
than 2GB.  This has showed up in testing as a failure of the host to
emulate doorbell instructions correctly on POWER9 for HPT guests with
more than 256GB of RAM.

The bug is that the HPTE index in kvmppc_mmu_book3s_64_hv_xlate()
is stored as an int, and in forming the HPTE address, the index gets
shifted left 4 bits as an int before being signed-extended to 64 bits.
The simple fix is to make the variable a long int, matching the
return type of kvmppc_hv_find_lock_hpte(), which is what calculates
the index.

Fixes: 697d3899dcb4 ("KVM: PPC: Implement MMIO emulation support for Book3S HV guests")
Signed-off-by: Paul Mackerras <paulus@ozlabs.org>
Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
---
 arch/powerpc/kvm/book3s_64_mmu_hv.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/arch/powerpc/kvm/book3s_64_mmu_hv.c b/arch/powerpc/kvm/book3s_64_mmu_hv.c
index fb37290a57b4..366965ae37bd 100644
--- a/arch/powerpc/kvm/book3s_64_mmu_hv.c
+++ b/arch/powerpc/kvm/book3s_64_mmu_hv.c
@@ -314,7 +314,7 @@ static int kvmppc_mmu_book3s_64_hv_xlate(struct kvm_vcpu *vcpu, gva_t eaddr,
 	unsigned long pp, key;
 	unsigned long v, gr;
 	__be64 *hptep;
-	int index;
+	long int index;
 	int virtmode = vcpu->arch.shregs.msr & (data ? MSR_DR : MSR_IR);
 
 	/* Get SLB entry */
-- 
2.17.1

             reply	other threads:[~2018-09-24 14:51 UTC|newest]

Thread overview: 18+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-09-24 14:49 Sasha Levin [this message]
2018-09-24 14:49 ` [PATCH AUTOSEL 4.4 02/18] mac80211: correct use of IEEE80211_VHT_CAP_RXSTBC_X Sasha Levin
2018-09-24 14:49 ` [PATCH AUTOSEL 4.4 03/18] mac80211_hwsim: " Sasha Levin
2018-09-24 14:49 ` [PATCH AUTOSEL 4.4 05/18] mac80211: mesh: fix HWMP sequence numbering to follow standard Sasha Levin
2018-09-24 14:49 ` [PATCH AUTOSEL 4.4 04/18] gpio: adp5588: Fix sleep-in-atomic-context bug Sasha Levin
2018-09-24 14:49 ` [PATCH AUTOSEL 4.4 07/18] RAID10 BUG_ON in raise_barrier when force is true and conf->barrier is 0 Sasha Levin
2018-09-24 14:49 ` [PATCH AUTOSEL 4.4 06/18] cfg80211: nl80211_update_ft_ies() to validate NL80211_ATTR_IE Sasha Levin
2018-09-24 14:49 ` [PATCH AUTOSEL 4.4 08/18] net: ethernet: cpsw-phy-sel: prefer phandle for phy sel Sasha Levin
2018-09-24 14:49 ` [PATCH AUTOSEL 4.4 10/18] i2c: uniphier-f: issue STOP only for last message or I2C_M_STOP Sasha Levin
2018-09-24 14:49 ` [PATCH AUTOSEL 4.4 09/18] i2c: uniphier: " Sasha Levin
2018-09-24 14:49 ` [PATCH AUTOSEL 4.4 12/18] fs/cifs: don't translate SFM_SLASH (U+F026) to backslash Sasha Levin
2018-09-24 14:49 ` [PATCH AUTOSEL 4.4 11/18] net: cadence: Fix a sleep-in-atomic-context bug in macb_halt_tx() Sasha Levin
2018-09-24 14:49 ` [PATCH AUTOSEL 4.4 14/18] mac80211: fix a race between restart and CSA flows Sasha Levin
2018-09-24 14:49 ` [PATCH AUTOSEL 4.4 13/18] cfg80211: fix a type issue in ieee80211_chandef_to_operating_class() Sasha Levin
2018-09-24 14:49 ` [PATCH AUTOSEL 4.4 16/18] mac80211: shorten the IBSS debug messages Sasha Levin
2018-09-24 14:49 ` [PATCH AUTOSEL 4.4 15/18] mac80211: Fix station bandwidth setting after channel switch Sasha Levin
2018-09-24 14:49 ` [PATCH AUTOSEL 4.4 18/18] tools/vm/page-types.c: fix "defined but not used" warning Sasha Levin
2018-09-24 14:49 ` [PATCH AUTOSEL 4.4 17/18] tools/vm/slabinfo.c: fix sign-compare warning Sasha Levin

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20180924144942.164688-1-alexander.levin@microsoft.com \
    --to=alexander.levin@microsoft.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=paulus@ozlabs.org \
    --cc=stable@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).