Drivers: hv: vmbus: Fix virt_to_hvpfn() for X86_PAE
authorDexuan Cui <decui@microsoft.com>
Tue, 7 May 2019 07:46:55 +0000 (07:46 +0000)
committerSasha Levin <sashal@kernel.org>
Tue, 20 Aug 2019 16:49:57 +0000 (12:49 -0400)
commita9fc4340aee041dd186d1fb8f1b5d1e9caf28212
tree306ef60e4cfe64f9a058dba56de7f402fc12dcf9
parent89eb4d8d25722a0a0194cf7fa47ba602e32a6da7
Drivers: hv: vmbus: Fix virt_to_hvpfn() for X86_PAE

In the case of X86_PAE, unsigned long is u32, but the physical address type
should be u64. Due to the bug here, the netvsc driver can not load
successfully, and sometimes the VM can panic due to memory corruption (the
hypervisor writes data to the wrong location).

Fixes: 6ba34171bcbd ("Drivers: hv: vmbus: Remove use of slow_virt_to_phys()")
Cc: stable@vger.kernel.org
Cc: Michael Kelley <mikelley@microsoft.com>
Reported-and-tested-by: Juliana Rodrigueiro <juliana.rodrigueiro@intra2net.com>
Signed-off-by: Dexuan Cui <decui@microsoft.com>
Reviewed-by: Michael Kelley <mikelley@microsoft.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
drivers/hv/channel.c