freebsd-nq/sys/dev
Bill Paul a3ced67adf Another round of cleanups and fixes:
- Change ndis_return() from a DPC to a workitem so that it doesn't
  run at DISPATCH_LEVEL (with the dispatcher lock held).

- In if_ndis.c, submit packets to the stack via (*ifp->if_input)() in
  a workitem instead of doing it directly in ndis_rxeof(), because
  ndis_rxeof() runs in a DPC, and hence at DISPATCH_LEVEL. This
  implies that the 'dispatch level' mutex for the current CPU is
  being held, and we don't want to call if_input while holding
  any locks.

- Reimplement IoConnectInterrupt()/IoDisconnectInterrupt(). The original
  approach I used to track down the interrupt resource (by scanning
  the device tree starting at the nexus) is prone to problems when
  two devices share an interrupt. (E.g removing ndis1 might disable
  interrupts for ndis0.) The new approach is to multiplex all the
  NDIS interrupts through a common internal dispatcher (ntoskrnl_intr())
  and allow IoConnectInterrupt()/IoDisconnectInterrupt() to add or
  remove interrupts from the dispatch list.

- Implement KeAcquireInterruptSpinLock() and KeReleaseInterruptSpinLock().

- Change the DPC and workitem threads to use the KeXXXSpinLock
  API instead of mtx_lock_spin()/mtx_unlock_spin().

- Simplify the NdisXXXPacket routines by creating an actual
  packet pool structure and using the InterlockedSList routines
  to manage the packet queue.

- Only honor the value returned by OID_GEN_MAXIMUM_SEND_PACKETS
  for serialized drivers. For deserialized drivers, we now create
  a packet array of 64 entries. (The Microsoft DDK documentation
  says that for deserialized miniports, OID_GEN_MAXIMUM_SEND_PACKETS
  is ignored, and the driver for the Marvell 8335 chip, which is
  a deserialized miniport, returns 1 when queried.)

- Clean up timer handling in subr_ntoskrnl.

- Add the following conditional debugging code:
	NTOSKRNL_DEBUG_TIMERS - add debugging and stats for timers
	NDIS_DEBUG_PACKETS - add extra sanity checking for NdisXXXPacket API
	NTOSKRNL_DEBUG_SPINLOCKS - add test for spinning too long

- In kern_ndis.c, always start the HAL first and shut it down last,
  since Windows spinlocks depend on it. Ntoskrnl should similarly be
  started second and shut down next to last.
