[retry] Hold reference while timer is running and during expiry callback

Guarantee that a retry timer cannot go out of scope while the timer is
running, and provide a guarantee to the expiry callback that the timer
will remain in scope during the entire callback (similar to the
guarantee provided to interface methods).

Signed-off-by: Michael Brown <mcb30@ipxe.org>
This commit is contained in:
Michael Brown
2010-09-02 03:34:04 +01:00
parent 25447294d5
commit 28934eef81
10 changed files with 31 additions and 14 deletions

View File

@@ -281,7 +281,7 @@ ib_create_madx ( struct ib_device *ibdev, struct ib_mad_interface *mi,
madx = zalloc ( sizeof ( *madx ) );
if ( ! madx )
return NULL;
timer_init ( &madx->timer, ib_mi_timer_expired );
timer_init ( &madx->timer, ib_mi_timer_expired, NULL );
madx->mi = mi;
madx->op = op;