Re: Kernel Panic 2.4.19 with Segate 80GB HDD

From: Andre Hedrick (andre@linux-ide.org)
Date: Mon Oct 21 2002 - 18:52:11 EST


No "erroneously has 48bit LBA turned on" is not what is happening.
There are general purpose logs which reqire 48-bit operations.
A device can support 48-bit command and be less than 137GB.
Also if you disable 48-bit some of the drive features will not work.

Bit on and zero in words 100-103 is a Buggy SPEC!

Currently an beautiful mess has been made by the committe.

If device supports 48-bit is it required to report capacity in all 48-bit
locations in the IDENTIFY Page?

If the device is destroked to less than 137GB does it report the same in
both words 60-61 and 100-103?

There are worse yet to come.

On Mon, 21 Oct 2002, JunHyeok Heo wrote:

>
> 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/
>

Andre Hedrick
LAD Storage Consulting Group

-
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/



This archive was generated by hypermail 2b29 : Wed Oct 23 2002 - 22:00:56 EST