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)