Commit Graph

52827 Commits

Author SHA1 Message Date
thorpej 6cb6c24690 The (incorrect) nesting behavior of mlock(2) no longer exists. 1999-06-16 23:14:59 +00:00
thorpej cf110d86e7 1.4D -- semantics of uvm_map_pageable() changed. 1999-06-16 23:10:51 +00:00
thorpej d1d9b366cd When unwiring a range in uvm_fault_unwire_locked(), don't call
pmap_change_wiring(...,FALSE) unless the map entry claims the address
is unwired.  This fixes the following scenario, as described on
tech-kern@netbsd.org on Wed 6/16/1999 12:25:23:

	- User mlock(2)'s a buffer, to guarantee it will never become
	  non-resident while he is using it.

	- User then does physio to that buffer.  Physio calls uvm_vslock()
	  to lock down the pages and ensure that page faults do not happen
	  while the I/O is in progress (possibly in interrupt context).

	- Physio does the I/O.

	- Physio calls uvm_vsunlock().  This calls uvm_fault_unwire().

	  >>> HERE IS WHERE THE PROBLEM OCCURS <<<

	  uvm_fault_unwire() calls pmap_change_wiring(..., FALSE),
	  which now gives the pmap free reign to recycle the mapping
	  information for that page, which is illegal; the mapping is
	  still wired (due to the mlock(2)), but now access of the
	  page could cause a non-protection page fault (disallowed).

	  NOTE: This could eventually lead to a panic when the user
	  subsequently munlock(2)'s the buffer and the mapping info
	  has been recycled for use by another mapping!
1999-06-16 23:02:40 +00:00
thorpej b861180119 * Rename uvm_fault_unwire() to uvm_fault_unwire_locked(), and require that
the map be at least read-locked to call this function.  This requirement
  will be taken advantage of in a future commit.
* Write a uvm_fault_unwire() wrapper which read-locks the map and calls
  uvm_fault_unwire_locked().
* Update the comments describing the locking contraints of uvm_fault_wire()
  and uvm_fault_unwire().
1999-06-16 22:11:23 +00:00
tron caca5dac34 Note that bebox and i386 use "/dev/rcd0d" instead of "/dev/rcd0c".
Fixes PR kern/7775 by Eric Mumpower.
1999-06-16 21:18:42 +00:00
is b5937495f5 Fix typo. 1999-06-16 20:47:57 +00:00
is 38f1211404 Add sanity check for MTU size in fragmentation required packets. 1999-06-16 20:43:48 +00:00
is 847d4766be Factor out common code in the fragmentation required branch. 1999-06-16 20:10:07 +00:00
thorpej 42c671ffba Modify uvm_map_pageable() and uvm_map_pageable_all() to follow POSIX 1003.1b
semantics.  That is, regardless of the number of mlock/mlockall calls,
an munlock/munlockall actually unlocks the region (i.e. sets wiring count
to 0).

Add a comment describing why uvm_map_pageable() should not be used for
transient page wirings (e.g. for physio) -- note, it's currently only
(ab)used in this way by a few pieces of code which are known to be
broken, i.e. the Amiga and Atari pmaps, and i386 and pc532 if PMAP_NEW is
not used.  The i386 GDT code uses uvm_map_pageable(), but in a safe
way, and could be trivially converted to use uvm_fault_wire() instead.
1999-06-16 19:34:24 +00:00
thorpej 23c6eb95d3 Remove a incorrect-and-no-longer-relevant comment. 1999-06-16 18:43:28 +00:00
thorpej 26879cb8fb Clean up some comments. 1999-06-16 17:43:49 +00:00
minoura ff8fb3ef82 Remove extra ]. 1999-06-16 17:25:39 +00:00
tron cf71eb8d35 Correct wrong conversion specifications in calls to syslog(3). 1999-06-16 16:34:29 +00:00
kleink 8788923e6a Turn bool, true and false into an enumeration and enumeration constants to
avoid integer promotion warnings.
1999-06-16 15:41:24 +00:00
kleink 2b0484a3b1 Pasto. 1999-06-16 14:24:11 +00:00
kleink f5326607ab allocm, freem: one step closer to reality. 1999-06-16 14:19:27 +00:00
is a11ec6ccb8 Don't forget to update the UDP length when changing the packet length.
Reported by Johan Danielsson in PR 7781; the fix is an updated version
(by the same person) of the patch in the PR.
1999-06-16 13:52:58 +00:00
is 6f6fd8467a Cosmetics: a) add missing \n-s, b) this is ntohs, not htons, here. 1999-06-16 13:26:16 +00:00
tsubai c28bad1d51 Define PowerBook G3 Japanese keyboard. 1999-06-16 08:48:37 +00:00
tsubai a2e8151f8e Define symbolic name of PMU commands. 1999-06-16 07:43:58 +00:00
pk b6429ec3c5 In scsipi_done(), call scsipi_free_xs() at splbio(). 1999-06-16 07:35:31 +00:00
thorpej ee9703dea9 Add a macro to test if a map entry is wired. 1999-06-16 00:29:04 +00:00
thorpej 2625387d1f Libc bump, mlockall(2) 1999-06-15 23:32:08 +00:00
thorpej 694cc23026 Add mlockall(2)/munlockall(2). 1999-06-15 23:31:19 +00:00
thorpej ad528dfdf0 Regen. 1999-06-15 23:29:17 +00:00
thorpej 0cec533f77 Add mlockall at #242 and munlockall at #243. 1999-06-15 23:28:16 +00:00
thorpej c5a43ae10c Several changes, developed and tested concurrently:
* Provide POSIX 1003.1b mlockall(2) and munlockall(2) system calls.
  MCL_CURRENT is presently implemented.  MCL_FUTURE is not fully
  implemented.  Also, the same one-unlock-for-every-lock caveat
  currently applies here as it does to mlock(2).  This will be
  addressed in a future commit.
