From patchwork Sun Jan 9 11:41:46 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Laurent Vivier X-Patchwork-Id: 1577395 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=nongnu.org (client-ip=209.51.188.17; helo=lists.gnu.org; envelope-from=qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org; receiver=) Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by bilbo.ozlabs.org (Postfix) with ESMTPS id 4JWw8H04cLz9ssD for ; Sun, 9 Jan 2022 22:43:41 +1100 (AEDT) Received: from localhost ([::1]:42394 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1n6Wbp-0001XY-LQ for incoming@patchwork.ozlabs.org; Sun, 09 Jan 2022 06:43:37 -0500 Received: from eggs.gnu.org ([209.51.188.92]:43496) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1n6WaG-0001Wr-Ae for qemu-devel@nongnu.org; Sun, 09 Jan 2022 06:42:01 -0500 Received: from mout.kundenserver.de ([217.72.192.73]:60725) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1n6WaC-0008B4-Ub for qemu-devel@nongnu.org; Sun, 09 Jan 2022 06:41:59 -0500 Received: from quad ([82.142.23.158]) by mrelayeu.kundenserver.de (mreue106 [212.227.15.183]) with ESMTPSA (Nemesis) id 1N6bwO-1mIJtJ3wPW-0186TS; Sun, 09 Jan 2022 12:41:52 +0100 From: Laurent Vivier To: qemu-devel@nongnu.org Subject: [PULL 1/4] hw: m68k: Add virt compat machine type for 7.0 Date: Sun, 9 Jan 2022 12:41:46 +0100 Message-Id: <20220109114149.1275322-2-laurent@vivier.eu> X-Mailer: git-send-email 2.33.1 In-Reply-To: <20220109114149.1275322-1-laurent@vivier.eu> References: <20220109114149.1275322-1-laurent@vivier.eu> MIME-Version: 1.0 X-Provags-ID: V03:K1:gtN4DuiNuvHdO93nh7q/HRx3Lc2OHDL9Ru4qTg+yKVycuX6mrqV VRjIwPTgbTGN1RdHpsXhMLmLo0n53G39n/D+9esq9ddq2LunIRIObeU8AFojQgSehIkQqFB aYOoS1VMY/ItiSTeragvYJsSSgzOIXwdy4d0dcJ517H/2ixO3fHdxw0UsNRy5o7zJ7CZWTg bAu8HJMhdRfiHZXdbvLfg== X-UI-Out-Filterresults: notjunk:1;V03:K0:AI070UQ4B0k=:ei4S+Lz1FI25PS2R9oSw5q 8nqL4bMI252/0NJF7Oa2tWaRERh2uurvOqo8zNAlLD2Wa0NCBxRN5WdyWrazLgqSLIzwUxdzq +fUWgKo2KndKtBi3AqsweU5j1WkVduMckWmT3sdHk1Dxfy16yPNRhS+n6Qa9WvHX0h8gUCL0R EEedVVPqOxvp8EfZkO/kGK0lGsq0fmQ2WE4JKU/Z2OQCJtfiBpFGEpwI/u7D4p6gwVBNnU9l0 AbSrj3t5K163CNe9RQZRoVa+Uyj8syhSnuf2qwDrAblURSOS/S8MIVKPatZaq7ws8YNt+BJGQ yTr9/J5zen4WW9V8lGbXHg84zAwUi5SsBkoZreO2cpUWp1w4naz5hRl6R43ZxkRJN9eGh5hvM 3AE4apr/JrcSFThx46deC39a+Txr4jgjsDtTsBbnQlvJAUxJBkKvGteyTOXbdS6g8B28V7v69 E5p3TRZYSjDStnsQ7N62VtB5lcj+D/u8X3cPVDLLSzNfXAK2+KSfjioigs6MHz/2P2mMW8HCD 3rmyPp3U7G4O1USG061dKKaTXBFSMPD4aU4/iIfKcDvMGa5un2tapmNpXkl4gFCj2wIZrmkLH tvE3vx+/LMLwyqYp1ewd0JKNbY3/LyougN0tFoi7DIrQ91hLdLiJSPVGFhIWywl4Su9keVWDe ALoopMI5NGZZJ+tG4Jn2zTkDXhnI/S4PcxDrcda6dJkhIPAQlz2rxE9gSt9FKkVkNtq8= Received-SPF: none client-ip=217.72.192.73; envelope-from=laurent@vivier.eu; helo=mout.kundenserver.de X-Spam_score_int: -18 X-Spam_score: -1.9 X-Spam_bar: - X-Spam_report: (-1.9 / 5.0 requ) BAYES_00=-1.9, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H2=-0.001, SPF_HELO_NONE=0.001, SPF_NONE=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: , Cc: Thomas Huth , Cornelia Huck , Laurent Vivier Errors-To: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org Sender: "Qemu-devel" Signed-off-by: Laurent Vivier Reviewed-by: Thomas Huth Reviewed-by: Cornelia Huck Message-Id: <20211218114340.1856757-1-laurent@vivier.eu> --- hw/m68k/virt.c | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/hw/m68k/virt.c b/hw/m68k/virt.c index 0efa4a45c7f4..78e926a55457 100644 --- a/hw/m68k/virt.c +++ b/hw/m68k/virt.c @@ -304,10 +304,17 @@ type_init(virt_machine_register_types) } \ type_init(machvirt_machine_##major##_##minor##_init); +static void virt_machine_7_0_options(MachineClass *mc) +{ +} +DEFINE_VIRT_MACHINE(7, 0, true) + static void virt_machine_6_2_options(MachineClass *mc) { + virt_machine_7_0_options(mc); + compat_props_add(mc->compat_props, hw_compat_6_2, hw_compat_6_2_len); } -DEFINE_VIRT_MACHINE(6, 2, true) +DEFINE_VIRT_MACHINE(6, 2, false) static void virt_machine_6_1_options(MachineClass *mc) { From patchwork Sun Jan 9 11:41:47 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Laurent Vivier X-Patchwork-Id: 1577397 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=nongnu.org (client-ip=209.51.188.17; helo=lists.gnu.org; envelope-from=qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org; receiver=) Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by bilbo.ozlabs.org (Postfix) with ESMTPS id 4JWwCB4LL0z9sCD for ; Sun, 9 Jan 2022 22:46:14 +1100 (AEDT) Received: from localhost ([::1]:48832 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1n6WeK-0006Si-EU for incoming@patchwork.ozlabs.org; Sun, 09 Jan 2022 06:46:12 -0500 Received: from eggs.gnu.org ([209.51.188.92]:43508) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1n6WaI-0001X7-0U for qemu-devel@nongnu.org; Sun, 09 Jan 2022 06:42:02 -0500 Received: from mout.kundenserver.de ([212.227.17.13]:59131) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1n6WaE-0008BM-PA for qemu-devel@nongnu.org; Sun, 09 Jan 2022 06:42:01 -0500 Received: from quad ([82.142.23.158]) by mrelayeu.kundenserver.de (mreue106 [212.227.15.183]) with ESMTPSA (Nemesis) id 1MGR3r-1nA9EK0jpl-00GpMf; Sun, 09 Jan 2022 12:41:53 +0100 From: Laurent Vivier To: qemu-devel@nongnu.org Subject: [PULL 2/4] q800: fix segfault with invalid MacROM Date: Sun, 9 Jan 2022 12:41:47 +0100 Message-Id: <20220109114149.1275322-3-laurent@vivier.eu> X-Mailer: git-send-email 2.33.1 In-Reply-To: <20220109114149.1275322-1-laurent@vivier.eu> References: <20220109114149.1275322-1-laurent@vivier.eu> MIME-Version: 1.0 X-Provags-ID: V03:K1:dS/07ofbDPFoTrZaGhAQNSVM8bGULd+POzemwq1+5xdWphV0i2m E+0Dgm9YAs6nsQsK3iD+DPEofgurx94HGsc7tFqHFKmGBoUxWdI5xltGgMiTqrVClq4nCH0 BmpC9McFMiCeXZpM45jyAvb4BOMP13glerdL0cYCh/MtB+SabPXDg82KHyXpfEOsKhr6l2p ZnVjx/ImpgwdR1V1wKQKA== X-UI-Out-Filterresults: notjunk:1;V03:K0:2m28WwqEG3s=:EqisjpPxz7WuT7smwhwsHk Q3kOiM6exS7QOPOdV21GrUS/f5ww8LeOJKsIR1XAIcPxxkj1ITMTIYyDCkO0ObTtzeWOYCthu wUjSz1n4ai6kQgxV6PdJPyHEOFvU2FXAmSXP9DTH/R8vdcA0HcFlAWtQsAi+VV7IwYO+rdVdr hSnY03CheBz+fqDHPbpsZ10TibVLo/RH0/QkZWikrNAL0F9N8cZBr7saTaktzNmDsOGnyux49 JQ9mMRADdLHJR95p0xUu7rnZk4EMSu4l1yxX2keM1Z97q4LFEy4ZTL7syr3azOOXJgysZTRdB rjscNwuW3QobbhnSjhn1KHjzApTy+Kk5PLRGe+6xWD42zFvFQdsxNNGDfujeiCkT7FAm9roOQ xi1HBuPEEMc+kGf4XWorvjeeIouevmqcCwtpZqSS+arsUNpG2iBXfRpp/EF7sMlN6TGVDBL6L yhaXLqVg4BfPhMXyb4yyN7+J8NZZ581I4mE3M9EBOP4hp25rorF8IFdtN7IsRo0Mq+HsVAawk RMLn6ErOcRMXLDGyD37fayxx9z7PMTH7YigAu2D0XjfKNvC3pfDXe2bjCnCbidf8d7/sNu38f 0XOsh3cA49AkEA6H1qFj5H1bNdlYByE4Dq1O2rMF4huk6sVenKg9GUBOtnZgNmiBJo+GwGiKu hkrVXPudjRVQnav1lCccZFGF5kdtKbjQQEEEl/UEu1ZhRbQHTWIWG7IAcbMlJu4nLdVA= Received-SPF: none client-ip=212.227.17.13; envelope-from=laurent@vivier.eu; helo=mout.kundenserver.de X-Spam_score_int: -18 X-Spam_score: -1.9 X-Spam_bar: - X-Spam_report: (-1.9 / 5.0 requ) BAYES_00=-1.9, RCVD_IN_MSPIKE_H2=-0.001, SPF_HELO_NONE=0.001, SPF_NONE=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: , Cc: Peter Maydell , Thomas Huth , Mark Cave-Ayland , Laurent Vivier Errors-To: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org Sender: "Qemu-devel" "qemu-system-m68k -M q800 -bios /dev/null" crashes with a segfault in q800_init(). This happens because the code doesn't check that rom_ptr() returned a non-NULL pointer . To avoid NULL pointer, don't allow 0 sized file and use bios_size with rom_ptr(). Resolves: https://gitlab.com/qemu-project/qemu/-/issues/756 Reported-by: Peter Maydell Signed-off-by: Laurent Vivier Reviewed-by: Thomas Huth Reviewed-by: Mark Cave-Ayland Message-Id: <20220107105049.961489-1-laurent@vivier.eu> Signed-off-by: Laurent Vivier --- hw/m68k/q800.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/hw/m68k/q800.c b/hw/m68k/q800.c index e4c7c9b88ad0..55dfe5036f40 100644 --- a/hw/m68k/q800.c +++ b/hw/m68k/q800.c @@ -672,12 +672,13 @@ static void q800_init(MachineState *machine) /* Remove qtest_enabled() check once firmware files are in the tree */ if (!qtest_enabled()) { - if (bios_size < 0 || bios_size > MACROM_SIZE) { + if (bios_size <= 0 || bios_size > MACROM_SIZE) { error_report("could not load MacROM '%s'", bios_name); exit(1); } - ptr = rom_ptr(MACROM_ADDR, MACROM_SIZE); + ptr = rom_ptr(MACROM_ADDR, bios_size); + assert(ptr != NULL); stl_phys(cs->as, 0, ldl_p(ptr)); /* reset initial SP */ stl_phys(cs->as, 4, MACROM_ADDR + ldl_p(ptr + 4)); /* reset initial PC */ From patchwork Sun Jan 9 11:41:48 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Laurent Vivier X-Patchwork-Id: 1577393 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=nongnu.org (client-ip=209.51.188.17; helo=lists.gnu.org; envelope-from=qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org; receiver=) Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by bilbo.ozlabs.org (Postfix) with ESMTPS id 4JWw8H04t2z9t0Z for ; Sun, 9 Jan 2022 22:43:41 +1100 (AEDT) Received: from localhost ([::1]:42418 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1n6Wbp-0001Y9-SD for incoming@patchwork.ozlabs.org; Sun, 09 Jan 2022 06:43:37 -0500 Received: from eggs.gnu.org ([209.51.188.92]:43478) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1n6WaE-0001We-Qk for qemu-devel@nongnu.org; Sun, 09 Jan 2022 06:42:00 -0500 Received: from mout.kundenserver.de ([217.72.192.73]:47025) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1n6WaC-0008B1-TU for qemu-devel@nongnu.org; Sun, 09 Jan 2022 06:41:58 -0500 Received: from quad ([82.142.23.158]) by mrelayeu.kundenserver.de (mreue106 [212.227.15.183]) with ESMTPSA (Nemesis) id 1M3UEW-1n5yLo00ri-000Z1i; Sun, 09 Jan 2022 12:41:54 +0100 From: Laurent Vivier To: qemu-devel@nongnu.org Subject: [PULL 3/4] macfb: fix VRAM dirty memory region logging Date: Sun, 9 Jan 2022 12:41:48 +0100 Message-Id: <20220109114149.1275322-4-laurent@vivier.eu> X-Mailer: git-send-email 2.33.1 In-Reply-To: <20220109114149.1275322-1-laurent@vivier.eu> References: <20220109114149.1275322-1-laurent@vivier.eu> MIME-Version: 1.0 X-Provags-ID: V03:K1:lWGqtRzm0AJy9m3SXAKm/Jm5Vtoba5S0ATlHELdWahtZRaiPNQ1 xEO9HstrzpqdO7qUXHpnJH0UcuvIMAncCc4rFENw0yvhFABS0ac0bSt9heZIumWIUN1k8AT pQ0tWXBnN17yqCcJ/4UCu4bwk5cPV0aW7H5/JJHEyJkHZ+K78YZ/fIHi3IiSLPmUf/HumIi mrNIxOgjaLJK3/rSxP6GA== X-UI-Out-Filterresults: notjunk:1;V03:K0:an5SeAdvRo0=:EgAV60IX5/ktsnBCmdF5au z+BcIMokywC3PUaXcEkO9mxRs0WVMb/2GN5Cb0PGbXG3AIvA5crl3bZu41u6woyaY+qOyxEKE n8+F5lQxLtxNjf62vWOfSw6o9ywCRGisa1Baraw+yVeRsZ+VyYsFFStwSlg/3F7/7jz9D1gAP 3eXBwXV27L8uaNCOcJESCvcyRewd0OZYzF4/H1BtlQUCGmxRENanFxK94BQxo+0MH7da3xUPz EDTFPeX4rTx/+5mgc2/bNf92QmbJL/VKoIm2Mvyos6cAU3pbtdSZTsuZf5989D4D8fYaKSQvx umsSbW/evTd4tNTsYa4JITE/UvbcDtwPOaom0iO9UNF/3w3ufVMUlGD1EH7o9G62bRX+dFWjj NDqDCNXv/42gnLX8roPU3VpYORIeF9/KSK5p7gZ8dfPT1cz98BB1GL3E6haAm+8vkPrIVnkjm Jt8qz1s6aGcUi78z6qKFUe9c3FOyDQgmVGs3pG1Y3atTacYPu1Zj/IWW22SRQ/4JeUJGFmFYN UbEHI5NUN2KrVMlKtm9qAN4nuEG4vGC7MVXjMfqJzHgM83ug1iC3b6zQxHF+ylbI6ifUL/fA+ tHGESURvrH8Btgyjq79h+/7UeLueFiZxsuvfkQNhR8cmPJO+gomRn1/SdyWHFFJNJyZkgBvv+ zFW+eGo4kxRNTB1Zfq14CSxf6r38nPbX15zD+ut7umqxLc6VevQrCfISBJ2OfNyZa9pg= Received-SPF: none client-ip=217.72.192.73; envelope-from=laurent@vivier.eu; helo=mout.kundenserver.de X-Spam_score_int: -18 X-Spam_score: -1.9 X-Spam_bar: - X-Spam_report: (-1.9 / 5.0 requ) BAYES_00=-1.9, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H2=-0.001, SPF_HELO_NONE=0.001, SPF_NONE=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: , Cc: Mark Cave-Ayland , Laurent Vivier Errors-To: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org Sender: "Qemu-devel" From: Mark Cave-Ayland The macfb VRAM memory region was configured with coalescing rather than dirty memory logging enabled, causing some areas of the screen not to redraw after a full screen update. Signed-off-by: Mark Cave-Ayland Fixes: 8ac919a065 ("hw/m68k: add Nubus macfb video card") Reviewed-by: Laurent Vivier Message-Id: <20220108164147.30813-1-mark.cave-ayland@ilande.co.uk> Signed-off-by: Laurent Vivier --- hw/display/macfb.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/hw/display/macfb.c b/hw/display/macfb.c index 277d3e663331..4bd7c3ad6a5a 100644 --- a/hw/display/macfb.c +++ b/hw/display/macfb.c @@ -661,9 +661,9 @@ static bool macfb_common_realize(DeviceState *dev, MacfbState *s, Error **errp) memory_region_init_ram(&s->mem_vram, OBJECT(dev), "macfb-vram", MACFB_VRAM_SIZE, &error_abort); + memory_region_set_log(&s->mem_vram, true, DIRTY_MEMORY_VGA); s->vram = memory_region_get_ram_ptr(&s->mem_vram); s->vram_bit_mask = MACFB_VRAM_SIZE - 1; - memory_region_set_coalescing(&s->mem_vram); s->vbl_timer = timer_new_ns(QEMU_CLOCK_VIRTUAL, macfb_vbl_timer, s); macfb_update_mode(s); From patchwork Sun Jan 9 11:41:49 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Laurent Vivier X-Patchwork-Id: 1577396 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=nongnu.org (client-ip=209.51.188.17; helo=lists.gnu.org; envelope-from=qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org; receiver=) Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by bilbo.ozlabs.org (Postfix) with ESMTPS id 4JWwC81ZB4z9sCD for ; Sun, 9 Jan 2022 22:46:12 +1100 (AEDT) Received: from localhost ([::1]:48802 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1n6WeI-0006QD-0L for incoming@patchwork.ozlabs.org; Sun, 09 Jan 2022 06:46:10 -0500 Received: from eggs.gnu.org ([209.51.188.92]:43498) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1n6WaG-0001Ws-Aa for qemu-devel@nongnu.org; Sun, 09 Jan 2022 06:42:01 -0500 Received: from mout.kundenserver.de ([212.227.17.10]:55451) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1n6WaC-0008B3-Ta for qemu-devel@nongnu.org; Sun, 09 Jan 2022 06:41:59 -0500 Received: from quad ([82.142.23.158]) by mrelayeu.kundenserver.de (mreue106 [212.227.15.183]) with ESMTPSA (Nemesis) id 1MGR3r-1nA9EN2IX7-00GpMf; Sun, 09 Jan 2022 12:41:54 +0100 From: Laurent Vivier To: qemu-devel@nongnu.org Subject: [PULL 4/4] target/m68k: don't word align SP in stack frame if M68K_FEATURE_UNALIGNED_DATA feature enabled Date: Sun, 9 Jan 2022 12:41:49 +0100 Message-Id: <20220109114149.1275322-5-laurent@vivier.eu> X-Mailer: git-send-email 2.33.1 In-Reply-To: <20220109114149.1275322-1-laurent@vivier.eu> References: <20220109114149.1275322-1-laurent@vivier.eu> MIME-Version: 1.0 X-Provags-ID: V03:K1:M3/VBfkwK9kedevXqesYS1Qbim8gso14q6uPC4i0xitlTxaMoHZ CDvn1FkH2dYOp+/3HhFPi1M7f0rITvc4OFfDBiIR8a2yERzpWwg9S7lgWouVOxhVlMUjwt+ vOsvEVkKGADPxWrL60bxTuplBG+NaWfdGQd3kQxtxI+TKL6ZVcornDGOD9YIFTnQoj/D2rs r8x75ryL7H9ifrr6E4hcA== X-UI-Out-Filterresults: notjunk:1;V03:K0:8zwJO17ea/U=:MEx4bsQiyHKPSHyPdlhfj1 LndthHyoN3UUi7ttEYbmg0AwFdFycDf3/z6oUMaFaMwS95Zxvz+p3IS16AV3cB/TyPTRp06EL 9zfZDQtGVyig/MOBszK6h7fsLFBAw7pAKhXmr2FkGpv19hHMjowF+eXgDmGg7qmuMj41lw6/F 1Jv7u4EfCkqldaDpx4MwCBHHHXjnLOp1ni/WKGRSXLJvzV6QKYhtmetQS56nfxUZ7Hb3dhZv3 oU73fZgv/+VfUTYucP3KIzz4mGwO4fJji4WVWRps/CjbH0hPTrOgNH1LQso4/rGLIpQ154aAZ 22XBU4rGdvIoFuBEc2dR5WE1yr15odfIb5gj9+8VxtbfIpTyVyICP7SdJ8D8LHDR4jOV60RZt jLKagnx0EDP1xQJG5aczD+Ud8bf6iUA1zKvRnxjuNazcbRUwboYDrptemGeek5uvuRUUvAR1O 93ksA/FGZnYjEIlWkW01hMCppvmCZJg+EGnEFYX5NFqpPm38sfmHS3uyRMuRQi3liTyiioHo2 3jwQAE05wXyUzI7iYsIHgnMaiMT2wzRnbW/uM5qapC6dK2fyliTNwK+qbLTo/MqqrPIysmNng SxLQtOBuEcFAONhx7pbLCdKgu1JUCvWwGoAVIih3tHrM2yQHFucevm7rtObjyiQ+GwxV0iimD jedNhyOr+0K/tROS4uWVMdr2HAZV1qeRU19x9SI5KLtD7ppkMJCdcg9r8e0OZfc3jQ/Y= Received-SPF: none client-ip=212.227.17.10; envelope-from=laurent@vivier.eu; helo=mout.kundenserver.de X-Spam_score_int: -18 X-Spam_score: -1.9 X-Spam_bar: - X-Spam_report: (-1.9 / 5.0 requ) BAYES_00=-1.9, RCVD_IN_MSPIKE_H2=-0.001, SPF_HELO_NONE=0.001, SPF_NONE=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: , Cc: Mark Cave-Ayland , Laurent Vivier Errors-To: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org Sender: "Qemu-devel" From: Mark Cave-Ayland Commit a9431a03f7 ("target/m68k: add M68K_FEATURE_UNALIGNED_DATA feature") added a new feature for processors from the 68020 onwards which do not require data accesses to be word aligned. Unfortunately the original commit missed an additional case whereby the SP is still word aligned when setting up an additional format 1 stack frame so add the necessary M68K_FEATURE_UNALIGNED_DATA feature guard. Signed-off-by: Mark Cave-Ayland Fixes: a9431a03f7 ("target/m68k: add M68K_FEATURE_UNALIGNED_DATA feature") Reviewed-by: Laurent Vivier Message-Id: <20220108180453.18680-1-mark.cave-ayland@ilande.co.uk> Signed-off-by: Laurent Vivier --- target/m68k/op_helper.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/target/m68k/op_helper.c b/target/m68k/op_helper.c index c0f4825034ae..acbd4735154e 100644 --- a/target/m68k/op_helper.c +++ b/target/m68k/op_helper.c @@ -415,7 +415,10 @@ static void m68k_interrupt_all(CPUM68KState *env, int is_hw) oldsr = sr; env->aregs[7] = sp; cpu_m68k_set_sr(env, sr &= ~SR_M); - sp = env->aregs[7] & ~1; + sp = env->aregs[7]; + if (!m68k_feature(env, M68K_FEATURE_UNALIGNED_DATA)) { + sp &= ~1; + } do_stack_frame(env, &sp, 1, oldsr, 0, retaddr); } else { do_stack_frame(env, &sp, 0, oldsr, 0, retaddr);