Commit Graph

32994 Commits

Author SHA1 Message Date
peter
34948e5a7b Use suword16/fuword16 instead of susword/fusword - this has two different
definitions so far.. 16 bit on x86 and appears to be 32 bit on sparc64.
Be explicit to avoid suprises.
2002-06-20 07:23:08 +00:00
peter
df4ec1a7b3 Deorbit suibyte(). It was only used for split address space systems
for supporting UIO_USERISPACE (ie: it wasn't used).
2002-06-20 07:13:35 +00:00
peter
72c289faf4 Remove UIO_USERISPACE - we do not support any split instruction/data
address space machines (eg: pdp-11) and are not likely to ever do so.
Nothing in our kernel sets this.
2002-06-20 07:08:43 +00:00
peter
c026e8b139 ia32 %edx return comes from td_retval[1], not td_retval[0]
Obtained from:	dfr
2002-06-20 06:47:44 +00:00
peter
16ad33743d Use suword32/64 and fuword32/64 like elsewhere instead of inventing
suhword/fuhword.
2002-06-20 06:45:43 +00:00
peter
9fb8326f23 Add boot_serial and boot_multicons variables to set RB_SERIAL and
RB_MULTIPLE since this seems to be the easiest way to add these flags
for non-forth loaders etc.
2002-06-20 06:29:42 +00:00
peter
e763131bd9 panic rather than fault and explode if we fail to contigmalloc a kernel
stack.  This is still bad(TM), but at least we have a clue when we get
hit when contigmalloc fails.
2002-06-20 06:25:22 +00:00
peter
8861030ce8 Use the canonical pmap_{new,dispose,swapin,swapout}_proc() functions,
in this case cut/pasted from sparc64 instead of messing with
contigmalloc where it is not needed.
2002-06-20 06:23:40 +00:00
peter
4830c34648 Move the "- 1" into the RQB_FFS(mask) macro itself so that
implementations can provide a base zero ffs function if they wish.
This changes
  #define RQB_FFS(mask) (ffs64(mask))
  foo = RQB_FFS(mask) - 1;
to
  #define RQB_FFS(mask) (ffs64(mask) - 1)
  foo = RQB_FFS(mask);
On some platforms we can get the "- 1" for free, eg: those that use the
C code for ffs64().

Reviewed by:	jake (in principle)
2002-06-20 06:21:20 +00:00
alc
b4762c84fb o Acquire and release the vm_map lock instead of Giant in obreak().
Consequently, use vm_map_insert() and vm_map_delete(), which expect
   the vm_map to be locked, instead of vm_map_find() and vm_map_remove(),
   which do not.
2002-06-20 02:04:55 +00:00
peter
c7fdf6d30b Solve the 'unregistered netisr 18' information notice with a sledgehammer.
Register the ISR early, but do not actually kick off the timer until we
see some activity.  This still saves us from running the arp timers on
a system with no network cards.
2002-06-20 01:27:40 +00:00
jeff
4a3cef9fbf - Move the computation of pflags out of the page allocation loop in
kmem_malloc()
- zero fill pages if PG_ZERO bit is not set after allocation in kmem_malloc()

Suggested by: alc, jake
2002-06-19 23:49:57 +00:00
arr
646109847c - Remove the lock(9) protecting the kernel linker system.
- Added a mutex, kld_mtx, to protect the kernel_linker system.  Note that
  while ``classes'' is global (to that file), it is only read only after
  SI_SUB_KLD, SI_ORDER_ANY.
- Add a SYSINIT to flip a flag that disallows class registration after
  SI_SUB_KLD, SI_ORDER_ANY.

Idea for ``classes'' read only by:	jake
Reviewed by:	jake
2002-06-19 21:25:59 +00:00
jeff
4df8a5cb05 - Remove bogus use of kmem_alloc that was inherited from the old zone
allocator.
- Properly set M_ZERO when talking to the back end page allocators for
  non malloc zones.  This forces us to zero fill pages when they are first
  brought into a cache.
- Properly handle M_ZERO in uma_zalloc_internal.  This fixes a problem where
  per cpu buckets weren't always getting zeroed.
2002-06-19 20:49:44 +00:00
jeff
0776d3f180 Teach kmem_malloc about M_ZERO. 2002-06-19 20:47:18 +00:00
robert
237e4756df Correct spelling of 'supplied'.
PR: misc/39528
2002-06-19 20:44:48 +00:00
mike
f76392df57 Change spelling of u_char' to unsigned char' to avoid requiring
<sys/types.h> as a prerequisite.
2002-06-19 19:05:41 +00:00
imp
b07b8a3f99 Add better mediaopt support for ibss and friends.
Now the driver is closer to matching the wi man page.

Submitted by: jhay (who obtained it from OpenBSD).
2002-06-19 17:37:34 +00:00
nyan
71120b685a MFi386: revisions from 1.342 to 1.344 2002-06-19 13:47:53 +00:00
nyan
b7dd05aa7c Backout previous change and merge from sys/dev/sio/sio.c revision 1.375. 2002-06-19 13:20:20 +00:00
nyan
9caea86019 Merged from sys/isa/fd.c revision 1.233. 2002-06-19 13:17:43 +00:00
sos
d4bc2d8833 Use si_iosize_max to tell the upper layers not to use more
than 32K chunks on ZIP drives instead of deblocking it in
the driver.
2002-06-19 12:41:05 +00:00
sos
15dd5289b1 Add yet another (older) Promise chip 2002-06-19 12:26:20 +00:00
dillon
7aa1bb9d05 In rev 1.72 a situation related to write/mmap was fixed which could result
in a user process gaining visibility into the 'old' contents of a filesystem
block.  There were two cases:  (1) when uiomove() fails (user process issues
illegal write), and (2) when uiomove() overlaps a mmap() of the same file at
the same offset (fault -> recursive buffer I/O reads contents of old block).

Unfortunately 1.72 also had the unintended effect of forcing the filesystem
to do a read-before-write in the case of a full-block-write (non append case),
e.g. 'dd if=/dev/zero of=test.dat bs=1m count=256 conv=notrunc'.  This
destroys performance.. not only is a read forced for every write, but
clustering breaks as well.

The solution is to clear the buffer manually in the full-block case rather
then asking BALLOC to do it (BALLOC issues the read-before-write).  In the
partial-block case we want BALLOC to do it because the read-before-write
is necessary.  This patch should greatly improve database and news-feed
server performance.

Found by: MKI <mki@mozone.net>
MFC after:	3 days
2002-06-19 09:39:41 +00:00
phk
1f4e9c0c72 Remove the compat bits for the mis-aligned struct disklabel on alpha,
people got three times longer than I promised.

Sponsored by: DARPA & NAI Labs.
2002-06-19 08:37:02 +00:00
alfred
bfa1cb192c Squish the "could sleep with process lock" messages caused by calling
uifind() with a proc lock held.

change_ruid() and change_euid() have been modified to take a uidinfo
structure which will be pre-allocated by callers, they will then
call uihold() on the uidinfo structure so that the caller's logic
is simplified.

This allows one to call uifind() before locking the proc struct and
thereby avoid a potential blocking allocation with the proc lock
held.

This may need revisiting, perhaps keeping a spare uidinfo allocated
per process to handle this situation or re-examining if the proc
lock needs to be held over the entire operation of changing real
or effective user id.

Submitted by: Don Lewis <dl-freebsd@catspoiler.org>
2002-06-19 06:39:25 +00:00
alc
6c0c1a3de3 o Replace GIANT_REQUIRED in vm_object_coalesce() by the acquisition and
release of Giant.
 o Reduce the scope of GIANT_REQUIRED in vm_map_insert().

These changes will enable us to remove the acquisition and release
of Giant from obreak().
2002-06-19 06:02:03 +00:00
billf
4a91ef4511 fix whitespace botch in previous commit. 2002-06-19 01:23:54 +00:00
pdeuskar
8c5c34a9d8 Removed unneeded files.
if_em_fxhw.[c,h] and if_em_phy.[c,h]
have been merged into one [c,h] file.

MFC after:	3 days
2002-06-18 22:51:26 +00:00
alfred
90955db2d9 setsugid() touches p->p_flag so assert that the proc is locked. 2002-06-18 22:41:35 +00:00
julian
2ddb82d191 A node that creates a device entry in /dev (yay devfs)
so that /dev/mumble can be the entrypoint to some networking graph,
e.g. a tunnel or a remote tape drive or whatever...

Not fully tested (by me) yet.

Submitted by:	Mark Santcroos <marks@ripe.net>
MFC after:	3 weeks
2002-06-18 21:32:33 +00:00
n_hibma
90312e83bd Make the speed used by gdb over serial settable in the kernel configuration.
This facilitates the use in circumstances where you are using a serial
console as well. GDB doesn't support anything higher than 9600 baud (19k2
if you are lucky), but the console does.
2002-06-18 21:30:37 +00:00
alc
40c2764a67 o Remove LK_CANRECURSE from the vm_map lock. 2002-06-18 18:31:35 +00:00
tanimura
cb3347e926 Remove so*_locked(), which were backed out by mistake. 2002-06-18 07:42:02 +00:00
obrien
ed445694ae Add support for Comtrol RocketPort 550 PCi models: 4 RJ45, 4 Quadcable,
8 RJ11, 8 Octacable, and 8 (used with RocketPort I/F box).

