From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:54465) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Z8Vrj-0005jk-Lk for qemu-devel@nongnu.org; Fri, 26 Jun 2015 11:48:32 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1Z8Vri-0001c9-QO for qemu-devel@nongnu.org; Fri, 26 Jun 2015 11:48:31 -0400 Date: Fri, 26 Jun 2015 16:48:23 +0100 From: Stefan Hajnoczi Message-ID: <20150626154823.GD31186@stefanha-thinkpad.redhat.com> References: <1435018875-22527-1-git-send-email-jsnow@redhat.com> <1435018875-22527-13-git-send-email-jsnow@redhat.com> MIME-Version: 1.0 Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="wLAMOaPNJ0fu1fTG" Content-Disposition: inline In-Reply-To: <1435018875-22527-13-git-send-email-jsnow@redhat.com> Subject: Re: [Qemu-devel] [PATCH 12/16] ahci: ncq migration List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: John Snow Cc: kwolf@redhat.com, pbonzini@redhat.com, qemu-devel@nongnu.org, qemu-block@nongnu.org --wLAMOaPNJ0fu1fTG Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Content-Transfer-Encoding: quoted-printable On Mon, Jun 22, 2015 at 08:21:11PM -0400, John Snow wrote: > @@ -1555,6 +1573,35 @@ static int ahci_state_post_load(void *opaque, int = version_id) > return -1; > } > =20 > + for (j =3D 0; j < AHCI_MAX_CMDS; j++) { > + ncq_tfs =3D &ad->ncq_tfs[j]; > + ncq_tfs->drive =3D ad; > + > + if (ncq_tfs->used !=3D ncq_tfs->halt) { > + return -1; > + } > + if (!ncq_tfs->halt) { > + continue; > + } > + if (!is_ncq(ncq_tfs->cmd)) { > + return -1; > + } > + if (ncq_tfs->slot !=3D ncq_tfs->tag) { > + return -1; > + } > + if (ncq_tfs->slot > AHCI_MAX_CMDS) { > + return -1; > + } > + ncq_tfs->cmdh =3D &((AHCICmdHdr *)ad->lst)[ncq_tfs->slot]; Is there a guarantee that ->lst has been mapped? Maybe pr->cmd & PORT_CMD_START was 0. We need to check that the HBA is in a valid state for NCQ processing before attempting this. --wLAMOaPNJ0fu1fTG Content-Type: application/pgp-signature -----BEGIN PGP SIGNATURE----- Version: GnuPG v1 iQEcBAEBAgAGBQJVjXRHAAoJEJykq7OBq3PIc54IAJuzuFqty027FVuf41xcydhp e9j2vM/emWtZFhljhJLYXWX6h9zFCmiKyQYGwHJv98V+gP5s/dSvqwHJnKeseJVd VWbivJNCIVo5A3B4/AnvpvwGEKUUnzPN0HA4b9CAFsusz+RzBS//kiDlTNshxvFj oo7CmaA5KNd+boc/XQgerQpazr1SOAo+RtUzh8k8Q1PynDsA1YZr1ICByACRDI1T MDKxnSzM4hsRjUd0EsUMksKa6zJS51oY+vvobsDseAhccyewikUGZPA/KegOq81o vYCZbT55+YyUQbyIcAZEldBAX66mPJGD4OYEqllgACkn6L09W/4Hpslr4ZuKaDk= =N1Ax -----END PGP SIGNATURE----- --wLAMOaPNJ0fu1fTG--