Make ntb_set_ctx() always generate fake link event.
It allows application driver get initial link state without racing with hardware interrupts, thanks to the context rmlock held here. MFC after: 1 week Sponsored by: iXsystems, Inc.
This commit is contained in:
parent
3882782295
commit
837f8a853f
@ -264,6 +264,13 @@ ntb_set_ctx(device_t ntb, void *ctx, const struct ntb_ctx_ops *ctx_ops)
|
||||
}
|
||||
nc->ctx = ctx;
|
||||
nc->ctx_ops = ctx_ops;
|
||||
|
||||
/*
|
||||
* If applicaiton driver asks for link events, generate fake one now
|
||||
* to let it update link state without races while we hold the lock.
|
||||
*/
|
||||
if (ctx_ops->link_event != NULL)
|
||||
ctx_ops->link_event(ctx);
|
||||
rm_wunlock(&nc->ctx_lock);
|
||||
|
||||
return (0);
|
||||
|
Loading…
Reference in New Issue
Block a user