linux-ide.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH/RFC] libata-dev: handle ERR=1 DRQ=1
@ 2006-03-21 11:39 Albert Lee
  2006-03-21 17:35 ` Jeff Garzik
  0 siblings, 1 reply; 11+ messages in thread
From: Albert Lee @ 2006-03-21 11:39 UTC (permalink / raw)
  To: Jeff Garzik; +Cc: IDE Linux, Doug Maxey

handle ERR=1 DRQ=1 for PIO protocol

Signed-off-by: Albert Lee <albertcc@tw.ibm.com>
---

Some PIO read commands might set DRQ=1 alone with ERR=1.
Under such situation, the data block should be transferred even if err=1.

This patch adds extra logic to HSM_ST_ERR to handle the required
data transfer.

BTW, also found the following work in progress:
"Disable Data Transfer after Error Detection"
http://t13.org/docs2006/dt1825Lr3-DDT_TR.pdf
If this feature is turned on, then DRQ will be guaranteed 0 when ERR=1
which would simplify the PIO error handling.

Patch against the irq-pio branch.
Need your review and advice, thanks.

Albert


--- irq-pio-printk/drivers/scsi/libata-core.c	2006-03-21 17:55:35.000000000 +0800
+++ irq-pio-err/drivers/scsi/libata-core.c	2006-03-21 19:09:38.000000000 +0800
@@ -3684,6 +3684,46 @@ fsm_start:
 			printk(KERN_ERR "ata%u: command error, drv_stat 0x%x\n",
 			       ap->id, status);
 
+		/* handle ERR=1 DRQ=1 */
+		if ((status & ATA_ERR) && (status & ATA_DRQ)) {
+			/* ERR=1 DRQ=1 is only possible for reads (READ PIO
+			 * and READ MULTI, etc). For writes, DRQ=1 doesn't
+			 * make sense since the data block has been
+			 * transferred to the device.
+			 */
+			if ((qc->tf.protocol == ATA_PROT_PIO) &&
+			    !(qc->tf.flags & ATA_TFLAG_WRITE)) {
+				/* Transfer the corrupted data */
+				ata_pio_sectors(qc);
+
+				/* FIXME: contents of taskfile registers
+				 * undefined after the data xfer.
+				 * Maybe we should call ->tf_read()
+				 * and backup the taskfile somewhere?
+				 * Otherwise ata_gen_fixed_sense() won't
+				 * get needed information.
+				 */
+
+				/* FIXME: The spec said if "correctable"
+				 * data error, subsequent blocks will
+				 * be transferred. Isn't the command
+				 * stopped if ERR is set?
+				 */
+
+				ata_altstatus(ap); /* flush */
+				status = ata_chk_status(ap);
+
+				printk(KERN_ERR "ata%u: ERR=1 DRQ=1 error"
+				       " block transferred, drv_stat 0x%x\n",
+				       ap->id, status);
+			} else
+				/* Low possibility for other protocols
+				 * being ERR=1 DRQ=1. Maybe device error?
+				 */
+				printk(KERN_ERR "ata%u: ERR=1 DRQ=1\n",
+				       ap->id);
+		}
+
 		/* make sure qc->err_mask is available to
 		 * know what's wrong and recover
 		 */



^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [PATCH/RFC] libata-dev: handle ERR=1 DRQ=1
  2006-03-21 11:39 [PATCH/RFC] libata-dev: handle ERR=1 DRQ=1 Albert Lee
@ 2006-03-21 17:35 ` Jeff Garzik
  2006-03-21 17:43   ` Eric D. Mudama
  2006-03-23  8:26   ` [PATCH/RFC 2/2] libata-dev: fix the device err check sequence Albert Lee
  0 siblings, 2 replies; 11+ messages in thread
From: Jeff Garzik @ 2006-03-21 17:35 UTC (permalink / raw)
  To: albertl; +Cc: IDE Linux, Doug Maxey, edmudama

Albert Lee wrote:
> handle ERR=1 DRQ=1 for PIO protocol
> 
> Signed-off-by: Albert Lee <albertcc@tw.ibm.com>
> ---
> 
> Some PIO read commands might set DRQ=1 alone with ERR=1.
> Under such situation, the data block should be transferred even if err=1.
> 
> This patch adds extra logic to HSM_ST_ERR to handle the required
> data transfer.
> 
> BTW, also found the following work in progress:
> "Disable Data Transfer after Error Detection"
> http://t13.org/docs2006/dt1825Lr3-DDT_TR.pdf
> If this feature is turned on, then DRQ will be guaranteed 0 when ERR=1
> which would simplify the PIO error handling.
> 
> Patch against the irq-pio branch.
> Need your review and advice, thanks.

