Re: Kernel Panic 2.4.19 with Segate 80GB HDD

JunHyeok Heo (jhheo@idis.co.kr)
Mon, 21 Oct 2002 17:30:20 +0900


I investigated this problem.
The problem was that Segate 80GB HDD (ST380020ACE) erroneously has 48bit LBA
turned on,
but the capacity field for 48Bit LBA has 0.
So, i modified the "init_idedisk_capacity()" function to forcily use the
28bit LBA mode
in this case. I know that the HDD less than 137GB no need to use 48bit LBA.

If there is someone who suffers from the same symptom,
try the following patch at your own risk. ^^;;;

--------- From Here -----------------
diff -urN linux-2.4.19-ori/drivers/ide/ide-disk.c
linux-2.4.19/drivers/ide/ide-disk.c
--- linux-2.4.19-ori/drivers/ide/ide-disk.c Sat Aug 3 09:39:44 2002
+++ linux-2.4.19/drivers/ide/ide-disk.c Mon Oct 21 17:09:09 2002
@@ -928,6 +928,13 @@
drive->select.b.lba = 0;

if (id->cfs_enable_2 & 0x0400) {
+ if (id->lba_capacity_2 == (long long) 0) {
+ id->cfs_enable_2 &= ~0x0400;
+ printk("%s: not suitable for 48bit LBA, forcily 28bit LBA is
used\n",drive->name);
+ }
+ }
+
+ if (id->cfs_enable_2 & 0x0400) {
capacity_2 = id->lba_capacity_2;
drive->head = drive->bios_head = 255;
drive->sect = drive->bios_sect = 63;
----- Original Message -----
From: "JunHyeok Heo" <jhheo@idis.co.kr>
To: <linux-kernel@vger.kernel.org>
Sent: Friday, October 18, 2002 10:35 AM
Subject: Kernel Panic 2.4.19 with Segate 80GB HDD

>
> I used kernel 2.4.19 with Segate 80GB HDD (ST380020ACE).
> The kernel could not recognize the number of sectors correctly, and then
> result in kernel panic.
> I tried kernel 2.4.18 with the same HDD, there is no problem.
>
> Is this a bug in the ide device driver ? or is there any compatible HDD
> list for 2.4.19 kernel ?
>
> The cpu is PentiumIII 700Mhz cpu and
> The chipset of motherboard is Intel BX.
> The IDE controller is INTEL82801BA_9
>
> In case of 2.4.19 kernel, the booting message as follows...
> --
> Linux version 2.4.19 (root@i74) (gcc version 2.95.4 (Debian prerelease))
#2
> Wed
> Oct 16 21:27:55 KST 2002
> BIOS-provided physical RAM map:
> BIOS-e820: 0000000000000000 - 000000000009fc00 (usable)
> BIOS-e820: 000000000009fc00 - 00000000000a0000 (reserved)
> BIOS-e820: 00000000000f0000 - 0000000000100000 (reserved)
> BIOS-e820: 0000000000100000 - 000000000bfeb000 (usable)
> BIOS-e820: 000000000bfeb000 - 000000000bfef000 (ACPI data)
> BIOS-e820: 000000000bfef000 - 000000000bfff000 (reserved)
> BIOS-e820: 000000000bfff000 - 000000000c000000 (ACPI NVS)
> BIOS-e820: 00000000ffff0000 - 0000000100000000 (reserved)
> 191MB LOWMEM available.
> On node 0 totalpages: 49131
> zone(0): 4096 pages.
> zone(1): 45035 pages.
> zone(2): 0 pages.
> Kernel command line: BOOT_IMAGE=host19 ro root=301
> BOOT_FILE=/boot/vmlinuz-2.4.1
> 9 console=ttyS0,9600 console=ttyS0,9600
> Initializing CPU#0
> Detected 706.972 MHz processor.
> Console: colour VGA+ 80x25
> Calibrating delay loop... 1412.30 BogoMIPS
> Memory: 192408k/196524k available (1069k kernel code, 3728k reserved, 260k
> data,
> 60k init, 0k highmem)
> Dentry cache hash table entries: 32768 (order: 6, 262144 bytes)
> Inode cache hash table entries: 16384 (order: 5, 131072 bytes)
> Mount-cache hash table entries: 4096 (order: 3, 32768 bytes)
> Buffer-cache hash table entries: 8192 (order: 3, 32768 bytes)
> Page-cache hash table entries: 65536 (order: 6, 262144 bytes)
> CPU: L1 I cache: 16K, L1 D cache: 16K
> CPU: L2 cache: 256K
> Intel machine check architecture supported.
> Intel machine check reporting enabled on CPU#0.
> CPU: Intel Pentium III (Coppermine) stepping 03
> Enabling fast FPU save and restore... done.
> Enabling unmasked SIMD FPU exception support... done.
> Checking 'hlt' instruction... OK.
> POSIX conformance testing by UNIFIX
> PCI: PCI BIOS revision 2.10 entry at 0xf0d90, last bus=2
> PCI: Using configuration type 1
> PCI: Probing PCI hardware
> Unknown bridge resource 0: assuming transparent
> PCI: Using IRQ router PIIX [8086/2440] at 00:1f.0
> Linux NET4.0 for Linux 2.4
> Based upon Swansea University Computer Society NET3.039
> Initializing RT netlink socket
> Starting kswapd
> Installing knfsd (copyright (C) 1996 okir@monad.swb.de).
> pty: 256 Unix98 ptys configured
> Serial driver version 5.05c (2001-07-08) with MANY_PORTS SHARE_IRQ
> SERIAL_PCI en
> abled
> ttyS00 at 0x03f8 (irq = 4) is a 16550A
> ttyS01 at 0x02f8 (irq = 3) is a 16550A
> Real Time Clock Driver v1.10e
> Uniform Multi-Platform E-IDE driver Revision: 6.31
> ide: Assuming 33MHz system bus speed for PIO modes; override with
idebus=xx
> ICH2: IDE controller on PCI bus 00 dev f9
> ICH2: chipset revision 1
> ICH2: not 100% native mode: will probe irqs later
> ide0: BM-DMA at 0xb800-0xb807, BIOS settings: hda:DMA, hdb:pio
> ide1: BM-DMA at 0xb808-0xb80f, BIOS settings: hdc:pio, hdd:pio
> hda: ST380020ACE, ATA DISK drive
> ide0 at 0x1f0-0x1f7,0x3f6 on irq 14
> hda: task_no_data_intr: status=0x51 { DriveReady SeekComplete Error }
> hda: task_no_data_intr: error=0x04 { DriveStatusError }
> hda: setmax_ext LBA 1, native 0
> hda: 0 sectors (0 MB) w/2048KiB Cache, CHS=0/255/63, UDMA(33)
> PPP generic driver version 2.4.2
> NET4: Linux TCP/IP 1.0 for NET4.0
> IP Protocols: ICMP, UDP, TCP
> IP: routing cache hash table of 1024 buckets, 8Kbytes
> TCP: Hash tables configured (established 16384 bind 16384)
> NET4: Unix domain sockets 1.0/SMP for Linux NET4.0.
> hda1: bad access: block=2, count=2
> end_request: I/O error, dev 03:01 (hda), sector 2
> EXT2-fs: unable to read superblock
> hda1: bad access: block=0, count=1
> end_request: I/O error, dev 03:01 (hda), sector 0
> FAT: unable to read boot sector
> hda1: bad access: block=128, count=1
> end_request: I/O error, dev 03:01 (hda), sector 128
> read_super_block: bread failed (dev 03:01, block 128, size 512)
> hda1: bad access: block=16, count=1
> end_request: I/O error, dev 03:01 (hda), sector 16
> read_super_block: bread failed (dev 03:01, block 16, size 512)
> Kernel panic: VFS: Unable to mount root fs on 03:01
>
> --
>
> In case of 2.4.18 kernel, the booting message as follows...
>
> Linux version 2.4.18 (root@i076) (gcc version 2.95.4 (Debian prerelease))
#5
> Fri Mar 22 19:21:49 KST 2002
> BIOS-provided physical RAM map:
> BIOS-e820: 0000000000000000 - 000000000009fc00 (usable)
> BIOS-e820: 000000000009fc00 - 00000000000a0000 (reserved)
> BIOS-e820: 00000000000f0000 - 0000000000100000 (reserved)
> BIOS-e820: 0000000000100000 - 000000000bfeb000 (usable)
> BIOS-e820: 000000000bfeb000 - 000000000bfef000 (ACPI data)
> BIOS-e820: 000000000bfef000 - 000000000bfff000 (reserved)
> BIOS-e820: 000000000bfff000 - 000000000c000000 (ACPI NVS)
> BIOS-e820: 00000000ffff0000 - 0000000100000000 (reserved)
> On node 0 totalpages: 49131
> zone(0): 4096 pages.
> zone(1): 45035 pages.
> zone(2): 0 pages.
> Local APIC disabled by BIOS -- reenabling.
> Found and enabled local APIC!
> Kernel command line: BOOT_IMAGE=host18 ro root=301
> BOOT_FILE=/boot/vmlinuz-2.4.18
> Initializing CPU#0
> Detected 706.973 MHz processor.
> Console: colour VGA+ 80x25
> Calibrating delay loop... 1412.30 BogoMIPS
> Memory: 191400k/196524k available (1064k kernel code, 4736k reserved, 287k
> data, 76k init, 0k highmem)
> Dentry-cache hash table entries: 32768 (order: 6, 262144 bytes)
> Inode-cache hash table entries: 16384 (order: 5, 131072 bytes)
> Mount-cache hash table entries: 4096 (order: 3, 32768 bytes)
> Buffer-cache hash table entries: 8192 (order: 3, 32768 bytes)
> Page-cache hash table entries: 65536 (order: 6, 262144 bytes)
> CPU: Before vendor init, caps: 0383fbff 00000000 00000000, vendor = 0
> CPU: L1 I cache: 16K, L1 D cache: 16K
> CPU: L2 cache: 256K
> CPU: After vendor init, caps: 0383fbff 00000000 00000000 00000000
> Intel machine check architecture supported.
> Intel machine check reporting enabled on CPU#0.
> CPU: After generic, caps: 0383fbff 00000000 00000000 00000000
> CPU: Common caps: 0383fbff 00000000 00000000 00000000
> CPU: Intel Pentium III (Coppermine) stepping 03
> Enabling fast FPU save and restore... done.
> Enabling unmasked SIMD FPU exception support... done.
> Checking 'hlt' instruction... OK.
> POSIX conformance testing by UNIFIX
> enabled ExtINT on CPU#0
> ESR value before enabling vector: 00000000
> ESR value after enabling vector: 00000000
> Using local APIC timer interrupts.
> calibrating APIC timer ...
> ..... CPU clock speed is 706.9670 MHz.
> ..... host bus clock speed is 100.9952 MHz.
> cpu: 0, clocks: 1009952, slice: 504976
> CPU0<T0:1009952,T1:504976,D:0,S:504976,C:1009952>
> mtrr: v1.40 (20010327) Richard Gooch (rgooch@atnf.csiro.au)
> mtrr: detected mtrr type: Intel
> PCI: PCI BIOS revision 2.10 entry at 0xf0d90, last bus=2
> PCI: Using configuration type 1
> PCI: Probing PCI hardware
> Unknown bridge resource 0: assuming transparent
> PCI: Using IRQ router PIIX [8086/2440] at 00:1f.0
> Linux NET4.0 for Linux 2.4
> Based upon Swansea University Computer Society NET3.039
> Initializing RT netlink socket
> Starting kswapd
> pty: 256 Unix98 ptys configured
> Serial driver version 5.05c (2001-07-08) with MANY_PORTS SHARE_IRQ
> SERIAL_PCI enabled
> ttyS00 at 0x03f8 (irq = 4) is a 16550A
> ttyS01 at 0x02f8 (irq = 3) is a 16550A
> request_module[parport_lowlevel]: Root fs not mounted
> lp: driver loaded but no devices found
> ppdev: user-space parallel port driver
> block: 128 slots per queue, batch=32
> Uniform Multi-Platform E-IDE driver Revision: 6.31
> ide: Assuming 33MHz system bus speed for PIO modes; override with
idebus=xx
> PIIX4: IDE controller on PCI bus 00 dev f9
> PIIX4: chipset revision 1
> PIIX4: not 100% native mode: will probe irqs later
> ide0: BM-DMA at 0xb800-0xb807, BIOS settings: hda:DMA, hdb:pio
> ide1: BM-DMA at 0xb808-0xb80f, BIOS settings: hdc:pio, hdd:pio
> hda: ST380020ACE, ATA DISK drive
> ide0 at 0x1f0-0x1f7,0x3f6 on irq 14
> hda: 156301488 sectors (80026 MB) w/2048KiB Cache, CHS=9729/255/63,
UDMA(33)
> Partition check:
> hda: hda1
> PPP generic driver version 2.4.1
> NET4: Linux TCP/IP 1.0 for NET4.0
> IP Protocols: ICMP, UDP, TCP
> IP: routing cache hash table of 1024 buckets, 8Kbytes
> TCP: Hash tables configured (established 16384 bind 16384)
> NET4: Unix domain sockets 1.0/SMP for Linux NET4.0.
> FAT: bogus logical sector size 0
> reiserfs: checking transaction log (device 03:01) ...
> Using r5 hash to sort names
> ReiserFS version 3.6.25
> VFS: Mounted root (reiserfs filesystem) readonly.
> Freeing unused kernel memory: 76k freed
> 8139too Fast Ethernet driver 0.9.24
> PCI: Found IRQ 10 for device 02:0e.0
> eth0: RealTek RTL8139 Fast Ethernet at 0xcc8b5000, 00:50:fc:3b:2a:76, IRQ
10
> eth0: Identified 8139 chip type 'RTL-8139C'
> eth0: Setting half-duplex based on auto-negotiated partner ability 0000.
>

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