From: "Philippe Mathieu-Daudé" <philmd@linaro.org>
To: Huacai Chen <chenhuacai@loongson.cn>,
Thomas Bogendoerfer <tsbogend@alpha.franken.de>,
Paolo Bonzini <pbonzini@redhat.com>,
Huacai Chen <chenhuacai@kernel.org>
Cc: linux-mips@vger.kernel.org, kvm@vger.kernel.org,
Jiaxun Yang <jiaxun.yang@flygoat.com>,
stable@vger.kernel.org
Subject: Re: [PATCH] MIPS: KVM: Fix NULL pointer dereference
Date: Mon, 26 Jun 2023 12:28:21 +0200 [thread overview]
Message-ID: <961c855a-81ea-c628-3e67-81877a748027@linaro.org> (raw)
In-Reply-To: <20230626074919.1871944-1-chenhuacai@loongson.cn>
On 26/6/23 09:49, Huacai Chen wrote:
> After commit 45c7e8af4a5e3f0bea4ac209 ("MIPS: Remove KVM_TE support") we
> get a NULL pointer dereference when creating a KVM guest:
>
> [ 146.243409] Starting KVM with MIPS VZ extensions
> [ 149.849151] CPU 3 Unable to handle kernel paging request at virtual address 0000000000000300, epc == ffffffffc06356ec, ra == ffffffffc063568c
> [ 149.849177] Oops[#1]:
> [ 149.849182] CPU: 3 PID: 2265 Comm: qemu-system-mip Not tainted 6.4.0-rc3+ #1671
> [ 149.849188] Hardware name: THTF CX TL630 Series/THTF-LS3A4000-7A1000-ML4A, BIOS KL4.1F.TF.D.166.201225.R 12/25/2020
> [ 149.849192] $ 0 : 0000000000000000 000000007400cce0 0000000000400004 ffffffff8119c740
> [ 149.849209] $ 4 : 000000007400cce1 000000007400cce1 0000000000000000 0000000000000000
> [ 149.849221] $ 8 : 000000240058bb36 ffffffff81421ac0 0000000000000000 0000000000400dc0
> [ 149.849233] $12 : 9800000102a07cc8 ffffffff80e40e38 0000000000000001 0000000000400dc0
> [ 149.849245] $16 : 0000000000000000 9800000106cd0000 9800000106cd0000 9800000100cce000
> [ 149.849257] $20 : ffffffffc0632b28 ffffffffc05b31b0 9800000100ccca00 0000000000400000
> [ 149.849269] $24 : 9800000106cd09ce ffffffff802f69d0
> [ 149.849281] $28 : 9800000102a04000 9800000102a07cd0 98000001106a8000 ffffffffc063568c
> [ 149.849293] Hi : 00000335b2111e66
> [ 149.849295] Lo : 6668d90061ae0ae9
> [ 149.849298] epc : ffffffffc06356ec kvm_vz_vcpu_setup+0xc4/0x328 [kvm]
> [ 149.849324] ra : ffffffffc063568c kvm_vz_vcpu_setup+0x64/0x328 [kvm]
> [ 149.849336] Status: 7400cce3 KX SX UX KERNEL EXL IE
> [ 149.849351] Cause : 1000000c (ExcCode 03)
> [ 149.849354] BadVA : 0000000000000300
> [ 149.849357] PrId : 0014c004 (ICT Loongson-3)
> [ 149.849360] Modules linked in: kvm nfnetlink_queue nfnetlink_log nfnetlink fuse sha256_generic libsha256 cfg80211 rfkill binfmt_misc vfat fat snd_hda_codec_hdmi input_leds led_class snd_hda_intel snd_intel_dspcfg snd_hda_codec snd_hda_core snd_pcm snd_timer snd serio_raw xhci_pci radeon drm_suballoc_helper drm_display_helper xhci_hcd ip_tables x_tables
> [ 149.849432] Process qemu-system-mip (pid: 2265, threadinfo=00000000ae2982d2, task=0000000038e09ad4, tls=000000ffeba16030)
> [ 149.849439] Stack : 9800000000000003 9800000100ccca00 9800000100ccc000 ffffffffc062cef4
> [ 149.849453] 9800000102a07d18 c89b63a7ab338e00 0000000000000000 ffffffff811a0000
> [ 149.849465] 0000000000000000 9800000106cd0000 ffffffff80e59938 98000001106a8920
> [ 149.849476] ffffffff80e57f30 ffffffffc062854c ffffffff811a0000 9800000102bf4240
> [ 149.849488] ffffffffc05b0000 ffffffff80e3a798 000000ff78000000 000000ff78000010
> [ 149.849500] 0000000000000255 98000001021f7de0 98000001023f0078 ffffffff81434000
> [ 149.849511] 0000000000000000 0000000000000000 9800000102ae0000 980000025e92ae28
> [ 149.849523] 0000000000000000 c89b63a7ab338e00 0000000000000001 ffffffff8119dce0
> [ 149.849535] 000000ff78000010 ffffffff804f3d3c 9800000102a07eb0 0000000000000255
> [ 149.849546] 0000000000000000 ffffffff8049460c 000000ff78000010 0000000000000255
> [ 149.849558] ...
> [ 149.849565] Call Trace:
> [ 149.849567] [<ffffffffc06356ec>] kvm_vz_vcpu_setup+0xc4/0x328 [kvm]
> [ 149.849586] [<ffffffffc062cef4>] kvm_arch_vcpu_create+0x184/0x228 [kvm]
> [ 149.849605] [<ffffffffc062854c>] kvm_vm_ioctl+0x64c/0xf28 [kvm]
> [ 149.849623] [<ffffffff805209c0>] sys_ioctl+0xc8/0x118
> [ 149.849631] [<ffffffff80219eb0>] syscall_common+0x34/0x58
>
> The root cause is the deletion of kvm_mips_commpage_init() leaves vcpu->
> arch.cop0 NULL. So fix it by make cop0 from a pointer to an embed object.
"by making ... to an embedded object."
>
> Fixes: 45c7e8af4a5e3f0bea4ac209 ("MIPS: Remove KVM_TE support")
> Cc: stable@vger.kernel.org
Reported-by: Yu Zhao <yuzhao@google.com>
> Suggested-by: Thomas Bogendoerfer <tsbogend@alpha.franken.de>
> Signed-off-by: Huacai Chen <chenhuacai@loongson.cn>
> ---
> arch/mips/include/asm/kvm_host.h | 6 +++---
> arch/mips/kvm/emulate.c | 22 +++++++++++-----------
> arch/mips/kvm/mips.c | 16 ++++++++--------
> arch/mips/kvm/trace.h | 8 ++++----
> arch/mips/kvm/vz.c | 20 ++++++++++----------
> 5 files changed, 36 insertions(+), 36 deletions(-)
Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org>
next prev parent reply other threads:[~2023-06-26 10:28 UTC|newest]
Thread overview: 9+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-06-26 7:49 [PATCH] MIPS: KVM: Fix NULL pointer dereference Huacai Chen
2023-06-26 10:28 ` Philippe Mathieu-Daudé [this message]
2023-06-28 7:34 ` Huacai Chen
2023-06-26 10:33 ` Paolo Bonzini
2023-06-26 12:44 ` Huacai Chen
2023-06-29 0:07 ` Yu Zhao
2023-06-29 6:24 ` Huacai Chen
2023-06-29 8:54 ` Yu Zhao
2023-06-29 14:58 ` Jiaxun Yang
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=961c855a-81ea-c628-3e67-81877a748027@linaro.org \
--to=philmd@linaro.org \
--cc=chenhuacai@kernel.org \
--cc=chenhuacai@loongson.cn \
--cc=jiaxun.yang@flygoat.com \
--cc=kvm@vger.kernel.org \
--cc=linux-mips@vger.kernel.org \
--cc=pbonzini@redhat.com \
--cc=stable@vger.kernel.org \
--cc=tsbogend@alpha.franken.de \
/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).