If DRQ==1 then the error register and ATA_ERR should be considered 
irrelevant.  I agree with Eric, that's more of a "don't touch it, other 
than to SRST it" situation.

	Jeff



^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [PATCH/RFC] libata-dev: handle ERR=1 DRQ=1
  2006-03-21 17:35 ` Jeff Garzik
@ 2006-03-21 17:43   ` Eric D. Mudama
  2006-03-23  8:04     ` [PATCH 1/2] libata-dev: irq-pio minor fixes Albert Lee
  2006-03-23  8:26   ` [PATCH/RFC 2/2] libata-dev: fix the device err check sequence Albert Lee
  1 sibling, 1 reply; 11+ messages in thread
From: Eric D. Mudama @ 2006-03-21 17:43 UTC (permalink / raw)
  To: Jeff Garzik; +Cc: albertl, IDE Linux, Doug Maxey

On 3/21/06, Jeff Garzik <jgarzik@pobox.com> wrote:
> If DRQ==1 then the error register and ATA_ERR should be considered
> irrelevant.  I agree with Eric, that's more of a "don't touch it, other
> than to SRST it" situation.
>
>         Jeff

Well, some applications want to know the drive's best-guess at the
data, as there are some cases where the resulting data resembles the
original and might be useful even in its partial-block form.

Of course, many errors result in absolute garbage, so it's probably
only useful for a very limited set of applications, that in most cases
already know roughly what type of data is in the bad block.

--eric

^ permalink raw reply	[flat|nested] 11+ messages in thread

* [PATCH 1/2] libata-dev: irq-pio minor fixes
  2006-03-21 17:43   ` Eric D. Mudama
@ 2006-03-23  8:04     ` Albert Lee
  2006-03-23  8:18       ` Jeff Garzik
  2006-03-24 17:28       ` Jeff Garzik
  0 siblings, 2 replies; 11+ messages in thread
From: Albert Lee @ 2006-03-23  8:04 UTC (permalink / raw)
  To: Jeff Garzik; +Cc: IDE Linux, Doug Maxey

irq-pio minor fixes for printk() and comments.

Signed-off-by: Albert Lee <albertcc@tw.ibm.com>
---

Patch against previous irq-pio snapshot.
The current irq-pio branch (949ec2c8e6b7b89179b85baf6309c009e1a1b951)
looks strange. Maybe it is under refresh.

--- irq-pio-00/drivers/scsi/libata-core.c	2006-03-23 11:10:58.000000000 +0800
+++ irq-pio-deverr0/drivers/scsi/libata-core.c	2006-03-23 14:56:03.000000000 +0800
@@ -1283,7 +1283,7 @@ static int ata_dev_configure(struct ata_
 		if (dev->id[59] & 0x100) {
 			dev->multi_count = dev->id[59] & 0xff;
 			DPRINTK("ata%u: dev %u multi count %u\n",
-				ap->id, device, dev->multi_count);
+				ap->id, dev->devno, dev->multi_count);
 		}
 
 		dev->cdb_len = 16;
@@ -3562,6 +3562,9 @@ static int ata_hsm_move(struct ata_port 
 	}
 
 fsm_start:
