diff options
author | glebius <glebius@FreeBSD.org> | 2005-04-20 09:30:54 +0000 |
---|---|---|
committer | glebius <glebius@FreeBSD.org> | 2005-04-20 09:30:54 +0000 |
commit | 5f725a70e06f9948ad77ff806c8a2a993fdefec5 (patch) | |
tree | 214713abcf1d2a3f43290a8d18676a6fd08d0c93 /sys/net/if_var.h | |
parent | 0d333ce191c966fb85a3dce5a0d73019b9539c71 (diff) | |
download | FreeBSD-src-5f725a70e06f9948ad77ff806c8a2a993fdefec5.zip FreeBSD-src-5f725a70e06f9948ad77ff806c8a2a993fdefec5.tar.gz |
Do not call all link state callbacks directly, but schedule
a taskqueue(9) task. This fixes LORs and adds possibility
to serve such events pseudorecursively, when link state
change of interface causes subsequent change on other
interfaces.
Sponsored by: Rambler
Reviewed by: sam, brooks, mux
Diffstat (limited to 'sys/net/if_var.h')
-rw-r--r-- | sys/net/if_var.h | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/sys/net/if_var.h b/sys/net/if_var.h index 78eea2c..a1ff0fb 100644 --- a/sys/net/if_var.h +++ b/sys/net/if_var.h @@ -194,6 +194,7 @@ struct ifnet { int if_afdata_initialized; struct mtx if_afdata_mtx; struct task if_starttask; /* task for IFF_NEEDSGIANT */ + struct task if_linktask; /* task for link change events */ }; typedef void if_init_f_t(void *); |