>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
>  
>
So ebx is an invalid pointer,  it's the ixl_execp member of 
hci1394_iso_ctxt_t.
[0]> ::offsetof hci1394_iso_ctxt_t ixl_execp
offsetof (hci1394_iso_ctxt_t, ixl_execp) = 0x38 <=====

>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 <========
>  
>
We may do more investigation from this isoch pointer.
The second argument of hci1394_ixl_interrupt() is from 
hci1394_isr_isoch_it():
                ctxtp = hci1394_isoch_xmit_ctxt_get(
                    soft_state->isoch, i);
                hci1394_ixl_interrupt(soft_state, ctxtp,
                    B_FALSE);

Looks to me like a 1394 problem.


Reply via email to