+	DPRINTK("ata%u: protocol %d task_state %d (dev_stat 0x%X)\n",
+		ap->id, qc->tf.protocol, ap->hsm_task_state, status);
+
 	switch (ap->hsm_task_state) {
 	case HSM_ST_FIRST:
 		/* Send first data block or PACKET CDB */
@@ -3688,6 +3691,7 @@ fsm_start:
 
 		ap->hsm_task_state = HSM_ST_IDLE;
 
+		/* complete taskfile transaction */
 		if (in_wq)
 			ata_poll_qc_complete(qc);
 		else
@@ -4441,9 +4445,6 @@ inline unsigned int ata_host_intr (struc
 	if (unlikely(status & ATA_BUSY))
 		goto idle_irq;
 
-	DPRINTK("ata%u: protocol %d task_state %d (dev_stat 0x%X)\n",
-		ap->id, qc->tf.protocol, ap->hsm_task_state, status);
-
 	/* ack bmdma irq events */
 	ap->ops->irq_clear(ap);
 




^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [PATCH 1/2] libata-dev: irq-pio minor fixes
  2006-03-23  8:04     ` [PATCH 1/2] libata-dev: irq-pio minor fixes Albert Lee
@ 2006-03-23  8:18       ` Jeff Garzik
  2006-03-24 17:28       ` Jeff Garzik
  1 sibling, 0 replies; 11+ messages in thread
From: Jeff Garzik @ 2006-03-23  8:18 UTC (permalink / raw)
  To: albertl; +Cc: IDE Linux, Doug Maxey

Albert Lee wrote:
> irq-pio minor fixes for printk() and comments.
> 
> Signed-off-by: Albert Lee <albertcc@tw.ibm.com>
> ---
> 
> Patch against previous irq-pio snapshot.
> The current irq-pio branch (949ec2c8e6b7b89179b85baf6309c009e1a1b951)
> looks strange. Maybe it is under refresh.

It was rebased, which means you need to do a fresh pull.  I apologize 
for not warning you and linux-ide.  Something like

	git reset --hard 949ec2c8e6b7b89179b85baf6309c009e1a1b951

may work.  Or simply

	git checkout -f irq-pio

Or, as you say, it may be mirroring from master.kernel.org to the two 
public-facing kernel.org machines.

	Jeff




^ permalink raw reply	[flat|nested] 11+ messages in thread

* [PATCH/RFC 2/2] libata-dev: fix the device err check sequence
  2006-03-21 17:35 ` Jeff Garzik
  2006-03-21 17:43   ` Eric D. Mudama
@ 2006-03-23  8:26   ` Albert Lee
  1 sibling, 0 replies; 11+ messages in thread
From: Albert Lee @ 2006-03-23  8:26 UTC (permalink / raw)
  To: Jeff Garzik; +Cc: IDE Linux, Doug Maxey, edmudama

Current irq-pio checks ERR bit and stops on ERR before it does anything else.
This behavior doesn't look right.
The DRQ bit should take higher precedence than the ERR bit.

Changes:
- Let the HSM do the data transfer whenever the
  device asks for DRQ bit, even if the ERR bit is set.
- For DRQ=1 ERR=1, don't trust the data

Signed-off-by: Albert Lee <albertcc@tw.ibm.com>
---

Revised per previous comments of Jeff and Eric.

The device error check in the entrance is removed.
Given the data returned on ERR=1 DRQ=1 might be corrupted or partial,
the device err check is added after DRQ check and before the data transfer.
We set AC_ERR_DEV to err_mask and tell the upper layer that the data
does not look good.

For your review, thanks.


--- irq-pio-deverr0/drivers/scsi/libata-core.c	2006-03-23 14:56:03.000000000 +0800
+++ irq-pio-deverr/drivers/scsi/libata-core.c	2006-03-23 15:26:03.000000000 +0800
@@ -3555,12 +3555,6 @@ static int ata_hsm_move(struct ata_port 
 	 */
 	WARN_ON(in_wq != ata_hsm_ok_in_wq(ap, qc));
 
-	/* check error */
-	if (unlikely(status & (ATA_ERR | ATA_DF))) {
-		qc->err_mask |= AC_ERR_DEV;
-		ap->hsm_task_state = HSM_ST_ERR;
-	}
-
 fsm_start:
 	DPRINTK("ata%u: protocol %d task_state %d (dev_stat 0x%X)\n",
 		ap->id, qc->tf.protocol, ap->hsm_task_state, status);
@@ -3583,6 +3577,17 @@ fsm_start:
 			goto fsm_start;
 		}
 
+		/* Device should not ask for data transfer (DRQ=1)
+		 * when it finds something wrong.
+		 * Anyway, we respect DRQ here and let HSM go on
+		 * without changing hsm_task_state to HSM_ST_ERR.
+		 */
+		if (unlikely(status & (ATA_ERR | ATA_DF))) {
+			printk(KERN_WARNING "ata%d: DRQ=1 with device error, dev_stat 0x%X\n",
+			       ap->id, status);
+			qc->err_mask |= AC_ERR_DEV;
+		}
+
 		/* Send the CDB (atapi) or the first data block (ata pio out).
 		 * During the state transition, interrupt handler shouldn't
 		 * be invoked before the data transfer is complete and
@@ -3625,6 +3630,17 @@ fsm_start:
 				goto fsm_start;
 			}
 
+			/* Device should not ask for data transfer (DRQ=1)
+			 * when it finds something wrong.
+			 * Anyway, we respect DRQ here and let HSM go on
+			 * without changing hsm_task_state to HSM_ST_ERR.
+			 */
+			if (unlikely(status & (ATA_ERR | ATA_DF))) {
+				printk(KERN_WARNING "ata%d: DRQ=1 with device error, dev_stat 0x%X\n",
+				       ap->id, status);
+				qc->err_mask |= AC_ERR_DEV;
+			}
+
 			atapi_pio_bytes(qc);
 
 			if (unlikely(ap->hsm_task_state == HSM_ST_ERR))
@@ -3640,6 +3656,22 @@ fsm_start:
 				goto fsm_start;
 			}
 
+			/* Some devices may ask for data transfer (DRQ=1)
+			 * alone with ERR=1 for PIO reads.
+			 * We respect DRQ here and let HSM go on without
+			 * changing hsm_task_state to HSM_ST_ERR.
+			 */
+			if (unlikely(status & (ATA_ERR | ATA_DF))) {
+				/* For writes, ERR=1 DRQ=1 doesn't make
+				 * sense since the data block has been
+				 * transferred to the device.
+				 */
+				WARN_ON(qc->tf.flags & ATA_TFLAG_WRITE);
+
+				/* data might be corrputed */
+				qc->err_mask |= AC_ERR_DEV;
+			}
+
 			ata_pio_sectors(qc);
 
 			if (ap->hsm_task_state == HSM_ST_LAST &&



^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [PATCH 1/2] libata-dev: irq-pio minor fixes
  2006-03-23  8:04     ` [PATCH 1/2] libata-dev: irq-pio minor fixes Albert Lee
  2006-03-23  8:18       ` Jeff Garzik
@ 2006-03-24 17:28       ` Jeff Garzik
  2006-03-25 10:07         ` [PATCH 1/3] libata-dev: irq-pio minor fixes (respin) Albert Lee
                           ` (2 more replies)
  1 sibling, 3 replies; 11+ messages in thread
From: Jeff Garzik @ 2006-03-24 17:28 UTC (permalink / raw)
  To: albertl; +Cc: IDE Linux, Doug Maxey

Albert Lee wrote:
> irq-pio minor fixes for printk() and comments.
> 
> Signed-off-by: Albert Lee <albertcc@tw.ibm.com>

ACK patches 1-2, but patch #1 didn't apply.

I'll delete these, and wait for you to resend.

	Jeff




^ permalink raw reply	[flat|nested] 11+ messages in thread

* [PATCH 1/3] libata-dev: irq-pio minor fixes (respin)
  2006-03-24 17:28       ` Jeff Garzik
@ 2006-03-25 10:07         ` Albert Lee
  2006-03-29 22:22           ` Jeff Garzik
  2006-03-25 10:11         ` [PATCH 2/3] libata-dev: fix the device err check sequence (respin) Albert Lee
  2006-03-25 10:18         ` [PATCH 3/3] libata-dev: wait idle after reading the last data block Albert Lee
  2 siblings, 1 reply; 11+ messages in thread
From: Albert Lee @ 2006-03-25 10:07 UTC (permalink / raw)
  To: Jeff Garzik; +Cc: IDE Linux, Doug Maxey

irq-pio minor fixes for printk() and comments.

Signed-off-by: Albert Lee <albertcc@tw.ibm.com>
---

Patch against the irq-pio branch.

--- b7/drivers/scsi/libata-core.c	2006-03-25 16:51:06.000000000 +0800
+++ c1/drivers/scsi/libata-core.c	2006-03-25 16:58:19.000000000 +0800
@@ -1295,7 +1295,7 @@ static int ata_dev_configure(struct ata_
 		if (dev->id[59] & 0x100) {
 			dev->multi_count = dev->id[59] & 0xff;
 			DPRINTK("ata%u: dev %u multi count %u\n",
-				ap->id, device, dev->multi_count);
+				ap->id, dev->devno, dev->multi_count);
 		}
 
 		dev->cdb_len = 16;
@@ -3594,6 +3594,9 @@ static int ata_hsm_move(struct ata_port 
 	}
 
 fsm_start:
+	DPRINTK("ata%u: protocol %d task_state %d (dev_stat 0x%X)\n",
+		ap->id, qc->tf.protocol, ap->hsm_task_state, status);
+
 	switch (ap->hsm_task_state) {
 	case HSM_ST_FIRST:
 		/* Send first data block or PACKET CDB */
@@ -3720,6 +3723,7 @@ fsm_start:
 
 		ap->hsm_task_state = HSM_ST_IDLE;
 
+		/* complete taskfile transaction */
 		if (in_wq)
 			ata_poll_qc_complete(qc);
 		else
@@ -4241,9 +4245,6 @@ inline unsigned int ata_host_intr (struc
 	if (unlikely(status & ATA_BUSY))
 		goto idle_irq;
 
-	DPRINTK("ata%u: protocol %d task_state %d (dev_stat 0x%X)\n",
-		ap->id, qc->tf.protocol, ap->hsm_task_state, status);
-
 	/* ack bmdma irq events */
 	ap->ops->irq_clear(ap);
 



^ permalink raw reply	[flat|nested] 11+ messages in thread

* [PATCH 2/3] libata-dev: fix the device err check sequence (respin)
  2006-03-24 17:28       ` Jeff Garzik
  2006-03-25 10:07         ` [PATCH 1/3] libata-dev: irq-pio minor fixes (respin) Albert Lee
@ 2006-03-25 10:11         ` Albert Lee
  2006-03-25 10:18         ` [PATCH 3/3] libata-dev: wait idle after reading the last data block Albert Lee
  2 siblings, 0 replies; 11+ messages in thread
From: Albert Lee @ 2006-03-25 10:11 UTC (permalink / raw)
  To: Jeff Garzik; +Cc: IDE Linux, Doug Maxey

Current irq-pio checks ERR bit and stops on ERR before it does anything else.
This behavior doesn't look right.
The DRQ bit should take higher precedence than the ERR bit.

Changes:
- Let the HSM do the data transfer whenever the
  device asks for DRQ bit, even if the ERR bit is set.
- For DRQ=1 ERR=1, don't trust the data

Signed-off-by: Albert Lee <albertcc@tw.ibm.com>
---

Revised per previous comments of Jeff and Eric.

The device error check in the entrance is removed.
Given the data returned on ERR=1 DRQ=1 might be corrupted or partial,
the device err check is added after DRQ check and before the data transfer.
AC_ERR_DEV is set to err_mask and tell the upper layer that the data
does not look good.

--- c1/drivers/scsi/libata-core.c	2006-03-25 16:58:19.000000000 +0800
+++ c2/drivers/scsi/libata-core.c	2006-03-25 16:59:26.000000000 +0800
@@ -3587,12 +3587,6 @@ static int ata_hsm_move(struct ata_port 
 	 */
 	WARN_ON(in_wq != ata_hsm_ok_in_wq(ap, qc));
 
-	/* check error */
-	if (unlikely(status & (ATA_ERR | ATA_DF))) {
-		qc->err_mask |= AC_ERR_DEV;
-		ap->hsm_task_state = HSM_ST_ERR;
-	}
-
 fsm_start:
 	DPRINTK("ata%u: protocol %d task_state %d (dev_stat 0x%X)\n",
 		ap->id, qc->tf.protocol, ap->hsm_task_state, status);
@@ -3615,6 +3609,17 @@ fsm_start:
 			goto fsm_start;
 		}
 
+		/* Device should not ask for data transfer (DRQ=1)
+		 * when it finds something wrong.
+		 * Anyway, we respect DRQ here and let HSM go on
+		 * without changing hsm_task_state to HSM_ST_ERR.
+		 */
+		if (unlikely(status & (ATA_ERR | ATA_DF))) {
+			printk(KERN_WARNING "ata%d: DRQ=1 with device error, dev_stat 0x%X\n",
+			       ap->id, status);
+			qc->err_mask |= AC_ERR_DEV;
+		}
+
 		/* Send the CDB (atapi) or the first data block (ata pio out).
 		 * During the state transition, interrupt handler shouldn't
 		 * be invoked before the data transfer is complete and
@@ -3657,6 +3662,17 @@ fsm_start:
 				goto fsm_start;
 			}
 
+			/* Device should not ask for data transfer (DRQ=1)
+			 * when it finds something wrong.
+			 * Anyway, we respect DRQ here and let HSM go on
+			 * without changing hsm_task_state to HSM_ST_ERR.
+			 */
+			if (unlikely(status & (ATA_ERR | ATA_DF))) {
+				printk(KERN_WARNING "ata%d: DRQ=1 with device error, dev_stat 0x%X\n",
+				       ap->id, status);
+				qc->err_mask |= AC_ERR_DEV;
+			}
+
 			atapi_pio_bytes(qc);
 
 			if (unlikely(ap->hsm_task_state == HSM_ST_ERR))
@@ -3672,6 +3688,22 @@ fsm_start:
 				goto fsm_start;
 			}
 
+			/* Some devices may ask for data transfer (DRQ=1)
+			 * alone with ERR=1 for PIO reads.
+			 * We respect DRQ here and let HSM go on without
+			 * changing hsm_task_state to HSM_ST_ERR.
+			 */
+			if (unlikely(status & (ATA_ERR | ATA_DF))) {
+				/* For writes, ERR=1 DRQ=1 doesn't make
+				 * sense since the data block has been
+				 * transferred to the device.
+				 */
+				WARN_ON(qc->tf.flags & ATA_TFLAG_WRITE);
+
+				/* data might be corrputed */
+				qc->err_mask |= AC_ERR_DEV;
+			}
+
 			ata_pio_sectors(qc);
 
 			if (ap->hsm_task_state == HSM_ST_LAST &&



^ permalink raw reply	[flat|nested] 11+ messages in thread

* [PATCH 3/3] libata-dev: wait idle after reading the last data block
  2006-03-24 17:28       ` Jeff Garzik
  2006-03-25 10:07         ` [PATCH 1/3] libata-dev: irq-pio minor fixes (respin) Albert Lee
  2006-03-25 10:11         ` [PATCH 2/3] libata-dev: fix the device err check sequence (respin) Albert Lee
@ 2006-03-25 10:18         ` Albert Lee
  2 siblings, 0 replies; 11+ messages in thread
From: Albert Lee @ 2006-03-25 10:18 UTC (permalink / raw)
  To: Jeff Garzik; +Cc: IDE Linux, Doug Maxey

Some CD-ROM drives are slow to clear DRQ, after the last data block
is read by PIO. Use ata_wait_idle() after reading the last data block.

Signed-off-by: Albert Lee <albertcc@tw.ibm.com>
---

--- c2/drivers/scsi/libata-core.c	2006-03-25 16:59:26.000000000 +0800
+++ c3/drivers/scsi/libata-core.c	2006-03-25 17:01:29.000000000 +0800
@@ -3710,7 +3710,7 @@ fsm_start:
 			    (!(qc->tf.flags & ATA_TFLAG_WRITE))) {
 				/* all data read */
 				ata_altstatus(ap);
-				status = ata_chk_status(ap);
+				status = ata_wait_idle(ap);
 				goto fsm_start;
 			}
 		}



^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [PATCH 1/3] libata-dev: irq-pio minor fixes (respin)
  2006-03-25 10:07         ` [PATCH 1/3] libata-dev: irq-pio minor fixes (respin) Albert Lee
@ 2006-03-29 22:22           ` Jeff Garzik
  0 siblings, 0 replies; 11+ messages in thread
From: Jeff Garzik @ 2006-03-29 22:22 UTC (permalink / raw)
  To: albertl; +Cc: IDE Linux, Doug Maxey

Albert Lee wrote:
> irq-pio minor fixes for printk() and comments.
> 
> Signed-off-by: Albert Lee <albertcc@tw.ibm.com>

applied 1-3, and patches 1-10 of previous series, to irq-pio branch



^ permalink raw reply	[flat|nested] 11+ messages in thread

end of thread, other threads:[~2006-03-29 22:23 UTC | newest]

Thread overview: 11+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2006-03-21 11:39 [PATCH/RFC] libata-dev: handle ERR=1 DRQ=1 Albert Lee
2006-03-21 17:35 ` Jeff Garzik
2006-03-21 17:43   ` Eric D. Mudama
2006-03-23  8:04     ` [PATCH 1/2] libata-dev: irq-pio minor fixes Albert Lee
2006-03-23  8:18       ` Jeff Garzik
2006-03-24 17:28       ` Jeff Garzik
2006-03-25 10:07         ` [PATCH 1/3] libata-dev: irq-pio minor fixes (respin) Albert Lee
2006-03-29 22:22           ` Jeff Garzik
2006-03-25 10:11         ` [PATCH 2/3] libata-dev: fix the device err check sequence (respin) Albert Lee
2006-03-25 10:18         ` [PATCH 3/3] libata-dev: wait idle after reading the last data block Albert Lee
2006-03-23  8:26   ` [PATCH/RFC 2/2] libata-dev: fix the device err check sequence Albert Lee

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).