[asterisk-dev] Seeing kernel oops in crypto (linux ocf)

Kevin P. Fleming kpfleming at digium.com
Wed Jun 29 11:40:55 CDT 2011


On 06/29/2011 11:36 AM, Philip Prindeville wrote:
> On 6/29/11 9:34 AM, Kevin P. Fleming wrote:
>> On 06/29/2011 11:29 AM, Philip Prindeville wrote:
>>> I'm running 2.6.38.8 on a Geode processor (alix 6F2) with OpenWRT trunk, and Asterisk 1.8.
>>>
>>> At startup, Asterisk causes an oops:
>>>
>>> general protection fault: 0000 [#1]
>>> last sysfs file: /sys/kernel/uevent_seqnum
>>> Modules linked in: lm90 scx200_acb i2c_gpio i2c_algo_pcf i2c_algo_pca i2c_algo_bit i2c_dev i2c_core geodewdt via_rhine ohci_hcd cs5535_gpio cs5535_clockevt nf_nat_irc nf_conntrack_irc nf_nat_ftp nf_conntrack_ftp cs5535_mfgpt cs5535_mfd mfd_core ipt_MASQUERADE iptable_nat nf_nat xt_conntrack xt_NOTRACK iptable_raw xt_state nf_conntrack_ipv4 nf_defrag_ipv4 nf_conntrack ehci_hcd pppoe pppox pppoatm ipt_REJECT xt_TCPMSS ipt_LOG xt_comment xt_multiport xt_mac xt_limit iptable_mangle iptable_filter ip_tables xt_tcpudp x_tables nsc_gpio gpio_dev dummy ppp_mppeppp_async ppp_generic slhc br2684 atm ath9k ath9k_common ath9k_hw ath5k ath mac80211 usbcore nls_base crc_ccitt cfg80211 compat sha1_generic cryptosoft cryptodev(P) ocf(P) geode_aes ecb arc4 aes_i586 aes_generic crypto_blkcipher cryptomgr aead crypto_hash crypto_algapi
>>>
>>> Pid: 1263, comm: asterisk Tainted: P            2.6.38.8 #1
>>> EIP: 0060:[<d091a620>] EFLAGS: 00010282 CPU: 0
>>> EIP is at 0xd091a620
>>> EAX: fffffffe EBX: cee44004 ECX: cfdf606c EDX: 00008010
>>> ESI: 00000000 EDI: ce467200 EBP: ce403ea0 ESP: ce403d94
>>>    DS: 007b ES: 007b FS: 0000 GS: 0033 SS: 0068
>>> Process asterisk (pid: 1263, ti=ce402000 task=cf829c20 task.ti=ce402000)
>>> Stack:
>>>    00000001 00000000 d091b6e0 cfb96400 ce403ea0 00000000 d08e94ef 00000004
>>>    02000000 ce403ea0 00000282 00000282 cfb96400 ce403f24 00000001 ce403ec4
>>>    cee2c1d0 03000000 c01c6365 d090a96f bfd7ca94 00000001 06000000 00000014
>>> Call Trace:
>>>    [<d08e94ef>] ? crypto_newsession+0x1d2/0x27f [ocf]
>>>    [<d090a96f>] ? 0xd090a96f
>>>    [<c10edc63>] ? kobject_get+0xf/0x13
>>>    [<c106aaef>] ? chrdev_open+0xb4/0xf9
>>>    [<c10576e1>] ? __do_fault.clone.72+0x2db/0x325
>>>    [<d090b99c>] ? 0xd090b99c
>>>    [<c10735ea>] ? do_vfs_ioctl+0x46e/0x4c6
>>>    [<c1073669>] ? sys_ioctl+0x27/0x4a
>>>    [<c11c44bd>] ? syscall_call+0x7/0xb
>>> Code: c2 c1 f8 03 39 04 24 72 b9 85 ff 75 07 8b 13 8b 42 08 eb 10 68 29 ac 91 d0
>>>    e8 f0 8a 8a f0 8b 13 8b 42 08 59 8b 12 80 e6 80 74 25<81>   08 00 01 00 00 8b 03
>>>    8b 4d 04 8b 70 08 8d 41 0e 83 c1 07 0f
>>> EIP: [<d091a620>] 0xd091a620 SS:ESP 0068:ce403d94
>>> ---[ end trace a7dc158c2c15d886 ]---
>>>
>>>
>>> I'm wondering if anyone else has seen this, or if there's an obvious set of crypto modules that Asterisk needs when using linux-ocf.
>>>
>>> For instance, des, hmac, and md5 weren't turned on (but aes and sha1 were).
>>
>> Asterisk does not use kernel crypto modules at all. It is possible that
>> Asterisk's usage of OpenSSL may result in *it* using kernel crypto
>> modules, but I don't think that's likely either.
>>
>
> We're building openssl with OCF patched in, so it's likely in this case.
>
> Asking the question differently, what crypto algorithms does Asterisk import from Openssl?

I don't think we 'import' any crypto algorithms. We initialize the 
library and tell it to enable everything it has, I believe. You'd have 
to check the source code to be sure. Keep in mind you could also have 
Asterisk modules that use OpenSSL (for example, the Postgres modules 
link to OpenSSL).

-- 
Kevin P. Fleming
Digium, Inc. | Director of Software Technologies
Jabber: kfleming at digium.com | SIP: kpfleming at digium.com | Skype: kpfleming
445 Jan Davis Drive NW - Huntsville, AL 35806 - USA
Check us out at www.digium.com & www.asterisk.org



More information about the asterisk-dev mailing list