public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
* [PATCH 1/1] pata_it821x: fix lost interrupt with atapi devices
@ 2007-09-04 16:07 Jeff Norden
  2007-09-04 18:43 ` Mikael Pettersson
  2007-09-11  1:53 ` Jeff Garzik
  0 siblings, 2 replies; 9+ messages in thread
From: Jeff Norden @ 2007-09-04 16:07 UTC (permalink / raw)
  To: alan; +Cc: linux-kernel

 From: Jeff Norden <jnorden@math.tntech.edu>

Fix "lost" interrupt problem when using dma with CD/DVD drives in some
configurations.  This problem can make installing linux from media
impossible for distro's that have switched to libata-only configurations.

The simple fix is to eliminate the use of dma for reading drive status, etc,
by checking the number of bytes to transferred.

This change will only affect the behavior of atapi devices, not disks.
There is more info at http://bugzilla.redhat.com/show_bug.cgi?id=242229
This patch is for 2.6.22.1

Signed-off-by: Jeff Norden <jnorden@math.tntech.edu>

---

--- pata_it821x.c.orig	2007-08-16 14:20:49.000000000 -0500
+++ pata_it821x.c	2007-08-31 16:09:22.000000000 -0500
@@ -533,6 +533,10 @@ static int it821x_check_atapi_dma(struct
 	struct ata_port *ap = qc->ap;
 	struct it821x_dev *itdev = ap->private_data;
 
+	/* Only use dma for transfers to/from the media. */
+	if (qc->nbytes < 2048)
+		return -EOPNOTSUPP;
+
 	/* No ATAPI DMA in smart mode */
 	if (itdev->smart)
 		return -EOPNOTSUPP;


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

end of thread, other threads:[~2007-09-18  9:16 UTC | newest]

Thread overview: 9+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2007-09-04 16:07 [PATCH 1/1] pata_it821x: fix lost interrupt with atapi devices Jeff Norden
2007-09-04 18:43 ` Mikael Pettersson
2007-09-06  0:39   ` Alan Cox
2007-09-17  5:00     ` Tejun Heo
2007-09-17 10:00       ` Jeff Garzik
2007-09-17 11:46         ` Tejun Heo
2007-09-18  9:14           ` Alan Cox
2007-09-18  9:07       ` Alan Cox
2007-09-11  1:53 ` Jeff Garzik

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox