flash as hda causes 2.4.18 to hang in grok_partitions()...add_to_page_cache_unique()
I've got a mipsel linux 2.4.18 system that has a compact flash IDE disk as hda. For some reason, in grok_partitions, the kernel goes bye-bye. I've traced it as far as read_page_cache().
The console prints this:
ide0 at 0x2200-0x2207,0x220a on irq 3 config_drive_xfer_rate for drive hda (0)
hda: 250880 sectors (128 MB) w/1KiB Cache, CHS=980/8/32, DMA Partition check:
/dev/ide/host0/bus0/target0/lun0:
Then hangs. If I use KGDB to trace the kernel to that point, and do a backtrace, here's what I see:
#0 add_to_page_cache_unique (page=0x81042840, mapping=0x810b7520, offset=0, hash=0x8109df5c)
at /mipsel-linux/include/asm/atomic.h:133
#1 0x80133d8c in read_cache_page (mapping=0x810b7520, index=0, filler=0x8014b2d4 <blkdev_readpage>, data=0x0)
at filemap.c:2780
#2 0x8016b83c in read_dev_sector (bdev=0xffffcfe1, n=2165011744, p=0x803b9dd0) at check.c:433
#3 0x8016bc98 in handle_ide_mess (bdev=0x810a2120) at msdos.c:485
#4 0x8016bf18 in msdos_partition (hd=0x803b53e0, bdev=0x810a2120, first_sector=0,
first_part_minor=-2130059428) at msdos.c:555
#5 0x8016b114 in check_partition (hd=0x803b53e0, dev=768, first_part_minor=1) at check.c:270
#6 0x8016b77c in grok_partitions (dev=0x803b53e0, drive=-2130042592, minors=64, size=250880) at check.c:415
#7 0x8016b644 in register_disk (gdev=0x1, dev=8480, minors=0, ops=0x8109df5c, size=250880) at check.c:390
#8 0x8020b79c in ide_geninit (hwif=0x803a3f14) at ide.c:666
#9 0x80211ae4 in ide_init () at ide.c:3840
#10 0x801ffd00 in blk_dev_init () at ll_rw_blk.c:1159
#11 0x80200aa4 in device_init () at genhd.c:184
#12 0x80108a8c in do_initcalls () at init/main.c:676
#13 0x80108ae4 in do_basic_setup () at init/main.c:760
#14 0x80108ca0 in init (unused=0x3f) at init/main.c:830
#15 0x80109654 in kernel_thread (fn=0x80108c90 <init>, arg=0x0, flags=8457984) at process.c:207Any suggestions?
Dave
Quoted 3 lines · David Wuertele
I've got a mipsel linux 2.4.18 system that has a compact flash IDE disk as hda. For some reason, in
grok_partitions, the kernel goes bye-bye. I've traced it as far asread_page_cache().
You might want to check with the linux-mips list since its a rather obscure platform an that doesn't look much like an IDE layer change.
Am Mon, 2003-03-31 um 20.22 schrieb David Wuertele:
Quoted 3 lines
I've got a mipsel linux 2.4.18 system that has a compact flash IDE disk as hda. For some reason, in
grok_partitions, the kernel goes bye-bye. I've traced it as far asread_page_cache().
I'd say this is a platform specific bug as it works for me under 2.4.18 on ppc and i386.
Signature · 2 lines
Servus,
DanielQuoted 8 lines · Daniel Egger
Am Mon, 2003-03-31 um 20.22 schrieb David Wuertele:
Quoted 3 lines
I've got a mipsel linux 2.4.18 system that has a compact flash IDE disk as hda. For some reason, in
grok_partitions, the kernel goes bye-bye. I've traced it as far asread_page_cache().I'd say this is a platform specific bug as it works for me under 2.4.18 on ppc and i386.
It usually is a CF bug. I've seen failing CF cards on one machine which work perfectly well in another machine. Just try the same card in another machine, or a get a new card. I haven't tried it with the new IDE code, though.
Erik
Signature · 2 lines
J.A.K. (Erik) Mouw Email: [email protected] [email protected]
Daniel> I'd say this is a platform specific bug as it works for me Daniel> under 2.4.18 on ppc and i386.
Do you have DMA enabled? Specifically, Use PCI DMA by default when available (CONFIG_IDEDMA_PCI_AUTO)?
Dave
Am Die, 2003-04-01 um 20.43 schrieb Erik Mouw:
Quoted 4 lines
It usually is a CF bug. I've seen failing CF cards on one machine which work perfectly well in another machine. Just try the same card in another machine, or a get a new card. I haven't tried it with the new IDE code, though.
Well, I've seen CF cards not working in LBA mode, so changing that might work. However the failures are of a completely different nature; read errors seem to magically appear while here the detection is crashing.
Signature · 2 lines
Servus,
Daniel