Set curvnet context in a callout-trigerred code path.
MFC after: 3 days
This commit is contained in:
parent
ec49fe398a
commit
2fe7ca2ca6
Notes:
svn2git
2020-12-20 02:59:44 +00:00
svn path=/head/; revision=222834
@ -1860,6 +1860,8 @@ bstp_tick(void *arg)
|
||||
if (bs->bs_running == 0)
|
||||
return;
|
||||
|
||||
CURVNET_SET(bs->bs_vnet);
|
||||
|
||||
/* slow timer to catch missed link events */
|
||||
if (bstp_timer_expired(&bs->bs_link_timer)) {
|
||||
LIST_FOREACH(bp, &bs->bs_bplist, bp_next)
|
||||
@ -1893,6 +1895,8 @@ bstp_tick(void *arg)
|
||||
bp->bp_txcount--;
|
||||
}
|
||||
|
||||
CURVNET_RESTORE();
|
||||
|
||||
callout_reset(&bs->bs_bstpcallout, hz, bstp_tick, bs);
|
||||
}
|
||||
|
||||
@ -2126,6 +2130,7 @@ bstp_attach(struct bstp_state *bs, struct bstp_cb_ops *cb)
|
||||
bs->bs_protover = BSTP_PROTO_RSTP;
|
||||
bs->bs_state_cb = cb->bcb_state;
|
||||
bs->bs_rtage_cb = cb->bcb_rtage;
|
||||
bs->bs_vnet = curvnet;
|
||||
|
||||
getmicrotime(&bs->bs_last_tc_time);
|
||||
|
||||
|
@ -358,6 +358,7 @@ struct bstp_state {
|
||||
LIST_HEAD(, bstp_port) bs_bplist;
|
||||
bstp_state_cb_t bs_state_cb;
|
||||
bstp_rtage_cb_t bs_rtage_cb;
|
||||
struct vnet *bs_vnet;
|
||||
};
|
||||
|
||||
#define BSTP_LOCK_INIT(_bs) mtx_init(&(_bs)->bs_mtx, "bstp", NULL, MTX_DEF)
|
||||
|
Loading…
Reference in New Issue
Block a user