From: "Alex Bennée" <alex.bennee@linaro.org>
To: Cord Amfmgm <dmamfmgm@gmail.com>
Cc: Peter Maydell <peter.maydell@linaro.org>, qemu-devel@nongnu.org
Subject: Re: hw/usb/hcd-ohci: Fix #1510, #303: pid not IN or OUT
Date: Thu, 30 May 2024 09:33:05 +0100 [thread overview]
Message-ID: <87zfs7d7i6.fsf@draig.linaro.org> (raw)
In-Reply-To: <CACBuX0SR2cuFu+GaFGxp5rD_b+4HnNHfhQx2Csdw8L8QN+T7AA@mail.gmail.com> (Cord Amfmgm's message of "Wed, 29 May 2024 23:54:18 -0500")
Cord Amfmgm <dmamfmgm@gmail.com> writes:
> On Tue, May 28, 2024 at 11:32 AM Peter Maydell <peter.maydell@linaro.org> wrote:
>
> On Tue, 28 May 2024 at 16:37, Cord Amfmgm <dmamfmgm@gmail.com> wrote:
> >
> > On Tue, May 28, 2024 at 9:03 AM Peter Maydell <peter.maydell@linaro.org> wrote:
> >>
> >> On Mon, 20 May 2024 at 23:24, Cord Amfmgm <dmamfmgm@gmail.com> wrote:
> >> > On Mon, May 20, 2024 at 12:05 PM Peter Maydell <peter.maydell@linaro.org> wrote:
<snip>
> >> > And here's an example buffer of length 0 -- you probably already know what I'm going to do here:
> >> >
> >> > char buf[0];
> >> > char * CurrentBufferPointer = &buf[0];
> >> > char * BufferEnd = &buf[-1]; // "address of the last byte in the buffer"
> >> > // The OHCI Host Controller than advances CurrentBufferPointer like this: CurrentBufferPointer += 0
> >> > // After the transfer:
> >> > // CurrentBufferPointer = &buf[0];
> >> > // BufferEnd = &buf[-1];
> >>
> >> Right, but why do you think this is valid, rather than
> >> being a guest software bug? My reading of the spec is that it's
> >> pretty clear about how to say "zero length buffer", and this
> >> isn't it.
> >>
> >> Is there some real-world guest OS that programs the OHCI
> >> controller this way that we're trying to accommodate?
> >
> >
> > qemu versions 4.2 and before allowed this behavior.
>
> So? That might just mean we had a bug and we fixed it.
> 4.2 is a very old version of QEMU and nobody seems to have
> complained in the four years since we released 5.0 about this,
> which suggests that generally guest OS drivers don't try
> to send zero-length buffers in this way.
>
> > I don't think it's valid to ask for a *popular* guest OS as a proof-of-concept because I'm not an expert on those.
>
> I didn't ask for "popular"; I asked for "real-world".
> What is the actual guest code you're running that falls over
> because of the behaviour change?
>
> More generally, why do you want this behaviour to be
> changed? Reasonable reasons might include:
> * we're out of spec based on reading the documentation
> * you're trying to run some old Windows VM/QNX/etc image,
> and it doesn't work any more
> * all the real hardware we tested behaves this way
>
> But don't necessarily include:
> * something somebody wrote and only tested on QEMU happens to
> assume the old behaviour rather than following the hw spec
>
> QEMU occasionally works around guest OS bugs, but only as
> when we really have to. It's usually better to fix the
> bug in the guest.
>
> It's not, and I've already demonstrated that real hardware is consistent with the fix in this patch.
>
> Please check your tone.
I don't think that is a particularly helpful comment for someone who is
taking the time to review your patches. Reading through the thread I
didn't see anything that said this is how real HW behaves but I may well
have missed it. However you have a number of review comments to address
so I suggest you spin a v2 of the series to address them and outline the
reason to accept an out of spec transaction.
--
Alex Bennée
Virtualisation Tech Lead @ Linaro
next prev parent reply other threads:[~2024-05-30 8:33 UTC|newest]
Thread overview: 27+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-02-06 7:13 hw/usb/hcd-ohci: Fix #1510, #303: pid not IN or OUT Cord Amfmgm
2024-04-18 15:43 ` Michael Tokarev
2024-04-19 15:00 ` Cord Amfmgm
2024-04-24 20:43 ` Cord Amfmgm
2024-05-07 20:20 ` Cord Amfmgm
2024-05-08 8:44 ` Thomas Huth
2024-05-08 9:53 ` Philippe Mathieu-Daudé
2024-05-08 15:28 ` Cord Amfmgm
2024-05-09 0:32 ` Cord Amfmgm
2024-05-09 17:48 ` Peter Maydell
2024-05-09 18:16 ` Cord Amfmgm
2024-05-09 20:37 ` BALATON Zoltan
2024-05-10 7:08 ` Cord Amfmgm
2024-05-11 10:25 ` Peter Maydell
2024-05-12 16:24 ` Cord Amfmgm
2024-05-20 17:04 ` Peter Maydell
2024-05-20 22:24 ` Cord Amfmgm
2024-05-28 14:03 ` Peter Maydell
2024-05-28 15:37 ` Cord Amfmgm
2024-05-28 16:32 ` Peter Maydell
2024-05-30 4:54 ` Cord Amfmgm
2024-05-30 8:33 ` Alex Bennée [this message]
2024-05-30 16:03 ` Cord Amfmgm
2024-05-30 19:12 ` Alex Bennée
2024-05-30 21:11 ` Cord Amfmgm
-- strict thread matches above, loose matches on Subject: below --
2024-02-06 7:02 Cord Amfmgm
2024-02-06 7:05 ` Cord Amfmgm
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=87zfs7d7i6.fsf@draig.linaro.org \
--to=alex.bennee@linaro.org \
--cc=dmamfmgm@gmail.com \
--cc=peter.maydell@linaro.org \
--cc=qemu-devel@nongnu.org \
/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).