From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:56754) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1XnrDs-0003Ou-DZ for qemu-devel@nongnu.org; Mon, 10 Nov 2014 10:49:50 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1XnrDm-00084V-CO for qemu-devel@nongnu.org; Mon, 10 Nov 2014 10:49:44 -0500 Received: from cantor2.suse.de ([195.135.220.15]:38917 helo=mx2.suse.de) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1XnrDm-00084P-5y for qemu-devel@nongnu.org; Mon, 10 Nov 2014 10:49:38 -0500 Message-ID: <5460DE90.9040501@suse.de> Date: Mon, 10 Nov 2014 16:49:36 +0100 From: Hannes Reinecke MIME-Version: 1.0 References: <1415633843-4130-1-git-send-email-hare@suse.de> In-Reply-To: <1415633843-4130-1-git-send-email-hare@suse.de> Content-Type: text/plain; charset=windows-1252 Content-Transfer-Encoding: quoted-printable Subject: Re: [Qemu-devel] [PATCH] esp: Do not overwrite ESP_TCHI after reset List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Paolo Bonzini Cc: qemu-devel@nongnu.org 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. >=20 > Signed-off-by: Hannes Reinecke > --- > hw/scsi/esp.c | 4 +++- > 1 file changed, 3 insertions(+), 1 deletion(-) >=20 > 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, uin= t64_t val) > /* Reload DMA counter. */ > s->rregs[ESP_TCLO] =3D s->wregs[ESP_TCLO]; > s->rregs[ESP_TCMID] =3D s->wregs[ESP_TCMID]; > - s->rregs[ESP_TCHI] =3D s->wregs[ESP_TCHI]; > + if (s->wregs[ESP_TCHI]) { > + s->rregs[ESP_TCHI] =3D s->wregs[ESP_TCHI]; > + } > } else { > s->dma =3D 0; > } >=20 Hmm. This is actually not quite correct. I'll be sending an updated patch. Cheers, Hannes --=20 Dr. Hannes Reinecke zSeries & Storage hare@suse.de +49 911 74053 688 SUSE LINUX GmbH, Maxfeldstr. 5, 90409 N=FCrnberg GF: J. Hawn, J. Guild, F. Imend=F6rffer, HRB 21284 (AG N=FCrnberg)