Sean Christopherson
8823ea27ff
x86/hyperv: Fix NULL deref in set_hv_tscchange_cb() if Hyper-V setup fails
...
commit daf972118c517b91f74ff1731417feb4270625a4 upstream.
Check for a valid hv_vp_index array prior to derefencing hv_vp_index when
setting Hyper-V's TSC change callback. If Hyper-V setup failed in
hyperv_init(), the kernel will still report that it's running under
Hyper-V, but will have silently disabled nearly all functionality.
BUG: kernel NULL pointer dereference, address: 0000000000000010
#PF: supervisor read access in kernel mode
#PF: error_code(0x0000) - not-present page
PGD 0 P4D 0
Oops: 0000 [#1 ] SMP
CPU: 4 PID: 1 Comm: swapper/0 Not tainted 5.15.0-rc2+ #75
Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS 0.0.0 02/06/2015
RIP: 0010:set_hv_tscchange_cb+0x15/0xa0
Code: <8b> 04 82 8b 15 12 17 85 01 48 c1 e0 20 48 0d ee 00 01 00 f6 c6 08
...
Call Trace:
kvm_arch_init+0x17c/0x280
kvm_init+0x31/0x330
vmx_init+0xba/0x13a
do_one_initcall+0x41/0x1c0
kernel_init_freeable+0x1f2/0x23b
kernel_init+0x16/0x120
ret_from_fork+0x22/0x30
Fixes: 93286261de1b ("x86/hyperv: Reenlightenment notifications support")
Cc: stable@vger.kernel.org
Cc: Vitaly Kuznetsov <vkuznets@redhat.com>
Signed-off-by: Sean Christopherson <seanjc@google.com>
Reviewed-by: Vitaly Kuznetsov <vkuznets@redhat.com>
Link: https://lore.kernel.org/r/20211104182239.1302956-2-seanjc@google.com
Signed-off-by: Wei Liu <wei.liu@kernel.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2021-11-25 09:48:43 +01:00
..
2021-09-19 10:37:00 -07:00
2021-10-15 18:06:32 -07:00
2021-11-25 09:48:43 +01:00
2021-11-25 09:48:32 +01:00
2021-10-16 07:20:12 +08:00
2021-09-08 12:55:35 -07:00
2021-11-25 09:48:42 +01:00
2021-11-18 19:16:13 +01:00
2021-11-18 19:17:03 +01:00
2021-09-08 16:02:13 -07:00
2021-11-25 09:48:36 +01:00
2021-10-27 13:00:17 -04:00
2021-10-27 09:29:07 -05:00
2021-11-18 19:17:06 +01:00
2021-11-21 13:44:13 +01:00
2021-11-25 09:48:41 +01:00
2021-11-25 09:48:40 +01:00
2021-11-25 09:48:41 +01:00
2021-11-25 09:48:31 +01:00
2021-11-18 19:17:00 +01:00
2021-09-09 13:45:26 -07:00
2021-11-25 09:48:43 +01:00
2021-10-05 12:19:05 -07:00
2021-11-18 19:17:21 +01:00