IPSec kernel oops on ppc64
Joy Latten
latten at austin.ibm.com
Thu Aug 31 02:36:26 EST 2006
>--
>diff --git a/arch/powerpc/lib/memcpy_64.S b/arch/powerpc/lib/memcpy_64.S
>index fd66acf..9e8d9e7 100644
>--- a/arch/powerpc/lib/memcpy_64.S
>+++ b/arch/powerpc/lib/memcpy_64.S
>@@ -11,6 +11,7 @@ #include <asm/ppc_asm.h>
>
> .align 7
> _GLOBAL(memcpy)
>+ std r3,-8(r1)
> mtcrf 0x01,r5
> cmpldi cr1,r5,16
> neg r6,r3 # LS 3 bits = # bytes to 8-byte dest bdry
>@@ -53,7 +54,8 @@ _GLOBAL(memcpy)
> 2: bf cr7*4+3,3f
> rotldi r9,r9,8
> stb r9,0(r3)
>-3: blr
>+3: ld r3,-8(r1)
>+ blr
>
> .Lsrc_unaligned:
> srdi r6,r5,3
>@@ -167,4 +169,5 @@ _GLOBAL(memcpy)
> 3: bf cr7*4+3,4f
> lbz r0,0(r4)
> stb r0,0(r3)
>-4: blr
>+4: ld r3,-8(r1)
>+ blr
Hi,
I tried the patch on the following:
linux-2.6.17 + patch-2.6.18-rc1
The good news is that the pings worked great!
So perhaps ESP is working ok with ICMP.
But when I tried to do sftp, I still got the oops.
I don't think TCP and ESP are working.
I pasted below info as well as the disassembled routine,
just in case.
Regards,
Joy
====================================================================
root at hvracer1 jml]# sftp joy-hv4
Connecting to joy-hv4...
kernel BUG in skb_to_sgvec at net/xfrm/xfrm_algo.c:611!
cpu 0x0: Vector: 700 (Program Check) at [c00000000257b280]
pc: c000000000305ea4: .skb_to_sgvec+0x288/0x2ec
lr: d0000000006305f0: .esp_output+0x350/0x4e4 [esp4]
sp: c00000000257b500
msr: 8000000000029032
current = 0xc000000042320b00
paca = 0xc000000000414380
pid = 2007, comm = ssh
kernel BUG in skb_to_sgvec at net/xfrm/xfrm_algo.c:611!
enter ? for help
0:mon> t
[c00000000257b5d0] d0000000006305f0 .esp_output+0x350/0x4e4 [esp4]
[c00000000257b6b0] c0000000002fe758 .xfrm4_output_finish2+0x2bc/0x3d8
[c00000000257b750] c0000000002fea28 .xfrm4_output+0x74/0x88
[c00000000257b7d0] c0000000002c1504 .ip_queue_xmit+0x474/0x50c
[c00000000257b8c0] c0000000002d4a88 .tcp_transmit_skb+0x818/0x884
[c00000000257b970] c0000000002d7c7c .tcp_connect+0x318/0x3bc
[c00000000257ba10] c0000000002dc228 .tcp_v4_connect+0x4dc/0x674
[c00000000257bb80] c0000000002ea6a0 .inet_stream_connect+0x10c/0x358
[c00000000257bc60] c000000000283fd0 .sys_connect+0xd8/0x120
[c00000000257bd90] c0000000002a4c54 .compat_sys_socketcall+0xdc/0x214
[c00000000257be30] c00000000000871c syscall_exit+0x0/0x40
--- Exception: c00 (System Call) at 0000000007a9f8fc
SP (ff88f230) is in userspace
0:mon> r
R00 = 0000000000000058 R16 = 00000000080704d8
R01 = c00000000257b500 R17 = 0000000008065d68
R02 = c0000000005261d0 R18 = 00000000ff88f2dc
R03 = c000000041da2d00 R19 = 0000000000000001
R04 = c00000003d8a9660 R20 = c00000000257bcd8
R05 = 0000000000000028 R21 = 0000000000000000
R06 = 000000000000023c R22 = 0000000000000001
R07 = c000000000660208 R23 = 0000000000000010
R08 = 00000000000041da R24 = 0000000000000001
R09 = 0000000000000000 R25 = c00000003d8a9660
R10 = 0000000000000028 R26 = 0000000000000050
R11 = 0000000000107680 R27 = 0000000000000050
R12 = d0000000006312f8 R28 = 0000000000000008
R13 = c000000000414380 R29 = 0000000000000000
R14 = 0000000000000000 R30 = c0000000004c09a8
R15 = 000000000806379c R31 = c0000000329221a0
pc = c000000000305ea4 .skb_to_sgvec+0x288/0x2ec
lr = d0000000006305f0 .esp_output+0x350/0x4e4 [esp4]
msr = 8000000000029032 cr = 28000442
ctr = c000000000305c1c xer = 0000000000000000 trap = 700
0:mon> S
msr = 8000000000001032 sprg0= 0000000000000000
pvr = 00000000003a0202 sprg1= c000000000414380
dec = 00000000f2fd7ff0 sprg2= c000000000414380
sp = c00000000257ab10 sprg3= c000000000414380
toc = c0000000005261d0 dar = 00000000ff88dfb0
0:mon> u
SLB contents of cpu 0
00 c000000008000000 0000408f92c94500
01 d000000008000000 0000f09b89af5400
02 c000000078000000 000045cb97751500
03 0000000010000000 000036ab4f98cc80
04 0000000000000000 0000f41e71baac80
05 00000000f0000000 0000ff55e973fc80
06 0000000040000000 0000f71c2b416c80
07 0000000010000000 0000f4dde01c5c80
08 c000000040000000 0000438d4c500500
09 0000000000000000 000004abd053cc80
10 00000000f0000000 00000fe3480d1c80
11 0000000040000000 000007a989da8c80
12 0000000010000000 0000056b3eb57c80
13 0000000000000000 0000f41e71baac80
14 00000000f0000000 0000ff55e973fc80
15 0000000040000000 0000f71c2b416c80
16 c000000038000000 000042cdddee5500
17 0000000010000000 0000f4dde01c5c80
18 0000000000000000 000004abd053cc80
19 00000000f0000000 00000fe3480d1c80
20 0000000040000000 000007a989da8c80
21 0000000010000000 0000056b3eb57c80
22 c000000070000000 000045cb97751500
23 0000000000000000 00008110f15afc80
24 00000000f0000000 00008c4869144c80
25 0000000040000000 0000840eaae1bc80
26 0000000000000000 0000cc36017edc80
27 00000000f0000000 0000d76d79382c80
28 0000000040000000 0000cf33bb059c80
29 0000000000000000 00008110f15afc80
30 00000000f0000000 00008c4869144c80
31 0000000040000000 0000840eaae1bc80
32 c000000040000000 0000438d4c500500
33 0000000000000000 0000cc36017edc80
34 00000000f0000000 0000d76d79382c80
35 0000000040000000 0000cf33bb059c80
36 c000000070000000 000045cb97751500
37 c000000048000000 0000438d4c500500
38 0000000008000000 000004abd053cc80
39 00000000f8000000 00000fe3480d1c80
40 0000000048000000 000007a989da8c80
41 0000000000000000 0000f41e71baac80
42 00000000f0000000 0000ff55e973fc80
43 0000000040000000 0000f71c2b416c80
44 0000000010000000 0000f4dde01c5c80
45 0000000000000000 000035ebe1371c80
46 00000000f0000000 0000412358f06c80
47 0000000040000000 000038e99abddc80
48 0000000010000000 000036ab4f98cc80
49 0000000000000000 0000f41e71baac80
50 00000000f0000000 0000ff55e973fc80
51 0000000040000000 0000f71c2b416c80
52 0000000010000000 0000f4dde01c5c80
53 0000000000000000 000035ebe1371c80
54 00000000f0000000 0000412358f06c80
55 0000000040000000 000038e99abddc80
56 0000000010000000 000036ab4f98cc80
57 0000000000000000 00006e61b00bfc80
58 00000000f0000000 0000799927c54c80
59 0000000040000000 0000715f6992bc80
60 0000000010000000 00006f211e6dac80
61 0000000000000000 000035ebe1371c80
62 00000000f0000000 0000412358f06c80
63 0000000040000000 000038e99abddc80
0:mon> e
cpu 0x0: Vector: 700 (Program Check) at [c00000000257b280]
pc: c000000000305ea4: .skb_to_sgvec+0x288/0x2ec
lr: d0000000006305f0: .esp_output+0x350/0x4e4 [esp4]
sp: c00000000257b500
msr: 8000000000029032
current = 0xc000000042320b00
paca = 0xc000000000414380
pid = 2007, comm = ssh
kernel BUG in skb_to_sgvec at net/xfrm/xfrm_algo.c:611!
0:mon>
=============================================================================
0000000000000120 <.skb_to_sgvec>:
120: 7c 08 02 a6 mflr r0
124: fa a1 ff a8 std r21,-88(r1)
128: fb 21 ff c8 std r25,-56(r1)
12c: fb 61 ff d8 std r27,-40(r1)
130: fb 81 ff e0 std r28,-32(r1)
134: fb c1 ff f0 std r30,-16(r1)
138: fb e1 ff f8 std r31,-8(r1)
13c: fa c1 ff b0 std r22,-80(r1)
140: fa e1 ff b8 std r23,-72(r1)
144: fb 01 ff c0 std r24,-64(r1)
148: fb 41 ff d0 std r26,-48(r1)
14c: fb a1 ff e8 std r29,-24(r1)
150: f8 01 00 10 std r0,16(r1)
154: f8 21 ff 31 stdu r1,-208(r1)
158: eb c2 00 00 ld r30,0(r2)
15c: 7c 7f 1b 78 mr r31,r3
160: 7c 99 23 78 mr r25,r4
164: 7c bb 2b 78 mr r27,r5
168: 7c dc 33 78 mr r28,r6
16c: 3a a0 00 00 li r21,0
170: 80 1f 00 88 lwz r0,136(r31)
174: 81 3f 00 8c lwz r9,140(r31)
178: 3b 00 00 00 li r24,0
17c: 7c 09 00 50 subf r0,r9,r0
180: 7c 1a 07 b4 extsw r26,r0
184: 7c 1b d0 50 subf r0,r27,r26
188: 7c 00 07 b4 extsw r0,r0
18c: 2f 80 00 00 cmpwi cr7,r0,0
190: 40 9d 00 a4 ble- cr7,234 <.skb_to_sgvec+0x114>
194: 7f 9c 00 00 cmpw cr7,r28,r0
198: 7f 8a e3 78 mr r10,r28
19c: 40 9d 00 08 ble- cr7,1a4 <.skb_to_sgvec+0x84>
1a0: 7c 0a 03 78 mr r10,r0
1a4: e8 1f 00 d8 ld r0,216(r31)
1a8: 3d 20 40 00 lis r9,16384
1ac: e9 7e 80 18 ld r11,-32744(r30)
1b0: 7d 4a 07 b4 extsw r10,r10
1b4: 38 e0 00 00 li r7,0
1b8: 79 29 07 c6 rldicr r9,r9,32,31
1bc: 7c 1b 02 14 add r0,r27,r0
1c0: 7c 00 4a 14 add r0,r0,r9
1c4: 78 09 d9 60 rldicl r9,r0,27,37
1c8: 78 08 84 02 rldicl r8,r0,48,16
1cc: 78 00 46 02 rldicl r0,r0,40,24
1d0: 79 29 1f 24 rldicr r9,r9,3,60
1d4: 7d 29 58 2a ldx r9,r9,r11
1d8: 2f a9 00 00 cmpdi cr7,r9,0
1dc: 41 9e 00 0c beq- cr7,1e8 <.skb_to_sgvec+0xc8>
1e0: 78 00 1c 28 rldic r0,r0,3,48
1e4: 7c e9 02 14 add r7,r9,r0
1e8: e8 07 00 00 ld r0,0(r7)
1ec: 79 0b 36 64 rldicr r11,r8,6,57
1f0: 7d 2a e0 50 subf r9,r10,r28
1f4: 7d 3c 07 b4 extsw r28,r9
1f8: 78 00 07 64 rldicr r0,r0,0,61
1fc: 2f bc 00 00 cmpdi cr7,r28,0
200: 7c 00 5a 14 add r0,r0,r11
204: f8 19 00 00 std r0,0(r25)
208: e8 1f 00 d8 ld r0,216(r31)
20c: 91 59 00 0c stw r10,12(r25)
210: 7c 1b 02 14 add r0,r27,r0
214: 54 00 04 3e clrlwi r0,r0,16
218: 90 19 00 08 stw r0,8(r25)
21c: 40 9e 00 0c bne- cr7,228 <.skb_to_sgvec+0x108>
220: 3b 00 00 01 li r24,1
224: 48 00 01 a4 b 3c8 <.skb_to_sgvec+0x2a8>
228: 7c 0a da 14 add r0,r10,r27
22c: 3b 00 00 01 li r24,1
230: 7c 1b 07 b4 extsw r27,r0
234: 3a c0 00 00 li r22,0
238: 3a e0 00 10 li r23,16
23c: 48 00 00 ac b 2e8 <.skb_to_sgvec+0x1c8>
240: 40 b8 00 18 bge+ cr6,258 <.skb_to_sgvec+0x138>
244: e8 7e 80 20 ld r3,-32736(r30)
248: e8 9e 80 28 ld r4,-32728(r30)
24c: e8 be 80 30 ld r5,-32720(r30)
250: 48 00 00 01 bl 250 <.skb_to_sgvec+0x130>
254: 60 00 00 00 nop
258: e8 1f 00 e8 ld r0,232(r31)
25c: 7b a9 26 e4 rldicr r9,r29,4,59
260: 7b 0a 2e a4 rldicr r10,r24,5,58
264: 39 18 00 01 addi r8,r24,1
268: 7c b9 52 14 add r5,r25,r10
26c: 7d 29 02 14 add r9,r9,r0
270: 7d 60 ba 14 add r11,r0,r23
274: 3a f7 00 10 addi r23,r23,16
278: a0 09 00 22 lhz r0,34(r9)
27c: 38 cb 00 08 addi r6,r11,8
280: 7c 00 d2 14 add r0,r0,r26
284: 7c 07 07 b4 extsw r7,r0
288: 7c 1b 38 50 subf r0,r27,r7
28c: 7c 00 07 b4 extsw r0,r0
290: 2f 80 00 00 cmpwi cr7,r0,0
294: 7c 09 03 78 mr r9,r0
298: 7f 00 e0 00 cmpw cr6,r0,r28
29c: 40 9d 00 48 ble- cr7,2e4 <.skb_to_sgvec+0x1c4>
2a0: 7d 18 07 b4 extsw r24,r8
2a4: 40 99 00 08 ble- cr6,2ac <.skb_to_sgvec+0x18c>
2a8: 7f 89 e3 78 mr r9,r28
2ac: e8 0b 00 08 ld r0,8(r11)
2b0: 7d 29 07 b4 extsw r9,r9
2b4: 7d 69 e0 50 subf r11,r9,r28
2b8: 7c 19 51 2a stdx r0,r25,r10
2bc: 7d 7c 07 b4 extsw r28,r11
2c0: 7d 69 da 14 add r11,r9,r27
2c4: 2f bc 00 00 cmpdi cr7,r28,0
2c8: a0 06 00 08 lhz r0,8(r6)
2cc: 91 25 00 0c stw r9,12(r5)
2d0: 7c 00 da 14 add r0,r0,r27
2d4: 7d 7b 07 b4 extsw r27,r11
2d8: 7c 1a 00 50 subf r0,r26,r0
2dc: 90 05 00 08 stw r0,8(r5)
2e0: 41 9e 00 e8 beq- cr7,3c8 <.skb_to_sgvec+0x2a8>
2e4: 7c fa 3b 78 mr r26,r7
2e8: e8 7f 00 e8 ld r3,232(r31)
2ec: 7e dd 07 b4 extsw r29,r22
2f0: 7c 1c da 14 add r0,r28,r27
2f4: 3a d6 00 01 addi r22,r22,1
2f8: 38 c0 02 3c li r6,572
2fc: 7f 00 d0 00 cmpw cr6,r0,r26
300: a1 23 00 04 lhz r9,4(r3)
304: 7f 89 e8 00 cmpw cr7,r9,r29
308: 41 9d ff 38 bgt+ cr7,240 <.skb_to_sgvec+0x120>
30c: eb a3 00 10 ld r29,16(r3)
310: 2f bd 00 00 cmpdi cr7,r29,0
314: 41 9e 00 94 beq- cr7,3a8 <.skb_to_sgvec+0x288>
318: 7c 1b e2 14 add r0,r27,r28
31c: 38 c0 02 55 li r6,597
320: 7f 80 d0 00 cmpw cr7,r0,r26
324: 40 bc 00 18 bge+ cr7,33c <.skb_to_sgvec+0x21c>
328: e8 9e 80 28 ld r4,-32728(r30)
32c: e8 be 80 30 ld r5,-32720(r30)
330: e8 7e 80 20 ld r3,-32736(r30)
334: 48 00 00 01 bl 334 <.skb_to_sgvec+0x214>
338: 60 00 00 00 nop
33c: 80 1d 00 88 lwz r0,136(r29)
340: 7d 5a d8 50 subf r10,r26,r27
344: 7b 0b 2e a4 rldicr r11,r24,5,58
348: 7f a3 eb 78 mr r3,r29
34c: 7d 45 07 b4 extsw r5,r10
350: 7c 99 5a 14 add r4,r25,r11
354: 7c 00 d2 14 add r0,r0,r26
358: 7c 00 07 b4 extsw r0,r0
35c: 7d 3b 00 50 subf r9,r27,r0
360: 7c 1a 03 78 mr r26,r0
364: 7d 3f 07 b4 extsw r31,r9
368: 2f 9f 00 00 cmpwi cr7,r31,0
36c: 7f e6 fb 78 mr r6,r31
370: 7f 1f e0 00 cmpw cr6,r31,r28
374: 40 9d 00 2c ble- cr7,3a0 <.skb_to_sgvec+0x280>
378: 41 99 00 38 bgt- cr6,3b0 <.skb_to_sgvec+0x290>
37c: 48 00 00 01 bl 37c <.skb_to_sgvec+0x25c>
380: 7c 1f e0 50 subf r0,r31,r28
384: 7d 3f da 14 add r9,r31,r27
388: 7c 63 c2 14 add r3,r3,r24
38c: 7c 1c 07 b4 extsw r28,r0
390: 7d 3b 07 b4 extsw r27,r9
394: 7c 78 07 b4 extsw r24,r3
398: 2f bc 00 00 cmpdi cr7,r28,0
39c: 41 9e 00 2c beq- cr7,3c8 <.skb_to_sgvec+0x2a8>
3a0: eb bd 00 00 ld r29,0(r29)
3a4: 4b ff ff 6c b 310 <.skb_to_sgvec+0x1f0>
3a8: 0b 1c 00 00 tdnei r28,0
3ac: 48 00 00 1c b 3c8 <.skb_to_sgvec+0x2a8>
3b0: 7c 15 c2 14 add r0,r21,r24
3b4: 7f 39 5a 14 add r25,r25,r11
3b8: 7d 5b 07 b4 extsw r27,r10
3bc: 7f bf eb 78 mr r31,r29
3c0: 7c 15 07 b4 extsw r21,r0
3c4: 4b ff fd ac b 170 <.skb_to_sgvec+0x50>
3c8: 38 21 00 d0 addi r1,r1,208
3cc: 7c 75 c2 14 add r3,r21,r24
3d0: e8 01 00 10 ld r0,16(r1)
3d4: 7c 63 07 b4 extsw r3,r3
3d8: ea a1 ff a8 ld r21,-88(r1)
3dc: ea c1 ff b0 ld r22,-80(r1)
3e0: ea e1 ff b8 ld r23,-72(r1)
3e4: eb 01 ff c0 ld r24,-64(r1)
3e8: eb 21 ff c8 ld r25,-56(r1)
3ec: eb 41 ff d0 ld r26,-48(r1)
3f0: eb 61 ff d8 ld r27,-40(r1)
3f4: 7c 08 03 a6 mtlr r0
3f8: eb 81 ff e0 ld r28,-32(r1)
3fc: eb a1 ff e8 ld r29,-24(r1)
400: eb c1 ff f0 ld r30,-16(r1)
404: eb e1 ff f8 ld r31,-8(r1)
408: 4e 80 00 20 blr
More information about the Linuxppc-dev
mailing list