VPRINTK("ata%u: xfering %d bytes\n", ap->id, bytes);  
static void atapi_pio_bytes(struct ata_queued_cmd *qc){	struct ata_port *ap = qc->ap;	struct ata_device *dev = qc->dev;	unsigned int ireason, bc_lo, bc_hi, bytes;	int i_write, do_write = (qc->tf.flags & ATA_TFLAG_WRITE) ? 1 : 0;	ap->ops->tf_read(ap, &qc->tf);	ireason = qc->tf.nsect;	bc_lo = qc->tf.lbam;	bc_hi = qc->tf.lbah;	bytes = (bc_hi << 8) | bc_lo;	/* shall be cleared to zero, indicating xfer of data */	if (ireason & (1 << 0))		goto err_out;	/* make sure transfer direction matches expected */	i_write = ((ireason & (1 << 1)) == 0) ? 1 : 0;	if (do_write != i_write)		goto err_out;	__atapi_pio_bytes(qc, bytes);	return;err_out:	printk(KERN_INFO "ata%u: dev %u: ATAPI check failed\n",	      ap->id, dev->devno);	ap->hsm_task_state = HSM_ST_ERR;}
4520	/local/tlutelli/issta_data/temp/c/2005_temp/2005/4520/312f7da2824c82800ee78d6190f12854456957af/libata-core.c/clean/drivers/scsi/libata-core.c