[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH] esp: Do not overwrite ESP_TCHI after reset
From: |
Hannes Reinecke |
Subject: |
Re: [Qemu-devel] [PATCH] esp: Do not overwrite ESP_TCHI after reset |
Date: |
Mon, 10 Nov 2014 16:49:36 +0100 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:31.0) Gecko/20100101 Thunderbird/31.1.0 |
On 11/10/2014 04:37 PM, Hannes Reinecke wrote:
> After a reset ESP_TCHI should contain the unique ID
> of the chip. This value will be overwritten with the
> current tranfer count if the transfer count has
> previously been set.
> The code never checks if the transfer count has
> been set, so the unique ID will always be overwritten
> if the driver sends a DMA NOP after reset.
>
> Signed-off-by: Hannes Reinecke <address@hidden>
> ---
> hw/scsi/esp.c | 4 +++-
> 1 file changed, 3 insertions(+), 1 deletion(-)
>
> diff --git a/hw/scsi/esp.c b/hw/scsi/esp.c
> index 5ab44d8..9798180 100644
> --- a/hw/scsi/esp.c
> +++ b/hw/scsi/esp.c
> @@ -454,7 +454,9 @@ void esp_reg_write(ESPState *s, uint32_t saddr, uint64_t
> val)
> /* Reload DMA counter. */
> s->rregs[ESP_TCLO] = s->wregs[ESP_TCLO];
> s->rregs[ESP_TCMID] = s->wregs[ESP_TCMID];
> - s->rregs[ESP_TCHI] = s->wregs[ESP_TCHI];
> + if (s->wregs[ESP_TCHI]) {
> + s->rregs[ESP_TCHI] = s->wregs[ESP_TCHI];
> + }
> } else {
> s->dma = 0;
> }
>
Hmm.
This is actually not quite correct.
I'll be sending an updated patch.
Cheers,
Hannes
--
Dr. Hannes Reinecke zSeries & Storage
address@hidden +49 911 74053 688
SUSE LINUX GmbH, Maxfeldstr. 5, 90409 Nürnberg
GF: J. Hawn, J. Guild, F. Imendörffer, HRB 21284 (AG Nürnberg)