DF-0246 / fix.diff
diff --git a/sys/sys/eventhandler.h b/sys/sys/eventhandler.h --- a/sys/sys/eventhandler.h +++ b/sys/sys/eventhandler.h @@ -116,13 +116,15 @@ struct eventhandler_list *_el; \ struct eventhandler_entry *_ep; \ \ + lwkt_gettoken(&evlist_token); \ if ((_el = eventhandler_find_list(#name)) != NULL) { \ - for (_ep = TAILQ_FIRST(&(_el->el_entries)); \ - _ep != NULL; \ + for (_ep = TAILQ_FIRST(&(_el->el_entries)); \ + _ep != NULL; \ _ep = TAILQ_NEXT(_ep, ee_link)) { \ ((struct eventhandler_entry_ ## name *)_ep)->eh_func(_ep->ee_arg , ## args); \ - } \ + } \ } \ + lwkt_reltoken(&evlist_token); \ } while (0) #define EVENTHANDLER_REGISTER(name, func, arg, priority) \ |