From 5523aadff29ff6ab0660e9525ebe124d86866f6a Mon Sep 17 00:00:00 2001 From: matt Date: Wed, 14 Nov 2012 18:34:05 +0000 Subject: [PATCH] Set max_linkhdr when attaching so when bridging/forwarding ethernet drivers have a chance to reserve enough space to insert a max-sized 802.11 header. --- sys/net80211/ieee80211_netbsd.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/sys/net80211/ieee80211_netbsd.c b/sys/net80211/ieee80211_netbsd.c index ee2cfbc3e175..6ac7db52f386 100644 --- a/sys/net80211/ieee80211_netbsd.c +++ b/sys/net80211/ieee80211_netbsd.c @@ -1,4 +1,4 @@ -/* $NetBSD: ieee80211_netbsd.c,v 1.21 2012/06/02 21:36:47 dsl Exp $ */ +/* $NetBSD: ieee80211_netbsd.c,v 1.22 2012/11/14 18:34:05 matt Exp $ */ /*- * Copyright (c) 2003-2005 Sam Leffler, Errno Consulting * All rights reserved. @@ -30,7 +30,7 @@ #ifdef __FreeBSD__ __FBSDID("$FreeBSD: src/sys/net80211/ieee80211_freebsd.c,v 1.8 2005/08/08 18:46:35 sam Exp $"); #else -__KERNEL_RCSID(0, "$NetBSD: ieee80211_netbsd.c,v 1.21 2012/06/02 21:36:47 dsl Exp $"); +__KERNEL_RCSID(0, "$NetBSD: ieee80211_netbsd.c,v 1.22 2012/11/14 18:34:05 matt Exp $"); #endif /* @@ -81,6 +81,10 @@ ieee80211_init0(void) { ieee80211_setup_func * const *ieee80211_setup, f; + if (max_linkhdr < ALIGN(sizeof(struct ieee80211_qosframe_addr4))) { + max_linkhdr = ALIGN(sizeof(struct ieee80211_qosframe_addr4)); + } + __link_set_foreach(ieee80211_setup, ieee80211_funcs) { f = (void*)*ieee80211_setup; (*f)();