Bug 52270

Summary: Pcmcia ethernet support is broken in Roswell2.
Product: [Retired] Red Hat Linux Reporter: Leonid Kanter <leon>
Component: kernel-pcmcia-csAssignee: Arjan van de Ven <arjanv>
Status: CLOSED RAWHIDE QA Contact: Brock Organ <borgan>
Severity: medium Docs Contact:
Priority: medium    
Version: 7.3CC: notting
Target Milestone: ---   
Target Release: ---   
Hardware: i386   
OS: Linux   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2001-08-22 10:38:01 UTC Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:

Description Leonid Kanter 2001-08-22 09:06:26 UTC
Pcmcia ethernet support is broken in Roswell2.

The problem is in following part of /etc/pcmcia/network:

'stop')
    #
    # We don't do anything here either. We get a hotplug event when
    # the ethX device is unregistered too...
    #
    ;;

It's wrong idea that physical removing of pcmcia card is a hotplug
event. Actually module removing is a hotplug event. But cardmgr is
unable to remove module, because module is busy with active eth
interface. Look what happenes whan I physically remove xircom ethernet
card:

Aug 22 11:05:13 localhost cardmgr[812]: shutting down socket 0
Aug 22 11:05:13 localhost cardmgr[812]: executing: './network stop eth0'
# interface must be deactivated by './network stop eth0' here
Aug 22 11:05:13 localhost cardmgr[812]: executing: 'modprobe -r xirc2ps_cs'
Aug 22 11:05:14 localhost cardmgr[812]: + xirc2ps_cs: Device or resource busy
Aug 22 11:05:14 localhost cardmgr[812]: modprobe exited with status 1

As a result, module with busy flag

Module                  Size  Used by
xirc2ps_cs             11488   1

will hang forewer untill you type 'ifconfig eth0 down' and 'rmmod
xirc2ps_cs' manually. Additionally, if you insert card again, it will
become eth1.

Aug 22 00:53:49 localhost cardmgr[801]: initializing socket 0
Aug 22 00:53:49 localhost cardmgr[801]: socket 0: Xircom CE3-10/100 Fast
Ethernet
Aug 22 00:53:49 localhost kernel: eth1: Xircom: port 0x320, irq 9, hwaddr
00:80:C7:C5:AF:C0
Aug 22 00:53:49 localhost cardmgr[801]: executing: './network start eth1'
Aug 22 00:55:19 localhost cardmgr[801]: shutting down socket 0
Aug 22 00:55:19 localhost cardmgr[801]: executing: './network stop eth1'
Aug 22 00:55:19 localhost cardmgr[801]: executing: 'modprobe -r xirc2ps_cs'
Aug 22 00:55:20 localhost cardmgr[801]: + xirc2ps_cs: Device or resource busy


After adding '/sbin/ifdown' to /etc/pcmcia/network:

'stop')
    /sbin/ifdown ${device:?}
    ;;

Everything works perfectly:

Aug 22 11:57:32 localhost cardmgr[812]: initializing socket 0
Aug 22 11:57:32 localhost cardmgr[812]: socket 0: Xircom CE3-10/100 Fast
Ethernet
Aug 22 11:57:32 localhost cardmgr[812]: executing: 'modprobe xirc2ps_cs'
Aug 22 11:57:32 localhost kernel: xirc2ps_cs.c 1.31 1998/12/09 19:32:55
(dd9jn+kvh)
Aug 22 11:57:32 localhost cardmgr[812]: executing: './network start eth0'
Aug 22 11:57:32 localhost kernel: eth0: Xircom: port 0x310, irq 3, hwaddr
00:80:C7:C5:AF:C0
Aug 22 11:57:35 localhost kernel: eth0: media 10BaseT, silicon revision 4

Aug 22 11:58:08 localhost cardmgr[812]: shutting down socket 0
Aug 22 11:58:08 localhost cardmgr[812]: executing: './network stop eth0'
Aug 22 11:58:10 localhost cardmgr[812]: executing: 'modprobe -r xirc2ps_cs'

Comment 1 Arjan van de Ven 2001-08-22 10:37:56 UTC
Bill: didn't you fix this 2 days ago ?

Comment 2 Bill Nottingham 2001-08-22 19:11:47 UTC
Yes, it's fixed in later kernel-pcmcia-cs (-8 or -9 or so.)