[parisc-linux] Oops in sim700.c on C360
David Huggins-Daines
dhd@linuxcare.com
01 Sep 2000 11:44:20 -0400
Hi,
Booting on a C360 I get this oops:
Kernel Fault: Code=26 regs=c7f98900 (Addr=00000004)
PSW : 0004ff0a GR 1 : c0232800 GR 2 : c01dd3d0 GR 3 : ffd06100
GR 4 : c02ce070 GR 5 : 000002c6 GR 6 : c027b000 GR 7 : c7f8f2e0
GR 8 : c7f8f260 GR 9 : 00000216 GR10 : 00000000 GR11 : 0000000a
GR12 : ffffffff GR13 : ffffffff GR14 : c02cd800 GR15 : f0100000
GR16 : f00010bc GR17 : f0000154 GR18 : f000014c GR19 : 00000000
GR20 : 00000000 GR21 : 00000000 GR22 : 00000008 GR23 : c028ee80
GR24 : ffffffff GR25 : 00008000 GR26 : 00000000 GR27 : c0276000
GR28 : c7f8f2e0 GR29 : ffd05800 GR30 : c7f98b40 GR31 : c01f2ed8
SR0 : 00000000 SR1 : 00000000 SR2 : 00000000 SR3 : 00000000
SR4 : 00000000 SR5 : 00000000 SR6 : 00000000 SR7 : 00000000
IASQ : 00000000 00000000 IAOQ : c01dd3dc c01dd3e0 ORIG_R28 : c027c7d4
IIR : 0e681096 ISR : 00000000 IOR : 00000004
Which matches with this function:
c01dd340 T sim700_init_host
In the disassembly this is:
<sim700.c, line 1664>:
host = scsi_register(tpnt, sizeof(struct sim700_hostdata));
hostdata = (struct sim700_hostdata *)host->hostdata;
memset(hostdata, 0, sizeof(struct sim700_hostdata));
hostdata->targets = pci_alloc_consistent(NULL, PAGE_SIZE << 3, &dma_addr);
4c6c: 2b 60 00 00 addil 0,dp,%r1
4c70: 6b c3 3f 79 stw r3,-44(sr0,sp)
4c74: 6b c5 3f 69 stw r5,-4c(sr0,sp)
4c78: 08 19 02 45 copy r25,r5
4c7c: 34 19 00 60 ldi 30,r25
4c80: 6b ce 3f 21 stw r14,-70(sr0,sp)
4c84: 6b ca 3f 41 stw r10,-60(sr0,sp)
4c88: 08 01 02 4e copy r1,r14
4c8c: 6b c8 3f 51 stw r8,-58(sr0,sp)
4c90: 6b c7 3f 59 stw r7,-54(sr0,sp)
4c94: 6b cd 3f 29 stw r13,-6c(sr0,sp)
4c98: 6b cc 3f 31 stw r12,-68(sr0,sp)
4c9c: 6b cb 3f 39 stw r11,-64(sr0,sp)
4ca0: 6b c6 3f 61 stw r6,-50(sr0,sp)
4ca4: 6b c4 3f 71 stw r4,-48(sr0,sp)
4ca8: 4a 83 00 00 ldw 0(sr0,r20),r3
4cac: 4a 69 00 00 ldw 0(sr0,r19),r9
4cb0: 90 60 30 00 cmpiclr,<> 0,r3,r0
4cb4: 08 18 02 43 copy r24,r3
4cb8: 91 20 30 00 cmpiclr,<> 0,r9,r0
4cbc: 08 17 02 49 copy r23,r9
4cc0: e8 40 00 00 b,l 4cc8 <sim700_init_host+0x78>,rp
4cc4: 4b ca 3e 99 ldw -b4(sr0,sp),r10
4cc8: 08 1c 02 48 copy ret0,r8
4ccc: 34 19 00 00 ldi 0,r25
4cd0: 35 07 01 00 ldo 80(r8),r7
4cd4: 34 18 00 60 ldi 30,r24
4cd8: e8 40 00 00 b,l 4ce0 <sim700_init_host+0x90>,rp
4cdc: 08 07 02 5a copy r7,r26
4ce0: 49 d3 00 00 ldw 0(sr0,r14),r19
4ce4: 34 1a 00 00 ldi 0,r26
4ce8: 23 24 00 00 ldil 8000,r25
4cec: 0e 68 10 96 ldw 4(sr0,r19),r22
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ This instruction here
4cf0: 37 d8 3f 11 ldo -78(sp),r24
4cf4: e6 c0 20 00 be,l 0(sr4,r22),%sr0,%r31
4cf8: 08 1f 02 42 copy r31,rp
Looks like pci_alloc_consistent is broken...
--
dhd@linuxcare.com, http://www.linuxcare.com/
Linuxcare. Support for the revolution.