[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH] lsi53c895a: Update dnad when skipping MSGOUT by
From: |
Aurelien Jarno |
Subject: |
Re: [Qemu-devel] [PATCH] lsi53c895a: Update dnad when skipping MSGOUT bytes |
Date: |
Sun, 6 Mar 2011 18:43:33 +0100 |
User-agent: |
Mutt/1.5.20 (2009-06-14) |
On Wed, Jan 26, 2011 at 12:31:00PM +0000, Stefan Hajnoczi wrote:
> Update not only dbc but also dnad when skipping bytes during the MSGOUT
> phase. Previously only dbc was updated which is probably wrong and
> could lead to bogus message codes being read.
>
> Tested on Linux and Windows Server 2003.
>
> Signed-off-by: Stefan Hajnoczi <address@hidden>
> ---
> hw/lsi53c895a.c | 11 +++++++++--
> 1 files changed, 9 insertions(+), 2 deletions(-)
Thanks, applied.
> diff --git a/hw/lsi53c895a.c b/hw/lsi53c895a.c
> index 9c761cd..84a4992 100644
> --- a/hw/lsi53c895a.c
> +++ b/hw/lsi53c895a.c
> @@ -842,6 +842,13 @@ static uint8_t lsi_get_msgbyte(LSIState *s)
> return data;
> }
>
> +/* Skip the next n bytes during a MSGOUT phase. */
> +static void lsi_skip_msgbytes(LSIState *s, unsigned int n)
> +{
> + s->dnad += n;
> + s->dbc -= n;
> +}
> +
> static void lsi_do_msgout(LSIState *s)
> {
> uint8_t msg;
> @@ -869,11 +876,11 @@ static void lsi_do_msgout(LSIState *s)
> switch (msg) {
> case 1:
> DPRINTF("SDTR (ignored)\n");
> - s->dbc -= 2;
> + lsi_skip_msgbytes(s, 2);
> break;
> case 3:
> DPRINTF("WDTR (ignored)\n");
> - s->dbc -= 1;
> + lsi_skip_msgbytes(s, 1);
> break;
> default:
> goto bad;
> --
> 1.7.2.3
>
>
>
--
Aurelien Jarno GPG: 1024D/F1BCDB73
address@hidden http://www.aurel32.net
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- Re: [Qemu-devel] [PATCH] lsi53c895a: Update dnad when skipping MSGOUT bytes,
Aurelien Jarno <=