freebsd-nq/sys/dev
Adrian Chadd af2441fbc7 [ath] Attempt to fix epoch handling.
The epoch stuff with taskqueues works fine if the driver never calls
the receive path in other contexts, but this driver does.  If there was
a chip reset during active receive then part of the reset will call
the receive path to flush out any active packets before reinitialising
the receive queue and that needs to be done with the epoch held.

So:

* make the receive task a normal task again
* explicitly call epoch enter/exit around the legacy and newer DMA
  receive paths
* add a couple of epoch asserts to ensure that the receive packet
  path itself is called with epoch held.

This fixes it on my Atom eeepc laptop (circa 2010!) that I did
all of my initial 802.11n work in this driver and net80211.

Tested:

* AR9285, STA mode

TODO:

* Test on EDMA chipset (AR9380)
* Test in AP/adhoc modes, just to be sure (eg for beacon
  receive processing in particular.)
2020-02-20 07:12:43 +00:00
..
aac Ever since the block layer expanded its command syntax beyond just 2020-02-07 09:22:08 +00:00
aacraid Remove ifdefs for FreeBSD 6, 7, 8 and 9. Assume we're past that. 2019-12-06 21:50:24 +00:00
acpi_support acpi_ibm: remove superfluous cast 2020-02-02 20:56:18 +00:00
acpica Add _BIX (Battery Information Extended) object support. 2020-02-19 06:28:55 +00:00
adb Revert r355806: kbd drivers: don't double register keyboard drivers 2019-12-26 17:09:36 +00:00
adlink
ae Convert to if_foreach_llmaddr() KPI. 2019-10-21 17:59:53 +00:00
age Convert to if_foreach_llmaddr() KPI. 2019-10-21 18:00:17 +00:00
agp Complete the removal of the "wire_count" field from struct vm_page. 2019-09-25 16:11:35 +00:00
ahci Merge ^/head r357855 through r357920. 2020-02-14 19:32:58 +00:00
aic7xxx aic7xxx(4): Fix unintended sign extension in ahd_inq() 2020-01-30 18:12:24 +00:00
al_eth Use NET_TASK_INIT() and NET_GROUPTASK_INIT() for drivers that process 2020-02-11 18:57:07 +00:00
alc Use NET_TASK_INIT() and NET_GROUPTASK_INIT() for drivers that process 2020-02-11 18:57:07 +00:00
ale Use NET_TASK_INIT() and NET_GROUPTASK_INIT() for drivers that process 2020-02-11 18:57:07 +00:00
alpm
altera Fix syntax error from r357647. Adjust a variable name to make the use more 2020-02-17 20:12:34 +00:00
amd_ecc_inject ecc_inject: Add Hygon Dhyana support. 2020-02-13 19:10:51 +00:00
amdgpio amdgpio: small formatting cleanup 2019-05-24 06:07:33 +00:00
amdpm amdpm: Add Hygon Dhyana support. 2020-02-13 19:07:42 +00:00
amdsbwd amdsbwd, intpm: Add Hygon Dhyana support. 2020-02-13 19:09:24 +00:00
amdsmb
amdsmn amdtemp(4): Add support for Family 17h CCD sensors 2020-01-28 01:39:50 +00:00
amdtemp amdtemp(4): Remove dead code that snuck in with r357190 2020-01-28 03:27:06 +00:00
amr Ever since the block layer expanded its command syntax beyond just 2020-02-07 09:22:08 +00:00
an an(4): Require privileges for all SIOCGAIRONET requests. 2019-12-17 21:34:38 +00:00
arcmsr
asmc
ata Remove sparc64 kernel support 2020-02-03 17:35:11 +00:00
ath [ath] Attempt to fix epoch handling. 2020-02-20 07:12:43 +00:00
atkbdc psm: use make_dev_s instead of make_dev 2020-02-04 18:45:28 +00:00
axgbe
bce Convert to if_foreach_llmaddr() KPI. 2019-10-21 18:06:19 +00:00
beri Introduce flag IFF_NEEDSEPOCH that marks Ethernet interfaces that 2020-01-23 01:41:09 +00:00
bfe Convert to if_foreach_llmaddr() KPI. 2019-10-21 18:06:23 +00:00
bge Use NET_TASK_INIT() and NET_GROUPTASK_INIT() for drivers that process 2020-02-11 18:57:07 +00:00
bhnd Avoid relying on header pollution from sys/refcount.h. 2019-07-29 20:26:01 +00:00
bktr
bnxt bnxt(4): Eliminate wrong sizeof() expression in memset() 2020-01-29 05:42:24 +00:00
bvm
bwi Widen EPOCH(9) usage in PCI WLAN drivers. 2020-01-30 10:28:01 +00:00
bwn Use NET_TASK_INIT() and NET_GROUPTASK_INIT() for drivers that process 2020-02-11 18:57:07 +00:00
bxe Use NET_TASK_INIT() and NET_GROUPTASK_INIT() for drivers that process 2020-02-11 18:57:07 +00:00
cadence cgem: Add another compat string for the SiFive fu540 2020-01-29 15:58:19 +00:00
cardbus Regularize my copyright notice 2019-12-04 16:56:11 +00:00
cas Use NET_TASK_INIT() and NET_GROUPTASK_INIT() for drivers that process 2020-02-11 18:57:07 +00:00
ce
cesa
cfe sys/dev/cfi: include sys/types.h as well 2020-01-02 22:52:31 +00:00
cfi Ever since the block layer expanded its command syntax beyond just 2020-02-07 09:22:08 +00:00
chromebook_platform [ig4] Give common name to PCI and ACPI device drivers 2019-11-03 20:39:46 +00:00
ciss Don't print the request we may be aborting in ciss_notify_abort as 2019-06-13 05:19:42 +00:00
cmx Extract eventfilter declarations to sys/_eventfilter.h 2019-05-20 00:38:23 +00:00
coretemp Extract eventfilter declarations to sys/_eventfilter.h 2019-05-20 00:38:23 +00:00
cp
cpuctl TSX Asynchronous Abort mitigation for Intel CVE-2019-11135. 2019-11-16 00:26:42 +00:00
cpufreq cpufreq_dt: Do not fetch again hw.ncpu 2019-12-03 22:26:55 +00:00
ctau ctau.c: convert from KOI8-R to UTF-8 encoding 2019-12-03 16:52:03 +00:00
cx
cxgb Convert to if_foreach_llmaddr() KPI. 2019-10-21 18:11:08 +00:00
cxgbe cxgbe(4): Congestion drops are maintained per E-channel and not per 2020-02-19 00:48:58 +00:00
cy
cyapa [cyapa] Postpone start of the polling thread until sleep is available 2019-11-03 20:55:28 +00:00
dc Remove sparc64 kernel support 2020-02-03 17:35:11 +00:00
dcons Extract eventfilter declarations to sys/_eventfilter.h 2019-05-20 00:38:23 +00:00
dme
dpaa Introduce flag IFF_NEEDSEPOCH that marks Ethernet interfaces that 2020-01-23 01:41:09 +00:00
dpms
drm2 Mark more nodes as CTLFLAG_MPSAFE or CTLFLAG_NEEDGIANT (5 of many) 2020-02-16 17:11:54 +00:00
dwc Convert to if_foreach_llmaddr() KPI. 2019-10-21 18:11:19 +00:00
e1000 Add support for latest Intel I219 device, supported in Lenovo Carbon X1 v7 2020-01-20 12:53:02 +00:00
efidev efirt efi_enter(): Release acquired locks and restore FPU ownership if 2019-06-03 15:41:45 +00:00
ena Use NET_TASK_INIT() and NET_GROUPTASK_INIT() for drivers that process 2020-02-11 18:57:07 +00:00
esp Remove sparc64 kernel support 2020-02-03 17:35:11 +00:00
et Convert to if_foreach_llmaddr() KPI. 2019-10-21 18:11:28 +00:00
etherswitch Fix panic when running etherswitchcfg port command. 2019-12-25 11:26:38 +00:00
evdev Extract eventfilter declarations to sys/_eventfilter.h 2019-05-20 00:38:23 +00:00
exca Move attachment of pccard children into exca library. Attach the 2019-12-16 21:35:02 +00:00
extres regulator_fixed: Add a get_voltage method 2020-01-16 20:52:26 +00:00
fb Remove sparc64 kernel support 2020-02-03 17:35:11 +00:00
fdc Regularize my copyright notice 2019-12-04 16:56:11 +00:00
fdt fdt_pinctrl: Add new methods for gpios 2020-01-16 21:19:27 +00:00
ffec Convert to if_foreach_llmaddr() KPI. 2019-10-21 18:11:32 +00:00
filemon
firewire Remove sparc64 kernel support 2020-02-03 17:35:11 +00:00
flash Enter the network epoch in the xdma interrupt handler if required 2020-02-08 23:07:29 +00:00
fxp Convert to if_foreach_llmaddr() KPI. 2019-10-21 18:06:53 +00:00
gem Remove sparc64 kernel support 2020-02-03 17:35:11 +00:00
glxiic Create new wrapper function: bus_delayed_attach_children() 2019-12-13 19:39:33 +00:00
glxsb
gpio [gpioths] Fix GPIOTHS_DEBUG 2019-12-27 04:11:14 +00:00
gxemul
hdmi Remove "all rights reserved" from copyright for the file that Jared McNeill 2019-12-03 21:05:33 +00:00
hifn
hme Mark hme(4) as deprecated. 2020-02-12 00:58:17 +00:00
hpt27xx Revert r355021. In my haste to grep for Giant, I missed that it was in 2019-11-26 17:25:49 +00:00
hptiop
hptmv Fix the following -Werror warning from clang 10.0.0 in hptmv(4): 2020-02-15 18:37:26 +00:00
hptnr
hptrr
hwpmc pmc: Add Hygon Dhyana support. 2020-02-07 22:28:04 +00:00
hyperv hyperv: Add Hygon Dhyana support. 2020-02-13 19:12:07 +00:00
ic
ichiic [ig4] Remove unused methods from bus interface 2019-12-10 20:23:05 +00:00
ichsmb Create new wrapper function: bus_delayed_attach_children() 2019-12-13 19:39:33 +00:00
ichwd Extract eventfilter declarations to sys/_eventfilter.h 2019-05-20 00:38:23 +00:00
ida Ever since the block layer expanded its command syntax beyond just 2020-02-07 09:22:08 +00:00
if_ndis Introduce flag IFF_NEEDSEPOCH that marks Ethernet interfaces that 2020-01-23 01:41:09 +00:00
iicbus twsi: Rework how we handle the i2c messages 2020-01-10 18:52:14 +00:00
iir Extract eventfilter declarations to sys/_eventfilter.h 2019-05-20 00:38:23 +00:00
imcsmb
intel
intpm amdsbwd, intpm: Add Hygon Dhyana support. 2020-02-13 19:09:24 +00:00
io
ioat Don't spin on cleanup_lock if we are not interrupt. 2019-12-31 04:16:52 +00:00
ipmi The current IPMI KCS code is waiting 100us for all transitions (roughly 2019-06-12 16:06:31 +00:00
ips Ever since the block layer expanded its command syntax beyond just 2020-02-07 09:22:08 +00:00
ipw Widen EPOCH(9) usage in PCI WLAN drivers. 2020-01-30 10:28:01 +00:00
isci Enforce a 4GB DMA boundary on isci(4) 2019-07-10 22:23:59 +00:00
iscsi Mark more nodes as CTLFLAG_MPSAFE or CTLFLAG_NEEDGIANT (1 of many) 2020-02-15 18:48:38 +00:00
iscsi_initiator Separate kernel crc32() implementation to its own header (gsb_crc32.h) and 2019-06-17 19:49:08 +00:00
iser
isl
ismt
isp Remove sparc64 kernel support 2020-02-03 17:35:11 +00:00
ispfw Remove sparc64 kernel support 2020-02-03 17:35:11 +00:00
itwd itwd(4): driver for watchdog function in ITE Super I/O chips 2019-10-16 14:57:38 +00:00
iwi Widen EPOCH(9) usage in PCI WLAN drivers. 2020-01-30 10:28:01 +00:00
iwm Widen EPOCH(9) usage in PCI WLAN drivers. 2020-01-30 10:28:01 +00:00
iwn Widen EPOCH(9) usage in PCI WLAN drivers. 2020-01-30 10:28:01 +00:00
ixgbe ixgbe(4): Eliminate bogus sizeof() expressions 2020-01-29 05:31:40 +00:00
ixl Miscellaneous typo fixes 2020-02-07 19:53:07 +00:00
jedec_dimm
jme Convert to if_foreach_llmaddr() KPI. 2019-10-21 18:11:43 +00:00
kbd kbd: merge linker set drivers into standard kbd driver list 2019-12-26 15:21:34 +00:00
kbdmux kbdmux: simplify modevent handler 2019-12-26 17:25:51 +00:00
ksyms Convert ksyms(4) to use an OBJT_PHYS object. 2019-11-06 17:03:06 +00:00
le Miscellaneous typo fixes 2020-02-07 19:53:07 +00:00
led Extract eventfilter declarations to sys/_eventfilter.h 2019-05-20 00:38:23 +00:00
lge Convert to if_foreach_llmaddr() KPI. 2019-10-21 18:07:11 +00:00
liquidio Mark lio taskqueue as requiring network epoch. 2020-02-11 19:13:34 +00:00
malo Use NET_TASK_INIT() and NET_GROUPTASK_INIT() for drivers that process 2020-02-11 18:57:07 +00:00
mbox
mc146818
md Don't hold the object lock while calling getpages. 2020-01-19 23:47:32 +00:00
mdio
mem
mfi Ever since the block layer expanded its command syntax beyond just 2020-02-07 09:22:08 +00:00
mgb mgb: Correct spello - recieve -> receive 2019-11-06 20:43:40 +00:00
mge Convert to if_foreach_llmaddr() KPI. 2019-10-21 18:07:15 +00:00
mii mii(4): Fix ivars leak when the bus device or bus children detach. 2019-12-20 20:10:26 +00:00
mk48txx
mlx Ever since the block layer expanded its command syntax beyond just 2020-02-07 09:22:08 +00:00
mlx4 Widen EPOCH(9) usage in mlx4en(4). 2020-01-31 10:41:47 +00:00
mlx5 Don't check the auth algorithm for GCM. 2020-02-13 23:04:11 +00:00
mlxfw
mly
mmc Ever since the block layer expanded its command syntax beyond just 2020-02-07 09:22:08 +00:00
mmcnull
mn
mpr Advertise the MPI Message Version that's contained in the IOCFacts message 2020-02-07 12:15:39 +00:00
mps Advertise the MPI Message Version that's contained in the IOCFacts message 2020-02-07 12:15:39 +00:00
mpt Remove sparc64 kernel support 2020-02-03 17:35:11 +00:00
mrsas Fix some misleading indentation warnings reported by recent clang. 2020-01-26 14:20:57 +00:00
msk Enter net epoch in msk_tick. 2020-01-27 00:14:51 +00:00
mthca Remove sparc64 kernel support 2020-02-03 17:35:11 +00:00
mvs Use a void * argument to callout handlers instead of timeout_t casts. 2019-12-05 18:47:29 +00:00
mwl Use NET_TASK_INIT() and NET_GROUPTASK_INIT() for drivers that process 2020-02-11 18:57:07 +00:00
mxge Remove sparc64 kernel support 2020-02-03 17:35:11 +00:00
my Convert to if_foreach_llmaddr() KPI. 2019-10-21 18:11:58 +00:00
nctgpio nctgpio: improve performance (latency) of operation 2019-10-22 14:20:35 +00:00
neta Implement jumbo frame support in mvneta driver 2020-02-08 13:33:47 +00:00
netfpga10g/nf10bmac
netmap Use NET_TASK_INIT() and NET_GROUPTASK_INIT() for drivers that process 2020-02-11 18:57:07 +00:00
nfe Use NET_TASK_INIT() and NET_GROUPTASK_INIT() for drivers that process 2020-02-11 18:57:07 +00:00
nfsmb
nge Convert to if_foreach_llmaddr() KPI. 2019-10-21 18:07:28 +00:00
nmdm Extract eventfilter declarations to sys/_eventfilter.h 2019-05-20 00:38:23 +00:00
ntb Merge ^/head r357855 through r357920. 2020-02-14 19:32:58 +00:00
null
nvd Add missing break statements in r351004. 2019-08-14 02:02:14 +00:00
nvdimm Use atomic for start_count in devstat_start_transaction(). 2019-12-30 03:13:38 +00:00
nvme Ever since the block layer expanded its command syntax beyond just 2020-02-07 09:22:08 +00:00
nvram
nvram2env
oce random(9): Deprecate random(9), remove meaningless srandom(9) 2019-12-26 19:41:09 +00:00
ocs_fc schedlock 1/4 2019-12-15 21:11:15 +00:00
ofw Remove sparc64 kernel support 2020-02-03 17:35:11 +00:00
otus Enter the network epoch in USB WiFi drivers when processing input 2020-01-24 21:04:33 +00:00
ow Update owc_gpiobus (one-wire over gpio) to the modern gpio_pin interface. 2019-12-17 15:56:48 +00:00
pbio
pccard Regularize my copyright notice 2019-12-04 16:56:11 +00:00
pccbb Add back accidentally dropped masking... 2019-12-16 23:08:09 +00:00
pcf Remove sparc64 kernel support 2020-02-03 17:35:11 +00:00
pci Fix typo. 2020-02-17 13:26:36 +00:00
pms Miscellaneous typo fixes 2020-02-07 19:53:07 +00:00
powermac_nvram
ppbus Miscellaneous typo fixes 2020-02-07 19:53:07 +00:00
ppc
proto Remove sparc64 kernel support 2020-02-03 17:35:11 +00:00
psci Add generic arm/arm64 secure-monitor SMCCC interface and switch 2019-09-13 15:56:33 +00:00
pst Ever since the block layer expanded its command syntax beyond just 2020-02-07 09:22:08 +00:00
pty
puc Miscellaneous typo fixes 2020-02-07 19:53:07 +00:00
pwm Remove "all rights reserved" from copyright for the file I own. 2019-12-03 21:00:45 +00:00
qlnx Convert to if_foreach_llmaddr() KPI. 2019-10-21 18:12:12 +00:00
qlxgb qlxgb(4): Use defined evaluation order 2020-01-29 04:41:26 +00:00
qlxgbe Use NET_TASK_INIT() and NET_GROUPTASK_INIT() for drivers that process 2020-02-11 18:57:07 +00:00
qlxge qlxge(4): Ditto r357244 2020-01-29 04:42:46 +00:00
quicc Remove more needless <sys/tty.h> includes 2019-12-01 20:43:37 +00:00
ral Widen EPOCH(9) usage in PCI WLAN drivers. 2020-01-30 10:28:01 +00:00
random vmgenid(4): Integrate as a random(4) source 2020-01-01 00:35:02 +00:00
rc
rccgpio
re Use NET_TASK_INIT() and NET_GROUPTASK_INIT() for drivers that process 2020-02-11 18:57:07 +00:00
rl Convert to if_foreach_llmaddr() KPI. 2019-10-21 18:07:35 +00:00
rndtest
rp Remove more needless <sys/tty.h> includes 2019-12-01 20:43:37 +00:00
rt Use NET_TASK_INIT() and NET_GROUPTASK_INIT() for drivers that process 2020-02-11 18:57:07 +00:00
rtwn Widen EPOCH(9) usage in PCI WLAN drivers. 2020-01-30 10:28:01 +00:00
safe
sbni Introduce flag IFF_NEEDSEPOCH that marks Ethernet interfaces that 2020-01-23 01:41:09 +00:00
scc Remove sparc64 kernel support 2020-02-03 17:35:11 +00:00
sdhci No need to have an extra layer of indirection here. Call the sdhci_cam_requiest 2020-01-27 22:20:02 +00:00
sdio Add SDIO support. 2019-06-08 16:26:56 +00:00
sec
sfxge Remove sparc64 kernel support 2020-02-03 17:35:11 +00:00
sge Convert to if_foreach_llmaddr() KPI. 2019-10-21 18:07:40 +00:00
siis Use a void * argument to callout handlers instead of timeout_t casts. 2019-12-05 18:47:29 +00:00
sis Convert to if_foreach_llmaddr() KPI. 2019-10-21 18:07:44 +00:00
sk Convert to if_foreach_llmaddr() KPI. 2019-10-21 18:07:49 +00:00
smartpqi Decrease logging severity when adding a device or reading config table. 2020-01-07 16:07:30 +00:00
smbus
smc Use NET_TASK_INIT() and NET_GROUPTASK_INIT() for drivers that process 2020-02-11 18:57:07 +00:00
snp snp: don't reference tp->t_mtx directly 2019-11-29 03:51:01 +00:00
sound Mark more nodes as CTLFLAG_MPSAFE or CTLFLAG_NEEDGIANT (2 of many) 2020-02-15 18:52:12 +00:00
speaker
spibus Consistently use busy and vm_page_valid() rather than touching page bits 2020-01-23 04:54:49 +00:00
ste Convert to if_foreach_llmaddr() KPI. 2019-10-21 18:07:53 +00:00
stge Convert to if_foreach_llmaddr() KPI. 2019-10-21 18:07:56 +00:00
superio superio: do not crash if failed to create the character device 2019-10-25 16:30:24 +00:00
sym Remove sparc64 kernel support 2020-02-03 17:35:11 +00:00
syscons Remove sparc64 kernel support 2020-02-03 17:35:11 +00:00
tcp_log
tdfx
terasic terasic_mtl: kill off final dummy keyboard driver 2019-12-23 21:46:48 +00:00
ti Convert to if_foreach_llmaddr() KPI. 2019-10-21 18:08:03 +00:00
tpm Fix build. 2020-02-01 23:16:30 +00:00
tsec Convert to if_foreach_llmaddr() KPI. 2019-10-21 18:12:36 +00:00
twa
twe Ever since the block layer expanded its command syntax beyond just 2020-02-07 09:22:08 +00:00
tws Extract eventfilter declarations to sys/_eventfilter.h 2019-05-20 00:38:23 +00:00
uart Remove sparc64 kernel support 2020-02-03 17:35:11 +00:00
ubsec
usb Mark more nodes as CTLFLAG_MPSAFE or CTLFLAG_NEEDGIANT (2 of many) 2020-02-15 18:52:12 +00:00
veriexec vfs: drop the mostly unused flags argument from VOP_UNLOCK 2020-01-03 22:29:58 +00:00
vge Convert to if_foreach_llmaddr() KPI. 2019-10-21 18:08:12 +00:00
viapm
viawd Extract eventfilter declarations to sys/_eventfilter.h 2019-05-20 00:38:23 +00:00
videomode
virtio Use NET_TASK_INIT() and NET_GROUPTASK_INIT() for drivers that process 2020-02-11 18:57:07 +00:00
vkbd Revert r355806: kbd drivers: don't double register keyboard drivers 2019-12-26 17:09:36 +00:00
vmd This driver attaches to the Intel VMD drive and connects a new PCI domain 2019-10-10 03:12:17 +00:00
vmgenc vmgenid(4): Integrate as a random(4) source 2020-01-01 00:35:02 +00:00
vmware vmxnet3: add support for RSS kernel option 2020-01-23 11:05:03 +00:00
vnic Use NET_TASK_INIT() and NET_GROUPTASK_INIT() for drivers that process 2020-02-11 18:57:07 +00:00
vr Use NET_TASK_INIT() and NET_GROUPTASK_INIT() for drivers that process 2020-02-11 18:57:07 +00:00
vt Fix a stray 'e'from my last commit. 2020-02-03 19:36:24 +00:00
vte Convert to if_foreach_llmaddr() KPI. 2019-10-21 18:08:20 +00:00
watchdog Extract eventfilter declarations to sys/_eventfilter.h 2019-05-20 00:38:23 +00:00
wbwd wbwd: small clean-ups and improvements 2019-10-17 06:21:09 +00:00
wi Widen EPOCH(9) usage in PCI WLAN drivers. 2020-01-30 10:28:01 +00:00
wpi Widen EPOCH(9) usage in PCI WLAN drivers. 2020-01-30 10:28:01 +00:00
wtap Use NET_TASK_INIT() and NET_GROUPTASK_INIT() for drivers that process 2020-02-11 18:57:07 +00:00
xdma Enter the network epoch in the xdma interrupt handler if required 2020-02-08 23:07:29 +00:00
xen Ever since the block layer expanded its command syntax beyond just 2020-02-07 09:22:08 +00:00
xilinx Enter the network epoch in the xdma interrupt handler if required 2020-02-08 23:07:29 +00:00
xl Use NET_TASK_INIT() and NET_GROUPTASK_INIT() for drivers that process 2020-02-11 18:57:07 +00:00
xz
zlib Expose zlib's utility functions in Z_SOLO library when building kernel. 2019-08-07 01:41:17 +00:00