Funny to say, the machine hangs completely if I remove one pcmcia card when the pcmcia services ARE STOPPED (that is, first issuing "service pcmcia stop" and then removing/swapping one card) This last behaviour is hard to understand, it seems there is some fake interrupt going around... in principle with the service stopped the kernel should not care at all about cards. hot swapping works IF AND ONLY IF: a) I "eject" the cards with cardctl b) I eject them abruptly by hand
still exist in qa0322.
Is this cardbus or pcmcia ?
This is a cardbus system but it will support pcmcia
I was able to reproduce this with both a PCMCIA and a Cardbus card (on a C600).
This is a problem with the IRQ being shared betwen PCMCIA and USB; with the usb-uhci driver unloaded it works OK.
how about doing what one of our engineer (Andy Jordan) figured out: ***** 1)The problem only occurred when the card was actively passing data (i.e. connected to the network) os in most cases, stopping the network service first seemed to do the trick. 2)I checked /etc/rc.d/init.d/pcmcia for the stop section which I have pasted below and found that it is only killing cardmgr. I got the same results when I tried to send SIGTERM to the PID manually so I know that is the process that is hanging. I was also able to verify that the config gets reloaded when cardmgr receives SIGHUP -at least that part seems to be working. 3)If I inserted " cardctl eject " somewhere before the kill signal is sent, it worked fine. Which seemed to correspond with your findings that a hot eject worked fine. So maybe as a workaround, I added the line in red below stop() { echo -n $"Shutting down PCMCIA card services:" if [ -s /var/run/cardmgr.pid ] ; then PID= 'cat /var/run/cardmgr.pid' /sbin/cardctl eject kill $PID echo -n $" cardmgr" $Give cardmgr a few seconds to handle the signal kill -0 $PID 2>/dev/null && sleep 2 && \ kill -0 $PID 2>/dev/null && sleep 2 && \ kill -0 $PID 2>/dev/null && sleep 2 && \ kill -0 $PID 2>/dev/null fi etcetera...etcetera... As far as I can tell, cardmgr is supposed to unload the drivers using insmod - or modprobe if insmod fails- when it receives SIGTERM. I can only assume that the issue is in cardmgr, insmod or the fact that the sockets are now handled as yenta -which I think is new in the 2.4 kernel. ******
oh, we've already fixed this one - it was a kernel bug where yenta_socket didn't turn off event notification on unload. When hw events happened it stormed the machine and froze it. Should be fine in the 2.4.2-0.1.40 and above kernels.
still occurring with a PSION gold card Modem. in 2.4.2-0.1.49
when I have the PSION Gold card Modem connected, I type in the command service pcmcia stop I eject the card Then the system hangs. This does not happen on the 3Com 3c575 Network card any more.
Hm, I tried this on a gold card here with the C600 and it works OK; was this the C600 or the i8000 (or something else)?
I tried it with a Gold card on 2 different C600 systems. Can you please try it with 2 cards in the systems (one network and one goldcard modem)? stop the pcmcia service and then eject the cards one at a time. I can get it to hang consistently. Thanks.