Subject: kern/10085: kernel freeze with 3C 3CXM576 pcmcia modem
To: None <gnats-bugs@gnats.netbsd.org>
From: None <matthieu@laas.fr>
List: netbsd-bugs
Date: 05/09/2000 13:30:16
>Number:         10085
>Category:       kern
>Synopsis:       kernel freeze with 3C 3CXM576 pcmcia modem
>Confidential:   no
>Severity:       serious
>Priority:       medium
>Responsible:    kern-bug-people
>State:          open
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Tue May 09 13:31:00 PDT 2000
>Closed-Date:
>Last-Modified:
>Originator:     Matthieu Herrb
>Release:        NetBSD-current May 8 2000
>Organization:
	LAAS/CNRS Toulouse, France
>Environment:
System: NetBSD bluenote 1.4Y NetBSD 1.4Y (BLUENOTE) #75: Tue May 9 21:45:09 CEST 2000 matthieu@bluenote:/local/NetBSD/src/sys/arch/i386/compile/BLUENOTE i386


>Description:

I recently bought a 3COM 3CXM756 pcmcia modem for my laptop. It's
detected by my -current kernel, but then during ttyflags -a the kernel
outputs 4 time the following message:

com1: com_iflush timeout 0d

And when I try to use tip to talk to the modem, the kernel generates a
few other com_iflush timeout messages and then the machine completly
freezes and stop responding to pings.  Dropping into DDB I get the
following trace:

db> trace
cpu_Debugger(c0474d00,db753d74,c02144e0,c0474d00,db753d80) at cpu_Debugger+0x4
internal_command(c0474d00,db75380,f420,1,c02a1e20) at internal_command+0x150
wskbd_translate(c02a1aE0,2,1,c046aa80,c02a1e20) at wskbd_translate+0xd8
wskbd_input(c0474d00,2,1,1,2) at wskbd_input+0x50
pckbd_input(c046aa80,1) at pckbd_input+0x4e
pckbcintr(c045e500) at pckbcintr+0xdb
Xintr1() at Xintr1+0x6c
--- interrupt ---
comintr(c047d800) at comintr+0x415
pccbintr_function(c0460200,c0469ce0,db7445f0,db7445f0,1) at pccbintr_function+0x1b
pccbintr(c0460200) at pccbintr+0x5a
Xintr11() at Xintr11+0x70
--- interrupt ---
idle(c0471800,c0471850,0,0,db753f94) at idle+0x21
pbendtsleep(c0471800,20,c026b5ba,72,c0471850,6,0,c0471800,c0471850,2,0) at bpendtsleep
apm_thread(c0471800) at apm_thread+0x58
Bad frame pointer: 0xc02ede80
db> 


The machine is a Dell Lattitude CPi300.
For completness, here's my kernel config file

--- snip ---
include "arch/i386/conf/std.i386"

maxusers	32		# estimated number of users

# CPU support.  At least one is REQUIRED.
options 	I686_CPU

# CPU-related options.
# eliminate delay no-ops in I/O; recommended on all but very old machines
options 	DUMMY_NOPS

# Misc. i386-specific options
options 	XSERVER		# X server support in console drivers
#options 	XSERVER_DDB	# PF12 gets you into DDB when X is running

# Standard system options

options 	UCONSOLE	# users can use TIOCCONS (for xconsole)
options 	INSECURE	# disable kernel security levels

options 	RTC_OFFSET="-120" # hardware clock is this many mins. west of GMT
options 	NTP		# NTP phase/frequency locked loop

options 	KTRACE		# system call tracing via ktrace(1)

options 	SYSVMSG		# System V-like message queues
options 	SYSVSEM		# System V-like semaphores
options 	SYSVSHM		# System V-like memory sharing
#options 	SHMMAXPGS=1024	# 1024 pages is the default

options 	LKM		# loadable kernel modules

# Diagnostic/debugging support options
options 	DIAGNOSTIC	# cheap kernel consistency checks
options 	DDB		# in-kernel debugger
options 	DDB_HISTORY_SIZE=100	# enable history editing in DDB
#options 	KGDB		# remote debugger
#options 	"KGDB_DEVNAME=\"com\"",KGDBADDR=0x3f8,KGDBRATE=9600
#makeoptions	DEBUG="-g"	# compile full symbol table

