summaryrefslogtreecommitdiffstats
path: root/sys/net/if_var.h
diff options
context:
space:
mode:
authorglebius <glebius@FreeBSD.org>2005-04-20 09:30:54 +0000
committerglebius <glebius@FreeBSD.org>2005-04-20 09:30:54 +0000
commit5f725a70e06f9948ad77ff806c8a2a993fdefec5 (patch)
tree214713abcf1d2a3f43290a8d18676a6fd08d0c93 /sys/net/if_var.h
parent0d333ce191c966fb85a3dce5a0d73019b9539c71 (diff)
downloadFreeBSD-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.h1
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 *);
OpenPOWER on IntegriCloud