2005-10-18 19:52:15 +00:00
..
aac Fix a regression that prevented PERC3 hardware from working. Apparently they 2005-10-14 16:22:45 +00:00
acpi_support Canonize the include of acpi.h. 2005-09-11 18:39:03 +00:00
acpica Commit a workaround to a problem with resource allocation. This helps 2005-09-16 07:02:29 +00:00
adlink Use the new bus_space/resource convenience functions. 2005-09-24 20:46:02 +00:00
advansys Don't try to probe ISA PnP devices for now until this driver can grow a 2005-07-13 15:44:53 +00:00
agp - Add a work-around for nForce3-250. Aperture base address encoded in misc. 2005-09-27 20:57:50 +00:00
aha Remove bus_{mem,p}io.h and related code for a micro-optimization on i386 2005-05-29 04:42:30 +00:00
ahb Remove bus_{mem,p}io.h and related code for a micro-optimization on i386 2005-05-29 04:42:30 +00:00
aic Eliminate support for oldcard by removing the compat shims. 2005-09-20 19:45:08 +00:00
aic7xxx Use the AHC_DISABLE_PCI_PERR flag to silence parity error reporting on 2005-09-22 05:11:35 +00:00
amd Remove bus_{mem,p}io.h and related code for a micro-optimization on i386 2005-05-29 04:42:30 +00:00
amr Complete the removal of __FreeBSD_version checks from the amr driver. The 2005-08-08 12:16:21 +00:00
an MFp4: Remove OLDCARD shims 2005-09-22 04:51:11 +00:00
ar Propagate rename of IFF_OACTIVE and IFF_RUNNING to IFF_DRV_OACTIVE and 2005-08-09 10:20:02 +00:00
arcmsr Use same RID we allocated the resource with to free it 2005-06-05 23:05:26 +00:00
arl Make sure that we call if_free(ifp) after bus_teardown_intr. Since we 2005-09-19 03:10:21 +00:00
asr Only create the rdpti alias if the asr device creation succeeds. 2005-04-29 04:47:11 +00:00
ata Minor cleanups, no functional changes 2005-10-13 08:05:21 +00:00
ath Fix "struct ifnet" leak on detach. 2005-09-16 10:09:23 +00:00
atkbdc - Hook up the new locations of the atkbdc(4), atkbd(4) and psm(4) source 2005-06-10 20:56:38 +00:00
auxio Switch from trying to allocate up to 8 register banks for the EBus 2005-07-10 10:33:00 +00:00
awi Remove support for oldcard by removing compat shims. 2005-09-20 19:46:54 +00:00
bfe Fix "struct ifnet" leaks when attach() fails in the middle. 2005-09-16 11:25:19 +00:00
bge Implement suspend/resume methods to be more ACPI friendly. 2005-09-28 19:20:49 +00:00
bktr Remove bus_{mem,p}io.h and related code for a micro-optimization on i386 2005-05-29 04:42:30 +00:00
buslogic Remove bus_{mem,p}io.h and related code for a micro-optimization on i386 2005-05-29 04:42:30 +00:00
cardbus Calling rman_get_start() after bus_release_resource() is evil. 2005-09-27 13:33:46 +00:00
ciss There's no reason to check the valence. This allows ciss to work 2005-08-09 20:53:51 +00:00
cm Make sure that we call if_free(ifp) after bus_teardown_intr. Since we 2005-09-19 03:10:21 +00:00
cnw Make sure that we call if_free(ifp) after bus_teardown_intr. Since we 2005-09-19 03:10:21 +00:00
cp Restore if_cp.c 1.27 2005-09-27 16:57:44 +00:00
cpufreq Only activate ICH speedstep if we're going to use it. No bugs were observed 2005-03-20 01:25:21 +00:00
cs Remove oldcard support by removing the compat shims. 2005-09-20 19:49:33 +00:00
ct Change a directory layout for pc98. 2005-05-10 12:02:18 +00:00
ctau Backout if_cp 1.26, if_ct 1.27, if_cx 1.47 by obrien: 2005-09-27 16:12:49 +00:00
cx Eliminate two unused arguments to ttycreate(). 2005-10-16 20:22:56 +00:00
cy Eliminate two unused arguments to ttycreate(). 2005-10-16 20:22:56 +00:00
dc Make dc compile after repo-copy. 2005-10-18 06:09:42 +00:00
dcons Make ttyconsolemode() call ttsetwater() so that drivers don't have to. 2005-10-16 20:58:22 +00:00
de - Use m_defrag() instead of homerolling our own variant 2005-08-26 14:27:38 +00:00
dec Start each of the license/copyright comments with /*-, minor shuffle of lines 2005-01-06 01:43:34 +00:00
digi Eliminate two unused arguments to ttycreate(). 2005-10-16 20:22:56 +00:00
dpt Remove bus_{mem,p}io.h and related code for a micro-optimization on i386 2005-05-29 04:42:30 +00:00
drm Fix a buffer aging problem in new r300 code that could lead to hangs with some 2005-08-01 17:50:19 +00:00
ed Check against 8019 rather than 8029 for reading in the MAC addr since 2005-10-17 02:32:23 +00:00
eisa Make the eisa probe messages just like all the others in the system. 2005-08-01 07:09:15 +00:00
em - Use BUS_DMASYNC_PREWRITE in em_get_buf(), as the adapter is about to read 2005-10-18 00:42:10 +00:00
en - Use PCIR_BAR macro rather than hardcoding 0x10. 2005-09-29 14:56:30 +00:00
ep Better use of gone. 2005-09-20 19:50:27 +00:00
esp - Try to not leak resources in the attach functions of the esp(4) SBus 2005-05-19 14:51:10 +00:00
ex Fix "struct ifnet" leaks when attach() fails in the middle. 2005-09-16 11:25:19 +00:00
exca Minor commentary correction 2005-10-17 08:20:44 +00:00
fatm Replace custom mbuf writeability test with generic 2005-09-19 21:59:49 +00:00
fb Add a font width argument to vi_load_font_t, vi_save_font_t and vi_putm_t 2005-09-28 14:54:07 +00:00
fdc Canonize the include of acpi.h. 2005-09-11 18:39:03 +00:00
fe PC Card instead of other variants 2005-09-22 05:52:54 +00:00
firewire Fix typo. 2005-10-11 07:30:06 +00:00
fxp - Don't pollute opt_global.h with DEVICE_POLLING and introduce 2005-10-05 10:09:17 +00:00
gem - In gem_ioctl() move the call to ether_ioctl() to the default case of 2005-09-18 13:23:19 +00:00
gfb Remove bus_{mem,p}io.h and related code for a micro-optimization on i386 2005-05-29 04:42:30 +00:00
harp Stop embedding struct ifnet at the top of driver softcs. Instead the 2005-06-10 16:49:24 +00:00
hatm Replace m_extadd() with macro version MEXTADD(). 2005-09-19 22:04:41 +00:00
hfa Stop embedding struct ifnet at the top of driver softcs. Instead the 2005-06-10 16:49:24 +00:00
hifn These registers are saved by pci bus code. Remove from #if 0'd code anyway 2005-06-05 22:57:32 +00:00
hme Move hme_stop() after ether_ifdetach() and if_free() to prevent a 2005-09-08 13:50:16 +00:00
hptmv Fix a typo that broke LINT. 2005-09-08 14:13:36 +00:00
hwpmc Bug fix initialization on multi-core HTT CPUs. 2005-10-10 15:21:08 +00:00
ic cosmetic change. 2005-05-14 10:26:31 +00:00
ichsmb Make ichsmb unloadable. 2005-07-29 00:20:50 +00:00
ichwd Start each of the license/copyright comments with /*-, minor shuffle of lines 2005-01-06 01:43:34 +00:00
ida Remove bus_{mem,p}io.h and related code for a micro-optimization on i386 2005-05-29 04:42:30 +00:00
idt Stop embedding struct ifnet at the top of driver softcs. Instead the 2005-06-10 16:49:24 +00:00
ie Fix "struct ifnet" leaks when attach() fails in the middle. 2005-09-16 11:25:19 +00:00
ieee488 Use new bus_space/resource convenience functions. 2005-09-24 20:44:55 +00:00
if_ndis Another round of cleanups and fixes: 2005-10-18 19:52:15 +00:00
iicbus Remove public declarations of variables that were forgotten when they were 2005-08-10 07:10:02 +00:00
iir Remove bus_{mem,p}io.h and related code for a micro-optimization on i386 2005-05-29 04:42:30 +00:00
io Add module versions. 2004-08-02 20:42:28 +00:00
ips Fix build. 2005-09-27 09:11:44 +00:00
ipw Make sure that we call if_free(ifp) after bus_teardown_intr. Since we 2005-09-19 03:10:21 +00:00
isp AT_MAKE_TAGID needs an instance as the 2nd arg- not just a 0. 2005-07-31 23:21:19 +00:00
ispfw Roll firmware to the latest version. There are a bunch of features 2005-01-29 01:12:37 +00:00
iwi Fixes my previous commit (rev 1.20) 2005-10-07 18:11:32 +00:00
ixgb - Don't pollute opt_global.h with DEVICE_POLLING and introduce 2005-10-05 10:09:17 +00:00
joy Remove OLDCARD support by removing compat shims 2005-09-20 19:54:11 +00:00
kbd kbdmux(4) keyboard multiplexer integration 2005-07-13 23:58:57 +00:00
kbdmux Spotted a call to a cdev-related function not wrapped 2005-10-18 06:38:14 +00:00
led Add placeholder mutex argument to new_unrhdr(). 2005-03-07 11:05:47 +00:00
lge - Use if_printf() and device_printf() and axe lge_unit from the softc. 2005-10-03 15:52:34 +00:00
lmc - Don't include opt_global.h, it is always included implicitly. 2005-10-05 10:07:27 +00:00
lnc Fix "struct ifnet" leak if attach() fails in the middle. 2005-09-16 12:49:06 +00:00
mc146818 After some input from bde@ and rereading the datasheet use a MTX_SPIN 2005-06-04 23:24:50 +00:00
mca
mcd Remove bus_{mem,p}io.h and related code for a micro-optimization on i386 2005-05-29 04:42:30 +00:00
md Make sure that the worker thread knows the type early enough to 2005-10-06 19:47:04 +00:00
mem Fix module builds for i386 and amd64. 2004-08-04 18:30:31 +00:00
mii Remove dc-only pseudo phy devices after repo copy to dev/dc 2005-10-18 06:10:46 +00:00
mk48txx - Add locking. 2005-05-19 21:16:50 +00:00
mlx Add missing parenthesis around error handling code upon attaching 2005-07-30 15:53:40 +00:00
mly Retire the last of the FreeBSD 4.x compat code from the mly driver. 2005-08-08 12:23:27 +00:00
mpt Remove a couple of explicit memset(0) ops that were zeroing past the end of 2005-10-08 05:16:45 +00:00
mse Minor style(9) changes 2005-04-08 05:22:58 +00:00
my Fixup locking in if_my(4) and mark it MPSAFE: 2005-08-16 20:39:30 +00:00
ncv Remove OLDCARD support by removing compat shims 2005-09-20 19:54:11 +00:00
nge Minor tweaks and fixups: 2005-10-13 20:22:07 +00:00
nmdm Merge the dev_clone and dev_clone_cred event handlers into a single 2005-08-08 19:55:32 +00:00
nsp Remove OLDCARD support by removing compat shims 2005-09-20 19:54:11 +00:00
null Use dynamic major number allocation. 2005-02-27 22:01:09 +00:00
nve Make sure that we call if_free(ifp) after bus_teardown_intr. Since we 2005-09-19 03:10:21 +00:00
ofw Make ttyconsolemode() call ttsetwater() so that drivers don't have to. 2005-10-16 20:58:22 +00:00
owi Propagate rename of IFF_OACTIVE and IFF_RUNNING to IFF_DRV_OACTIVE and 2005-08-09 10:20:02 +00:00
patm Replace m_extadd() with macro version MEXTADD(). 2005-09-19 22:04:41 +00:00
pbio Remove bus_{mem,p}io.h and related code for a micro-optimization on i386 2005-05-29 04:42:30 +00:00
pccard Mempage should be 1024 not 4096. This fixes the multiple 16-bit cards 2005-10-16 03:58:06 +00:00
pccbb Merge in WIP from p4 for supporting ISA pccard bridges conforming to 2005-10-14 04:47:18 +00:00
pcf Account for ebus(4) defaulting to SYS_RES_MEMORY for memory resources 2005-06-04 20:29:28 +00:00
pci - Consolidate duplicated code for assigning interrupts to PCI devices via 2005-09-29 15:04:41 +00:00
pdq Propagate rename of IFF_OACTIVE and IFF_RUNNING to IFF_DRV_OACTIVE and 2005-08-09 10:20:02 +00:00
ppbus Propagate rename of IFF_OACTIVE and IFF_RUNNING to IFF_DRV_OACTIVE and 2005-08-09 10:20:02 +00:00
ppc don't use C keyword register as CPP macro argument name 2005-04-12 23:32:26 +00:00
pst Use BUS_PROBE_DEFAULT for pci probe return value 2005-03-05 18:10:49 +00:00
puc puc(4) does strange things to resources in order to fool the 2005-09-28 18:06:25 +00:00
ral Remove OLDCARD shims 2005-09-21 22:45:14 +00:00
random malloc.h relies on param.h for a definition of MAXCPU. I guess that there is 2005-05-30 05:01:44 +00:00
ray 'PC Card' instead of other variants 2005-09-22 06:01:44 +00:00
rc Eliminate two unused arguments to ttycreate(). 2005-10-16 20:22:56 +00:00
re Only allow the sk(4) driver to attach to revision 2 of the LinkSys EG1032 2005-10-14 18:51:30 +00:00
rndtest Start each of the license/copyright comments with /*-, minor shuffle of lines 2005-01-06 01:43:34 +00:00
rp we know it is called rpclose() so call it directly. 2005-10-16 20:35:05 +00:00
sab Eliminate two unused arguments to ttycreate(). 2005-10-16 20:22:56 +00:00
safe Use BUS_PROBE_DEFAULT in preference to 0 and BUS_PROBE_LOW_PRIORITY in 2005-03-01 08:58:06 +00:00
sbni Propagate rename of IFF_OACTIVE and IFF_RUNNING to IFF_DRV_OACTIVE and 2005-08-09 10:20:02 +00:00
sbsh Make sure that we call if_free(ifp) after bus_teardown_intr. Since we 2005-09-19 03:10:21 +00:00
scd Remove bus_{mem,p}io.h and related code for a micro-optimization on i386 2005-05-29 04:42:30 +00:00
sf In detach method, move if_free() after bus_teardown_intr(). 2005-10-13 21:11:20 +00:00
si Eliminate two unused arguments to ttycreate(). 2005-10-16 20:22:56 +00:00
sio Eliminate two unused arguments to ttycreate(). 2005-10-16 20:22:56 +00:00
sk Only allow the sk(4) driver to attach to revision 2 of the LinkSys EG1032 2005-10-14 18:51:30 +00:00
smbus Remove public declarations of variables that were forgotten when they were 2005-08-10 07:10:02 +00:00
sn Eliminate dead code 2005-09-22 05:56:32 +00:00
snc 'PC Card' instead of other variants 2005-09-22 06:01:44 +00:00
snp Restore the ability to detach from a tty via SIOCSTTY and document 2005-09-19 13:48:45 +00:00
sound - Locking improvements. 2005-10-05 20:05:52 +00:00
speaker - Move timerreg.h to <arch>/include and split i8253 specific defines into 2005-05-14 09:10:02 +00:00
sr Propagate rename of IFF_OACTIVE and IFF_RUNNING to IFF_DRV_OACTIVE and 2005-08-09 10:20:02 +00:00
stg Remove OLDCARD shims 2005-09-21 22:45:14 +00:00
streams Use kern_open() directly rather than a stackgap detour via open(). 2005-02-07 18:22:20 +00:00
sym Remove bus_{mem,p}io.h and related code for a micro-optimization on i386 2005-05-29 04:42:30 +00:00
syscons Add a font width argument to vi_load_font_t, vi_save_font_t and vi_putm_t 2005-09-28 14:54:07 +00:00
tdfx Use BUS_PROBE_DEFAULT in preference to 0. Also for vx, return 2005-03-01 07:50:12 +00:00
tga Remove bus_{mem,p}io.h and related code for a micro-optimization on i386 2005-05-29 04:42:30 +00:00
ti In detach method, move if_free() after bus_teardown_intr(). 2005-10-13 21:11:20 +00:00
trm Remove bus_{mem,p}io.h and related code for a micro-optimization on i386 2005-05-29 04:42:30 +00:00
twa Don't pollute the entire kernel build with -I$S/dev/twa. 2005-09-11 00:52:05 +00:00
twe Remove bus_{mem,p}io.h and related code for a micro-optimization on i386 2005-05-29 04:42:30 +00:00
tx Make sure that we call if_free(ifp) after bus_teardown_intr. Since we 2005-09-19 03:10:21 +00:00
txp - Use PCIR_BAR(). 2005-10-03 15:47:15 +00:00
uart Eliminate two unused arguments to ttycreate(). 2005-10-16 20:22:56 +00:00
ubsec Use BUS_PROBE_DEFAULT in preference to 0. Also for vx, return 2005-03-01 07:50:12 +00:00
usb Eliminate two unused arguments to ttycreate(). 2005-10-16 20:22:56 +00:00
utopia Struct ifatm isn't at the beginning of the softc anymore. Use the 2005-06-22 06:51:52 +00:00
vge - Don't pollute opt_global.h with DEVICE_POLLING and introduce 2005-10-05 10:09:17 +00:00
vkbd Merge the dev_clone and dev_clone_cred event handlers into a single 2005-08-08 19:55:32 +00:00
vr In detach method, move if_free() after bus_teardown_intr(). 2005-10-13 21:11:20 +00:00
vx Fix another edge case I just noticed when committing the previous changes: 2005-10-06 18:41:31 +00:00
watchdog Return zero when disabling watchdog, unless any of the drivers complain. 2005-09-29 12:31:44 +00:00
wds Start each of the license/copyright comments with /*-, minor shuffle of lines 2005-01-06 01:43:34 +00:00
wi Add ELSA XI330 product. This is rebadged and sold as SMC 2532W-B and 2005-10-14 15:06:16 +00:00
wl Make sure that we call if_free(ifp) after bus_teardown_intr. Since we 2005-09-19 03:10:21 +00:00
xe Fix a nasty typo. Change: 2005-10-06 08:30:40 +00:00
zs Make ttyconsolemode() call ttsetwater() so that drivers don't have to. 2005-10-16 20:58:22 +00:00