hdparm seg faults (promise PCI ide controller)

Steve Stavropoulos (steve@math.upatras.gr)
Wed, 1 Aug 2001 18:53:15 +0300 (EEST)


I couldn't make the second channel on my Promise PCI ide controller
(pdc20262, the udma66 model) to use DMA. When I did that
(hdparm -d1 /dev/hdg) I would get some messages in /var/log/messages
saying that the kernel waits the drive to enable dma (or something like
that) and the system would become unresponsive for some periods of time.
The situation would revert to normal only after a hdparm -d0 /dev/hdg.
The output of `cat /proc/ide/pdc202xx` was (and still is):
PDC20262 Chipset.
------------------------------- General Status ---------------------------------
Burst Mode : enabled
Host Mode : Normal
Bus Clocking : 33 PCI Internal
IO pad select : 8 mA
Status Polling Period : 4
Interrupt Check Status Polling Delay : 2
--------------- Primary Channel ---------------- Secondary Channel -------------
enabled enabled
66 Clocking enabled disabled
Mode PCI Mode PCI
FIFO Empty FIFO Empty
--------------- drive0 --------- drive1 -------- drive0 ---------- drive1 ------
DMA enabled: yes yes no no
DMA Mode: UDMA 4 NOTSET NOTSET NOTSET
PIO Mode: PIO 4 NOTSET NOTSET NOTSET

The first drive0 is /dev/hde which is using dma without any problems, the
/dev/hdg, which I'm talking about, is the drive 0 in the second channel (I
have tried in that position a Pioneer DVD and a ASUS cdrom).
I thought that a bios upgrade of the promise controller would help
things and so I did it, I put the latest bios from promise. But an
unpleasant surprise was waiting for me when I rebooted my machine and
tried to use hdparm. hdparm will seg fault with EVERY device I try. The
output is this:
------
# hdparm /dev/hdg

/dev/hdg:
Segmentation fault (core dumped)
------
If I boot in my old RedHat 6.2 (kernel 2.4.something) it will not seg
fault, but I won't be able to use dma on the second channel of the promise
controller. In RedHat 7.1 which I'm using with kernel 2.4.7 (I 've tried
and past kernel versions) I ALWAYS get a seg fault and core dumped (no
messages from the kernel).
gdb says:
------------------
# gdb `which hdparm` core
GNU gdb 5.0rh-5 Red Hat Linux 7.1
Copyright 2001 Free Software Foundation, Inc.
GDB is free software, covered by the GNU General Public License, and you
are
welcome to change it and/or distribute copies of it under certain
conditions.
Type "show copying" to see the conditions.
There is absolutely no warranty for GDB. Type "show warranty" for
details.
This GDB was configured as "i386-redhat-linux"...
(no debugging symbols found)...
Core was generated by `hdparm /dev/hdg'.
Program terminated with signal 11, Segmentation fault.
Reading symbols from /lib/i686/libc.so.6...done.
Loaded symbols for /lib/i686/libc.so.6
Reading symbols from /lib/ld-linux.so.2...done.
Loaded symbols for /lib/ld-linux.so.2
#0 0x0804a02e in sync ()
(gdb) bt
#0 0x0804a02e in sync ()
#1 0x00000000 in ?? ()
(gdb)
------------
Can I do anything more to debug the problem with gdb?

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