Re: PROBLEM: ide-cs kernel panic on ThinkPad X30

From: Chuan-kai Lin
Date: Wed Apr 07 2004 - 13:52:52 EST


Chuan-kai Lin <b86506063@xxxxxxxxxx> wrote:
> Aug 31 19:14:17 rho kernel: hde: Transcend, CFA DISK drive
> Aug 31 19:14:17 rho kernel: PM: Adding info for No Bus:ide2
> Aug 31 19:14:17 rho kernel: hdf: probing with STATUS(0x50)
> instead of ALTSTATUS(0x0a)
> Aug 31 19:14:17 rho kernel: hdf: H, ATA DISK drive
> Aug 31 19:14:17 rho kernel: ide2 at 0x100-0x107,0x10e on irq 3
> Aug 31 19:14:17 rho kernel: PM: Adding info for ide:2.0
> Aug 31 19:14:17 rho kernel: PM: Adding info for ide:2.1
> Aug 31 19:14:17 rho kernel: hde: max request size: 128KiB
> Aug 31 19:14:17 rho kernel: hde: 1006992 sectors (515 MB) w/0KiB Cache,
> CHS=999/16/63
> Aug 31 19:14:17 rho kernel: /dev/ide/host2/bus0/target0/lun0: p1
> Aug 31 19:14:17 rho kernel: hdf: max request size: 128KiB
> Aug 31 19:14:17 rho kernel: hdf: 0 sectors (0 MB) w/9216KiB Cache,
> CHS=18432/0/0
> Aug 31 19:14:17 rho kernel: hdf: INVALID GEOMETRY: 0 PHYSICAL HEADS?
> Aug 31 19:14:17 rho kernel: ide-default: hdf: Failed to register the
> driver with ide.c
> Aug 31 19:14:17 rho kernel: Kernel panic: ide: default attach failed
>
> And the machine promptly froze. The problem, obviously, is that hdf
> does not exist at all, so naturally the IDE driver had problem
> extracting any reasonable information concerned about it. I have tried
> using both hdf=noprobe or hdf=none at the LILO prompt, but neither seems
> to have any effect on this problem.

I finally managed to track down the problem. In 2.6.5, ide-probe.c
line 291 there is this piece of code:

if ((a ^ s) & ~INDEX_STAT) {
printk(KERN_INFO "%s: probing with STATUS(0x%02x) instead of "
"ALTSTATUS(0x%02x)\n", drive->name, s, a);
/* ancient Seagate drives, broken interfaces */
hd_status = IDE_STATUS_REG;

This alternative probing mechanism caused the kernel to conclude that
the device hdf does exist, and disabling this ancient Seagate drive
probing functionality fixed my problem (but obviously breaks the
probing of the said ancient drives).

What would be a good way to resolve this problem?

--
Chuan-kai Lin
http://www.cse.ogi.edu/~linchuan/

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/