]> pilppa.org Git - linux-2.6-omap-h63xx.git/blobdiff - drivers/ide/ide-io.c
hysdn: No longer broken on SMP.
[linux-2.6-omap-h63xx.git] / drivers / ide / ide-io.c
index 8d7c1a09e1e7fef7074f8295aab7586705c96561..696525342e9a56977c1d2ac88d72497be5a7e866 100644 (file)
@@ -1550,8 +1550,7 @@ irqreturn_t ide_intr (int irq, void *dev_id)
 
 void ide_init_drive_cmd (struct request *rq)
 {
-       memset(rq, 0, sizeof(*rq));
-       rq->ref_count = 1;
+       blk_rq_init(NULL, rq);
 }
 
 EXPORT_SYMBOL(ide_init_drive_cmd);
@@ -1642,3 +1641,18 @@ void ide_pktcmd_tf_load(ide_drive_t *drive, u32 tf_flags, u16 bcount, u8 dma)
 }
 
 EXPORT_SYMBOL_GPL(ide_pktcmd_tf_load);
+
+void ide_pad_transfer(ide_drive_t *drive, int write, int len)
+{
+       ide_hwif_t *hwif = drive->hwif;
+       u8 buf[4] = { 0 };
+
+       while (len > 0) {
+               if (write)
+                       hwif->output_data(drive, NULL, buf, min(4, len));
+               else
+                       hwif->input_data(drive, NULL, buf, min(4, len));
+               len -= 4;
+       }
+}
+EXPORT_SYMBOL_GPL(ide_pad_transfer);