Cyril Wallois wrote:
> Hi Jan,
> 
> My problem appears in the function :
> 
> /***
>  *  rt_icmp_release
>  */
> void rt_icmp_release(void)
> {
>     rt_icmp_cleanup_echo_requests();
>     rt_inet_del_protocol(&icmp_protocol);
>     rt_bare_socket_cleanup(&icmp_socket);
> }
> 
> in the function rt_bare_socket_cleanup() which called rtskb_pool_release()
> 
> I don't know if there enough information to solve the problem,
> 
> Best regards,
> 
> WALLOIS Cyril
> 
> 
> 
> Xenomai: suspending kernel thread bf0270e0 ('rtnet-rtpc') at 0xbf02b814 after 
> exception #8
> 
> kernel thread bf0270e0 :
> /proc/kallsyms :
> bf0270e0 b dispatch_task        [rtnet]
> 
> 0xbf02b814
> /proc/kallsyms :
> bf02b790 -> rt_icmp_echo_reply   [rtipv4]
> bf02b790 t $a   [rtipv4]
> 0xbf02b814
> bf02b8d8 t $d   [rtipv4]
> 
> 
> (begin of the module rt_ipv4 : 0x029000 , 0xbf02b814 should correspond to 
> 2814)

What does "grep rtipv4 /proc/modules" report as base address? Really
0xbf029000?

> 
> With arm-linux-gnueabi-objdump -dSr rtipv4.ko I can solve the adress 
> 0xbf02b814 (line 2814) :
> 
> 
> 
> /***
>  *  rt_icmp_release
>  */
> void rt_icmp_release(void)
> {
>     2610:    e1a0c00d     mov    ip, sp
>     2614:    e92dd800     stmdb    sp!, {fp, ip, lr, pc}
>     2618:    e24cb004     sub    fp, ip, #4    ; 0x4
>     rt_icmp_cleanup_echo_requests();
>     261c:    ebfffffe     bl    2584 <rt_icmp_cleanup_echo_requests>
>             261c: R_ARM_CALL    rt_icmp_cleanup_echo_requests
>     rt_inet_del_protocol(&icmp_protocol);
>     2620:    e59f000c     ldr    r0, [pc, #12]    ; 2634 <.text+0x2634>
>     2624:    ebfffffe     bl    ac8 <rt_inet_del_protocol>
>             2624: R_ARM_CALL    rt_inet_del_protocol
>                         unsigned int priority, unsigned int pool_size);
> 
> static inline void rt_bare_socket_cleanup(struct rtsocket *sock)
> {
>     rtskb_pool_release(&sock->skb_pool);
>     2628:    e59f0008     ldr    r0, [pc, #8]    ; 2638 <.text+0x2638>
>     262c:    ebfffffe     bl    0 <__rtskb_pool_release>
>             262c: R_ARM_CALL    __rtskb_pool_release
>     rt_bare_socket_cleanup(&icmp_socket);
> }
> 
> ...
> static inline int test_bit(int nr, const volatile unsigned long *addr)
> {
>     return 1UL & (addr[BIT_WORD(nr)] >> (nr & (BITS_PER_LONG-1)));
>     27f0:    e59c3000     ldr    r3, [ip]
>      * both statuses, assuming that the lowest bit is always set in
>      * the truth value (if this is wrong, the failed optimization will
>      * be caught in __ipipe_restore_pipeline_head() if
>      * CONFIG_DEBUG_KERNEL is set). */
>     if ((x ^ test_bit(IPIPE_STALL_FLAG, &ipipe_head_cpudom_var(status))) & 1)
>     27f4:    e2033001     and    r3, r3, #1    ; 0x1
>     27f8:    e1500003     cmp    r0, r3
>     27fc:    0a000000     beq    2804 <rt_icmp_echo_reply+0x74>
>         __ipipe_restore_pipeline_head(x);
>     2800:    ebfffffe     bl    0 <__ipipe_restore_pipeline_head>
>             2800: R_ARM_CALL    __ipipe_restore_pipeline_head
>     2804:    e5973028     ldr    r3, [r7, #40]
>     2808:    e2856024     add    r6, r5, #36    ; 0x24
>     280c:    e3a00000     mov    r0, #0    ; 0x0
>     2810:    e593300c     ldr    r3, [r3, #12]
>     2814:    e3a01000     mov    r1, #0    ; 0x0

Makes no sense yet. This is moving an immediate into register r1 -
nothing where misaligned memory access can happen.

Please validate your calculations, maybe also adding some printks to the
lines under suspect.

>     2818:    e1c602f0     strd    r0, [r6, #32]
>     281c:    e5863010     str    r3, [r6, #16]
>     2820:    e5973024     ldr    r3, [r7, #36]
>     2824:    e1d621b4     ldrh    r2, [r6, #20]
>     2828:    e1d330b4     ldrh    r3, [r3, #4]
>     282c:    e1530002     cmp    r3, r2
>     2830:    1a000024     bne    28c8 <rt_icmp_echo_reply+0x138>
>     2834:    ea000005     b    2850 <rt_icmp_echo_reply+0xc0>
>  * @addr: Address to start counting from
>  */

Jan

-- 
Siemens AG, Corporate Technology, CT T DE IT 1
Corporate Competence Center Embedded Linux

------------------------------------------------------------------------------

_______________________________________________
RTnet-users mailing list
RTnet-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/rtnet-users

Reply via email to