[asterisk-dev] Seeing kernel oops in crypto (linux ocf)
Tilghman Lesher
tilghman at meg.abyt.es
Wed Jun 29 12:18:24 CDT 2011
On Wednesday 29 June 2011 11:58:35 Philip Prindeville wrote:
> On 6/29/11 9:40 AM, Kevin P. Fleming wrote:
> > 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).
>
> Maybe I'm asking the question the wrong way: I know that the digest
> based authentication uses MD5, for instance.
Yes, but not from the openssl library. There's an internal implementation
of MD5 in main/md5.c. We also have an internal implementation of SHA-1.
> What other algorithms are used by Asterisk that it links from external
> libraries?
RSA is the main one, although we also use AES in certain contexts.
--
Tilghman
More information about the asterisk-dev
mailing list