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 <h...@suse.de>
> ---
>  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
h...@suse.de                          +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)

Reply via email to