# Compatibility options
options 	COMPAT_NOMID	# compatibility with 386BSD, BSDI, NetBSD 0.8,
options 	COMPAT_12	# NetBSD 1.2,
options 	COMPAT_13	# NetBSD 1.3,
options 	COMPAT_14	# NetBSD 1.4
options 	COMPAT_43	# and 4.3BSD
options		COMPAT_AOUT	# NetBSD a.out

options 	COMPAT_LINUX	# binary compatibility with Linux
#options 	COMPAT_FREEBSD	# binary compatibility with FreeBSD

# File systems
file-system 	FFS		# UFS
file-system 	MFS		# memory file system
file-system 	NFS		# Network File System client
file-system 	CD9660		# ISO 9660 + Rock Ridge file system
file-system 	MSDOSFS		# MS-DOS file system
file-system	NTFS		# Windows NT
file-system 	FDESC		# /dev/fd
file-system 	KERNFS		# /kern
file-system 	PROCFS		# /proc

# File system options
options 	SOFTDEP         # FFS soft updates support.
options 	NFSSERVER	# Network File System server

# Networking options
options 	GATEWAY		# packet forwarding
options 	INET		# IP + ICMP + TCP + UDP
#options 	MROUTING	# IP multicast routing
#options 	PPP_BSDCOMP	# BSD-Compress compression support for PPP
#options 	PPP_DEFLATE	# Deflate compression support for PPP
#options 	PPP_FILTER	# Active filter support for PPP (requires bpf)
#options 	PFIL_HOOKS	# pfil(9) packet filter hooks
#options 	IPFILTER_LOG	# ipmon(8) log support


# These options enable verbose messages for several subsystems.
# Warning, these may compile large string tables into the kernel!
#options 	EISAVERBOSE	# verbose EISA device autoconfig messages
options 	PCIVERBOSE	# verbose PCI device autoconfig messages
options 	PCMCIAVERBOSE	# verbose PCMCIA configuration messages
#options 	SCSIVERBOSE	# human readable SCSI error messages
#options 	USBVERBOSE	# verbose USB device autoconfig messages

# wscons options
#options        WSEMUL_SUN              # sun terminal emulation
options         WSEMUL_VT100            # VT100 / VT220 emulation
# different kernel output - see dev/wscons/wsdisplayvar.h
options         WS_KERNEL_FG=WSCOL_GREEN
options         WSDISPLAY_COMPAT_PCVT           # emulate some ioctls
options         WSDISPLAY_COMPAT_SYSCONS        # emulate some ioctls
options         WSDISPLAY_COMPAT_USL            # VT handling
options         WSDISPLAY_COMPAT_RAWKBD # can get raw scancodes
# see dev/wscons/wskbdmap_mfii.h for implemented layouts
options         PCKBD_LAYOUT="KB_FR"

# options		APM_NO_IDLE

options		BUFCACHE=15

# Kernel root file system and dump configuration.
config		netbsd	root on ? type ?

#
# Device configuration
#

mainbus0 at root

apm0	at mainbus0			# Advanced power management

# Basic Bus Support

# PnP BIOS `bus' support
pnpbios* at mainbus?
com*	at pnpbios? index ?
lpt*	at pnpbios? index ?
wss*	at pnpbios? index ?

# PCI bus support
pci*	at mainbus? bus ?
pci*	at pchb? bus ?

options 	PCIBIOS			# PCI BIOS support
options 	PCIBIOSVERBOSE		# PCI BIOS verbose info
options 	PCIBIOS_INTR_FIXUP	# fixup PCI interrupt routing
#options 	PCIINTR_DEBUG		# super-verbse PCI interrupt fixup
options 	PCIBIOS_BUS_FIXUP	# fixup PCI bus numbering

# PCI bridges
pchb*	at pci? dev ? function ?	# PCI-Host bridges
pcib*	at pci? dev ? function ?	# PCI-ISA bridges

# options CBB_PCI_BASE=0x10000000

# ISA bus support
# isa*	at mainbus?
isa*	at pcib?

# ISA Plug-and-Play bus support
# isapnp0	at isa?

# PCMCIA bus support
pcmcia*	at pcic? controller ? socket ?

