I think I found the root-cause. It seems that a thread fell into an infinite-loop in pci_lcap_locate(). pci_lcap_locate() tries to find a specified capability in PCI configuration space. It gets the pointer to the capabity list from PCI_CONF_CAP_PTR register atoffset 0x34. But for Cardbus bridges it is incorrect. Reading datasheets of cardbus bridge products, the right register for the capability pointer is at offset 0x14 in PCI configuration space, I think.
-masa This message posted from opensolaris.org
