freebsd-nq/sys/dev
Bill Paul 9b307fe2be This commit makes a bunch of changes, some big, some not so big.
- Remove the old task threads from kern_ndis.c and reimplement them in
  subr_ntoskrnl.c, in order to more properly emulate the Windows DPC
  API. Each CPU gets its own DPC queue/thread, and each queue can
  have low, medium and high importance DPCs. New APIs implemented:
  KeSetTargetProcessorDpc(), KeSetImportanceDpc() and KeFlushQueuedDpcs().
  (This is the biggest change.)

- Fix a bug in NdisMInitializeTimer(): the k_dpc pointer in the
  nmt_timer embedded in the ndis_miniport_timer struct must be set
  to point to the DPC, also embedded in the struct. Failing to do
  this breaks dequeueing of DPCs submitted via timers, and in turn
  breaks cancelling timers.

- Fix a bug in KeCancelTimer(): if the timer is interted in the timer
  queue (i.e. the timeout callback is still pending), we have to both
  untimeout() the timer _and_ call KeRemoveQueueDpc() to nuke the DPC
  that might be pending. Failing to do this breaks cancellation of
  periodic timers, which always appear to be inserted in the timer queue.

- Make use of the nmt_nexttimer field in ndis_miniport_timer: keep a
  queue of pending timers and cancel them all in ndis_halt_nic(), prior
  to calling MiniportHalt(). Also call KeFlushQueuedDpcs() to make sure
  any DPCs queued by the timers have expired.

- Modify NdisMAllocateSharedMemory() and NdisMFreeSharedMemory() to keep
  track of both the virtual and physical addresses of the shared memory
  buffers that get handed out. The AirGo MIMO driver appears to have a bug
  in it: for one of the segments is allocates, it returns the wrong
  virtual address. This would confuse NdisMFreeSharedMemory() and cause
  a crash. Why it doesn't crash Windows too I have no idea (from reading
  the documentation for NdisMFreeSharedMemory(), it appears to be a violation
  of the API).

- Implement strstr(), strchr() and MmIsAddressValid().

- Implement IoAllocateWorkItem(), IoFreeWorkItem(), IoQueueWorkItem() and
  ExQueueWorkItem(). (This is the second biggest change.)

- Make NdisScheduleWorkItem() call ExQueueWorkItem(). (Note that the
  ExQueueWorkItem() API is deprecated by Microsoft, but NDIS still uses
  it, since NdisScheduleWorkItem() is incompatible with the IoXXXWorkItem()
  API.)

- Change if_ndis.c to use the NdisScheduleWorkItem() interface for scheduling
  tasks.

