From: "Philippe Mathieu-Daudé" <f4bug@amsat.org>
To: qemu-devel@nongnu.org
Cc: Alexander Bulekov <alxndr@bu.edu>, Thomas Huth <thuth@redhat.com>,
Richard Henderson <richard.henderson@linaro.org>,
qemu-stable@nongnu.org, "Michael S. Tsirkin" <mst@redhat.com>
Subject: Re: [PATCH v2] hw/pci-host/q35: Ignore write of reserved PCIEXBAR LENGTH field
Date: Mon, 14 Jun 2021 13:14:51 +0200 [thread overview]
Message-ID: <602ced9a-757d-f7f5-0ec8-1f8e8cab9a72@amsat.org> (raw)
In-Reply-To: <20210526142438.281477-1-f4bug@amsat.org>
ping?
On 5/26/21 4:24 PM, Philippe Mathieu-Daudé wrote:
> libFuzzer triggered the following assertion:
>
> cat << EOF | qemu-system-i386 -M pc-q35-5.0 \
> -nographic -monitor none -serial none \
> -qtest stdio -d guest_errors -trace pci\*
> outl 0xcf8 0xf2000060
> outl 0xcfc 0x8400056e
> EOF
> pci_cfg_write mch 00:0 @0x60 <- 0x8400056e
> Aborted (core dumped)
>
> This is because guest wrote MCH_HOST_BRIDGE_PCIEXBAR_LENGTH_RVD
> (reserved value) to the PCIE XBAR register.
>
> There is no indication on the datasheet about what occurs when
> this value is written. Simply ignore it on QEMU (and report an
> guest error):
>
> pci_cfg_write mch 00:0 @0x60 <- 0x8400056e
> Q35: Reserved PCIEXBAR LENGTH
> pci_cfg_read mch 00:0 @0x0 -> 0x8086
> pci_cfg_read mch 00:0 @0x0 -> 0x29c08086
> ...
>
> Cc: qemu-stable@nongnu.org
> Reported-by: Alexander Bulekov <alxndr@bu.edu>
> BugLink: https://bugs.launchpad.net/qemu/+bug/1878641
> Fixes: df2d8b3ed4 ("q35: Introduce q35 pc based chipset emulator")
> Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
> Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
> ---
> v2: Do not remove default case (rth)
> ---
> hw/pci-host/q35.c | 3 +++
> 1 file changed, 3 insertions(+)
>
> diff --git a/hw/pci-host/q35.c b/hw/pci-host/q35.c
> index 2eb729dff58..0f37cf056a9 100644
> --- a/hw/pci-host/q35.c
> +++ b/hw/pci-host/q35.c
> @@ -29,6 +29,7 @@
> */
>
> #include "qemu/osdep.h"
> +#include "qemu/log.h"
> #include "hw/i386/pc.h"
> #include "hw/pci-host/q35.h"
> #include "hw/qdev-properties.h"
> @@ -318,6 +319,8 @@ static void mch_update_pciexbar(MCHPCIState *mch)
> addr_mask |= MCH_HOST_BRIDGE_PCIEXBAR_64ADMSK;
> break;
> case MCH_HOST_BRIDGE_PCIEXBAR_LENGTH_RVD:
> + qemu_log_mask(LOG_GUEST_ERROR, "Q35: Reserved PCIEXBAR LENGTH\n");
> + return;
> default:
> abort();
> }
>
next prev parent reply other threads:[~2021-06-14 11:18 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-05-26 14:24 [PATCH v2] hw/pci-host/q35: Ignore write of reserved PCIEXBAR LENGTH field Philippe Mathieu-Daudé
2021-06-14 11:14 ` Philippe Mathieu-Daudé [this message]
2021-06-21 10:05 ` Philippe Mathieu-Daudé
2021-06-21 14:09 ` Alexander Bulekov
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=602ced9a-757d-f7f5-0ec8-1f8e8cab9a72@amsat.org \
--to=f4bug@amsat.org \
--cc=alxndr@bu.edu \
--cc=mst@redhat.com \
--cc=qemu-devel@nongnu.org \
--cc=qemu-stable@nongnu.org \
--cc=richard.henderson@linaro.org \
--cc=thuth@redhat.com \
/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 read-only IMAP folder(s) and NNTP newsgroup(s).