Module: xenomai-3 Branch: wip/rtnet-fixes Commit: 237047d75dd892367626a0c64fe17ff6cf9fa2a3 URL: http://git.xenomai.org/?p=xenomai-3.git;a=commit;h=237047d75dd892367626a0c64fe17ff6cf9fa2a3
Author: Philippe Gerum <r...@xenomai.org> Date: Mon Feb 5 17:24:10 2018 +0100 net/tdma: prevent crash on detaching the TDMA discipline See http://xenomai.org/pipermail/xenomai/2018-January/038247.html and http://xenomai.org/pipermail/xenomai/2018-January/038249.html --- kernel/drivers/net/stack/rtmac/tdma/tdma_worker.c | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/kernel/drivers/net/stack/rtmac/tdma/tdma_worker.c b/kernel/drivers/net/stack/rtmac/tdma/tdma_worker.c index ad29d5d..dcad64f 100644 --- a/kernel/drivers/net/stack/rtmac/tdma/tdma_worker.c +++ b/kernel/drivers/net/stack/rtmac/tdma/tdma_worker.c @@ -173,12 +173,14 @@ static struct tdma_job *do_reply_cal_job(struct tdma_priv *tdma, void tdma_worker(void *arg) { - struct tdma_priv *tdma = (struct tdma_priv *)arg; + struct tdma_priv *tdma = arg; struct tdma_job *job; rtdm_lockctx_t lockctx; + int ret; - - rtdm_event_wait(&tdma->worker_wakeup); + ret = rtdm_event_wait(&tdma->worker_wakeup); + if (ret) + return; rtdm_lock_get_irqsave(&tdma->lock, lockctx); @@ -189,7 +191,9 @@ void tdma_worker(void *arg) switch (job->id) { case WAIT_ON_SYNC: rtdm_lock_put_irqrestore(&tdma->lock, lockctx); - rtdm_event_wait(&tdma->sync_event); + ret = rtdm_event_wait(&tdma->sync_event); + if (ret) + return; rtdm_lock_get_irqsave(&tdma->lock, lockctx); break; _______________________________________________ Xenomai-git mailing list Xenomai-git@xenomai.org https://xenomai.org/mailman/listinfo/xenomai-git