On 8/17/07, Yeoh Chun Yeow <[EMAIL PROTECTED]> wrote:
> Dear all,
>
> I have encounter the following problem when migrating a Linux driver to RTDM
> driver:
>
> I-pipe: Detected illicit call from domain 'Xenomai'
>         into a service reserved for domain 'Linux' and below.
> [<c002a474>] (show_stack+0x0/0x58) from [<c00736a4>]
> (ipipe_check_context+0x98/0xe4)
> [<c007360c>] (ipipe_check_context+0x0/0xe4) from [<c00d4ca4>]
> (cache_alloc_refill+0x7c/0x78c)
>  r8 = 00000020  r7 = C04A3360  r6 = 00000000  r5 = 0000001B
>  r4 = 00000000
> [<c00d4c28>] (cache_alloc_refill+0x0/0x78c) from [<c00d54dc>]
> (__kmalloc+0x128/0x138)
> [<c00d53b4>] (__kmalloc+0x0/0x138) from [<c027ede8>] (__alloc_skb+0x58/0xf8)
>  r8 = 00000000  r7 = C04A8B00  r6 = 00000060  r5 = 00000020
>  r4 = C065C940
> [<c027ed90>] (__alloc_skb+0x0/0xf8) from [<c0222b94>]
> (at91ether_interrupt+0x250/0x350)
>  r8 = FFC00000  r7 = C0768A60  r6 = C0768B20  r5 = 00000046
>  r4 = C03E4C60
>
> <snip>
>
>  | #  end     0x80000000    -44 __ipipe_unstall_root+0x4c
> (__ipipe_restore_root+0x70)
>  | # *func                  -50 __ipipe_unstall_root+0x10
> (__ipipe_restore_root+0x70)
>  | # *func                  -56 __ipipe_restore_root+0x10
> (kmem_cache_alloc+0x84)
>  | # *func                  -63 debug_smp_processor_id+0x10
> (kmem_cache_alloc+0x50)
>  | # *end     0x80000001    -70 kmem_cache_alloc+0xd8 (__alloc_skb+0x3c)
>  | #  begin   0x80000001    -76 kmem_cache_alloc+0xc4 (__alloc_skb+0x3c)
>  | #  func                  -83 kmem_cache_alloc+0x14 (__alloc_skb+0x3c)
>  | #  func                  -91 __alloc_skb+0x14 (at91ether_interrupt+0x250)
>  | #  func                 -100 at91ether_interrupt+0x14
> (xnintr_irq_handler+0x48)
>  | #  func                 -107 xnintr_irq_handler+0x14
> (__ipipe_dispatch_wired+0xf8)
>  |   +func                 -113 __ipipe_dispatch_wired+0x14
> (__ipipe_handle_irq+0x1b0)
>  |   +func                 -119 at91_aic_mask_irq+0x10
> (__ipipe_ack_level_irq+0x4c)
>  |   +func                 -125 at91_aic_mask_irq+0x10
> (__ipipe_ack_level_irq+0x3c)
>  |   +func                 -130 __ipipe_ack_level_irq+0x10
> (__ipipe_ack_irq+0x24)
>  |   +func                 -137 __ipipe_ack_irq+0x10
> (__ipipe_handle_irq+0x1a4)
>  |   +func                 -143 __ipipe_handle_irq+0x14
> (__ipipe_grab_irq+0xa0)
>  |   +begin   0xffffffff   -150 __ipipe_grab_irq+0x34 (__irq_svc+0x30)
>  |   +func                 -156 __ipipe_grab_irq+0x14 (__irq_svc+0x30)
>  |   +end     0x80000000   -164 __ipipe_unstall_root+0x4c
> (__do_softirq+0x4c)
>  |   #begin   0x80000000   -171 __ipipe_unstall_root+0x70
> (__do_softirq+0x4c)
>      #func                 -177 __ipipe_unstall_root+0x10
> (__do_softirq+0x4c)
>      #func                 -183 debug_smp_processor_id+0x10
> (__do_softirq+0x38)
>      #func                 -190 debug_smp_processor_id+0x10
> (__do_softirq+0x30)
>      #func                 -196 add_preempt_count+0x10 (__do_softirq+0x2c)
>
> Is this the problem coming from the alloc_skb function call? {

Yes, you can not call alloc_skb from Xenomai domain, as you can not
call most Linux functions. Note that if you are porting a network
driver, you should consider using rtnet.

-- 
                                               Gilles Chanteperdrix

_______________________________________________
Xenomai-help mailing list
[email protected]
https://mail.gna.org/listinfo/xenomai-help

Reply via email to