/* * precondition: perimeter lock has been acquired */ void brcms_free_timer(struct brcms_timer *t) { struct brcms_info *wl = t->wl; struct brcms_timer *tmp; /* delete the timer in case it is active */ brcms_del_timer(t); if (wl->timers == t) { wl->timers = wl->timers->next; #ifdef DEBUG kfree(t->name); #endif kfree(t); return; } tmp = wl->timers; while (tmp) { if (tmp->next == t) { tmp->next = t->next; #ifdef DEBUG kfree(t->name); #endif kfree(t); return; } tmp = tmp->next; } }
bool wlapi_del_timer(struct wlapi_timer *t) { return brcms_del_timer((struct brcms_timer *)t); }
bool wlapi_del_timer(struct phy_shim_info *physhim, struct wlapi_timer *t) { return brcms_del_timer(physhim->wl, (struct brcms_timer *)t); }