[patch] Fix DMA timeouts with sgiioc4

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Wed, Feb 01, 2006 at 01:44:01PM +0100, Bartlomiej Zolnierkiewicz wrote:
> On 2/1/06, Jeremy Higdon <[email protected]> wrote:
> >
> > Here's one that removes xcount.  It seems to work too.
> > Should we set hwif->rqsize to 256, or are we pretty safe in
> > expecting that the default won't rise?  The driver should be
> > able to handle more, but this ioc4 hardware is weird, and it
> > probably wouldn't get tested if a general change were made :-)
> 
> The current maximum request size is:
> *  256 for LBA28 and ATAPI devices
> * 1024 for LBA48 devices
> 
> The maximum request size allowed by IDE driver for
> LBA48 devices will change to 65536 but block layer will
> continue to use 1024 as a default maximum request size,
> also IIRC sgiioc4 IDE is used only for ATAPI devices.
> So I think that there is no need to worry about ->rqsize.


Thanks Bartlomiej.  You're correct in that it is ATAPI only (and
read-only also).

In this case, this is the final patch (last night's with a copyright
update and removing spurious whitespace at end of line).

thanks

jeremy

Signed-off-by: Jeremy Higdon <[email protected]>

Fix sgiioc4 DMA timeout problem with 64KiB s/g elements.

--- a/linux/drivers/ide/pci/sgiioc4.c	2006-02-01 23:57:08.000000000 -0800
+++ b/linux/drivers/ide/pci/sgiioc4.c	2006-02-01 23:56:47.169588392 -0800
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2003 Silicon Graphics, Inc.  All Rights Reserved.
+ * Copyright (c) 2003-2006 Silicon Graphics, Inc.  All Rights Reserved.
  *
  * This program is free software; you can redistribute it and/or modify it
  * under the terms of version 2 of the GNU General Public License
@@ -510,7 +510,7 @@
 				       drive->name);
 				goto use_pio_instead;
 			} else {
-				u32 xcount, bcount =
+				u32 bcount =
 				    0x10000 - (cur_addr & 0xffff);
 
 				if (bcount > cur_len)
@@ -525,8 +525,7 @@
 				*table = 0x0;
 				table++;
 
-				xcount = bcount & 0xffff;
-				*table = cpu_to_be32(xcount);
+				*table = cpu_to_be32(bcount);
 				table++;
 
 				cur_addr += bcount;
@@ -680,7 +679,7 @@
 		return -EIO;
 
 	/* Create /proc/ide entries */
-	create_proc_ide_interfaces(); 
+	create_proc_ide_interfaces();
 
 	return 0;
 }
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

[Index of Archives]     [Kernel Newbies]     [Netfilter]     [Bugtraq]     [Photo]     [Stuff]     [Gimp]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Video 4 Linux]     [Linux for the blind]     [Linux Resources]
  Powered by Linux