On 6/30/11 11:07 PM, Philip Prindeville wrote:
> On 6/26/11 7:23 PM, Philip Prindeville wrote:
>> Running trunk w/ eglibc and Asterisk on x86-geos hardware. Seeing:
>>
>> general protection fault: 0000 [#1]
>> last sysfs file: /sys/kernel/uevent_seqnum
>> Modules linked in: lm90 i2c_gpio i2c_algo_pcf i2c_algo_pca i2c_algo_bit
>> i2c_dev
>> i2c_core geodewdt ohci_hcd solos_pci cs5535_gpio 8139cp nf_nat_irc
>> nf_conntrack_
>> irc nf_nat_ftp nf_conntrack_ftp cs5535_mfgpt ipt_MASQUERADE iptable_nat
>> nf_nat x
>> t_conntrack xt_NOTRACK iptable_raw xt_state nf_conntrack_ipv4 nf_defrag_ipv4
>> nf_
>> conntrack ehci_hcd l2tp_ppp 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 gpio_dev dummy l2tp_netlink l2tp_core ppp_mppe ppp_async
>> ppp_gen
>> eric slhc br2684 atm ath9k ath9k_common ath9k_hw ath5k ath mac80211 usbcore
>> nls_
>> base crc_ccitt msr cfg80211 compat sha1_generic cryptosoft cryptodev(P)
>> ocf(P) g
>> eode_aes ecb arc4 aes_i586 aes_generic crypto_blkcipher cryptomgr aead
>> crypto_ha
>> sh crypto_algapi
>>
>> Pid: 1408, comm: asterisk Tainted: P 2.6.38.8 #1 Bochs Bochs
>> EIP: 0060:[<e00e6633>] EFLAGS: 00010282 CPU: 0
>> EIP is at 0xe00e6633
>> EAX: fffffffe EBX: dee67504 ECX: df3d406c EDX: 00008010
>> ESI: 00000000 EDI: de7ad600 EBP: dd8c3ea0 ESP: dd8c3d90
>> DS: 007b ES: 007b FS: 0000 GS: 0033 SS: 0068
>> Process asterisk (pid: 1408, ti=dd8c2000 task=de4b3c20 task.ti=dd8c2000)
>> Stack:
>> 00000001 00000000 dd8c3dcc e00e76e0 de421a00 dd8c3ea0 00000000 e00c84f7
>> 00000004 02000000 dd8c3ea0 00000282 00000282 de421a00 dd8c3f24 00000001
>> dd8c3ec4 de6cf170 03000000 c01c6365 e00d996f bf8bebc4 00000001 06000000
>> Call Trace:
>> [<e00c84f7>] ? crypto_newsession+0x1da/0x287 [ocf]
>> [<e00d996f>] ? 0xe00d996f
>> [<c10edceb>] ? kobject_get+0xf/0x13
>> [<c106ab5f>] ? chrdev_open+0xb4/0xf9
>> [<c105774d>] ? __do_fault.clone.72+0x2db/0x325
>> [<e00da99c>] ? 0xe00da99c
>> [<c107365a>] ? do_vfs_ioctl+0x46e/0x4c6
>> [<c10736d9>] ? sys_ioctl+0x27/0x4a
>> [<c11c4345>] ? 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 3d 6c
>> 0e e0
>> e8 67 c9 0d e1 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: [<e00e6633>] 0xe00e6633 SS:ESP 0068:dd8c3d90
>> ---[ end trace 86e1d9aa91308db3 ]---
>>
>>
>> Anyone else seen this?
>
> Ok, so it's not an Asterisk problem, it's a linux-OCF + openssl problem:
>
> root@OpenWrt:/# openssl help
> general protection fault: 0000 [#2]
> last sysfs file: /sys/kernel/uevent_seqnum
> Modules linked in: lm90 scx200_acb i2c_gpio i2c_algo_pcf i2c_algo_pca
> i2c_algo_b
> it i2c_dev i2c_core geodewdt via_rhine ohci_hcd cs5535_gpio cs5535_clockevt
> nf_n
> at_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_st
> ate nf_conntrack_ipv4 nf_defrag_ipv4 nf_conntrack ehci_hcd pppoe pppox
> pppoatm i
> pt_REJECT xt_TCPMSS ipt_LOG xt_comment xt_multiport xt_mac xt_limit
> iptable_mang
> le iptable_filter ip_tables xt_tcpudp x_tables nsc_gpio gpio_dev dummy
> ppp_mppe
> ppp_async ppp_generic slhc br2684 atm ath9k ath9k_common ath9k_hw ath5k ath
> mac8
> 0211 usbcore nls_base crc_ccitt cfg80211 compat sha1_generic cryptosoft
> cryptode
> v(P) ocf(P) md5 geode_aes hmac ecb des_generic deflate cbc authenc arc4
> aes_i586
> aes_generic zlib_deflate crypto_blkcipher cryptomgr aead crypto_hash
> crypto_alg
> api
>
> Pid: 1511, comm: openssl Tainted: P D 2.6.38.8 #1
> EIP: 0060:[<d0968620>] EFLAGS: 00010282 CPU: 0
> EIP is at 0xd0968620
> EAX: fffffffe EBX: cee8ae08 ECX: cfdf606c EDX: 00008010
> ESI: 00000000 EDI: cfb565e0 EBP: ccf6dea0 ESP: ccf6dd94
> DS: 007b ES: 007b FS: 0000 GS: 0033 SS: 0068
> Process openssl (pid: 1511, ti=ccf6c000 task=ce512640 task.ti=ccf6c000)
> Stack:
> 00000002 00000000 d09696e0 cfb5cc00 ccf6dea0 00000000 d09474ef 00000004
> 02000000 ccf6dea0 00000282 00000282 cfb5cc00 ccf6df24 00000002 ccf6dec4
> cee68810 03000000 c01c6365 d095896f bfeb6404 00000002 06000000 00000000
> Call Trace:
> [<d09474ef>] ? crypto_newsession+0x1d2/0x27f [ocf]
> [<d095896f>] ? 0xd095896f
> [<c104c77e>] ? get_page_from_freelist+0x2e3/0x356
> [<c10576e1>] ? __do_fault.clone.72+0x2db/0x325
> [<d095999c>] ? 0xd095999c
> [<c10735ea>] ? do_vfs_ioctl+0x46e/0x4c6
> [<c105bd35>] ? do_brk+0x22a/0x27e
> [<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 8c 96
> d0
> e8 f0 aa 85 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: [<d0968620>] 0xd0968620 SS:ESP 0068:ccf6dd94
> ---[ end trace 8369248eba6c5cdc ]---
> Segmentation fault
> root@OpenWrt:/#
Looking at the ChangeLog for the latest release, it looks like we need 20110520
if we're going to use 2.6.35 or later:
2010-08-24 23:33 davidm
* cryptodev.c:
As of 2.6.35 misc drivers now get their private_data field set to a
pointer to a miscdevice struct on entry to their open routine.
cryptodev didn't like this, but did not return and error and later
crashed as the size of the structure was wrong/not zeroed.
Fix the case for older kernels to return an error rather than use
the bogus pointer, on newer kernels, just override the value of
private_data with our own and move on.
_______________________________________________
openwrt-devel mailing list
[email protected]
https://lists.openwrt.org/mailman/listinfo/openwrt-devel