--- libata-dev-2.6/drivers/ide/ide-timing.h	2005-02-14 16:26:37.000000000 +0800
+++ libata-dev-2.6-mod/drivers/ide/ide-timing.h	2005-02-14 18:40:57.000000000 +0800
@@ -220,6 +220,7 @@
 	if (!(s = ide_timing_find_mode(speed)))
 		return -EINVAL;
 
+	memcpy(t, s, sizeof(*t));
 /*
  * If the drive is an EIDE drive, it can tell us it needs extended
  * PIO/MWDMA cycle timing.
@@ -248,7 +249,7 @@
  * Convert the timing to bus clock counts.
  */
 
-	ide_timing_quantize(s, t, T, UT);
+	ide_timing_quantize(t, t, T, UT);
 
 /*
  * Even in DMA/UDMA modes we still use PIO access for IDENTIFY, S.M.A.R.T
