Re: [PATCH 1/1] pata_it821x: fix lost interrupt with atapi devices

From: Mikael Pettersson
Date: Tue Sep 04 2007 - 14:44:37 EST


Jeff Norden writes:
> From: Jeff Norden <jnorden@xxxxxxxxxxxxxxx>
>
> 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@xxxxxxxxxxxxxxx>
>
> ---
>
> --- 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;
>

This looks like a gross hack. Aren't you supposed to inspect
the command instead and whitelist the ones you know are OK,
like pata_pdc2027x.c and sata_promise.c do?
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/