freebsd-dev/sys
Bill Paul 450a94af7a Deal with a few bootstrap issues:
We can't call KeFlushQueuedDpcs() during bootstrap (cold == 1), since
the flush operation sleeps to wait for completion, and we can't sleep
here (clowns will eat us).

On an i386 SMP system, if we're loaded/probed/attached during bootstrap,
smp_rendezvous() won't run us anywhere except CPU 0 (since the other CPUs
aren't launched until later), which means we won't be able to set up
the GDTs anywhere except CPU 0. To deal with this case, ctxsw_utow()
now checks to see if the TID for the current processor has been properly
initialized and sets up the GTD for the current CPU if not.

Lastly, in if_ndis.c:ndis_shutdown(), do an ndis_stop() to insure we
really halt the NIC and stop interrupts from happening.

Note that loading a driver during bootstrap is, unfortunately, kind of
a hit or miss sort of proposition. In Windows, the expectation is that
by the time a given driver's MiniportInitialize() method is called,
the system is already in 'multiuser' state, i.e. it's up and running
enough to support all the stuff specified in the NDIS API, which includes
the underlying OS-supplied facilities it implicitly depends on, such as
having all CPUs running, having the DPC queues initialized, WorkItem
threads running, etc. But in UNIX, a lot of that stuff won't work during
bootstrap. This causes a problem since we need to call MiniportInitialize()
at least once during ndis_attach() in order to find out what kind of NIC
we have and learn its station address.

What this means is that some cards just plain won't work right if
you try to pre-load the driver along with the kernel: they'll only be
probed/attach correctly if the driver is kldloaded _after_ the system
has reached multiuser. I can't really think of a way around this that
would still preserve the ability to use an NDIS device for diskless
booting.
2005-05-20 04:00:50 +00:00
..
alpha - Move bus dependent defines to {isa,cbus}_dmareg.h. 2005-05-14 10:14:56 +00:00
amd64 - Move bus dependent defines to {isa,cbus}_dmareg.h. 2005-05-14 10:14:56 +00:00
arm Don't forget to copy the TP when forking, or bad things will happen to the 2005-05-11 21:20:42 +00:00
boot Extend `autoboot_delay' handling - is this variable is set to -1 don't allow 2005-05-19 23:03:02 +00:00
bsm Add a stub audit_kevents.h, which defines exactly one audit event: 2005-02-02 14:27:36 +00:00
cam Do not initialize path variable with useless value just before 2005-05-11 17:39:33 +00:00
coda - Change all filesystems and vfs_cache to relock the dvp once the child is 2005-04-13 10:59:09 +00:00
compat Deal with a few bootstrap issues: 2005-05-20 04:00:50 +00:00
conf Sync with the other files.<arch> files and put the keyboard map 2005-05-19 22:56:00 +00:00
contrib Enable building /sbin/ipf (but not the rescue version) with the ability to 2005-05-16 16:22:55 +00:00
crypto gbde(8) is also rejndael user. 2005-03-11 22:07:04 +00:00
ddb Don't enter the debugger if KDB_UNATTENDED is set or if 2005-04-20 20:52:46 +00:00
dev Deal with a few bootstrap issues: 2005-05-20 04:00:50 +00:00
doc
fs Fix three typos in comments. Two of them obtained from OpenBSD. 2005-05-11 21:10:35 +00:00
gdb check return value of gdb_rx_varhex 2005-03-28 18:31:18 +00:00
geom Correct typo. 2005-05-18 21:53:08 +00:00
gnu - Change all filesystems and vfs_cache to relock the dvp once the child is 2005-04-13 10:59:09 +00:00
i4b Don't use 'i386/include' directly. 2005-04-08 03:37:20 +00:00
i386 Fix low res profiling kernel build. Move two defines to collapse the 2005-05-19 05:22:52 +00:00
ia64 - Move bus dependent defines to {isa,cbus}_dmareg.h. 2005-05-14 10:14:56 +00:00
isa - Move bus dependent defines to {isa,cbus}_dmareg.h. 2005-05-14 10:14:56 +00:00
isofs/cd9660 - Change all filesystems and vfs_cache to relock the dvp once the child is 2005-04-13 10:59:09 +00:00
kern Fix a bug that caused preemption to happen for a thread in the same 2005-05-19 01:08:30 +00:00
libkern Update comment to direct the reader to libkern.h instead of systm.h. 2005-04-28 05:50:18 +00:00
modules - Try to not leak resources in the attach functions of the esp(4) SBus 2005-05-19 14:51:10 +00:00
net If we are going to 2005-05-06 02:50:00 +00:00
net80211 Revise crypto api lightly to improve group key handling: 2005-04-12 17:55:13 +00:00
netatalk When generating a phase II ARP lookup from aarpwhohas(), use a 2005-02-22 14:37:22 +00:00
netatm In the current world order, solisten() implements the state transition of 2005-02-21 21:58:17 +00:00
netgraph - Unwind NG_SEND_MSG_PATH() macro and merge it with already unwinded 2005-05-17 12:18:13 +00:00
netinet Introduce routines to alloc/free sack holes. This cleans up the code 2005-05-16 19:26:46 +00:00
netinet6 Fixes for various nits found by the Coverity tool. 2005-05-15 02:28:30 +00:00
netipsec correct space check 2005-03-09 15:28:48 +00:00
netipx Update copyright: parts of the netipx implementation are covered by a 2005-04-10 18:05:46 +00:00
netkey fixed an unexpected addr/port matching failure in IPv6 SA management 2005-01-10 13:06:42 +00:00
netnatm Mark netatm and netnatm explicitly as requiring Giant, as they still do. 2005-02-17 14:21:22 +00:00
netncp avoid potential null ptr derefs 2005-02-23 22:44:38 +00:00
netsmb lockmgr(...,LK_DRAIN,...) requires a balancing LK_RELEASE: recent 2005-05-13 11:27:48 +00:00
nfs /* -> /*- for license, minor formatting changes 2005-01-07 01:45:51 +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 Ugh. Previous commit got the logic exactly backward. 2005-05-17 18:23:03 +00:00
nfsserver NFS write gathering defers execution of NFS server write requests to wait 2005-04-17 16:25:36 +00:00
opencrypto just use crypto/rijndael, and nuke opencrypto/rindael.[ch]. 2005-03-11 17:24:46 +00:00
pc98 Fix my copyright. 2005-05-14 10:51:16 +00:00
pccard Change a directory layout for pc98. 2005-05-10 12:02:18 +00:00
pci Deal with failed malloc calls[1]. 2005-04-25 10:18:24 +00:00
posix4 Introduce MAC Framework and MAC Policy entry points to label and control 2005-05-04 10:39:15 +00:00
powerpc Remove incorrect configuration setting that limited the Kauai ATA controller 2005-05-14 02:11:45 +00:00
rpc - Don't call rpcclnt_realign() if we don't have any mbufs to realign. 2005-03-19 01:16:25 +00:00
security Introduce MAC Framework and MAC Policy entry points to label and control 2005-05-04 10:39:15 +00:00
sparc64 o mc146818(4): 2005-05-19 21:20:42 +00:00
sys Change the way ioctls are issue to ATA. 2005-05-16 13:07:27 +00:00
tools - Add the character "E" to the understood lock types. This means 2005-04-11 15:15:03 +00:00
ufs Allow removal of empty directories with high link counts. These can 2005-05-18 22:18:21 +00:00
vm Remove calls to spl*(). 2005-05-19 06:11:13 +00:00
Makefile When building cscopnamefile, default architecture to ${MACHINE}, not i386. 2005-03-08 00:09:41 +00:00