[hsflinux] my modem just segmentations fault when I attempt toopen the device...

Jeff Wiegley, Ph.D. jeff at cyte.com
Tue Jan 20 01:56:32 EST 2004


On Thu, 2002-05-30 at 22:23, Tony Earnshaw wrote:
> tor, 2002-05-30 kl. 23:35 skrev David Balazic:
> 
> > > 1: IRQ 11 isn't normal for a modem, but can be negotiated automatically
> > > when the modules are loaded. Modems should use COM port / tty IRQs,
> > > generally 4 and 3. My machine suggests IRQ 11 for card bus and Ethernet.
> 
> > Nonsense. It is a PCI device and can have any IRQ. My HSF modem has IRQ
> > 10,
> > for example, but that depends on the PCI slot, BIOS settings, OS, phase
> > of
> > the moon, etc ...
> 
> Perhaps you'd like to read the above again :-)
> 

I'ld sort of have to agree with David on this issue. I don't believe
there is any "preference" for IRQ 4 or 3 with modems. especially with
PCI modems. First off it certainly can't use IRQ 4 since that really
is traditionally associated with TTYS0 (COM1) and this is correctly
tied to the actual physical DB-9M serial port on the back of my
laptop.

I guess it would be nice if the PCI HSF modem chose to use IRQ 3,
or IRQ 10 since nothing else is attempting to share either of those
IRQs.

But the modem really thinks its at IRQ 11 and that is what the hsf
drivers attempt to use it at.  So I think the IRQ is detected and
setup correctly.

Further more IRQ 11 is being shared by the audio device, the USB
drivers and the wireless lan card and all of these devices are
working perfectly. So I don't think anything is wrong with the
sharing on IRQ 11.

But I think we should look at something more specific in the
function handler registered for open() on the HSF device driver...

The following C source program is the simplest method I can
dream up to reproduce the error...

#include <fcntl.h>

int main(void)
{
  open("/dev/ttySHSF0",O_RDONLY);
}

Of course it seg faults when run but strace gives some possibly
useful results. Maybe this will give Marc some information to
work from...

[root at localhost root]# gcc testme.c
[root at localhost root]# ./a.out
[ all the execv and libc loading deleted for brevity ]
brk(0)                                  = 0x80495bc
brk(0x80495ec)                          = 0x80495ec
brk(0x804a000)                          = 0x804a000
open("/dev/ttySHSF0", O_RDONLY <unfinished ...>
+++ killed by SIGSEGV +++

stracing minicom produces much more but generally it also seg. faults
by an unfinished open() call.

- Jeff




More information about the hsflinux mailing list