Module: xenomai-head Branch: master Commit: ee1f07523340323f7d82776a9e767db302e2047a URL: http://git.xenomai.org/?p=xenomai-head.git;a=commit;h=ee1f07523340323f7d82776a9e767db302e2047a
Author: Gilles Chanteperdrix <gilles.chanteperd...@xenomai.org> Date: Thu Aug 25 22:32:52 2011 +0200 posix: fix xnlock bug in shm cleanup [ 33.961364] Xenomai: unlocking unlocked nucleus lock c05239a8 on CPU #1 [ 33.961364] owner = kernel/xenomai/skins/posix/shm.c:151 (pse51_shm _put(), CPU #-1) [ 33.977203] Backtrace: [ 33.979797] [<c0037b90>] (dump_backtrace+0x0/0x110) from [<c0037ebc>] (show_s tack+0x18/0x1c) [ 33.988647] r6:0714ee0b r5:c05239a8 r4:f083ce00 r3:80000001 [ 33.994598] [<c0037ea4>] (show_stack+0x0/0x1c) from [<c015e628>] (pse51_shm_d estroy+0x60c/0xe2c) [ 34.003814] [<c015e01c>] (pse51_shm_destroy+0x0/0xe2c) from [<c015f4c4>] (pse 51_shm_put+0x264/0x404) [ 34.013366] [<c015f260>] (pse51_shm_put+0x0/0x404) from [<c01602b0>] (munmap+ 0xc4c/0xd70) [ 34.021942] [<c015f664>] (munmap+0x0/0xd70) from [<c01603f4>] (umap_cleanup+0 x20/0x34) [ 34.030242] [<c01603d4>] (umap_cleanup+0x0/0x34) from [<c0156d08>] (pse51_ass ocq_destroy+0x240/0xa8c) [ 34.039886] r4:ef99edc0 r3:c01603d4 [ 34.043640] [<c0156ac8>] (pse51_assocq_destroy+0x0/0xa8c) from [<c016355c>] ( pse51_shm_umaps_cleanup+0x18/0x20) [ 34.054229] [<c0163544>] (pse51_shm_umaps_cleanup+0x0/0x20) from [<c016cca4>] (pse51_eventcb+0x204/0x254) [ 34.064270] [<c016caa0>] (pse51_eventcb+0x0/0x254) from [<c00d6460>] (detach_ ppd+0x30/0x38) [ 34.072998] r7:c05239a8 r6:ef908c08 r5:00000020 r4:00000000 [ 34.078948] [<c00d6430>] (detach_ppd+0x0/0x38) from [<c00d93fc>] (cleanup_eve nt+0x860/0xb34) [ 34.087799] [<c00d8b9c>] (cleanup_event+0x0/0xb34) from [<c0095bbc>] (__ipipe _dispatch_event+0x124/0x250) [ 34.097808] [<c0095a98>] (__ipipe_dispatch_event+0x0/0x250) from [<c005a574>] (mmput+0xa0/0x154) [ 34.107025] [<c005a4d4>] (mmput+0x0/0x154) from [<c005e9b8>] (exit_mm+0x158/0 x164) [ 34.114959] r6:ef8f3608 r5:ef8f33a0 r4:ef909ba0 r3:00000000 [ 34.120910] [<c005e860>] (exit_mm+0x0/0x164) from [<c005fe1c>] (do_exit+0x1e4 /0x678) [ 34.128997] r7:ef905040 r6:ef174000 r5:00000100 r4:ef8f33a0 [ 34.134948] [<c005fc38>] (do_exit+0x0/0x678) from [<c0060588>] (do_group_exit +0x98/0xc8) [ 34.143432] r7:ef905040 [ 34.146087] [<c00604f0>] (do_group_exit+0x0/0xc8) from [<c006a7c8>] (get_sign al_to_deliver+0x360/0x39c) [ 34.155914] r7:ef905040 r6:ef174000 r5:ef175ec8 r4:00418004 [ 34.161865] [<c006a468>] (get_signal_to_deliver+0x0/0x39c) from [<c0036b9c>] (do_signal+0x70/0x5b0) [ 34.171356] [<c0036b2c>] (do_signal+0x0/0x5b0) from [<c00376ac>] (do_notify_r esume+0x20/0x58) [ 34.180297] [<c003768c>] (do_notify_resume+0x0/0x58) from [<c00341c0>] (work_ pending+0x28/0x2c) [ 34.189392] r4:4005a2a0 r3:00000022 --- ksrc/skins/posix/shm.c | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-) diff --git a/ksrc/skins/posix/shm.c b/ksrc/skins/posix/shm.c index db6b152..6b9f26f 100644 --- a/ksrc/skins/posix/shm.c +++ b/ksrc/skins/posix/shm.c @@ -154,8 +154,8 @@ static void pse51_shm_put(pse51_shm_t * shm, unsigned dec) pse51_node_put(&shm->nodebase); if (pse51_node_removed_p(&shm->nodebase)) { - xnlock_put_irqrestore(&nklock, s); pse51_shm_destroy(shm, 0); + xnlock_put_irqrestore(&nklock, s); xnfree(shm); } else xnlock_put_irqrestore(&nklock, s); _______________________________________________ Xenomai-git mailing list Xenomai-git@gna.org https://mail.gna.org/listinfo/xenomai-git