* Provide the mincore(2) system call, with the same semantics as
  Solaris.
* Clean up the error recovery in uvm_map_pageable().
* Fix a bug where a process would hang if attempting to mlock a
  zero-fill region where none of the pages in that region are resident.
  [ This fix has been submitted for inclusion in 1.4.1 ]
1999-06-15 23:27:47 +00:00
ad 10b0c75443 - Don't even try to emulate WSATTR_HILIT on mono displays
- WSATTR_REVERSE is a capability of both mono/color
1999-06-15 22:34:45 +00:00
perseant 0486add127 The cleaner now marks empty segments clean without having to read their
contents, a substantial optimization if the work load is right: if enough
empty segments are available, the cleaner never has to read or write *any*
blocks except those on the Ifile.  When the cleaner wakes up it marks all
empty segments clean before deciding whether any further segments need to
be cleaned.

Fixed overflow bugs in the cleaner's handling of the cost/benefit metric
for empty segments.
1999-06-15 22:33:48 +00:00
perseant a818a47169 Minor changes to the segment live bytes calculation. In particular, fixed
a bug in fragment extension that could run the count negative.  Also, don't
overcount for inodes, and don't count segment summaries.  Thus, for empty
segments the live bytes count should now be exactly zero.
1999-06-15 22:25:41 +00:00
thorpej 602d8e81f7 Don't (ab)use uvm_map_pageable() to allocate PT pages. Instead, do
some internal reference counting on PT pages.  We still allocate them
with the page fault routine (a wire-fault, now), but no longer free
PT pages from pmap_pageable().
1999-06-15 22:18:07 +00:00
ad 05a0ca4737 Fix stupid alignment bug. The 'slop' stuff is due for replacement with masks
RSN per the README.
1999-06-15 21:34:05 +00:00
kleink 571aef82d9 Don't include the ident .note assembly when linting. 1999-06-15 15:54:28 +00:00
kleink 857dfc7058 Slightly rearrange the SSIR inline assembly implementation in order to avoid
making assumptions on C symbol name prefixes.
1999-06-15 15:26:34 +00:00
kleink 51eb26bf7e Slightly rearrange the inline assembly in ledcontrol() to avoid frobbing a
C symbol name prefix.
1999-06-15 15:18:55 +00:00
minoura cd06c07723 Check file open mode at ioctl.
Add debug option SRAM_DEBUG_DONTDOIT.
1999-06-15 15:04:56 +00:00
christos 1501054824 make this compile again... since size_t is unsigned long now, %*d's with
the size arg size_t make gcc bitch.
1999-06-15 15:04:40 +00:00
christos 9966d744f2 Don't declare login here. It is declared in <util.h> 1999-06-15 14:19:53 +00:00
simonb 5bef8a3c65 The prototype for this is in <stdlib.h>... 1999-06-15 12:14:08 +00:00
cgd bb8cb1198b Add support for fetching packages from HTTP URLs. Since 'ftp' is already
invoked for (FTP) URLs, this was just a matter of recognizing HTTP URLs
in the places where FTP URLs were recognized (and updating a comment and
the manual page).
1999-06-15 06:32:00 +00:00
abs f85ff94580 Don't don't don't assume /usr/bin/id is always present. Loses in single user. 1999-06-15 05:44:22 +00:00
simonb 56351da429 Make a few private variables and functions static. 1999-06-15 04:50:28 +00:00
thorpej fed8519457 Don't load the symbol table if it's corrupted. 1999-06-15 00:23:19 +00:00
cgd e33c6c47a2 set bb_flags to zero; who knows what they were (on disk) previously,
and SRM is finicky about what values it will allow.
1999-06-14 23:55:29 +00:00
cgd b6e1d0f85a set bb_flags to 0. Though not strictly necessary (because of an earlier
memset()), this is nice for source-level consistency.
1999-06-14 23:52:25 +00:00
thorpej 45e5ec934e Use a more descriptive wait message for VM map locks. 1999-06-14 22:05:23 +00:00
augustss 475ed73e46 Get rid of a bunch of code that was part of an old USBDI proposal, but that
is unused in our USB stack.

Once upon a time, when I started writing the USB stack for NetBSD, there
was an effort to make a standard for how USB device drivers should interact
with the rest of the USB stack.  This effort had contributors from just
about all Un*x camps (but not Micro$oft :).  I based my design on one of their
early proposals since I thought it would be a good idea if we could all
share device drivers with a minimum effort.  Shortly after I started my work
all the free Un*x people were thrown out of the USBDI work since we did not
pay the USB membership fee.  Well, some time has passed now and the work of
the standardization group is almost public again.  But alas, the new standard
has grown to be a monster!  I do not want to have this as the basis for the
*BSD USB stack; it is far too complicated.
So, since we are not even close to being compilant with the standard, I've
thrown out some old baggage.
1999-06-14 17:09:57 +00:00
augustss 656245dc18 Check that the hub ports actually power up. 1999-06-14 16:59:47 +00:00
tsubai 4df925b8b0 * Don't use DMA interrupt.
* Stop DMA explicitly in finish routine.
1999-06-14 08:53:06 +00:00
tsubai 86d2f9253a Consider "have /psuedo-hid and only ADB keyboard" case to make the
new PowerBook G3 happy.
1999-06-14 06:22:50 +00:00