Skip to contentSkip to conversation

2.5.3[01] does not boot for me

DISCUSSION Leopold Gouverneur 3 participants 4 messages Aug 11, 2002

lore
Share & tools
lore
#0 lore raw

2.5.31 hangs during boot after:

hde 60036480 sectors w/1916 KiB cache CHS=59560/16/63, UDMA(44) hde hde1 hde2 hde3 hde4 <

hde is a IBM-DTLA-307030 on a HPT366 (Abit BP6) 2.5.29 boot OK Sorry if it is a known problem!

#1 lore raw
Quoted 7 lines · Leopold Gouverneur

2.5.31 hangs during boot after:

hde 60036480 sectors w/1916 KiB cache CHS=59560/16/63, UDMA(44) hde hde1 hde2 hde3 hde4 <

hde is a IBM-DTLA-307030 on a HPT366 (Abit BP6) 2.5.29 boot OK Sorry if it is a known problem!

Hrrmm... That definitely sounds like partition-parser getting screwed in the middle of IO - it _does_ read the first sector and apparently hangs in attempt to read another one. Very interesting, since AFAICS all changes that could have affected that place happened between .28 and .29.

Deadlocks in surrounding code are very unlikely, since it simply doesn't care about block number and would just as happily hang while reading the first sector. Which it hadn't.

Could you give the output of fdisk -lu /dev/hde? (after booting a working kernel, obviously ;-)

#2 lore raw
In reply to Leopold Gouverneur
Quoted 7 lines · Leopold Gouverneur

2.5.31 hangs during boot after:

hde 60036480 sectors w/1916 KiB cache CHS=59560/16/63, UDMA(44) hde hde1 hde2 hde3 hde4 <

hde is a IBM-DTLA-307030 on a HPT366 (Abit BP6) 2.5.29 boot OK Sorry if it is a known problem!

Sound like same problem and me.

Signature · 1 line
OGAWA Hirofumi <[email protected]>
#3 lore raw
In reply to Leopold Gouverneur
Quoted 7 lines · Leopold Gouverneur

2.5.31 hangs during boot after:

hde 60036480 sectors w/1916 KiB cache CHS=59560/16/63, UDMA(44) hde hde1 hde2 hde3 hde4 <

hde is a IBM-DTLA-307030 on a HPT366 (Abit BP6) 2.5.29 boot OK Sorry if it is a known problem!

Sound like the same problem as me. If so, the following patch should be solves this problem.

Can you try patch?

Signature · 30 lines
OGAWA Hirofumi <[email protected]>

--- tools/linux-2.5.31/drivers/ide/pcidma.c	2002-08-05 03:01:09.000000000 +0900
+++ ide_pcidma-2.5.31/drivers/ide/pcidma.c	2002-08-11 18:46:42.000000000 +0900
@@ -391,22 +391,20 @@
 	sg = ch->sg_table;
 	while (i--) {
 		u32 cur_addr = sg_dma_address(sg);
-		u32 cur_len = sg_dma_len(sg) & 0xffff;
+		u32 cur_len = sg_dma_len(sg);
 
 		/* Delete this test after linux ~2.5.35, as we care
 		   about performance in this loop. */
 		BUG_ON(cur_len > ch->max_segment_size);
 
 		*table++ = cpu_to_le32(cur_addr);
-		*table++ = cpu_to_le32(cur_len);
+		*table++ = cpu_to_le32(cur_len & 0xffff);
 
 		sg++;
 	}
 
-#ifdef CONFIG_BLK_DEV_TRM290
-	if (ch->chipset == ide_trm290)
+	if (ch->chipset != ide_trm290)
 		*--table |= cpu_to_le32(0x80000000);
-#endif
 
 	return ch->sg_nents;
 }