2.5.3[01] does not boot for me
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!
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 ;-)
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]>
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; }