opnsense-src/sys/dev/usb
Gleb Smirnoff b8a6e03fac Widen NET_EPOCH coverage.
When epoch(9) was introduced to network stack, it was basically
dropped in place of existing locking, which was mutexes and
rwlocks. For the sake of performance mutex covered areas were
as small as possible, so became epoch covered areas.

However, epoch doesn't introduce any contention, it just delays
memory reclaim. So, there is no point to minimise epoch covered
areas in sense of performance. Meanwhile entering/exiting epoch
also has non-zero CPU usage, so doing this less often is a win.

Not the least is also code maintainability. In the new paradigm
we can assume that at any stage of processing a packet, we are
inside network epoch. This makes coding both input and output
path way easier.

On output path we already enter epoch quite early - in the
ip_output(), in the ip6_output().

This patch does the same for the input path. All ISR processing,
network related callouts, other ways of packet injection to the
network stack shall be performed in net_epoch. Any leaf function
that walks network configuration now asserts epoch.

Tricky part is configuration code paths - ioctls, sysctls. They
also call into leaf functions, so some need to be changed.

This patch would introduce more epoch recursions (see EPOCH_TRACE)
than we had before. They will be cleaned up separately, as several
of them aren't trivial. Note, that unlike a lock recursion the
epoch recursion is safe and just wastes a bit of resources.

Reviewed by:	gallatin, hselasky, cy, adrian, kristof
Differential Revision:	https://reviews.freebsd.org/D19111
2019-10-07 22:40:05 +00:00
..
controller Make control endpoint quirk for xhci(4) configurable. 2019-10-07 13:40:29 +00:00
gadget
input wmt(4): Add PNP record so it could be picked by devd/devmatch. 2018-11-10 22:14:09 +00:00
misc
net Widen NET_EPOCH coverage. 2019-10-07 22:40:05 +00:00
quirk Add support for RTL8156, 2.5GbE USB network controller, to if_cdce(4). 2019-07-10 05:45:50 +00:00
serial Support multiple serial ports per device. 2019-07-12 09:02:12 +00:00
storage
template Add cdceem(4) driver, for virtual ethernet devices compliant 2019-08-07 18:14:45 +00:00
video
wlan Extract eventfilter declarations to sys/_eventfilter.h 2019-05-20 00:38:23 +00:00
ufm_ioctl.h
uftdiio.h
uled_ioctl.h
usb.h Add cdceem(4) driver, for virtual ethernet devices compliant 2019-08-07 18:14:45 +00:00
usb_bus.h Add quirk for XHCI(4) controllers to support USB control transfers 2019-09-20 11:28:45 +00:00
usb_busdma.c
usb_busdma.h
usb_cdc.h
usb_controller.h
usb_core.c
usb_core.h
usb_debug.c
usb_debug.h
usb_dev.c
usb_dev.h
usb_device.c Extract eventfilter declarations to sys/_eventfilter.h 2019-05-20 00:38:23 +00:00
usb_device.h
usb_dynamic.c
usb_dynamic.h
usb_endian.h
usb_error.c
usb_fdt_support.c Add common support functions for USB devices configured via FDT data. 2019-05-19 16:56:59 +00:00
usb_fdt_support.h Add common support functions for USB devices configured via FDT data. 2019-05-19 16:56:59 +00:00
usb_freebsd.h
usb_freebsd_loader.h
usb_generic.c In usb(4) fix a lost completion event issue towards libusb(3). It may happen 2019-06-04 16:40:18 +00:00
usb_generic.h
usb_handle_request.c
usb_hid.c Some newer HID devices have descriptors that are larger than 1k. Bump 2019-09-07 03:51:26 +00:00
usb_hub.c Add ACPI support for USB driver. 2019-06-17 23:03:30 +00:00
usb_hub.h
usb_hub_acpi.c Fix format spec for ILP32. 2019-08-03 18:26:16 +00:00
usb_hub_private.h Add ACPI support for USB driver. 2019-06-17 23:03:30 +00:00
usb_if.m
usb_ioctl.h Increase the maximum user-space buffer size from 256kBytes to 32MBytes for 2019-09-20 11:00:02 +00:00
usb_lookup.c
usb_mbuf.c
usb_mbuf.h
usb_msctest.c
usb_msctest.h
usb_parse.c
usb_pci.h
usb_pf.c
usb_pf.h
usb_process.c
usb_process.h
usb_request.c Reduce timeout for reading the USB HUB port status to 1000ms and try to filter 2019-01-04 21:09:38 +00:00
usb_request.h
usb_transfer.c Add quirk for XHCI(4) controllers to support USB control transfers 2019-09-20 11:28:45 +00:00
usb_transfer.h
usb_util.c
usb_util.h
usbdevs Add support for TP-Link Archer T2U Nano. 2019-09-01 06:40:58 +00:00
usbdi.h Extract eventfilter declarations to sys/_eventfilter.h 2019-05-20 00:38:23 +00:00
usbdi_util.h
usbhid.h