Use mbuf queue instead of ifqueue in USB network drivers.

Reviewed by:	stevek
This commit is contained in:
Gleb Smirnoff 2019-08-30 00:05:04 +00:00
parent b2005c033e
commit 35d3dd8b12
4 changed files with 6 additions and 8 deletions

View file

@ -1149,7 +1149,7 @@ axe_rxeof(struct usb_ether *ue, struct usb_page_cache *pc, unsigned int offset,
}
}
_IF_ENQUEUE(&ue->ue_rxq, m);
(void)mbufq_enqueue(&ue->ue_rxq, m);
return (0);
}

View file

@ -1041,7 +1041,7 @@ axge_rxeof(struct usb_ether *ue, struct usb_page_cache *pc, unsigned int offset,
}
if_inc_counter(ifp, IFCOUNTER_IPACKETS, 1);
_IF_ENQUEUE(&ue->ue_rxq, m);
(void)mbufq_enqueue(&ue->ue_rxq, m);
}
static void

View file

@ -598,7 +598,7 @@ uether_rxmbuf(struct usb_ether *ue, struct mbuf *m,
m->m_pkthdr.len = m->m_len = len;
/* enqueue for later when the lock can be released */
_IF_ENQUEUE(&ue->ue_rxq, m);
(void)mbufq_enqueue(&ue->ue_rxq, m);
return (0);
}
@ -628,7 +628,7 @@ uether_rxbuf(struct usb_ether *ue, struct usb_page_cache *pc,
m->m_pkthdr.len = m->m_len = len;
/* enqueue for later when the lock can be released */
_IF_ENQUEUE(&ue->ue_rxq, m);
(void)mbufq_enqueue(&ue->ue_rxq, m);
return (0);
}
@ -641,7 +641,7 @@ uether_rxflush(struct usb_ether *ue)
UE_LOCK_ASSERT(ue, MA_OWNED);
for (;;) {
_IF_DEQUEUE(&ue->ue_rxq, m);
m = mbufq_dequeue(&ue->ue_rxq);
if (m == NULL)
break;

View file

@ -41,12 +41,10 @@
#include <sys/limits.h>
#include <net/if.h>
#include <net/if_var.h>
#include <net/if_arp.h>
#include <net/if_dl.h>
#include <net/if_media.h>
#include <net/if_types.h>
#include <net/ifq.h>
#include <net/bpf.h>
#include <net/ethernet.h>
@ -89,7 +87,7 @@ struct usb_ether {
struct usb_process ue_tq;
struct sysctl_ctx_list ue_sysctl_ctx;
struct ifqueue ue_rxq;
struct mbufq ue_rxq;
struct usb_callout ue_watchdog;
struct usb_ether_cfg_task ue_sync_task[2];
struct usb_ether_cfg_task ue_media_task[2];