The attached panic has happened once on S10 x86 GA + 118844-20
kernel patch when hotremoving a firewire cardbus card. There was
never a firewire device connected to the firewire cardbus controller, I
just hotplugged the firewire card card, then hotremoved it.
This panic has happened exactly once so far. In all other cases the
notebook freezes when hotremoving the firewire cardbus card and it has
to be power cycled.
It seems as if hci1394_ixl_interrupt() was called with a bad second argument,
maybe pointing to freed memory. Unfortunatelly the kernel was running without
kmem heap checking so it's probably difficult to find out exactly has has gone
wrong.
Unfortunatelly the firewire bug category is not visible on bugs.opensolaris.org,
so I cannot check if this is a known issue.
This message posted from opensolaris.org
-------------- next part --------------
# mdb -k 0
Loading modules: [ unix krtld genunix specfs dtrace ufs ip sctp usba uhci s1394
fctl lofs random nfs audiosup ptm ]
> ::status
debugging crash dump vmcore.0 (32-bit) from max
operating system: 5.10 Generic_118844-20 (i86pc)
panic message:
BAD TRAP: type=e (#pf Page fault) rp=d3202ccc addr=c6b50278 occurred in module
"hci1394" due to an illegal access to a user address
dump content: kernel pages only
> $c
hci1394_ixl_dma_sync+0x27(d49830c0, d49a61e0)
hci1394_ixl_interrupt+0xeb(d49830c0, d49a61e0, 0)
hci1394_isr_isoch_it+0x67(d49830c0)
hci1394_isr+0x57(d49830c0, 0)
cpu_halt+0x9d()
idle+0x3b(0, 0)
> ::msgbuf
MESSAGE
PCI-device: pci1179,ff10 at 1f,5, audioi8100
audioi8100 is /pci at 0,0/pci1179,ff10 at 1f,5
PCI-device: pci1179,ff10, audioi8100, ICH4:82801DB/M (rev. 0x03) at irq 11
NOTICE: IRQ11 is being shared by drivers with different interrupt levels.
This may result in reduced system performance.
AC97: primary codec, rev. 2.1 or earlier, vendor id1:0x4144,id2:0x5363,
Headphone out, 16-bit DAC, 16-bit ADC, 3D-stereo mode 1, aux HP_OUT
AC97: extid 0x0001, powerdown status 0x000f
pseudo-device: vol0
vol0 is /pseudo/vol at 0
ATAPI device at targ 0, lun 0 lastlun 0x0
model DW-224E
ATA/ATAPI-5 supported, majver 0x3c minver 0x0
PCI-device: ide at 1, ata1
ata1 is /pci at 0,0/pci-ide at 1f,1/ide at 1
UltraDMA mode 2 selected
UltraDMA mode 2 selected
sd0 at ata1: target 0 lun 0
sd0 is /pci at 0,0/pci-ide at 1f,1/ide at 1/sd at 0,0
device pciclass,030000 at 0(display#0) keeps up device sd at 0,0(sd#0), but the
latter is not power managed
pseudo-device: devinfo0
devinfo0 is /pseudo/devinfo at 0
PCI-device: pci1179,ff10 at 1f,5, audioi8100
audioi8100 is /pci at 0,0/pci1179,ff10 at 1f,5
PCI-device: pci1179,ff10, audioi8100, ICH4:82801DB/M (rev. 0x03) at irq 11
NOTICE: IRQ11 is being shared by drivers with different interrupt levels.
This may result in reduced system performance.
AC97: primary codec, rev. 2.1 or earlier, vendor id1:0x4144,id2:0x5363,
Headphone out, 16-bit DAC, 16-bit ADC, 3D-stereo mode 1, aux HP_OUT
AC97: extid 0x0001, powerdown status 0x000f
pseudo-device: pool0
pool0 is /pseudo/pool at 0
pciclass,0607001: ........................................
pciclass,0607001: Pri Bus = [0x2]
pciclass,0607001: Sec Bus = [0x3]
pciclass,0607001: Sub Bus = [0x3]
pciclass,0607001: Cardbus Lattimer = [0x40]
pciclass,0607001: Cache Linesz= [0x10]
pciclass,0607001: Lattimer= [0x20]
pciclass,0607001: Command = [0x7]
pciclass,0607001: BAR0 = [0xdf000]
pciclass,0607001: mem Base 0 = [0x0]
pciclass,0607001: mem Lim 0 = [0x0]
pciclass,0607001: mem Base 1 = [0x0]
pciclass,0607001: mem Lim 1 = [0x0]
pciclass,0607001: I/0 Base 0 = [0x0]
pciclass,0607001: I/O Lim 0 = [0x0]
pciclass,0607001: I/O Base 1 = [0x0]
pciclass,0607001: I/O Lim 1 = [0x0]
pciclass,0607001: Sec. Status = [0x200]
pciclass,0607001: Intr Line = [0xb]
pciclass,0607001: Intr Pin = [0x2]
pciclass,0607001: BrIdge CTL 0x3e = [0x420]
pciclass,0607001: Subsys Venid= [0x1179]
pciclass,0607001: Subsys ID = [0xff10]
pciclass,0607001: PCCARD I/F = [0x1]
pciclass,0607001: SYS CTL 0x80 = [0x844d021]
pciclass,0607001: GEN CTL 0x86 = [0x0]
pciclass,0607001: G Purpos 0x88 = [0x0]
pciclass,0607001: MF-routing 0x8c = [0x1000222]
pciclass,0607001: Card CTL 0x91 = [0x2]
pciclass,0607001: DEV CTL 0x92 = [0x44]
pciclass,0607001: DIAG 0x93 = [0x60]
pciclass,0607001: ........................................
pcic(1),0xda3066d8: pcic1: Odd card insertion indication on socket 0
pcic(1),0xda3066d8: pcic1: Odd card insertion indication on socket 0
pcic(1),0xda3066d8: pcic1: Odd card insertion indication on socket 0
pci574,86c,0xd3a88a20: cardbus_update_assigned_prop: creating prop
pci574,86c,0xd3a88a20: cardbus_update_assigned_prop: found prop len 20
pci574,86c,0xd3a88a20: cardbus_update_assigned_prop: found prop len 40
hci1394,0xd3a88a20: Creating empty ppd
NOTICE: IRQ11 is being shared by drivers with different interrupt levels.
This may result in reduced system performance.
Bus 3 Device 0 Function 0 Vendor 0x1106 Device 0x3044 Name
pciclass,0c0010hci13940 is /pci at 0,0/pci8086,2448 at 1e/pci1179,ff10 at
9/pci574,86c at 0
/pci at 0,0/pci8086,2448 at 1e/pci1179,ff10 at 9/pci574,86c at 0 (hci13940)
online
pciclass,0607000: ........................................
pciclass,0607000: Pri Bus = [0x2]
pciclass,0607000: Sec Bus = [0x3]
pciclass,0607000: Sub Bus = [0x3]
pciclass,0607000: Cardbus Lattimer = [0x40]
pciclass,0607000: Cache Linesz= [0x10]
pciclass,0607000: Lattimer= [0x20]
pciclass,0607000: Command = [0x7]
pciclass,0607000: BAR0 = [0xde000]
pciclass,0607000: mem Base 0 = [0xd0002000]
pciclass,0607000: mem Lim 0 = [0xd0002000]
pciclass,0607000: mem Base 1 = [0x0]
pciclass,0607000: mem Lim 1 = [0x0]
pciclass,0607000: I/0 Base 0 = [0xb000]
pciclass,0607000: I/O Lim 0 = [0xb07c]
pciclass,0607000: I/O Base 1 = [0x0]
pciclass,0607000: I/O Lim 1 = [0x0]
pciclass,0607000: Sec. Status = [0x200]
pciclass,0607000: Intr Line = [0xb]
pciclass,0607000: Intr Pin = [0x1]
pciclass,0607000: BrIdge CTL 0x3e = [0x420]
pciclass,0607000: Subsys Venid= [0x1179]
pciclass,0607000: Subsys ID = [0xff10]
pciclass,0607000: PCCARD I/F = [0x1]
pciclass,0607000: SYS CTL 0x80 = [0x844f021]
pciclass,0607000: GEN CTL 0x86 = [0x0]
pciclass,0607000: G Purpos 0x88 = [0x0]
pciclass,0607000: MF-routing 0x8c = [0x1000222]
pciclass,0607000: Card CTL 0x91 = [0x3]
pciclass,0607000: DEV CTL 0x92 = [0x44]
pciclass,0607000: DIAG 0x93 = [0x60]
pciclass,0607000: ........................................
pciclass,0c00100: ........................................
pciclass,0c00100: VendorId = [0x1106]
pciclass,0c00100: DeviceId = [0x3044]
pciclass,0c00100: Command = [0x1c7]
pciclass,0c00100: CacheLineSz = [0x10]
pciclass,0c00100: LatencyTmr = [0x0]
pciclass,0c00100: BAR0 = [0xd0002000]
pciclass,0c00100: BAR1 = [0xb001]
pciclass,0c00100: BAR2 = [0xd0002800]
pciclass,0c00100: BAR3 = [0x0]
pciclass,0c00100: BAR4 = [0x0]
pciclass,0c00100: CIS = [0x0]
pciclass,0c00100: ILINE = [0xb]
pciclass,0c00100: IPIN = [0x1]
pcic(0),0xda3067f8: pcic0: Odd card insertion indication on socket 0
pcic(0),0xda3067f8: pcic0: Odd card insertion indication on socket 0
pcic(0),0xda3067f8: pcic0: Odd card insertion indication on socket 0
panic[cpu0]/thread=d3202de0:
BAD TRAP: type=e (#pf Page fault) rp=d3202ccc addr=c6b50278 occurred in module
"hci1394" due to an illegal access to a user address
sched:
#pf Page fault
Bad kernel fault at addr=0xc6b50278
pid=0, pc=0xf900927d, sp=0xffffffff, eflags=0x10286
cr0: 8005003b<pg,wp,ne,et,ts,mp,pe> cr4: 6d8<xmme,fxsr,pge,mce,pse,de>
cr2: c6b50278 cr3: 3601000
gs: d3a801b0 fs: d3200000 es: fe920160 ds: da300160
edi: ffffffff esi: d49a61f0 ebp: d3202d28 esp: d3202cfc
ebx: c6b50278 edx: d3202de0 ecx: d49ab83c eax: c6b50278
trp: e err: 0 eip: f900927d cs: 158
efl: 10286 usp: ffffffff ss: d49a61f0
d3202c2c unix:die+a7 (e, d3202ccc, c6b502)
d3202cb8 unix:trap+fc8 (d3202ccc, c6b50278,)
d3202ccc unix:cmntrap+83 ()
d3202d28 hci1394:hci1394_ixl_dma_sync+27 (d49830c0, d49a61e0)
d3202d58 hci1394:hci1394_ixl_interrupt+eb (d49830c0, d49a61e0,)
d3202d80 hci1394:hci1394_isr_isoch_it+67 (d49830c0)
d3202db0 hci1394:hci1394_isr+57 (d49830c0, 0)
syncing file systems...
done
dumping to /dev/dsk/c0d0s1, offset 107806720, content: kernel
> hci1394_ixl_dma_sync,15?ia
hci1394_ixl_dma_sync:pushl %ebp
hci1394_ixl_dma_sync+1: movl %esp,%ebp
hci1394_ixl_dma_sync+3: subl $0xc,%esp
hci1394_ixl_dma_sync+6: pushl %ebx
hci1394_ixl_dma_sync+7: pushl %esi
hci1394_ixl_dma_sync+8: pushl %edi
hci1394_ixl_dma_sync+9: xorl %ebx,%ebx
hci1394_ixl_dma_sync+0xb: movl 0xc(%ebp),%ecx
hci1394_ixl_dma_sync+0xe: movl 0x38(%ecx),%eax
hci1394_ixl_dma_sync+0x11: movl %eax,-0xc(%ebp)
hci1394_ixl_dma_sync+0x14: movw 0x4c(%ecx),%cx
hci1394_ixl_dma_sync+0x18: movw %cx,-0x8(%ebp)
hci1394_ixl_dma_sync+0x1c: testl %eax,%eax
hci1394_ixl_dma_sync+0x1e: je +0xd1 <hci1394_ixl_dma_sync+0xef>
hci1394_ixl_dma_sync+0x24: movl -0xc(%ebp),%ebx
hci1394_ixl_dma_sync+0x27: movl (%ebx),%eax
hci1394_ixl_dma_sync+0x29: movl %eax,-0xc(%ebp)
hci1394_ixl_dma_sync+0x2c: movzwl 0xa(%ebx),%eax
hci1394_ixl_dma_sync+0x30: andl $0xffff7fff,%eax
hci1394_ixl_dma_sync+0x35: movzwl %ax,%eax
hci1394_ixl_dma_sync+0x38: testl $0x800,%eax
hci1394_ixl_dma_sync+0x3d:
> d49830c0::print hci1394_state_t
{
ohci = 0xd4d49970
async = 0xd4a5d910
vendor = 0xd4684700
csr = 0xd468a198
isoch = 0xd49a6000
sl_selfid_buf = 0xd48e3000
drvinfo = {
di_dip = 0xd3a88a20
di_sl_private = 0xd4d5f000
di_instance = 0
di_gencnt = 0xff
di_drvstate = {
ds_state = 1 (HCI1394_BUS_RESET)
ds_mutex = {
_opaque = [ 0, 0 ]
}
}
di_stats = {
st_bus_reset_count = 0x2
st_selfid_count = 0x2
st_phy_isr = 0
st_phy_loop_err = 0
st_phy_pwrfail_err = 0
st_phy_timeout_err = 0
st_phy_portevt_err = 0
}
di_iblock_cookie = 9
di_reg_attr = {
devacc_attr_version = 0x1
devacc_attr_endian_flags = 0x1
devacc_attr_dataorder = 0
devacc_attr_access = 0
}
di_buf_attr = {
devacc_attr_version = 0x1
devacc_attr_endian_flags = 0x1
devacc_attr_dataorder = 0
devacc_attr_access = 0
}
}
vendor_info = {
vendor_id = 0x1106
device_id = 0x3044
revision_id = 0x46
ohci_version = 0x1010000
ohci_vendor_id = 0x4063
vendor_reg_count = 0
}
pci_config = 0xd4d49a10
swap_data = 1 (B_TRUE)
halinfo = {
hal_private = 0xd49830c0
dip = 0xd3a88a20
hal_events = {
hal_version = 0x1
reserved = 0
shutdown = hci1394_s1394if_shutdown
send_phy_configuration_packet = hci1394_s1394if_phy
read = hci1394_s1394if_read
read_response = hci1394_s1394if_read_response
write = hci1394_s1394if_write
write_response = hci1394_s1394if_write_response
response_complete = hci1394_s1394if_response_complete
lock = hci1394_s1394if_lock
lock_response = hci1394_s1394if_lock_response
alloc_isoch_dma = hci1394_alloc_isoch_dma
free_isoch_dma = hci1394_free_isoch_dma
start_isoch_dma = hci1394_start_isoch_dma
stop_isoch_dma = hci1394_stop_isoch_dma
update_isoch_dma = hci1394_update_isoch_dma
update_config_rom = hci1394_s1394if_update_config_rom
bus_reset = hci1394_s1394if_reset_bus
short_bus_reset = hci1394_s1394if_short_bus_reset
set_contender_bit = hci1394_s1394if_set_contender_bit
set_root_holdoff_bit = hci1394_s1394if_set_root_holdoff_bit
set_gap_count = hci1394_s1394if_set_gap_count
csr_read = hci1394_s1394if_csr_read
csr_write = hci1394_s1394if_csr_write
csr_cswap32 = hci1394_s1394if_csr_cswap32
physical_arreq_enable_set = hci1394_s1394if_phy_filter_set
physical_arreq_enable_clr = hci1394_s1394if_phy_filter_clr
node_power_state_change = hci1394_s1394if_power_state_change
}
hw_interrupt = 9
acc_attr = {
devacc_attr_version = 0x1
devacc_attr_endian_flags = 0x1
devacc_attr_dataorder = 0
devacc_attr_access = 0
}
dma_attr = {
dma_attr_version = 0
dma_attr_addr_lo = 0
dma_attr_addr_hi = 0xffffffff
dma_attr_count_max = 0xffffffff
dma_attr_align = 0x40
dma_attr_burstsizes = 0x3ff
dma_attr_minxfer = 0x1
dma_attr_maxxfer = 0xffffffff
dma_attr_seg = 0x7fff
dma_attr_sgllen = 0x7fffffff
dma_attr_granular = 0x4
dma_attr_flags = 0
}
phy = 1 (H1394_PHY_1394A)
hal_overhead = 0x80
bus_capabilities = 0xf8009202
guid = 0x11060000003d73
node_capabilities = 0x83c0
max_generation = 0xff
addr_map = hci1394_addr_map
addr_map_num_entries = 0x4
resv_map = 0xd46846c0
resv_map_num_entries = 0x3
}
}
> d49a61e0::print hci1394_iso_ctxt_t
{
ctxt_index = 0x4
ctxt_io_mode = 0x90ef3c37
ctxt_flags = 0
intr_flags = 0xdfa5b64b
intrprocmutex = {
_opaque = [ 0, 0xbaba7d88 ]
}
intr_cv = {
_opaque = 0
}
isospd = 0xe9d7
isochan = 0xc3af
ctxt_regsp = 0x888ed9b0
xcs_firstp = 0xba5dd9ab
dma_firstp = 0x5b89eaf2
dma_mem_execp = 0x9a3ee81b
reserved = 0x74227f50
ixl_firstp = 0xa747890a
ixl_execp = 0xc6b50278
ixl_exec_depth = 0x2e0d8203
max_dma_skips = 0x949f371
max_noadv_intrs = 0x8a16608e
rem_noadv_intrs = 0x5641ddc4
dma_last_time = 0xb83c
default_tag = 0x93e2
default_sync = 0x261d
default_skipmode = 0x24e4
default_skiplabelp = 0x9d77c4d8
default_skipxferp = 0xd98dd2b5
global_callback_arg = 0x95f0b50
idma_evt_arg = 0xde309db2
isoch_dma_stopped = 0xb3ef6648
}
> d49a61e0::whatis
d49a61e0 is d49a6000+1e0, allocated from kmem_alloc_8192
> d49830c0::whatis
d49830c0 is d49830c0+0, allocated from kmem_alloc_384
>