With all these changes and fixes, the AirGo MIMO driver for the Belkin
F5D8010 Pre-N card now works. Special thanks to Paul Robinson
(paul dawt robinson at pwermedia dawt net) for the loan of a card
for testing.
2005-05-05 03:56:09 +00:00
..
aac Fix some busdma API violations in the dumpsys handler. 2005-05-02 22:56:52 +00:00
acpi_support Fix a small locking error. 2005-04-04 10:21:20 +00:00
acpica Add the tunable "debug.acpi.max_threads" to allow users to set the 2005-04-21 06:13:48 +00:00
adlink Instead of a rather useless generation number, use a sample number to 2005-03-19 12:55:46 +00:00
advansys Use BUS_PROBE_DEFAULT for pci probe return value 2005-03-05 19:24:22 +00:00
agp Add nForce3-250. 2005-04-08 18:04:39 +00:00
aha Simplify aha resource management, and fix a few bugs in unwinding 2005-01-19 06:54:10 +00:00
ahb Start each of the license/copyright comments with /*-, minor shuffle of lines 2005-01-06 01:43:34 +00:00
aic Remove ifdef PC98. 2005-04-13 13:02:58 +00:00
aic7xxx remove useless ptr check; cur_column can never be null 2005-03-31 05:00:31 +00:00
amd Use BUS_PROBE_DEFAULT 2005-03-06 06:55:11 +00:00
amr handle potential null ptr 2005-03-31 04:58:10 +00:00
an check copyin/copyout return values 2005-03-28 17:52:12 +00:00
ar Use BUS_PROBE_DEFAULT for pci probe return value 2005-03-05 19:06:12 +00:00
arcmsr Properly mask off the status bits when checking to see if the ccb is still 2005-05-03 07:11:19 +00:00
arl Since if_arl doesn't contain locking or run with INTR_MPSAFE, mark 2004-08-13 22:54:19 +00:00
asr Only create the rdpti alias if the asr device creation succeeds. 2005-04-29 04:47:11 +00:00
ata Reshape the dma code to be a bit more flexible so it can cope with 2005-05-03 07:55:07 +00:00
ath honor new IEEE80211_KEY_GROUP key flag 2005-04-12 17:56:43 +00:00
atkbdc Backout previous diffs - this functionality is already provided by the 2005-04-07 23:59:37 +00:00
auxio Start each of the license/copyright comments with /*-, minor shuffle of lines 2005-01-06 01:43:34 +00:00
awi reclaim mbuf chain when ieee80211_crypto_encap fails 2005-03-08 17:01:03 +00:00
bfe Releasing TX/RX descriptor dmamaps during device detachment instead of 2005-03-17 13:59:30 +00:00
bge Backout part of rev 1.71, which breaks the interfaces on IBM/Intel blade 2005-05-05 03:37:27 +00:00
bktr Use BUS_PROBE_DEFAULT for pci probe return value 2005-03-05 19:06:12 +00:00
buslogic Start each of the license/copyright comments with /*-, minor shuffle of lines 2005-01-06 01:43:34 +00:00
cardbus Use STAILQ in preference to SLIST for the resources. Insert new resources 2005-03-18 05:19:50 +00:00
ciss Add support for the P600 and name the E400. 2005-04-28 14:40:23 +00:00
cm Since if_cm doesn't contain locking or run with INTR_MPSAFE, mark 2004-08-13 22:57:44 +00:00
cnw Start each of the license/copyright comments with /*-, minor shuffle of lines 2005-01-06 01:43:34 +00:00
cp Use BUS_PROBE_DEFAULT for pci probe return value 2005-03-05 18:30:12 +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 Fix the worst offenders of style(9) with a small style sweep. 2005-01-28 06:50:59 +00:00
ct Start each of the license/copyright comments with /*-, minor shuffle of lines 2005-01-06 01:43:34 +00:00
ctau Use dynamic major number allocation. 2005-02-27 22:16:58 +00:00
cx netchild's mega-patch to isolate compiler dependencies into a central 2005-03-02 21:33:29 +00:00
cy Use BUS_PROBE_DEFAULT for pci probe return value 2005-03-05 18:30:12 +00:00
dc Fix newer Xircom CBE2-100 cards that were reporting 2005-04-18 03:31:29 +00:00
dcons Start each of the license/copyright comments with /*-, minor shuffle of lines 2005-01-06 01:43:34 +00:00
de Return BUS_PROBE_DEFAULT instead of 0. 2005-02-24 21:32:56 +00:00
dec Start each of the license/copyright comments with /*-, minor shuffle of lines 2005-01-06 01:43:34 +00:00
digi Use BUS_PROBE_DEFAULT for pci probe return value 2005-03-05 18:30:12 +00:00
dpt Remove unnecessary dpt_free(). 2005-04-13 05:03:14 +00:00
drm Fix a panic on X startup for drivers that don't init maps themselves by storing 2005-04-24 19:03:32 +00:00
ed Remove ifdef PC98. 2005-04-13 13:02:58 +00:00
eisa Now that the Adaptec 2842 has its own probe routine, no need to have 2005-03-17 17:36:07 +00:00
em Run em_local_timer() once per second instead of running it once per 2 seconds. 2005-04-05 07:06:47 +00:00
en Use BUS_PROBE_DEFAULT for pci probe return value 2005-03-05 18:30:12 +00:00
ep Make it clear that the statement following the conditional is a NOP. 2005-04-13 06:42:43 +00:00
esp Apply a torniquet to the problem of the drive unexpectedly disconnecting 2005-04-25 22:11:43 +00:00
ex Include necessary declarations 2005-01-20 20:06:44 +00:00
exca Properly calculate the offset in mapping the memory of pccards. This 2005-01-11 00:32:43 +00:00
fatm Use BUS_PROBE_DEFAULT for pci probe return value 2005-03-05 18:30:12 +00:00
fb check copyin return values when loading pallete 2005-03-26 18:01:35 +00:00
fdc If we fail a sanity check for the resources just allocated, make sure 2005-03-15 08:02:47 +00:00
fe Perliminary support for Fujitsu SCSI LAN combo card. At least for the 2005-02-20 19:40:29 +00:00
firewire Explicitly hold a reference to the cdev we have just cloned. This 2005-03-31 12:19:44 +00:00
fxp Be more conservative when enabling extended features. There are fxp(4) 2005-04-22 13:05:53 +00:00
gem Use BUS_PROBE_DEFAULT for pci probe return value 2005-03-05 18:30:12 +00:00
gfb Start each of the license/copyright comments with /*-, minor shuffle of lines 2005-01-06 01:43:34 +00:00
harp Start each of the license/copyright comments with /*-, minor shuffle of lines 2005-01-06 01:43:34 +00:00
hatm Use BUS_PROBE_DEFAULT for pci probe return value 2005-03-05 18:30:12 +00:00
hfa Use BUS_PROBE_DEFAULT for pci probe return value 2005-03-05 18:30:12 +00:00
hifn Use BUS_PROBE_DEFAULT for pci probe return value 2005-03-05 18:30:12 +00:00
hme Release the IRQ resource on detach. This fixes repeatedly loading and 2005-04-05 17:51:56 +00:00
hptmv check copyin return value (and while we're at it copyout too) 2005-03-31 05:15:27 +00:00
hwpmc Add convenience APIs pmc_width() and pmc_capabilities() to -lpmc. 2005-05-01 14:11:49 +00:00
ic Since we are quite unlikely to ever face another platform which 2005-02-06 13:46:39 +00:00
ichsmb Use BUS_PROBE_DEFAULT for pci probe return value 2005-03-05 18:17:35 +00:00
ichwd Start each of the license/copyright comments with /*-, minor shuffle of lines 2005-01-06 01:43:34 +00:00
ida Test for NULL before use. 2005-04-13 17:39:43 +00:00
idt Use BUS_PROBE_DEFAULT for pci probe return value 2005-03-05 18:17:35 +00:00
ie Start each of the license/copyright comments with /*-, minor shuffle of lines 2005-01-06 01:43:34 +00:00
ieee488 Don't leak mutex on open failure. 2005-04-04 17:37:35 +00:00
if_ndis This commit makes a bunch of changes, some big, some not so big. 2005-05-05 03:56:09 +00:00
iicbus Start each of the license/copyright comments with /*-, minor shuffle of lines 2005-01-06 01:43:34 +00:00
iir Use BUS_PROBE_DEFAULT for pci probe return value 2005-03-05 18:17:35 +00:00
io Add module versions. 2004-08-02 20:42:28 +00:00
ips Remove an extra mutex unlock in the morpheus interrupt handler. 2005-04-26 13:38:29 +00:00
ipw Initial import of ipw, iwi, ral and ural drivers: 2005-04-18 18:47:38 +00:00
isp Prefer <sys/cdefs.h>'s __printflike() macro to the recently added 2005-03-07 15:29:11 +00:00
ispfw Roll firmware to the latest version. There are a bunch of features 2005-01-29 01:12:37 +00:00
iwi Initial import of ipw, iwi, ral and ural drivers: 2005-04-18 18:47:38 +00:00
ixgb Add locking and enable INTR_MPSAFE. Eliminate spl calls. 2005-04-05 05:05:29 +00:00
joy Do the dreaded s/dev_t/struct cdev */ 2004-06-16 09:47:26 +00:00
kbd Backout previous diffs - this functionality is already provided by the 2005-04-07 23:59:37 +00:00
led Add placeholder mutex argument to new_unrhdr(). 2005-03-07 11:05:47 +00:00
lge Use BUS_PROBE_DEFAULT for pci probe return value 2005-03-05 18:17:35 +00:00
lnc Use BUS_PROBE_DEFAULT for pci probe return value 2005-03-05 18:17:35 +00:00
mc146818 Start each of the license/copyright comments with /*-, minor shuffle of lines 2005-01-06 01:43:34 +00:00
mca
mcd netchild's mega-patch to isolate compiler dependencies into a central 2005-03-02 21:33:29 +00:00
md Request a CPU private mapping from sf_buf_alloc(). If the swap-backed 2005-02-13 21:51:50 +00:00
mem Fix module builds for i386 and amd64. 2004-08-04 18:30:31 +00:00
mii On second though, print the OUI, model and revision. This is the same 2005-02-16 05:56:39 +00:00
mk48txx o Sync with the NetBSD mk48txx driver (the result simplyfies some changes 2004-11-17 12:54:12 +00:00
mlx plug resource leak 2005-03-31 21:58:53 +00:00
mly Use BUS_PROBE_DEFAULT for pci probe return value 2005-03-05 18:10:49 +00:00
mpt Use BUS_PROBE_DEFAULT for pci probe return value 2005-03-05 18:10:49 +00:00
mse Minor style(9) changes 2005-04-08 05:22:58 +00:00
my Use BUS_PROBE_DEFAULT for pci probe return value 2005-03-05 18:10:49 +00:00
ncv takawata tells me that KXLC0003 also works with this driver, so add it 2005-02-03 23:39:29 +00:00
nge fix null ptr deref when nge_newbuf is called with an existing mbuf 2005-03-28 17:49:03 +00:00
nmdm Explicitly hold a reference to the cdev we have just cloned. This 2005-03-31 12:19:44 +00:00
nsp Minor style nits 2005-02-04 02:32:43 +00:00
null Use dynamic major number allocation. 2005-02-27 22:01:09 +00:00
nve I missed a s/nv/nve/. 2005-04-26 16:07:50 +00:00
ofw Merge revision 1.5 from NetBSD: Fix a typo in a comment. 2005-02-12 19:12:17 +00:00
owi MF dev/wi: merge the pccard lists. 2005-02-03 00:40:35 +00:00
patm Use BUS_PROBE_DEFAULT for pci probe return value 2005-03-05 18:10:49 +00:00
pbio Skip PNP probes. If there are isapnp or pnpbios instances of this driver, 2005-02-11 03:56:13 +00:00
pccard Initial import of ipw, iwi, ral and ural drivers: 2005-04-18 18:47:38 +00:00
pccbb Since cbb implements the pcib_ interface, it must also implement the 2005-04-13 16:35:15 +00:00
pcf - Introduce an ofw_bus kobj-interface for retrieving the OFW node and a 2004-08-12 17:41:33 +00:00
pci Add a detach for pci bridge and pci bus drivers. This allows one to 2005-04-29 06:22:41 +00:00
pdq Offer unhandled IOCTLS to fddi_ioctl(). 2005-03-24 01:58:20 +00:00
ppbus In ppsintr, we needed ppsdev to get to the softc and nothing else. 2005-04-14 15:56:10 +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 Sort Oxford Semi entires. Add entry for OXCB950, a PCI/CardBus 2005-04-22 07:49:35 +00:00
ral Initial import of ipw, iwi, ral and ural drivers: 2005-04-18 18:47:38 +00:00
random Revert to the more correct array size, and correct a KASSERT to 2005-03-29 11:08:45 +00:00
ray Make a bunch of malloc types static. 2005-02-10 12:02:37 +00:00
rc Start each of the license/copyright comments with /*-, minor shuffle of lines 2005-01-06 01:43:34 +00:00
re Unbreak build with POLLING. I should really listen and test with NOTES 2005-03-13 01:54:41 +00:00
rndtest Start each of the license/copyright comments with /*-, minor shuffle of lines 2005-01-06 01:43:34 +00:00
rp - Use pci_get_device() and pci_get_vendor() when we only want one part 2005-03-25 03:10:51 +00:00
sab Start each of the license/copyright comments with /*-, minor shuffle of lines 2005-01-06 01:43:34 +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 Start each of the license/copyright comments with /*-, minor shuffle of lines 2005-01-06 01:43:34 +00:00
sbsh Use BUS_PROBE_DEFAULT in preference to 0 and BUS_PROBE_LOW_PRIORITY in 2005-03-01 08:58:06 +00:00
scd netchild's mega-patch to isolate compiler dependencies into a central 2005-03-02 21:33:29 +00:00
sf Fix style(9) issues with __P removal. 2005-02-24 22:33:05 +00:00
si Use BUS_PROBE_DEFAULT in preference to 0 and BUS_PROBE_LOW_PRIORITY in 2005-03-01 08:58:06 +00:00
sio Oops, revert a commit that snuck in with the earlier critical section 2005-04-05 18:06:28 +00:00
sk Deal with failed malloc calls[1]. 2005-04-25 10:18:24 +00:00
smbus Start each of the license/copyright comments with /*-, minor shuffle of lines 2005-01-06 01:43:34 +00:00
sn Only attach to network functions. I'm not aware of any multifunction 2005-01-20 19:59:31 +00:00
snc Only send packet to bpf if we are committed to send it. Previously it was 2005-02-21 17:30:10 +00:00
snp Explicitly hold a reference to the cdev we have just cloned. This 2005-03-31 12:19:44 +00:00
sound Add code from Kazuhito HONDA that allows the user to see 2005-04-27 17:16:27 +00:00
speaker /* -> /*- for copyright notices, minor format tweaks as necessary 2005-01-06 22:18:23 +00:00
sr Use BUS_PROBE_DEFAULT in preference to 0 and BUS_PROBE_LOW_PRIORITY in 2005-03-01 08:58:06 +00:00
stg Use BUS_PROBE_DEFAULT in preference to 0 and BUS_PROBE_LOW_PRIORITY in 2005-03-01 08:58:06 +00:00
streams Use kern_open() directly rather than a stackgap detour via open(). 2005-02-07 18:22:20 +00:00
sx Use BUS_PROBE_DEFAULT in preference to 0 and BUS_PROBE_LOW_PRIORITY in 2005-03-01 08:58:06 +00:00
sym eliminate double free when sym_cam_attach fails 2005-03-26 18:17:58 +00:00
syscons No need to ifdef this pc98. 2005-04-04 05:28:19 +00:00
tdfx Use BUS_PROBE_DEFAULT in preference to 0. Also for vx, return 2005-03-01 07:50:12 +00:00
tga Use BUS_PROBE_DEFAULT in preference to 0. Also for vx, return 2005-03-01 07:50:12 +00:00
ti If resource allocation fails, we could wind up freeing the cdev without it 2005-03-31 17:16:40 +00:00
trm Use BUS_PROBE_DEFAULT in preference to 0. Also for vx, return 2005-03-01 07:50:12 +00:00
twa Make call to tw_cl_deferred_interrupt in twa_poll, not dependent on the 2005-04-29 20:03:20 +00:00
twe Use correct flags for bus_dma_tag_create(). 2005-03-06 20:57:54 +00:00
tx Use BUS_PROBE_DEFAULT in preference to 0. Also for vx, return 2005-03-01 07:50:12 +00:00
txp Use BUS_PROBE_DEFAULT in preference to 0. Also for vx, return 2005-03-01 07:50:12 +00:00
uart Make the Z8530 more reliable as low-level console by making use of the 2005-04-27 21:57:51 +00:00
ubsec Use BUS_PROBE_DEFAULT in preference to 0. Also for vx, return 2005-03-01 07:50:12 +00:00
usb A patch to support Palm Tungsten T via USB-Cradle. 2005-05-04 00:46:24 +00:00
utopia Split the chip-specific code from the generic Utopia code. This simplifies 2005-02-24 16:56:36 +00:00
vge Remove the extra EEPROM reload step I added before. vge_reset() 2005-04-25 23:26:20 +00:00
vkbd Explicitly hold a reference to the cdev we have just cloned. This 2005-03-31 12:19:44 +00:00
vr Fix style(9) issues with __P removal. 2005-02-24 22:33:05 +00:00
vx Use BUS_PROBE_DEFAULT in preference to 0. Also for vx, return 2005-03-01 07:50:12 +00:00
watchdog Do the dreaded s/dev_t/struct cdev */ 2004-06-16 09:47:26 +00:00
wds Start each of the license/copyright comments with /*-, minor shuffle of lines 2005-01-06 01:43:34 +00:00
wi Invert conditional and use continue to reduce nesting. 2005-04-13 03:36:24 +00:00
wl Start each of the license/copyright comments with /*-, minor shuffle of lines 2005-01-06 01:43:34 +00:00
xe u_intXX_t -> uintXX_t 2005-01-20 19:32:37 +00:00
zs The zs(4) driver is superseded by uart(4) and broken in -CURRENT. Remove 2005-02-27 15:23:58 +00:00