# ISA PCMCIA controllers
pcic0	at isa? port 0x3e0 iomem 0xd0000 iosiz 0x4000
pcic1	at isa? port 0x3e2 iomem 0xd4000 iosiz 0x4000

# PCI PCMCIA controllers
pcic0	at pci? dev? function ?
cbb*	at pci? dev? function ?

cardslot*	at cbb?	

# CardBus bus support
cardbus*	at cardslot?
pcmcia*		at cardslot?

# Coprocessor Support

# Math Coprocessor support
npx0	at isa? port 0xf0 irq 13	# x86 math coprocessor

# Console Devices

# wscons
pckbc0  at isa?                 # pc keyboard controller
pckbd*  at pckbc?               # PC keyboard
pms*           at pckbc?               # PS/2 mouse for wsmouse
#vga0            at isa?
vga*            at pci?
#pcdisplay0      at isa?                 # CGA, MDA, EGA, HGA
wsdisplay*      at vga? console ?
#wsdisplay*      at pcdisplay? console ?
wskbd*  at pckbd? console ?
wsmouse0       at pms?

pcppi0	at isa?
sysbeep0	at pcppi?

# Serial Devices

# CardBus serial interfaces
com*	at cardbus? function ?		# Modems and serial cards

# PCMCIA serial interfaces
com*	at pcmcia? function ?		# Modems and serial cards

# ISA serial interfaces
#options 	COM_HAYESP		# adds Hayes ESP serial board support
#com0	at isa? port 0x3f8 irq 4	# Standard PC serial ports

# Parallel Printer Interfaces

# ISA parallel printer interfaces
lpt0	at isa? port 0x378 irq 7	# standard PC parallel ports


# PCI IDE controllers (CMD tech's PCI0640, Intel's PIIx, ...).
# The 0x0001 flag force the driver to use DMA, even if the driver doesn't know
# how to set up DMA modes for this chip. This may work, or may cause
# a machine hang with some controllers.
pciide* at pci ? dev ? function ? flags 0x0000

# IDE drives.
# Flags are used only with controlers that support DMA operations
# and mode settings (e.g. some pciide controllers)
# The first 4 bytes of the flags define the PIO mode to use, the
# second DMA mode and the third UltraDMA mode. For each group of 4 bytes,
# the 3 lower define the mode to use, and the last one must be 1 for the
# setting to be used. For DMA and UDMA, 0xf means 'disable'.
# 0x0fac means 'use PIO mode 4 DMA mode 2, disable UltraDMA'.
# 0x0000 means "use whatever the drive claims to support.
wd*	at pciide? channel ? drive ? flags 0x0000
wd*	at wdc? channel ? drive ? flags 0x0000

# ATAPI bus support
#atapibus* at wdc? channel ?
atapibus* at pciide? channel ?

# ATAPI devices
# flags have the same meaning as for IDE drives.
cd*	at atapibus? drive ? flags 0x0000	# ATAPI CD-ROM drives
#sd*	at atapibus? drive ? flags 0x0000	# ATAPI disk drives
#uk*	at atapibus? drive ? flags 0x0000	# ATAPI unknown


# Miscellaneous mass storage devices

# ISA floppy
fdc0	at isa? port 0x3f0 irq 6 drq 2	# standard PC floppy controllers
fd*	at fdc? drive ?			# the drives themselves

# PCMCIA IDE controllers
wdc*	at pcmcia? function ?

# Network Interfaces

# CardBus network cards
ex*	at cardbus? dev ? function ?	# 3Com 3C575TX

# MII/PHY support
tqphy*	at mii? phy ?			# TDK Semiconductor PHYs

# USB Controller and Devices

# PCI USB controllers
uhci*	at pci?				# Universal Host Controller (Intel)

# USB bus support
usb*	at uhci?

# USB Hubs
uhub*	at usb?
uhub*	at uhub? port ? configuration ? interface ?

# USB Mice
ums*	at uhub? port ? configuration ? interface ?
wsmouse*	at ums? mux 0

# Audio Devices

# OPL[23] FM syntheziers
opl*	at wss?

audio*	at wss?

# MIDI support
midi*	at opl?
midi*	at pcppi?		# MIDI interface to the PC speaker

