On Tue, 22 Nov 2005 11:45:21 +1000 David McCullough <[EMAIL PROTECTED]> wrote:
> > Jivin Kim Phillips lays it down ... > > Hello all, > > > > I'm trying out the latest OCF patch for openswan, and it's generating > > 'Badness in local_bh_enable' messages when I ping across the tunnel > > (session details below). It seems irq's are disabled when they shouldn't > > be? > > > > This is a vanilla 2.6.11+ocf-linux-20051110 kernel, with openswan 2.4.3, > > using the cryptosoft algorithm interface, running on powerpc. Openswan > > KLIPS alone (without the OCF patch) does not produce this warning. The > > patch seems to properly match existing spin_lock_* usage. Is the patch > > adding a new lock that overlays the domain of an existing lock? > > > > Ok, I only tested this with crypto HW on 2.6, and it was working fine, > I will try out the cryptosoft driver when I get a chance, it may be the > cause/trigger of the problem. > > If you set USE_TASKQ to 1 in ipsec_ocf.c does the problem go away ? We I get another one before I even try it: # modprobe ipsec ipsec: Unknown symbol shedule_work > cryptosoft it is possible that we call back into ourselves. You could > also try setting USE_CBIMM to 0 in the same file, > setting USE_CBIMM to 0 does indeed do the trick, thanks. > Cheers, > Davidm Kim > > -- > > # modprobe cryptosoft > > # modprobe cryptodev > > cryptodev: module license 'BSD' taints kernel. > > # modprobe ipsec > > klips_info:ipsec_init: KLIPS startup, Openswan KLIPS IPsec stack version: > > 2.4.3 > > NET: Registered protocol family 15 > > klips_info:ipsec_alg_init: KLIPS alg v=0.8.1-0 (EALG_MAX=255, AALG_MAX=251) > > klips_info:ipsec_alg_init: calling ipsec_alg_static_init() > > ipsec_aes_init(alg_type=15 alg_id=12 name=aes): ret=0 > > ipsec_3des_init(alg_type=15 alg_id=3 name=3des): ret=0 > > Debug: sleeping function called from invalid context at > > include/linux/rwsem.h:43 > > in_atomic():0, irqs_disabled():1 > > Call trace: > > [c001b740] __might_sleep+0xe4/0xf0 > > [c0115368] crypto_alg_lookup+0x34/0x120 > > [c01154dc] crypto_alloc_tfm+0x1c/0x19c > > [d102743c] swcr_newsession+0x1f4/0x6d8 [cryptosoft] > > [c01397c8] crypto_newsession+0x1b4/0x41c > > [d13f8548] ipsec_ocf_check_alg+0x64/0x108 [ipsec] > > [d13f862c] ipsec_ocf_init+0x40/0xe4 [ipsec] > > [d13d711c] ipsec_klips_init+0x118/0x20c [ipsec] > > [d13d74ac] init_module+0x10/0x20 [ipsec] > > [c0046ee0] sys_init_module+0x3a8/0x4b4 > > [c0001ec4] ret_from_syscall+0x0/0x48 > > # /etc/rc.d/init.d/ipsec --start > > > > ipsec_setup: Starting Openswan IPsec 2.4.3... > > # pluto[4919]: Starting Pluto (Openswan Version 2.4.3 X.509-1.5.4 > > PLUTO_SENDS_VENDORID PLUTO_USES_KEYRR; Vendor ID OE~yatdI\134sBK) > > pluto[4919]: Setting NAT-Traversal port-4500 floating to off > > pluto[4919]: port floating activation criteria nat_t=0/port_fload=1 > > pluto[4919]: including NAT-Traversal patch (Version 0.6c) [disabled] > > pluto[4919]: ike_alg_register_enc(): Activating OAKLEY_AES_CBC: Ok (ret=0) > > pluto[4919]: starting up 1 cryptographic helpers > > pluto[4919]: started helper pid=4927 (fd:5) > > pluto[4919]: Using KLIPS IPsec interface code on 2.6.11 > > pluto[4919]: Could not change to directory '/etc/cacerts' > > pluto[4919]: Could not change to directory '/etc/aacerts' > > pluto[4919]: Could not change to directory '/etc/ocspcerts' > > pluto[4919]: Could not change to directory '/etc/crls' > > pluto[4919]: added connection description "roadwarrior" > > pluto[4919]: listening for IKE messages > > pluto[4919]: adding interface ipsec0/eth0 192.168.1.109:500 > > pluto[4919]: loading secrets from "/etc/ipsec.secrets" > > pluto[4919]: "roadwarrior" #1: initiating Main Mode > > pluto[4919]: "roadwarrior" #1: received Vendor ID payload [Openswan (this > > version) 2.4.3 X.509-1.5.4 PLUTO_SENDS_VENDORID PLUTO_USES_KEYRR] > > pluto[4919]: "roadwarrior" #1: received Vendor ID payload [Dead Peer > > Detection] > > pluto[4919]: "roadwarrior" #1: transition from state STATE_MAIN_I1 to state > > STATE_MAIN_I2 > > pluto[4919]: "roadwarrior" #1: STATE_MAIN_I2: sent MI2, expecting MR2 > > pluto[4919]: "roadwarrior" #1: I did not send a certificate because I do > > not have one. > > pluto[4919]: "roadwarrior" #1: transition from state STATE_MAIN_I2 to state > > STATE_MAIN_I3 > > pluto[4919]: "roadwarrior" #1: STATE_MAIN_I3: sent MI3, expecting MR3 > > pluto[4919]: "roadwarrior" #1: Main mode peer ID is ID_IPV4_ADDR: > > '192.168.1.110' > > pluto[4919]: "roadwarrior" #1: transition from state STATE_MAIN_I3 to state > > STATE_MAIN_I4 > > pluto[4919]: "roadwarrior" #1: STATE_MAIN_I4: ISAKMP SA established > > {auth=OAKLEY_RSA_SIG cipher=oakley_3des_cbc_192 prf=oakley_md5 > > group=modp1536} > > pluto[4919]: "roadwarrior" #2: initiating Quick Mode > > RSASIG+ENCRYPT+TUNNEL+PFS+UP {using isakmp#1} > > Debug: sleeping function called from invalid context at > > include/linux/rwsem.h:43 > > in_atomic():0, irqs_disabled():1 > > Call trace: > > [c001b740] __might_sleep+0xe4/0xf0 > > [c0115368] crypto_alg_lookup+0x34/0x120 > > [c01154dc] crypto_alloc_tfm+0x1c/0x19c > > [d102743c] swcr_newsession+0x1f4/0x6d8 [cryptosoft] > > [c01397c8] crypto_newsession+0x1b4/0x41c > > [d13f7afc] ipsec_ocf_sa_init+0x1f0/0x2a0 [ipsec] > > [d13d98f0] ipsec_sa_init+0x2f4/0xa18 [ipsec] > > [d13eae20] pfkey_ipsec_sa_init+0x10/0x20 [ipsec] > > [d13ec144] pfkey_add_parse+0x1c0/0x62c [ipsec] > > [d13f07ac] pfkey_msg_interp+0x2d0/0x3d8 [ipsec] > > [d13e9f2c] pfkey_sendmsg+0x2d8/0x4f8 [ipsec] > > [c0195f00] sock_aio_write+0x110/0x12c > > [c00792f8] do_sync_write+0x9c/0x104 > > [c00793fc] vfs_write+0x9c/0x15c > > [c0079598] sys_write+0x4c/0x90 > > pluto[4919]: "roadwarrior" #2: transition from state STATE_QUICK_I1 to > > state STATE_QUICK_I2 > > pluto[4919]: "roadwarrior" #2: STATE_QUICK_I2: sent QI2, IPsec SA > > established {ESP=>0x4a81b637 <0x2cf9fbcf xfrm=3DES_0-HMAC_SHA1 NATD=none > > DPD=none} > > > > # pluto[4919]: packet from 192.168.1.110:500: received Vendor ID payload > > [Openswan (this version) 2.4.3 X.509-1.5.4 PLUTO_SENDS_VENDORID > > PLUTO_USES_KEYRR] > > pluto[4919]: packet from 192.168.1.110:500: received Vendor ID payload > > [Dead Peer Detection] > > pluto[4919]: "roadwarrior" #3: responding to Main Mode > > pluto[4919]: "roadwarrior" #3: transition from state STATE_MAIN_R0 to state > > STATE_MAIN_R1 > > pluto[4919]: "roadwarrior" #3: STATE_MAIN_R1: sent MR1, expecting MI2 > > pluto[4919]: "roadwarrior" #3: transition from state STATE_MAIN_R1 to state > > STATE_MAIN_R2 > > pluto[4919]: "roadwarrior" #3: STATE_MAIN_R2: sent MR2, expecting MI3 > > pluto[4919]: "roadwarrior" #3: Main mode peer ID is ID_IPV4_ADDR: > > '192.168.1.110' > > pluto[4919]: "roadwarrior" #3: I did not send a certificate because I do > > not have one. > > pluto[4919]: "roadwarrior" #3: transition from state STATE_MAIN_R2 to state > > STATE_MAIN_R3 > > pluto[4919]: "roadwarrior" #3: STATE_MAIN_R3: sent MR3, ISAKMP SA > > established {auth=OAKLEY_RSA_SIG cipher=oakley_3des_cbc_192 prf=oakley_md5 > > group=modp1536} > > pluto[4919]: "roadwarrior" #4: responding to Quick Mode {msgid:908b01cd} > > Debug: sleeping function called from invalid context at > > include/linux/rwsem.h:43 > > in_atomic():0, irqs_disabled():1 > > Call trace: > > [c001b740] __might_sleep+0xe4/0xf0 > > [c0115368] crypto_alg_lookup+0x34/0x120 > > [c01154dc] crypto_alloc_tfm+0x1c/0x19c > > [d102743c] swcr_newsession+0x1f4/0x6d8 [cryptosoft] > > [c01397c8] crypto_newsession+0x1b4/0x41c > > [d13f7afc] ipsec_ocf_sa_init+0x1f0/0x2a0 [ipsec] > > [d13d98f0] ipsec_sa_init+0x2f4/0xa18 [ipsec] > > [d13eae20] pfkey_ipsec_sa_init+0x10/0x20 [ipsec] > > [d13ec144] pfkey_add_parse+0x1c0/0x62c [ipsec] > > [d13f07ac] pfkey_msg_interp+0x2d0/0x3d8 [ipsec] > > [d13e9f2c] pfkey_sendmsg+0x2d8/0x4f8 [ipsec] > > [c0195f00] sock_aio_write+0x110/0x12c > > [c00792f8] do_sync_write+0x9c/0x104 > > [c00793fc] vfs_write+0x9c/0x15c > > [c0079598] sys_write+0x4c/0x90 > > pluto[4919]: "roadwarrior" #4: transition from state STATE_QUICK_R0 to > > state STATE_QUICK_R1 > > pluto[4919]: "roadwarrior" #4: STATE_QUICK_R1: sent QR1, inbound IPsec SA > > installed, expecting QI2 > > pluto[4919]: "roadwarrior" #4: transition from state STATE_QUICK_R1 to > > state STATE_QUICK_R2 > > pluto[4919]: "roadwarrior" #4: STATE_QUICK_R2: IPsec SA established > > {ESP=>0x4a81b638 <0x2cf9fbd0 xfrm=AES_0-HMAC_SHA1 NATD=none DPD=none} > > > > # ping 192.168.2.2 > > PING 192.168.2.2Badness in local_bh_enable at kernel/softirq.c:140 > > Call trace: > > [c0003044] check_bug_trap+0x9c/0xe4 > > [c00031f0] ProgramCheckException+0x164/0x20c > > [c000254c] ret_from_except_full+0x0/0x4c > > [c0027e2c] local_bh_enable+0x18/0x6c > > [c01b9f50] __ip_route_output_key+0x128/0x980 > > [c01ba7cc] ip_route_output_flow+0x24/0xa4 > > [d13dfab0] ipsec_tunnel_send+0x80/0x410 [ipsec] > > [d13e01cc] ipsec_tunnel_xsm_complete+0x1d0/0x2d4 [ipsec] > > [d13e55a8] ipsec_xsm+0x164/0x33c [ipsec] > > [d13f8100] ipsec_ocf_xmit_cb+0x60/0x108 [ipsec] > > [c013b444] crypto_done+0x1d4/0x2d4 > > [d1027bb0] swcr_process+0x290/0x900 [cryptosoft] > > [c013b684] crypto_invoke+0xd8/0x1c4 > > [c013c098] crypto_proc+0x19c/0x778 > > [c0004d14] kernel_thread+0x44/0x60 > > Badness in local_bh_enable at kernel/softirq.c:140 > > Call trace: > > [c0003044] check_bug_trap+0x9c/0xe4 > > [c00031f0] ProgramCheckException+0x164/0x20c > > [c000254c] ret_from_except_full+0x0/0x4c > > [c0027e2c] local_bh_enable+0x18/0x6c > > [c01a88ac] neigh_lookup+0x98/0xe4 > > [c01e3fcc] arp_bind_neighbour+0x7c/0xc0 > > [c01b7510] rt_intern_hash+0x1e8/0x68c > > [c01ba2a8] __ip_route_output_key+0x480/0x980 > > [c01ba7cc] ip_route_output_flow+0x24/0xa4 > > [d13dfab0] ipsec_tunnel_send+0x80/0x410 [ipsec] > > [d13e01cc] ipsec_tunnel_xsm_complete+0x1d0/0x2d4 [ipsec] > > [d13e55a8] ipsec_xsm+0x164/0x33c [ipsec] > > [d13f8100] ipsec_ocf_xmit_cb+0x60/0x108 [ipsec] > > [c013b444] crypto_done+0x1d4/0x2d4 > > [d1027bb0] swcr_process+0x290/0x900 [cryptosoft] > > Badness in local_bh_enable at kernel/softirq.c:140 > > Call trace: > > [c0003044] check_bug_trap+0x9c/0xe4 > > [c00031f0] ProgramCheckException+0x164/0x20c > > [c000254c] ret_from_except_full+0x0/0x4c > > [c0027e2c] local_bh_enable+0x18/0x6c > > [c01b78a8] rt_intern_hash+0x580/0x68c > > [c01ba2a8] __ip_route_output_key+0x480/0x980 > > [c01ba7cc] ip_route_output_flow+0x24/0xa4 > > [d13dfab0] ipsec_tunnel_send+0x80/0x410 [ipsec] > > [d13e01cc] ipsec_tunnel_xsm_complete+0x1d0/0x2d4 [ipsec] > > [d13e55a8] ipsec_xsm+0x164/0x33c [ipsec] > > [d13f8100] ipsec_ocf_xmit_cb+0x60/0x108 [ipsec] > > [c013b444] crypto_done+0x1d4/0x2d4 > > [d1027bb0] swcr_process+0x290/0x900 [cryptosoft] > > [c013b684] crypto_invoke+0xd8/0x1c4 > > [c013c098] crypto_proc+0x19c/0x778 > > Badness in local_bh_enable at kernel/softirq.c:140 > > Call trace: > > [c0003044] check_bug_trap+0x9c/0xe4 > > [c00031f0] ProgramCheckException+0x164/0x20c > > [c000254c] ret_from_except_full+0x0/0x4c > > [c0027e2c] local_bh_enable+0x18/0x6c > > [c01aa4a4] neigh_resolve_output+0x128/0x2e8 > > [c01c0280] ip_finish_output+0x14c/0x2a8 > > [d13dfca4] ipsec_tunnel_send+0x274/0x410 [ipsec] > > [d13e01cc] ipsec_tunnel_xsm_complete+0x1d0/0x2d4 [ipsec] > > [d13e55a8] ipsec_xsm+0x164/0x33c [ipsec] > > [d13f8100] ipsec_ocf_xmit_cb+0x60/0x108 [ipsec] > > [c013b444] crypto_done+0x1d4/0x2d4 > > [d1027bb0] swcr_process+0x290/0x900 [cryptosoft] > > [c013b684] crypto_invoke+0xd8/0x1c4 > > [c013c098] crypto_proc+0x19c/0x778 > > [c0004d14] kernel_thread+0x44/0x60 > > (192.168.2.2): 56 data bytes > > 64 bytes from 192.168.2.2: icmp_seq=0 ttl=63 time=264.8 ms > > Badness in local_bh_enable at kernel/softirq.c:140 > > Call trace: > > [c0003044] check_bug_trap+0x9c/0xe4 > > [c00031f0] ProgramCheckException+0x164/0x20c > > [c000254c] ret_from_except_full+0x0/0x4c > > [c0027e2c] local_bh_enable+0x18/0x6c > > [c01b9f40] __ip_route_output_key+0x118/0x980 > > [c01ba7cc] ip_route_output_flow+0x24/0xa4 > > [d13dfab0] ipsec_tunnel_send+0x80/0x410 [ipsec] > > [d13e01cc] ipsec_tunnel_xsm_complete+0x1d0/0x2d4 [ipsec] > > [d13e55a8] ipsec_xsm+0x164/0x33c [ipsec] > > [d13f8100] ipsec_ocf_xmit_cb+0x60/0x108 [ipsec] > > [c013b444] crypto_done+0x1d4/0x2d4 > > [d1027bb0] swcr_process+0x290/0x900 [cryptosoft] > > [c013b684] crypto_invoke+0xd8/0x1c4 > > [c013c098] crypto_proc+0x19c/0x778 > > [c0004d14] kernel_thread+0x44/0x60 > > Badness in local_bh_enable at kernel/softirq.c:140 > > Call trace: > > [c0003044] check_bug_trap+0x9c/0xe4 > > [c00031f0] ProgramCheckException+0x164/0x20c > > [c000254c] ret_from_except_full+0x0/0x4c > > [c0027e2c] local_bh_enable+0x18/0x6c > > [c01c0218] ip_finish_output+0xe4/0x2a8 > > [d13dfca4] ipsec_tunnel_send+0x274/0x410 [ipsec] > > [d13e01cc] ipsec_tunnel_xsm_complete+0x1d0/0x2d4 [ipsec] > > [d13e55a8] ipsec_xsm+0x164/0x33c [ipsec] > > [d13f8100] ipsec_ocf_xmit_cb+0x60/0x108 [ipsec] > > [c013b444] crypto_done+0x1d4/0x2d4 > > [d1027bb0] swcr_process+0x290/0x900 [cryptosoft] > > [c013b684] crypto_invoke+0xd8/0x1c4 > > [c013c098] crypto_proc+0x19c/0x778 > > [c0004d14] kernel_thread+0x44/0x60 > > 64 bytes from 192.168.2.2: icmp_seq=1 ttl=63 time=127.9 ms > > > > --- 192.168.2.2 ping statistics --- > > 2 packets transmitted, 2 packets received, 0% packet loss > > round-trip min/avg/max = 127.9/196.3/264.8 ms > > # /etc/rc.d/init.d/ipsec --stop > > pluto[4919]: shutting down > > pluto[4919]: forgetting secrets > > pluto[4919]: "roadwarrior": deleting connection > > pluto[4919]: "roadwarrior" #4: deleting state (STATE_QUICK_R2) > > pluto[4919]: "roadwarrior" #2: deleting state (STATE_QUICK_I2) > > pluto[4919]: "roadwarrior" #3: deleting state (STATE_MAIN_R3) > > pluto[4919]: "roadwarrior" #1: deleting state (STATE_MAIN_I4) > > pluto[4919]: shutting down interface ipsec0/eth0 192.168.1.109:500 > > IPSEC EVENT: KLIPS device ipsec0 shut down. > > > > ipsec_setup: Stopping Openswan IPsec... > > # > > -- > > - > > To unsubscribe from this list: send the line "unsubscribe linux-crypto" in > > the body of a message to [EMAIL PROTECTED] > > More majordomo info at http://vger.kernel.org/majordomo-info.html > > -- > David McCullough, [EMAIL PROTECTED], Custom Embedded Solutions + Security > Ph:+61 734352815 Fx:+61 738913630 http://www.uCdot.org > http://www.cyberguard.com -- - To unsubscribe from this list: send the line "unsubscribe linux-crypto" in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html