Philippe Gerum wrote: > On Fri, 2006-12-08 at 19:02 +0100, Gilles Chanteperdrix wrote: >> Jan Kiszka wrote: >>> Gilles Chanteperdrix wrote: >>>> Index: ksrc/nucleus/shadow.c >>>> =================================================================== >>>> --- ksrc/nucleus/shadow.c (révision 1930) >>>> +++ ksrc/nucleus/shadow.c (copie de travail) >>>> @@ -888,6 +888,9 @@ >>>> >>>> p = xnthread_archtcb(thread)->user_task; /* May be != current */ >>>> >>>> + if (!xnshadow_thrptd(p)) >>>> + return; >>>> + >>>> magic = xnthread_get_magic(thread); >>>> >>>> for (muxid = 0; muxid < XENOMAI_MUX_NR; muxid++) { >>>> @@ -1639,8 +1642,6 @@ >>>> xnshadow_relax(0); >>>> >>>> xnlock_get_irqsave(&nklock, s); >>>> - /* Prevent wakeup call from xnshadow_unmap(). */ >>>> - xnshadow_thrptd(p) = NULL; >>>> xnthread_archtcb(thread)->user_task = NULL; >>>> /* xnpod_delete_thread() -> hook -> xnshadow_unmap(). */ >>>> xnpod_delete_thread(thread); >>> >>> Can't comment on the correctness of the second hunk, but it >>> unfortunately doesn't change the situation that test case does not >>> longer terminate with the first hunk applied. May look like a trivial >>> issue - but it isn't. :-> >>> >> Indeed. And xnshadow_thrptd(current) == NULL is used by xnpod_schedule, >> so the patch is probably completely incorrect. >> > > We should rather check the TCB backlink to the Linux task. Could someone > who can reproduce this issue, test the following patch? TIA, > > --- ksrc/nucleus/shadow.c (revision 1931) > +++ ksrc/nucleus/shadow.c (working copy) > @@ -888,6 +888,10 @@ > > p = xnthread_archtcb(thread)->user_task; /* May be != current */ > > + xnltt_log_event(xeno_ev_shadowunmap, thread->name, p ? p->pid : -1); > + if (!p) > + goto renice_and_exit; > + > magic = xnthread_get_magic(thread); > > for (muxid = 0; muxid < XENOMAI_MUX_NR; muxid++) { > @@ -907,10 +911,6 @@ > } > } > > - xnltt_log_event(xeno_ev_shadowunmap, thread->name, p ? p->pid : -1); > - if (!p) > - goto renice_and_exit; > - > xnshadow_thrptd(p) = NULL; > > if (p->state != TASK_RUNNING) { >
Doesn't work, usage counter is now incremented. BTW, this patch slipped into SVN with the iobitmap fix.
signature.asc
Description: OpenPGP digital signature
_______________________________________________ Xenomai-core mailing list Xenomai-core@gna.org https://mail.gna.org/listinfo/xenomai-core