/* Abort when the target/lun does not match or when our SCB is not busy. Used for tagged commands.  */
static int initio_msgout_abort_tag(struct initio_host *host)
/* Abort when the target/lun does not match or when our SCB is not busy. Used for tagged commands.  */
static int initio_msgout_abort_tag(struct initio_host *host)
{
	outb(((inb(host->addr + TUL_SSignal) & (TSC_SET_ACK | 7)) | TSC_SET_ATN), host->addr + TUL_SSignal);
	if (initio_msgin_accept(host) == -1)
		return -1;
	if (host->phase != MSG_OUT)
		return initio_bad_seq(host);
	outb(MSG_ABORT_TAG, host->addr + TUL_SFifo);
	outb(TSC_XF_FIFO_OUT, host->addr + TUL_SCmd);
	return initio_wait_disc(host);
}