diff -urpN linux-2.6.19-rc1.orig/drivers/ata/pata_qdi.c linux-2.6.19-rc1/drivers/ata/pata_qdi.c
--- linux-2.6.19-rc1.orig/drivers/ata/pata_qdi.c	2006-10-09 09:34:28.000000000 +0200
+++ linux-2.6.19-rc1/drivers/ata/pata_qdi.c	2006-10-09 09:38:07.000000000 +0200
@@ -141,7 +141,7 @@ static void qdi_data_xfer(struct ata_dev
 				memcpy(&pad, buf + buflen - slop, slop);
 				outl(le32_to_cpu(pad), ap->ioaddr.data_addr);
 			} else {
-				pad = cpu_to_le16(inl(ap->ioaddr.data_addr));
+				pad = cpu_to_le32(inl(ap->ioaddr.data_addr));
 				memcpy(buf + buflen - slop, &pad, slop);
 			}
 		}
