summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDamien Bergamini <damien@cvs.openbsd.org>2008-08-14 16:02:25 +0000
committerDamien Bergamini <damien@cvs.openbsd.org>2008-08-14 16:02:25 +0000
commit353ae15ead3aef12969500ed7a75998e8020b9fc (patch)
tree177fe2b9fa5b18f26bbf8c8962528b9509bb8007
parent801ccc23fcf001022bc36ff530f06c7a6e144d66 (diff)
in ieee80211_input(), call if_start() after enqueuing frames in if_snd
when acting as an access point instead of having each driver doing the job. tested by krw@ (ral AP) and me with several drivers.
-rw-r--r--sys/dev/ic/acx.c9
-rw-r--r--sys/dev/ic/ath.c5
-rw-r--r--sys/dev/ic/malo.c9
-rw-r--r--sys/dev/ic/rt2560.c9
-rw-r--r--sys/dev/ic/rt2661.c9
-rw-r--r--sys/dev/ic/rt2860.c9
-rw-r--r--sys/dev/ic/rtw.c10
-rw-r--r--sys/dev/usb/if_ral.c9
-rw-r--r--sys/dev/usb/if_rum.c9
-rw-r--r--sys/net80211/ieee80211_input.c3
10 files changed, 11 insertions, 70 deletions
diff --git a/sys/dev/ic/acx.c b/sys/dev/ic/acx.c
index ff8a1360273..f3b46dd1ffa 100644
--- a/sys/dev/ic/acx.c
+++ b/sys/dev/ic/acx.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: acx.c,v 1.85 2008/07/21 18:43:19 damien Exp $ */
+/* $OpenBSD: acx.c,v 1.86 2008/08/14 16:02:24 damien Exp $ */
/*
* Copyright (c) 2006 Jonathan Gray <jsg@openbsd.org>
@@ -1417,13 +1417,6 @@ next:
* time we can start from it.
*/
bd->rx_scan_start = idx;
-
- /*
- * In HostAP mode, ieee80211_input() will enqueue packets in if_snd
- * without calling if_start().
- */
- if (!IFQ_IS_EMPTY(&ifp->if_snd) && !(ifp->if_flags & IFF_OACTIVE))
- (*ifp->if_start)(ifp);
}
int
diff --git a/sys/dev/ic/ath.c b/sys/dev/ic/ath.c
index 6c340a24d4f..419831f0386 100644
--- a/sys/dev/ic/ath.c
+++ b/sys/dev/ic/ath.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: ath.c,v 1.72 2008/07/30 07:43:01 reyk Exp $ */
+/* $OpenBSD: ath.c,v 1.73 2008/08/14 16:02:24 damien Exp $ */
/* $NetBSD: ath.c,v 1.37 2004/08/18 21:59:39 dyoung Exp $ */
/*-
@@ -2086,9 +2086,6 @@ ath_rx_proc(void *arg, int npending)
ath_hal_set_rx_signal(ah); /* rx signal state monitoring */
ath_hal_start_rx(ah); /* in case of RXEOL */
-
- if ((ifp->if_flags & IFF_OACTIVE) == 0 && !IFQ_IS_EMPTY(&ifp->if_snd))
- ath_start(ifp);
#undef PA2DESC
}
diff --git a/sys/dev/ic/malo.c b/sys/dev/ic/malo.c
index 2e502ef3f3c..643fcf6313b 100644
--- a/sys/dev/ic/malo.c
+++ b/sys/dev/ic/malo.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: malo.c,v 1.84 2008/07/27 11:28:17 mbalmer Exp $ */
+/* $OpenBSD: malo.c,v 1.85 2008/08/14 16:02:24 damien Exp $ */
/*
* Copyright (c) 2006 Claudio Jeker <claudio@openbsd.org>
@@ -1758,13 +1758,6 @@ skip:
}
malo_mem_write4(sc, sc->sc_RxPdRdPtr, rxRdPtr);
-
- /*
- * In HostAP mode, ieee80211_input() will enqueue packets in if_snd
- * without calling if_start().
- */
- if (!IFQ_IS_EMPTY(&ifp->if_snd) && !(ifp->if_flags & IFF_OACTIVE))
- (*ifp->if_start)(ifp);
}
int
diff --git a/sys/dev/ic/rt2560.c b/sys/dev/ic/rt2560.c
index ab8d87fbb7c..0879d492e97 100644
--- a/sys/dev/ic/rt2560.c
+++ b/sys/dev/ic/rt2560.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: rt2560.c,v 1.37 2008/07/21 18:43:19 damien Exp $ */
+/* $OpenBSD: rt2560.c,v 1.38 2008/08/14 16:02:24 damien Exp $ */
/*-
* Copyright (c) 2005, 2006
@@ -1213,13 +1213,6 @@ skip: desc->flags = htole32(RT2560_RX_BUSY);
sc->rxq.cur_decrypt =
(sc->rxq.cur_decrypt + 1) % RT2560_RX_RING_COUNT;
}
-
- /*
- * In HostAP mode, ieee80211_input() will enqueue packets in if_snd
- * without calling if_start().
- */
- if (!IFQ_IS_EMPTY(&ifp->if_snd) && !(ifp->if_flags & IFF_OACTIVE))
- rt2560_start(ifp);
}
/*
diff --git a/sys/dev/ic/rt2661.c b/sys/dev/ic/rt2661.c
index a55f5a6efc0..6a1bbc4ca0a 100644
--- a/sys/dev/ic/rt2661.c
+++ b/sys/dev/ic/rt2661.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: rt2661.c,v 1.42 2008/07/21 18:43:19 damien Exp $ */
+/* $OpenBSD: rt2661.c,v 1.43 2008/08/14 16:02:24 damien Exp $ */
/*-
* Copyright (c) 2006
@@ -1142,13 +1142,6 @@ skip: desc->flags |= htole32(RT2661_RX_BUSY);
sc->rxq.cur = (sc->rxq.cur + 1) % RT2661_RX_RING_COUNT;
}
-
- /*
- * In HostAP mode, ieee80211_input() will enqueue packets in if_snd
- * without calling if_start().
- */
- if (!IFQ_IS_EMPTY(&ifp->if_snd) && !(ifp->if_flags & IFF_OACTIVE))
- rt2661_start(ifp);
}
/*
diff --git a/sys/dev/ic/rt2860.c b/sys/dev/ic/rt2860.c
index 7943b077155..849e5e573b7 100644
--- a/sys/dev/ic/rt2860.c
+++ b/sys/dev/ic/rt2860.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: rt2860.c,v 1.17 2008/07/21 19:41:44 damien Exp $ */
+/* $OpenBSD: rt2860.c,v 1.18 2008/08/14 16:02:24 damien Exp $ */
/*-
* Copyright (c) 2007,2008
@@ -1193,13 +1193,6 @@ skip: rxd->sdl0 &= ~htole16(RT2860_RX_DDONE);
/* tell HW what we have processed */
RAL_WRITE(sc, RT2860_RX_CALC_IDX,
(sc->rxq.cur - 1) % RT2860_RX_RING_COUNT);
-
- /*
- * In HostAP mode, ieee80211_input() will enqueue packets in if_snd
- * without calling if_start().
- */
- if (!IFQ_IS_EMPTY(&ifp->if_snd) && !(ifp->if_flags & IFF_OACTIVE))
- rt2860_start(ifp);
}
int
diff --git a/sys/dev/ic/rtw.c b/sys/dev/ic/rtw.c
index 0dca15b1685..d2fbe888299 100644
--- a/sys/dev/ic/rtw.c
+++ b/sys/dev/ic/rtw.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: rtw.c,v 1.67 2008/07/21 18:43:19 damien Exp $ */
+/* $OpenBSD: rtw.c,v 1.68 2008/08/14 16:02:24 damien Exp $ */
/* $NetBSD: rtw.c,v 1.29 2004/12/27 19:49:16 dyoung Exp $ */
/*-
@@ -1301,14 +1301,6 @@ next:
KASSERT(rdb->rdb_next < rdb->rdb_ndesc);
- /*
- * In HostAP mode, ieee80211_input() will enqueue packets in if_snd
- * without calling if_start().
- */
- if (!IFQ_IS_EMPTY(&sc->sc_if.if_snd) &&
- !(sc->sc_if.if_flags & IFF_OACTIVE))
- (*sc->sc_if.if_start)(&sc->sc_if);
-
return;
#undef IS_BEACON
}
diff --git a/sys/dev/usb/if_ral.c b/sys/dev/usb/if_ral.c
index 323c6b4e30f..5e7a8c3400d 100644
--- a/sys/dev/usb/if_ral.c
+++ b/sys/dev/usb/if_ral.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: if_ral.c,v 1.105 2008/07/30 06:25:23 damien Exp $ */
+/* $OpenBSD: if_ral.c,v 1.106 2008/08/14 16:02:24 damien Exp $ */
/*-
* Copyright (c) 2005, 2006
@@ -804,13 +804,6 @@ ural_rxeof(usbd_xfer_handle xfer, usbd_private_handle priv, usbd_status status)
/* node is no longer needed */
ieee80211_release_node(ic, ni);
- /*
- * In HostAP mode, ieee80211_input() will enqueue packets in if_snd
- * without calling if_start().
- */
- if (!IFQ_IS_EMPTY(&ifp->if_snd) && !(ifp->if_flags & IFF_OACTIVE))
- ural_start(ifp);
-
splx(s);
DPRINTFN(15, ("rx done\n"));
diff --git a/sys/dev/usb/if_rum.c b/sys/dev/usb/if_rum.c
index c9ffc5f0f25..50fc589b3a7 100644
--- a/sys/dev/usb/if_rum.c
+++ b/sys/dev/usb/if_rum.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: if_rum.c,v 1.75 2008/07/30 06:25:23 damien Exp $ */
+/* $OpenBSD: if_rum.c,v 1.76 2008/08/14 16:02:24 damien Exp $ */
/*-
* Copyright (c) 2005-2007 Damien Bergamini <damien.bergamini@free.fr>
@@ -869,13 +869,6 @@ rum_rxeof(usbd_xfer_handle xfer, usbd_private_handle priv, usbd_status status)
/* node is no longer needed */
ieee80211_release_node(ic, ni);
- /*
- * In HostAP mode, ieee80211_input() will enqueue packets in if_snd
- * without calling if_start().
- */
- if (!IFQ_IS_EMPTY(&ifp->if_snd) && !(ifp->if_flags & IFF_OACTIVE))
- rum_start(ifp);
-
splx(s);
DPRINTFN(15, ("rx done\n"));
diff --git a/sys/net80211/ieee80211_input.c b/sys/net80211/ieee80211_input.c
index 1499054dc77..9d8c93c41d4 100644
--- a/sys/net80211/ieee80211_input.c
+++ b/sys/net80211/ieee80211_input.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: ieee80211_input.c,v 1.98 2008/08/13 17:44:45 damien Exp $ */
+/* $OpenBSD: ieee80211_input.c,v 1.99 2008/08/14 16:02:23 damien Exp $ */
/*-
* Copyright (c) 2001 Atsushi Onoe
@@ -413,6 +413,7 @@ ieee80211_input(struct ifnet *ifp, struct mbuf *m, struct ieee80211_node *ni,
if (m != NULL)
ifp->if_omcasts++;
ifp->if_obytes += len;
+ if_start(ifp);
}
}
}