svn commit: r256164 - head/usr.sbin/bhyve

Dimitry Andric dim at FreeBSD.org
Tue Oct 8 19:39:22 UTC 2013


Author: dim
Date: Tue Oct  8 19:39:21 2013
New Revision: 256164
URL: http://svnweb.freebsd.org/changeset/base/256164

Log:
  In usr.sbin/bhyve/pci_ahci.c, fix several gcc warnings of the form
  "assignment makes pointer from integer without a cast", by changing the
  cmd_lst and rbis members of struct ahci_port from integers to pointers.
  
  Also surround a pow-of-2 test expression with parentheses to clarify it,
  and avoid another gcc warning.
  
  Approved by:	re (glebius)
  Reviewed by:	grehan, mav

Modified:
  head/usr.sbin/bhyve/pci_ahci.c

Modified: head/usr.sbin/bhyve/pci_ahci.c
==============================================================================
--- head/usr.sbin/bhyve/pci_ahci.c	Tue Oct  8 19:18:02 2013	(r256163)
+++ head/usr.sbin/bhyve/pci_ahci.c	Tue Oct  8 19:39:21 2013	(r256164)
@@ -119,8 +119,8 @@ struct ahci_ioreq {
 struct ahci_port {
 	struct blockif_ctxt *bctx;
 	struct pci_ahci_softc *pr_sc;
-	uint64_t cmd_lst;
-	uint64_t rfis;
+	uint8_t *cmd_lst;
+	uint8_t *rfis;
 	int atapi;
 	int reset;
 	int mult_sectors;
@@ -222,7 +222,7 @@ ahci_write_fis(struct ahci_port *p, enum
 {
 	int offset, len, irq;
 
-	if (p->rfis == 0 || !(p->cmd & AHCI_P_CMD_FRE))
+	if (p->rfis == NULL || !(p->cmd & AHCI_P_CMD_FRE))
 		return;
 
 	switch (ft) {
@@ -396,7 +396,7 @@ ahci_handle_dma(struct ahci_port *p, int
 
 	sc = p->pr_sc;
 	prdt = (struct ahci_prdt_entry *)(cfis + 0x80);
-	hdr = p->cmd_lst + slot * AHCI_CL_SIZE;
+	hdr = (struct ahci_cmd_hdr *)(p->cmd_lst + slot * AHCI_CL_SIZE);
 	ncq = 0;
 	readop = 1;
 
@@ -508,7 +508,7 @@ write_prdt(struct ahci_port *p, int slot
 	void *from;
 	int i, len;
 
-	hdr = p->cmd_lst + slot * AHCI_CL_SIZE;
+	hdr = (struct ahci_cmd_hdr *)(p->cmd_lst + slot * AHCI_CL_SIZE);
 	len = size;
 	from = buf;
 	prdt = (struct ahci_prdt_entry *)(cfis + 0x80);
@@ -528,7 +528,7 @@ handle_identify(struct ahci_port *p, int
 {
 	struct ahci_cmd_hdr *hdr;
 
-	hdr = p->cmd_lst + slot * AHCI_CL_SIZE;
+	hdr = (struct ahci_cmd_hdr *)(p->cmd_lst + slot * AHCI_CL_SIZE);
 	if (p->atapi || hdr->prdtl == 0) {
 		p->tfd = (ATA_E_ABORT << 8) | ATA_S_READY | ATA_S_ERROR;
 		p->is |= AHCI_P_IX_TFE;
@@ -869,7 +869,7 @@ atapi_read(struct ahci_port *p, int slot
 
 	sc = p->pr_sc;
 	acmd = cfis + 0x40;
-	hdr = p->cmd_lst + slot * AHCI_CL_SIZE;
+	hdr = (struct ahci_cmd_hdr *)(p->cmd_lst + slot * AHCI_CL_SIZE);
 	prdt = (struct ahci_prdt_entry *)(cfis + 0x80);
 
 	prdt += seek;
@@ -1178,7 +1178,7 @@ ahci_handle_cmd(struct ahci_port *p, int
 	}
 	case ATA_SET_MULTI:
 		if (cfis[12] != 0 &&
-			(cfis[12] > 128 || (cfis[12] & cfis[12] - 1))) {
+			(cfis[12] > 128 || (cfis[12] & (cfis[12] - 1)))) {
 			p->tfd = ATA_S_ERROR | ATA_S_READY;
 			p->tfd |= (ATA_ERROR_ABORT << 8);
 		} else {
@@ -1241,7 +1241,7 @@ ahci_handle_slot(struct ahci_port *p, in
 	int cfl;
 
 	sc = p->pr_sc;
-	hdr = p->cmd_lst + slot * AHCI_CL_SIZE;
+	hdr = (struct ahci_cmd_hdr *)(p->cmd_lst + slot * AHCI_CL_SIZE);
 	cfl = (hdr->flags & 0x1f) * 4;
 	cfis = paddr_guest2host(ahci_ctx(sc), hdr->ctba,
 			0x80 + hdr->prdtl * sizeof(struct ahci_prdt_entry));
@@ -1318,7 +1318,7 @@ ata_ioreq_cb(struct blockif_req *br, int
 	slot = aior->slot;
 	pending = aior->prdtl;
 	sc = p->pr_sc;
-	hdr = p->cmd_lst + slot * AHCI_CL_SIZE;
+	hdr = (struct ahci_cmd_hdr *)(p->cmd_lst + slot * AHCI_CL_SIZE);
 
 	if (cfis[2] == ATA_WRITE_FPDMA_QUEUED ||
 			cfis[2] == ATA_READ_FPDMA_QUEUED)
@@ -1380,7 +1380,7 @@ atapi_ioreq_cb(struct blockif_req *br, i
 	slot = aior->slot;
 	pending = aior->prdtl;
 	sc = p->pr_sc;
-	hdr = p->cmd_lst + aior->slot * AHCI_CL_SIZE;
+	hdr = (struct ahci_cmd_hdr *)(p->cmd_lst + aior->slot * AHCI_CL_SIZE);
 
 	pthread_mutex_lock(&sc->mtx);
 


More information about the svn-src-head mailing list