Comment from previous patch version:

drivers/scsi/adp94xx/adp94xx_sata.c: In function 'asd_sata_atapi_post':
drivers/scsi/adp94xx/adp94xx_sata.h:410: sorry, unimplemented: inlining failed in call to 'asd_sata_get_edb': function body not available
drivers/scsi/adp94xx/adp94xx_sata.c:351: sorry, unimplemented: called from here
make[3]: *** [drivers/scsi/adp94xx/adp94xx_sata.o] Error 1

--- ./drivers/scsi/adp94xx/adp94xx_sata.c.adp94	2007-11-16 14:34:11.000000000 +0300
+++ ./drivers/scsi/adp94xx/adp94xx_sata.c	2007-11-22 20:34:23.000000000 +0300
@@ -320,6 +320,46 @@ union asd_cmd		*acmd
 	return ret;
 }
 
+INLINE
+struct ata_resp_edb *
+asd_sata_get_edb(
+struct asd_softc	*asd,
+struct asd_done_list	*done_listp,
+struct scb **pescb,
+u_int *pedb_index
+)
+{
+	struct response_sb	*responsep;
+	unsigned		buflen;
+	struct scb		*escb;
+	u_int			escb_index;
+	u_int			edb_index;
+	struct ata_resp_edb	*ata_resp_edbp;
+	union edb		*edbp;
+
+	responsep = &done_listp->stat_blk.response;
+
+	buflen = (responsep->empty_buf_elem & EDB_ELEM_MASK) << 4 | 
+		responsep->empty_buf_len;
+
+	if (buflen == sizeof(struct ata_resp_edb)) {
+		asd_print("buflen is %d - should be %u\n",
+			buflen, (unsigned)sizeof(struct ata_resp_edb));
+	}
+
+	escb_index = asd_le16toh(responsep->empty_scb_tc);
+
+	edb_index = RSP_EDB_ELEM(responsep) - 1;
+
+	edbp = asd_hwi_indexes_to_edb(asd, &escb, escb_index, edb_index);
+
+	ata_resp_edbp = &edbp->ata_resp;
+	*pescb = escb;
+	*pedb_index = edb_index;
+
+	return ata_resp_edbp;
+}
+
 void
 asd_sata_atapi_post(
 struct asd_softc	*asd,
@@ -840,46 +880,6 @@ struct ata_resp_edb	*ata_resp_edbp
 	return;
 }
 
-INLINE
-struct ata_resp_edb *
-asd_sata_get_edb(
-struct asd_softc	*asd,
-struct asd_done_list	*done_listp,
-struct scb **pescb,
-u_int *pedb_index
-)
-{
-	struct response_sb	*responsep;
-	unsigned		buflen;
-	struct scb		*escb;
-	u_int			escb_index;
-	u_int			edb_index;
-	struct ata_resp_edb	*ata_resp_edbp;
-	union edb		*edbp;
-
-	responsep = &done_listp->stat_blk.response;
-
-	buflen = (responsep->empty_buf_elem & EDB_ELEM_MASK) << 4 | 
-		responsep->empty_buf_len;
-
-	if (buflen == sizeof(struct ata_resp_edb)) {
-		asd_print("buflen is %d - should be %u\n",
-			buflen, (unsigned)sizeof(struct ata_resp_edb));
-	}
-
-	escb_index = asd_le16toh(responsep->empty_scb_tc);
-
-	edb_index = RSP_EDB_ELEM(responsep) - 1;
-
-	edbp = asd_hwi_indexes_to_edb(asd, &escb, escb_index, edb_index);
-
-	ata_resp_edbp = &edbp->ata_resp;
-	*pescb = escb;
-	*pedb_index = edb_index;
-
-	return ata_resp_edbp;
-}
-
 /*
  * This routine will only get called when a command that was issued by the
  * state machine has completed.
