From nobody Tue Feb 10 16:02:13 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=quarantine dis=none) header.from=mail.ustc.edu.cn ARC-Seal: i=1; a=rsa-sha256; t=1672588696; cv=none; d=zohomail.com; s=zohoarc; b=JDGR4vgw9CVPBaiimRpAWhg9krN7uoMUhuRRtt4YFf2J0CejGbhY0/pH16e3dSkd6G1C8Dk94p8WBGRC8K1WHORxnkIdfnoEpWvEnBn5zfkMw2Jj4b61Fz3hD0nd1vw8CevYy7+QEYbji8WMN1nkqyI2/WN3TS4ulCb+OWzhOdM= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1672588696; h=Content-Type:Cc:Date:From:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:Sender:Subject:To; bh=DKXYvC04Gn+qByu8yrqALOoRTVKVH0lI3LlzWt8Qw/4=; b=M5EqGqEjN5KaSNHJ9Qj5R9XsLfVyrCXcMCfH+o0DLJiMoXf/87HRFRVtjgaI39721fXr8/W2Q3Cc5ypvfUrtO4dG6LiKmA5Yg/GEFJJOPJctXtObZTM6lsgm3oGLJunoreSCDskXPLewx4uoh5aorUzpP1WMdWSXK2oEGrgASYE= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=quarantine dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1672588695665404.1663138813474; Sun, 1 Jan 2023 07:58:15 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1pC0iR-0004d1-RF; Sun, 01 Jan 2023 10:57:39 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1pC0iN-0004cL-Gz for qemu-devel@nongnu.org; Sun, 01 Jan 2023 10:57:35 -0500 Received: from email6.ustc.edu.cn ([2001:da8:d800::8] helo=ustc.edu.cn) by eggs.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1pC0iI-00007e-5x for qemu-devel@nongnu.org; Sun, 01 Jan 2023 10:57:34 -0500 Received: by ajax-webmail-newmailweb.ustc.edu.cn (Coremail) ; Sun, 1 Jan 2023 23:57:06 +0800 (GMT+08:00) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mail.ustc.edu.cn; s=dkim; h=Received:Date:From:To:Cc:Subject: Content-Type:MIME-Version:Message-ID; bh=DKXYvC04Gn+qByu8yrqALOo RTVKVH0lI3LlzWt8Qw/4=; b=AzGjzub/BhUEwUvTQX25rRRbmt3ShdcJaNxPfid yTmwAkY0I1PY+u3bsSca+AAqfmD+UjX0zQyqOedZUUrzJozvYqAJCYc14GmmxzDS JLz5njJ1YI2JhqTA9xB6lbwHbJnvDwlOUnrERKbpuG/kOGXsotkrPSvcPv4KqkwR vcZA= X-Originating-IP: [120.204.77.150] Date: Sun, 1 Jan 2023 23:57:06 +0800 (GMT+08:00) X-CM-HeaderCharset: UTF-8 From: fanwj@mail.ustc.edu.cn To: qemu-devel@nongnu.org Cc: qemu-devel@nongnu.org Subject: [PATCH] linux-user: fix bug about incorrect base addresss of idt and gdt on i386 and x86_64 X-Priority: 3 X-Mailer: Coremail Webmail Server Version XT3.0.8 dev build 20210401(c5ff3689) Copyright (c) 2002-2023 www.mailtech.cn ustccn X-SendMailWithSms: false Content-Type: multipart/alternative; boundary="----=_Part_455358_1492238213.1672588626158" MIME-Version: 1.0 Message-ID: <75da8346.1fd34.1856e0d08ef.Coremail.fanwj@mail.ustc.edu.cn> X-Coremail-Locale: zh_CN X-CM-TRANSID: LkAmygDXra5TrbFjZs6GAA--.0W X-CM-SenderInfo: pidq4yo6pdxzwoxv3uoohg3hdfq/1tbiAQ4REFQhoPMeLgAis6 X-Coremail-Antispam: 1Ur529EdanIXcx71UUUUU7IcSsGvfJ3iIAIbVAYjsxI4VWxJw CS07vEb4IE77IF4wCS07vE1I0E4x80FVAKz4kxMIAIbVAFxVCaYxvI4VCIwcAKzIAtYxBI daVFxhVjvjDU= Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=2001:da8:d800::8; envelope-from=fanwj@mail.ustc.edu.cn; helo=ustc.edu.cn X-Spam_score_int: -19 X-Spam_score: -2.0 X-Spam_bar: -- X-Spam_report: (-2.0 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, HTML_MESSAGE=0.001, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @mail.ustc.edu.cn) X-ZM-MESSAGEID: 1672588698928100003 ------=_Part_455358_1492238213.1672588626158 Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" From 4601a624f40b2c89e7df2dec1adffb4f4308ba2d Mon Sep 17 00:00:00 2001 From: fanwenjie Date: Sun, 1 Jan 2023 23:13:34 +0800 Subject: [PATCH] linux-user: fix bug about incorrect base addresss of idt a= nd gdt on i386 and x86_64 Resolves: https://gitlab.com/qemu-project/qemu/-/issues/1405 Signed-off-by: fanwenjie --- linux-user/main.c | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/linux-user/main.c b/linux-user/main.c index a17fed045b..5d673c95b3 100644 --- a/linux-user/main.c +++ b/linux-user/main.c @@ -171,6 +171,12 @@ void fork_end(int child) =20 __thread CPUState *thread_cpu; =20 +#if defined(TARGET_I386) || defined(TARGET_X86_64) +#include +__thread alignas(TARGET_PAGE_SIZE) static uint64_t gdt_base[TARGET_GDT_ENT= RIES]; +__thread alignas(TARGET_PAGE_SIZE) static uint64_t idt_base[TARGET_PAGE_SI= ZE / sizeof(uint64_t)]; +#endif + bool qemu_cpu_is_self(CPUState *cpu) { return thread_cpu =3D=3D cpu; @@ -235,6 +241,13 @@ CPUArchState *cpu_copy(CPUArchState *env) new_cpu->tcg_cflags =3D cpu->tcg_cflags; memcpy(new_env, env, sizeof(CPUArchState)); =20 +#if defined(TARGET_I386) || defined(TARGET_X86_64) + memcpy(idt_base, (void*)new_env->idt.base, sizeof(uint64_t) * (new_env= ->idt.limit + 1)); + memcpy(gdt_base, (void*)new_env->gdt.base, sizeof(uint64_t) * TARGET_G= DT_ENTRIES); + new_env->idt.base =3D (target_ulong)idt_base; + new_env->gdt.base =3D (target_ulong)gdt_base; +#endif + /* Clone all break/watchpoints. Note: Once we support ptrace with hw-debug register access, make su= re BP_CPU break/watchpoints are handled correctly on clone. */ --=20 2.34.1 ------=_Part_455358_1492238213.1672588626158 Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: base64 PGRpdj5Gcm9tIDQ2MDFhNjI0ZjQwYjJjODllN2RmMmRlYzFhZGZmYjRmNDMwOGJhMmQgTW9uIFNl cCAxNyAwMDowMDowMCAyMDAxPC9kaXY+PGRpdj5Gcm9tOiBmYW53ZW5qaWUgJmx0O2ZhbndqQG1h aWwudXN0Yy5lZHUuY24mZ3Q7PC9kaXY+PGRpdj5EYXRlOiBTdW4sIDEgSmFuIDIwMjMgMjM6MTM6 MzQgKzA4MDA8L2Rpdj48ZGl2PlN1YmplY3Q6IFtQQVRDSF0gbGludXgtdXNlcjogZml4IGJ1ZyBh Ym91dCBpbmNvcnJlY3QgYmFzZSBhZGRyZXNzcyBvZiBpZHQgYW5kPC9kaXY+PGRpdj4mbmJzcDtn ZHQgb24gaTM4NiBhbmQgeDg2XzY0PC9kaXY+PGRpdj48YnI+PC9kaXY+PGRpdj5SZXNvbHZlczog aHR0cHM6Ly9naXRsYWIuY29tL3FlbXUtcHJvamVjdC9xZW11Ly0vaXNzdWVzLzE0MDU8L2Rpdj48 ZGl2PlNpZ25lZC1vZmYtYnk6IGZhbndlbmppZSAmbHQ7ZmFud2pAbWFpbC51c3RjLmVkdS5jbiZn dDs8L2Rpdj48ZGl2Pi0tLTwvZGl2PjxkaXY+Jm5ic3A7bGludXgtdXNlci9tYWluLmMgfCAxMyAr KysrKysrKysrKysrPC9kaXY+PGRpdj4mbmJzcDsxIGZpbGUgY2hhbmdlZCwgMTMgaW5zZXJ0aW9u cygrKTwvZGl2PjxkaXY+PGJyPjwvZGl2PjxkaXY+ZGlmZiAtLWdpdCBhL2xpbnV4LXVzZXIvbWFp bi5jIGIvbGludXgtdXNlci9tYWluLmM8L2Rpdj48ZGl2PmluZGV4IGExN2ZlZDA0NWIuLjVkNjcz Yzk1YjMgMTAwNjQ0PC9kaXY+PGRpdj4tLS0gYS9saW51eC11c2VyL21haW4uYzwvZGl2PjxkaXY+ KysrIGIvbGludXgtdXNlci9tYWluLmM8L2Rpdj48ZGl2PkBAIC0xNzEsNiArMTcxLDEyIEBAIHZv aWQgZm9ya19lbmQoaW50IGNoaWxkKTwvZGl2PjxkaXY+Jm5ic3A7PC9kaXY+PGRpdj4mbmJzcDtf X3RocmVhZCBDUFVTdGF0ZSAqdGhyZWFkX2NwdTs8L2Rpdj48ZGl2PiZuYnNwOzwvZGl2PjxkaXY+ KyNpZiBkZWZpbmVkKFRBUkdFVF9JMzg2KSB8fCBkZWZpbmVkKFRBUkdFVF9YODZfNjQpPC9kaXY+ PGRpdj4rI2luY2x1ZGUgJmx0O3N0ZGFsaWduLmgmZ3Q7PC9kaXY+PGRpdj4rX190aHJlYWQgYWxp Z25hcyhUQVJHRVRfUEFHRV9TSVpFKSBzdGF0aWMgdWludDY0X3QgZ2R0X2Jhc2VbVEFSR0VUX0dE VF9FTlRSSUVTXTs8L2Rpdj48ZGl2PitfX3RocmVhZCBhbGlnbmFzKFRBUkdFVF9QQUdFX1NJWkUp IHN0YXRpYyB1aW50NjRfdCBpZHRfYmFzZVtUQVJHRVRfUEFHRV9TSVpFIC8gc2l6ZW9mKHVpbnQ2 NF90KV07PC9kaXY+PGRpdj4rI2VuZGlmPC9kaXY+PGRpdj4rPC9kaXY+PGRpdj4mbmJzcDtib29s IHFlbXVfY3B1X2lzX3NlbGYoQ1BVU3RhdGUgKmNwdSk8L2Rpdj48ZGl2PiZuYnNwO3s8L2Rpdj48 ZGl2PiZuYnNwOyAmbmJzcDsgJm5ic3A7cmV0dXJuIHRocmVhZF9jcHUgPT0gY3B1OzwvZGl2Pjxk aXY+QEAgLTIzNSw2ICsyNDEsMTMgQEAgQ1BVQXJjaFN0YXRlICpjcHVfY29weShDUFVBcmNoU3Rh dGUgKmVudik8L2Rpdj48ZGl2PiZuYnNwOyAmbmJzcDsgJm5ic3A7bmV3X2NwdS0mZ3Q7dGNnX2Nm bGFncyA9IGNwdS0mZ3Q7dGNnX2NmbGFnczs8L2Rpdj48ZGl2PiZuYnNwOyAmbmJzcDsgJm5ic3A7 bWVtY3B5KG5ld19lbnYsIGVudiwgc2l6ZW9mKENQVUFyY2hTdGF0ZSkpOzwvZGl2PjxkaXY+Jm5i c3A7PC9kaXY+PGRpdj4rI2lmIGRlZmluZWQoVEFSR0VUX0kzODYpIHx8IGRlZmluZWQoVEFSR0VU X1g4Nl82NCk8L2Rpdj48ZGl2PismbmJzcDsgJm5ic3A7IG1lbWNweShpZHRfYmFzZSwgKHZvaWQq KW5ld19lbnYtJmd0O2lkdC5iYXNlLCBzaXplb2YodWludDY0X3QpICogKG5ld19lbnYtJmd0O2lk dC5saW1pdCArIDEpKTs8L2Rpdj48ZGl2PismbmJzcDsgJm5ic3A7IG1lbWNweShnZHRfYmFzZSwg KHZvaWQqKW5ld19lbnYtJmd0O2dkdC5iYXNlLCBzaXplb2YodWludDY0X3QpICogVEFSR0VUX0dE VF9FTlRSSUVTKTs8L2Rpdj48ZGl2PismbmJzcDsgJm5ic3A7IG5ld19lbnYtJmd0O2lkdC5iYXNl ID0gKHRhcmdldF91bG9uZylpZHRfYmFzZTs8L2Rpdj48ZGl2PismbmJzcDsgJm5ic3A7IG5ld19l bnYtJmd0O2dkdC5iYXNlID0gKHRhcmdldF91bG9uZylnZHRfYmFzZTs8L2Rpdj48ZGl2PisjZW5k aWY8L2Rpdj48ZGl2Pis8L2Rpdj48ZGl2PiZuYnNwOyAmbmJzcDsgJm5ic3A7LyogQ2xvbmUgYWxs IGJyZWFrL3dhdGNocG9pbnRzLjwvZGl2PjxkaXY+Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7 IE5vdGU6IE9uY2Ugd2Ugc3VwcG9ydCBwdHJhY2Ugd2l0aCBody1kZWJ1ZyByZWdpc3RlciBhY2Nl c3MsIG1ha2Ugc3VyZTwvZGl2PjxkaXY+Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7IEJQX0NQ VSBicmVhay93YXRjaHBvaW50cyBhcmUgaGFuZGxlZCBjb3JyZWN0bHkgb24gY2xvbmUuICovPC9k aXY+PGRpdj4tLSZuYnNwOzwvZGl2PjxkaXY+Mi4zNC4xPC9kaXY+PGRpdj48YnI+PC9kaXY+ ------=_Part_455358_1492238213.1672588626158--