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

Reply via email to