diff -urN linux-2.6.31-orig/drivers/ide/ide-disk.c linux-2.6.31/drivers/ide/ide-disk.c
--- linux-2.6.31-orig/drivers/ide/ide-disk.c	2009-09-10 07:13:59 +0900
+++ linux-2.6.31/drivers/ide/ide-disk.c	2009-11-09 23:39:48 +0900
@@ -138,6 +138,11 @@
 		cyl   = track / drive->head;
 
 		pr_debug("%s: CHS=%u/%u/%u\n", drive->name, cyl, head, sect);
+		if (cyl > 65535) {
+			printk(KERN_ERR "ide-disk WARNING: %s: cylinder"
+			       " overflow in CHS access (sector %lX,"
+			       " cyl %u)\n", drive->name, block, cyl);
+		}
 
 		tf->nsect  = nsectors & 0xff;
 		tf->lbal   = sect;