Note:	untested due to lack of hardware
2002-06-18 03:05:10 +00:00
obrien
0570f374f8 Support the Comtrol RocketPort 550 PCi 16 (used with RocketPort I/F box).
Sponsored by:	Feral Software
2002-06-18 02:39:12 +00:00
obrien
64aa27d62f ebus sio(4) attachment.
Submitted by:	tmm
2002-06-18 01:19:31 +00:00
obrien
b9e927f911 Allow one to configure `sio'. 2002-06-18 01:14:54 +00:00
obrien
a1cfbf791e Sync with i386. 2002-06-18 01:11:04 +00:00
jeff
c6ac4e0b64 Honor the BUCKETCACHE flag on free as well. 2002-06-17 23:53:58 +00:00
jeff
030d3fdb72 - Introduce the new M_NOVM option which tells uma to only check the currently
allocated slabs and bucket caches for free items.  It will not go ask the vm
  for pages.  This differs from M_NOWAIT in that it not only doesn't block, it
  doesn't even ask.

- Add a new zcreate option ZONE_VM, that sets the BUCKETCACHE zflag.  This
  tells uma that it should only allocate buckets out of the bucket cache, and
  not from the VM.  It does this by using the M_NOVM option to zalloc when
  getting a new bucket.  This is so that the VM doesn't recursively enter
  itself while trying to allocate buckets for vm_map_entry zones.  If there
  are already allocated buckets when we get here we'll still use them but
  otherwise we'll skip it.

- Use the ZONE_VM flag on vm map entries and pv entries on x86.
2002-06-17 22:02:41 +00:00
n_hibma
ba0c1d407b Avoid reprobing on loading a driver. This does not work as the ivars set
during the previous probe are stale.

What really should be done is route the probe through
device_probe_and_attach bit this is one of those ICBBATIASS (I can't be
bothered as there is a simpler solution). The user can easily replug the
device after kldloading a new device driver.
2002-06-17 20:57:54 +00:00
n_hibma
14e9ee2b51 Set the ivars _after_ checking that the bdev was correctly created instead
of before.
2002-06-17 20:52:26 +00:00
n_hibma
4ba977d57f clean up some KASSERTS. 2002-06-17 20:44:37 +00:00
n_hibma
f739d87ace Use OBJDIR instead of CURDIR. This unbreaks loading modules through
'make load' if an object dir was, like it is used in /sys/modules. I.e.

	cd /sys/modules/umass
	make obj
	make
	make load

works again without having to install the module.

If no objdir was used the module in the current directory is used.
2002-06-17 20:01:06 +00:00
jake
384222848c Add constants for the min and max prom addresses. Use these instead of
magic numbers.  Use stxa_sync instead of stxa; membar #Sync; to ensure
that no instruction is placed between the two.  This can cause random
corruption even though interrupts are already disabled.
2002-06-17 15:44:10 +00:00
alc
66c467d04e o Acquire and release Giant in vm_map_wakeup() to prevent
a lost wakeup().

Reviewed by:	tegge
2002-06-17 13:27:40 +00:00
alfred
22846f623a remove bogus comment, select/poll do NOT need to fhold as they hold the
filedesc lock.
style(9) fixes, add blank line at start of functions with no local variables.
2002-06-17 09:39:30 +00:00
arr
325fb576a6 - Turn a DIAGNOSTIC check into a KASSERT(9). 2002-06-17 06:10:17 +00:00
arr
a229b7d3a3 - Turn a DIAGNOSTIC check into a KASSERT(9) macro. 2002-06-17 06:00:20 +00:00