[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-block] [PATCH] atapi: allow 0 transfer bytes for read_cd comma
From: |
Kevin Wolf |
Subject: |
Re: [Qemu-block] [PATCH] atapi: allow 0 transfer bytes for read_cd command |
Date: |
Thu, 18 Aug 2016 16:24:55 +0200 |
User-agent: |
Mutt/1.5.21 (2010-09-15) |
Am 18.08.2016 um 11:48 hat Hervé Poussineau geschrieben:
> This fixes Windows NT4 startup when a cdrom is inserted.
>
> Fixes: 9ef2e93f9b1888c7d0deb4a105149138e6ad2e98
> Signed-off-by: Hervé Poussineau <address@hidden>
Hm, which of the paths in cmd_read_cd() does this hit? Is it the one
that directly calls ide_atapi_cmd_ok() without doing anything?
I think adding NONDATA is okay, but we may need to add explicit
atapi_byte_count_limit() == 0 checks to those paths that do transfer
some data. At least at first sight I'm not sure that
ide_atapi_cmd_read() can handle this.
Kevin
> hw/ide/atapi.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/hw/ide/atapi.c b/hw/ide/atapi.c
> index 6189675..63312f2 100644
> --- a/hw/ide/atapi.c
> +++ b/hw/ide/atapi.c
> @@ -1289,7 +1289,7 @@ static const struct AtapiCmd {
> [ 0xad ] = { cmd_read_dvd_structure, CHECK_READY },
> [ 0xbb ] = { cmd_set_speed, NONDATA },
> [ 0xbd ] = { cmd_mechanism_status, 0 },
> - [ 0xbe ] = { cmd_read_cd, CHECK_READY },
> + [ 0xbe ] = { cmd_read_cd, CHECK_READY | NONDATA },
> /* [1] handler detects and reports not ready condition itself */
> };