freebsd-nq/sys
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
..
alpha Make ttyconsolemode() call ttsetwater() so that drivers don't have to. 2005-10-16 20:58:22 +00:00
amd64 Redo physical/logical CPU count. 2005-10-17 23:23:20 +00:00
arm Use the clock count register as a timecounter, as it's more accurate. 2005-10-17 14:51:01 +00:00
boot Re-implement rev.1.76 with respect to the code size. 2005-10-16 20:22:36 +00:00
bsm For consistency with more system include files, add a trailing '_' to 2005-05-29 16:11:34 +00:00
cam Make the exploring of all luns supported by an HBA more of a 2005-09-16 01:26:17 +00:00
coda Merge the dev_clone and dev_clone_cred event handlers into a single 2005-08-08 19:55:32 +00:00
compat Another round of cleanups and fixes: 2005-10-18 19:52:15 +00:00
conf Move dc sources from pci and dev/mii into dev/dc. 2005-10-18 06:11:59 +00:00
contrib In detach method, move if_free() after bus_teardown_intr(). 2005-10-13 21:11:20 +00:00
crypto Add VIA/ACE "PadLock" support as a crypto(9) driver. 2005-08-18 00:30:22 +00:00
ddb - Call db_setup_paging() for traceall. 2005-10-02 22:57:31 +00:00
dev Another round of cleanups and fixes: 2005-10-18 19:52:15 +00:00
doc
fs Implement the full range of ISO9660 number conversion routines in iso.h. 2005-10-18 13:35:08 +00:00
gdb
geom Rough implementation of the create and add verbs. The verbs cause 2005-10-09 17:10:35 +00:00
gnu Apply the same fix to a potential race in the ISDOTDOT code in 2005-10-16 21:39:29 +00:00
i4b Propagate rename of IFF_OACTIVE and IFF_RUNNING to IFF_DRV_OACTIVE and 2005-08-09 10:20:02 +00:00
i386 Redo physical/logical CPU count. 2005-10-17 23:23:20 +00:00
ia64 Make ttyconsolemode() call ttsetwater() so that drivers don't have to. 2005-10-16 20:58:22 +00:00
isa Fix an endianness issue in pnp_eisaformat(). This corrects printing PnP IDs 2005-09-28 15:01:58 +00:00
isofs/cd9660 Implement the full range of ISO9660 number conversion routines in iso.h. 2005-10-18 13:35:08 +00:00
kern Move the initialization of the devmtx into the mutex_init() function 2005-10-18 18:27:44 +00:00
libkern Backout strtok() addition to libkern, strsep() is enough and strtok() 2005-10-06 19:06:07 +00:00
modules In this case, disable wrapping of fake opt_*.h targets in 2005-10-18 07:54:02 +00:00
net Use new (inline) functions for calls into driver. 2005-10-16 20:44:18 +00:00
net80211 Properly set ic_curchan before calling back to device driver to do channel 2005-08-30 14:27:47 +00:00
netatalk Forward declare atalkdomain with static linkage, not extern, since 2005-09-11 16:04:56 +00:00
netatm Propagate rename of IFF_OACTIVE and IFF_RUNNING to IFF_DRV_OACTIVE and 2005-08-09 10:20:02 +00:00
netgraph Use new (inline) functions for calls into driver. 2005-10-16 20:44:18 +00:00
netinet Change the reference counting to count the number of cloned interfaces for each 2005-10-12 19:52:16 +00:00
netinet6 fixed a kernel crash when IPv6 PIM-SM routing is enabled and a PIM register message is received 2005-10-17 13:47:31 +00:00
netipsec Replace custom mbuf writeability test with generic M_WRITABLE() test 2005-09-26 20:35:45 +00:00
netipx Forward declaring static variables as extern is invalid ISO-C. Now that 2005-09-07 10:06:14 +00:00
netkey SADB_UPDATE did not return an error when key length is invalid. 2005-08-22 07:05:14 +00:00
netnatm Forward declaring static variables as extern is invalid ISO-C. Now that 2005-09-07 10:06:14 +00:00
netncp Change API of mb_copy_t in libmchain so that netsmb can handle 2005-07-29 13:22:37 +00:00
netsmb Allow user to override default port numbers used by communication 2005-10-02 08:32:49 +00:00
nfs Fixes for NFS crashes on architectures that require strict alignment. 2005-07-14 20:08:27 +00:00
nfs4client - We want if (mrep != NULL) not if (m_freem != NULL). m_freem will never 2005-04-25 05:11:19 +00:00
nfsclient - Use strsep() instead of strtok(). 2005-10-06 19:04:08 +00:00
nfsserver Use the refcount API to manage the reference count for user credentials 2005-09-27 18:09:42 +00:00
opencrypto Fix bogus check. It was possible to panic the kernel by giving 0 length. 2005-08-18 11:58:03 +00:00
pc98 Eliminate two unused arguments to ttycreate(). 2005-10-16 20:22:56 +00:00
pccard Remove the kernel portion of OLDCARD. I'm working on a replacement 2005-09-25 21:29:32 +00:00
pci Remove dc after repo copy. 2005-10-18 06:10:03 +00:00
posix4 Const-qualify ksem_timedwait's parameter abstime as it's only passed in. 2005-10-18 11:46:24 +00:00
powerpc 1. Change prototype of trapsignal and sendsig to use ksiginfo_t *, most 2005-10-14 12:43:47 +00:00
rpc Add GIANT_REQUIRED and WITNESS sleep warnings to uprintf() and tprintf(), 2005-09-19 16:51:43 +00:00
security Lock object while we iterate through it's backing objects. 2005-10-09 02:37:27 +00:00
sparc64 Fix compiling. 2005-10-15 02:09:43 +00:00
sys Regenerate. 2005-10-18 11:49:14 +00:00
tools Add convenience macros for bus_space usage that doesn't require specification 2005-09-24 20:11:07 +00:00
ufs Correct the type of the temporary variable used by ufs_lookup.c:1.78 2005-10-16 21:31:46 +00:00
vm Move execve's access time update functionality into a new 2005-10-12 06:56:00 +00:00
Makefile