From nobody Tue Feb 10 15:28:21 2026 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of _spf.google.com designates 209.85.128.54 as permitted sender) client-ip=209.85.128.54; envelope-from=philippe.mathieu.daude@gmail.com; helo=mail-wm1-f54.google.com; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of _spf.google.com designates 209.85.128.54 as permitted sender) smtp.mailfrom=philippe.mathieu.daude@gmail.com ARC-Seal: i=1; a=rsa-sha256; t=1635613622; cv=none; d=zohomail.com; s=zohoarc; b=idhWgHeCOmRHr8SLd/MnN+kpO5+R9osOD3amSwTgMrB3/Ika8MsDZOVuqS+OBoJucvsg2l+LzPoN5Of8u1YM72VxSYyj5tCSxAIbVVMJBU1GFV88Xldj/yUR95ZQXU+epjpHYqpGiAIwv8rSb3b+3lxyEiUzWP2OIH1r2L2D+MA= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1635613622; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:MIME-Version:Message-ID:References:Sender:Subject:To; bh=mev2rN/XVuF94j5tb2jzkwFTcZr7GILqfegam3Rooig=; b=aBztMcOJGgJFQ0CyVvrO+t1PlQTHtHxrJaelmSp+b5CZcYlx2hQF8ekvAmmXj6wm7MhCapCAk5H9Z8SvSnVmrJ3KJiCodPr/uUefDTjkWO5taIpKZeFTXCjDBrvCuLqU5ZEs0tAuEhDgxohLNc4uTsVK1/+AWftwNqZ+UGtfTyw= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of _spf.google.com designates 209.85.128.54 as permitted sender) smtp.mailfrom=philippe.mathieu.daude@gmail.com Received: from mail-wm1-f54.google.com (mail-wm1-f54.google.com [209.85.128.54]) by mx.zohomail.com with SMTPS id 1635613622636894.384279364654; Sat, 30 Oct 2021 10:07:02 -0700 (PDT) Received: by mail-wm1-f54.google.com with SMTP id v127so10393836wme.5 for ; Sat, 30 Oct 2021 10:07:02 -0700 (PDT) Return-Path: Return-Path: Received: from x1w.. (62.red-83-57-168.dynamicip.rima-tde.net. [83.57.168.62]) by smtp.gmail.com with ESMTPSA id i7sm3793802wmb.20.2021.10.30.10.06.59 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 30 Oct 2021 10:07:00 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=sender:from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=mev2rN/XVuF94j5tb2jzkwFTcZr7GILqfegam3Rooig=; b=X4bkxevQp1qVNSLDKijoS5etUK2yO9DbNHQxV+IRn7+tvi4GtL9jITLcxKo/nh8YvF nLxTzDFgGjlctynVB0FgXccrKJOyy/amR0VtojyZej6H3rJpBrSEZpVlGjeZnyBbCUZM /6enAlhyEPDBu4yEXeu3HKVB/82eWjZOHRbBOMLQ3yxcdFl7qMaZf+Pgn3jGX5fzpK8x pzjCnlym9msw7LpAbsVA7JD5+FsuOV92VStaSsznc7cJZnK2Xcp1ijlCBMV7OUBJgQyS rMOqTCH5QK9LEzy2Veuyd6L7bpzy4yzElZ529gx+GS5WOeOxUy3yVrtd5+0+XWuyns8x IbZA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:sender:from:to:cc:subject:date:message-id :in-reply-to:references:mime-version:content-transfer-encoding; bh=mev2rN/XVuF94j5tb2jzkwFTcZr7GILqfegam3Rooig=; b=R6XrFIvSGRnXwHHHxb7C79C7TqcRwkBxVJpd5AOeEXyDNZNJ7pGw05ddikIuGJuE9y q+wspjD9KCOKj3LHSMK8xeLMTnsaDFNDmGj1QyLtqJKc6crAluwPSkJBGGrDPB4cOl0B tCU/2rEXBviNcM2ozeQ818KnXU7Ga7khSVFivE7eaxT4dzK+qE+/xyCt/2eHSPIbxyX+ Uq6zVCDB+s90Ykl8QPjOl4x9dyAMj4nPeZzazJUbVfqlqDpAV+kRcS5M9kHucfDuvVM+ /sBXyUmfaVzQN2t9SyIsYvH8xRqnic9HGOkmR7rTOouGHZuyyov6+FAZlhCIhIYIdHM3 bGGw== X-Gm-Message-State: AOAM533+AiAAZLcGwVjcxezUpj1cM9hgQwwfskc3JUhnIjHPlK5h11ho jNiG5agjl3buyJ2vFempxcg= X-Google-Smtp-Source: ABdhPJxbGY3ehZMq18vijfDTlE0lfDICWPlYKUq1ZrWEwduyIbB9Ih4PHJz4Uyxxceojuldg+2xIxQ== X-Received: by 2002:a1c:7ed3:: with SMTP id z202mr8720087wmc.110.1635613620964; Sat, 30 Oct 2021 10:07:00 -0700 (PDT) Sender: =?UTF-8?Q?Philippe_Mathieu=2DDaud=C3=A9?= From: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= To: qemu-devel@nongnu.org Cc: =?UTF-8?q?Marc-Andr=C3=A9=20Lureau?= , Yoshinori Sato , Magnus Damm , Paolo Bonzini , BALATON Zoltan , Richard Henderson , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= Subject: [PULL 09/30] hw/char/sh_serial: Do not abort on invalid access Date: Sat, 30 Oct 2021 19:05:54 +0200 Message-Id: <20211030170615.2636436-10-f4bug@amsat.org> X-Mailer: git-send-email 2.31.1 In-Reply-To: <20211030170615.2636436-1-f4bug@amsat.org> References: <20211030170615.2636436-1-f4bug@amsat.org> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-ZohoMail-DKIM: pass (identity @gmail.com) X-ZM-MESSAGEID: 1635613623018100001 From: BALATON Zoltan Replace fprintf with qemu_log_mask LOG_GUEST_ERROR as the intention is to handle valid accesses in these functions so if we get to these errors then it's an invalid access. Do not abort as that would allow the guest to crash QEMU and the practice in other devices is to not do that just log and ignore the invalid access. While at it also simplify the complex bit ops to check if a return value was set which can be done much simpler and clearer. Signed-off-by: BALATON Zoltan Reviewed-by: Richard Henderson Reviewed-by: Philippe Mathieu-Daud=C3=A9 Message-Id: <6b46045141d6d9cc32e17c223896fa1116384796.1635541329.git.balato= n@eik.bme.hu> Signed-off-by: Philippe Mathieu-Daud=C3=A9 --- hw/char/sh_serial.c | 19 ++++++++++--------- 1 file changed, 10 insertions(+), 9 deletions(-) diff --git a/hw/char/sh_serial.c b/hw/char/sh_serial.c index 053f45e1a62..2d6ea0042ed 100644 --- a/hw/char/sh_serial.c +++ b/hw/char/sh_serial.c @@ -31,6 +31,7 @@ #include "chardev/char-fe.h" #include "qapi/error.h" #include "qemu/timer.h" +#include "qemu/log.h" #include "trace.h" =20 #define SH_SERIAL_FLAG_TEND (1 << 0) @@ -195,17 +196,16 @@ static void sh_serial_write(void *opaque, hwaddr offs, return; } } - - fprintf(stderr, "sh_serial: unsupported write to 0x%02" - HWADDR_PRIx "\n", offs); - abort(); + qemu_log_mask(LOG_GUEST_ERROR, + "%s: unsupported write to 0x%02" HWADDR_PRIx "\n", + __func__, offs); } =20 static uint64_t sh_serial_read(void *opaque, hwaddr offs, unsigned size) { sh_serial_state *s =3D opaque; - uint32_t ret =3D ~0; + uint32_t ret =3D UINT32_MAX; =20 #if 0 switch (offs) { @@ -299,10 +299,11 @@ static uint64_t sh_serial_read(void *opaque, hwaddr o= ffs, } trace_sh_serial_read(size, offs, ret); =20 - if (ret & ~((1 << 16) - 1)) { - fprintf(stderr, "sh_serial: unsupported read from 0x%02" - HWADDR_PRIx "\n", offs); - abort(); + if (ret > UINT16_MAX) { + qemu_log_mask(LOG_GUEST_ERROR, + "%s: unsupported read from 0x%02" HWADDR_PRIx "\n", + __func__, offs); + ret =3D 0; } =20 return ret; --=20 2.31.1