# Pseudo-Devices

# disk/mass storage pseudo-devices
pseudo-device	vnd		4	# disk-like interface to files

# network pseudo-devices
pseudo-device	bpfilter	8	# Berkeley packet filter
pseudo-device	ipfilter		# IP filter (firewall) and NAT
pseudo-device	loop			# network loopback
pseudo-device	ppp		2	# Point-to-Point Protocol

# miscellaneous pseudo-devices
pseudo-device	pty		64	# pseudo-terminals
# pseudo-device	sequencer	1	# MIDI sequencer

# rnd works; RND_COM does not on port i386 yet.
pseudo-device	rnd			# /dev/random and in-kernel generator
--- snip ---

and the dmesg output :
--- snip ---
NetBSD 1.4Y (BLUENOTE) #75: Tue May  9 21:45:09 CEST 2000
    matthieu@bluenote:/local/NetBSD/src/sys/arch/i386/compile/BLUENOTE
cpu0: family 6 model 5 step 2
cpu0: Intel Pentium II (Deschutes) (686-class)
total memory = 65088 KB
avail memory = 51456 KB
using 2430 buffers containing 9720 KB of memory
BIOS32 rev. 0 found at 0xffe90
PCI BIOS rev. 2.1 found at 0xfbc8e
pcibios: config mechanism [1][x], special cycles [x][x], last bus 0
PCI IRQ Routing Table rev. 1.0 found at 0xfb950, size 112 bytes (5 entries)
PCI Interrupt Router at 000:07:0 (Intel 82371MX Mobile PCI I/O IDE Xcelerator (MPIIX))
--------------------------------------------
  device vendor product pin PIRQ   IRQ stage
