Source-Changes-HG archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

[src/trunk]: src/sys/net80211 Fix ALTQ for bridge mode. Based on FreeBSD's re...



details:   https://anonhg.NetBSD.org/src/rev/a74dbe29aedf
branches:  trunk
changeset: 747113:a74dbe29aedf
user:      joerg <joerg%NetBSD.org@localhost>
date:      Wed Sep 02 22:03:08 2009 +0000

description:
Fix ALTQ for bridge mode. Based on FreeBSD's revision 1.115.
Tested by roy@.

diffstat:

 sys/net80211/ieee80211_input.c |  11 +++++++----
 1 files changed, 7 insertions(+), 4 deletions(-)

diffs (40 lines):

diff -r 1f6f2a8fce0b -r a74dbe29aedf sys/net80211/ieee80211_input.c
--- a/sys/net80211/ieee80211_input.c    Wed Sep 02 19:04:51 2009 +0000
+++ b/sys/net80211/ieee80211_input.c    Wed Sep 02 22:03:08 2009 +0000
@@ -1,4 +1,4 @@
-/*     $NetBSD: ieee80211_input.c,v 1.67 2008/12/17 20:51:37 cegger Exp $      */
+/*     $NetBSD: ieee80211_input.c,v 1.68 2009/09/02 22:03:08 joerg Exp $       */
 /*-
  * Copyright (c) 2001 Atsushi Onoe
  * Copyright (c) 2002-2005 Sam Leffler, Errno Consulting
@@ -36,7 +36,7 @@
 __FBSDID("$FreeBSD: src/sys/net80211/ieee80211_input.c,v 1.81 2005/08/10 16:22:29 sam Exp $");
 #endif
 #ifdef __NetBSD__
-__KERNEL_RCSID(0, "$NetBSD: ieee80211_input.c,v 1.67 2008/12/17 20:51:37 cegger Exp $");
+__KERNEL_RCSID(0, "$NetBSD: ieee80211_input.c,v 1.68 2009/09/02 22:03:08 joerg Exp $");
 #endif
 
 #include "opt_inet.h"
@@ -710,6 +710,7 @@
        struct ether_header *eh = mtod(m, struct ether_header *);
        struct ifnet *ifp = ic->ic_ifp;
        ALTQ_DECL(struct altq_pktattr pktattr;)
+       int error;
 
        /* perform as a bridge within the AP */
        if (ic->ic_opmode == IEEE80211_M_HOSTAP &&
@@ -756,9 +757,11 @@
                        }
 #endif
                        len = m1->m_pkthdr.len;
-                       IF_ENQUEUE(&ifp->if_snd, m1);
-                       if (m != NULL)
+                       IFQ_ENQUEUE(&ifp->if_snd, m1, &pktattr, error);
+                       if (error) {
                                ifp->if_omcasts++;
+                               m = NULL;
+                       }
                        ifp->if_obytes += len;
                }
        }



Home | Main Index | Thread Index | Old Index