--------------------------------------------
000:02:0 0x10c8 0x0004  A   0x00   11  0
000:03:0 0x104c 0xac15  A   0x03   11  0
000:03:1 0x104c 0xac15  B   0x03   11  0
000:07:2 0x8086 0x7112  D   0x03   11  0
--------------------------------------------
PCI bridge 0: primary 0, secondary 1, subordinate 1
PCI bridge 1: primary 0, secondary 2, subordinate 2
PCI bus #2 is the last bus
mainbus0 (root)
pnpbios0 at mainbus0: nodes 14, max len 110
pnpbios0: not docked
com0 at pnpbios0 index 12 (PNP0501)
com0: io 3f8-3ff, irq 4
com0: ns16550a, working fifo
pci0 at mainbus0 bus 0: configuration mode 1
pci0: i/o space, memory space enabled
pchb0 at pci0 dev 0 function 0
pchb0: Intel 82443BX Host Bridge/Controller (AGP disabled) (rev. 0x02)
vga0 at pci0 dev 2 function 0: Neomagic MagicGraph 128XD (rev. 0x01)
wsdisplay0 at vga0: console (80x25, vt100 emulation)
cbb0 at pci0 dev 3 function 0: Texas Instruments PCI1131 PCI-CardBus Bridge (rev. 0x01)
cbb1 at pci0 dev 3 function 1: Texas Instruments PCI1131 PCI-CardBus Bridge (rev. 0x01)
pcib0 at pci0 dev 7 function 0
pcib0: Intel 82371AB PCI-to-ISA Bridge (PIIX4) (rev. 0x01)
pciide0 at pci0 dev 7 function 1: Intel 82371AB IDE controller (PIIX4)
pciide0: bus-master DMA support present
pciide0: primary channel wired to compatibility mode
wd0 at pciide0 channel 0 drive 0: <IBM-DADA-26480>
wd0: drive supports 16-sector pio transfers, lba addressing
wd0: 6194 MB, 13424 cyl, 15 head, 63 sec, 512 bytes/sect x 12685680 sectors
wd0: 32-bit data port
wd0: drive supports PIO mode 4, DMA mode 2, Ultra-DMA mode 2
pciide0: primary channel interrupting at irq 14
wd0(pciide0:0:0): using PIO mode 4, Ultra-DMA mode 2 (using DMA data transfers)
pciide0: secondary channel wired to compatibility mode
pciide0: secondary channel ignored (disabled)
uhci0 at pci0 dev 7 function 2: Intel 82371AB USB Host Controller (PIIX4) (rev. 0x01)
uhci0: interrupting at irq 11
usb0 at uhci0: USB revision 1.0
uhub0 at usb0
uhub0: Intel UHCI root hub, class 9/0, rev 1.00/1.00, addr 1
uhub0: 2 ports with 2 removable, self powered
Intel 82371AB Power Management Controller (PIIX4) (miscellaneous bridge, revision 0x01) at pci0 dev 7 function 3 not configured
cbb0: interrupting at irq 11
cbb0: cacheline 0x8 lattimer 0x20
cbb0: bhlc 0x822008 lscp 0x20010100
cardslot0 at cbb0 slot 0 flags 0
cardbus0 at cardslot0: bus 1 device 0 cacheline 0x8, lattimer 0x20
pcmcia0 at cardslot0
cbb1: interrupting at irq 11
cbb1: cacheline 0x8 lattimer 0x20
cbb1: bhlc 0x822008 lscp 0x20020200
cardslot1 at cbb1 slot 1 flags 0
cardbus1 at cardslot1: bus 2 device 0 cacheline 0x8, lattimer 0x20
pcmcia1 at cardslot1
isa0 at pcib0
pckbc0 at isa0 port 0x60-0x64
pckbd0 at pckbc0 (kbd slot)
pckbc0: using irq 1 for kbd slot
wskbd0 at pckbd0: console keyboard, using wsdisplay0
pms0 at pckbc0 (aux slot)
pckbc0: using irq 12 for aux slot
wsmouse0 at pms0
pcppi0 at isa0 port 0x61
midi0 at pcppi0: PC speaker
sysbeep0 at pcppi0
npx0 at isa0 port 0xf0-0xff: using exception 16
fdc0 at isa0 port 0x3f0-0x3f7 irq 6 drq 2
apm0 at mainbus0: Power Management spec V1.2
biomask efed netmask efed ttymask ffef
pcmcia0: CIS version PC Card Standard 5.0
pcmcia0: CIS info: 3Com Megahertz, 3CXM756/3CCM756
pcmcia0: Manufacturer code 0x101, product 0x3f
pcmcia0: function 0: serial port, ccr addr 300 mask 17
pcmcia0: function 0, config table entry 32: I/O card; irq mask ffff; iomask a, iospace 3f8-3ff; rdybsy_active io8 irqlevel powerdown audio
pcmcia0: function 0, config table entry 33: I/O card; irq mask ffff; iomask a, iospace 2f8-2ff; rdybsy_active io8 irqlevel powerdown audio
pcmcia0: function 0, config table entry 34: I/O card; irq mask ffff; iomask a, iospace 3e8-3ef; rdybsy_active io8 irqlevel powerdown audio
pcmcia0: function 0, config table entry 35: I/O card; irq mask ffff; iomask a, iospace 2e8-2ef; rdybsy_active io8 irqlevel powerdown audio
com1 at pcmcia0 function 0: serial device
com1: ns16550a, working fifo
ex0 at cardbus1 dev 0 function 0: 3Com 3c575B-TX Ethernet
ex0: interrupting at 11
ex0: MAC address 00:10:4b:f1:2d:cc
tqphy0 at ex0 phy 0: 78Q2120 10/100 media interface, rev. 3
tqphy0: 10baseT, 10baseT-FDX, 100baseTX, 100baseTX-FDX, auto
boot device: wd0
root on wd0a dumps on wd0b
root file system type: ffs
com1: com_iflush timeout 0d
com1: com_iflush timeout 0d
com1: com_iflush timeout 0d
com1: com_iflush timeout 0d
com1: com_iflush timeout 0d
XFree86 aperture driver version 1.99
Pentium Pro MTRR support enabled
IP Filter: v3.4.1 initialized.  Default = pass all, Logging = disabled
wsdisplay0: screen 1 added (80x25, vt100 emulation)
wsdisplay0: screen 2 added (80x25, vt100 emulation)
wsdisplay0: screen 3 added (80x25, vt100 emulation)
wsdisplay0: screen 4 added (80x25, vt100 emulation)
--- snip ---

>How-To-Repeat:
	Put a 3CXM756 modem in a laptop ?
>Fix:
	Unknown
>Release-Note:
>Audit-Trail:
>Unformatted: