Commit Graph

30346 Commits

Author SHA1 Message Date
thorpej
774ceea703 msgbuf doesn't need VM_PROT_EXEC, biostramp does. 1999-05-25 23:19:00 +00:00
thorpej
5832084eaf bus_dmamem_map() maps DMA safe memory, which is usually one or more
managed pages, into KVA space.  Since the pages are managed, we should
use pmap_enter(), not pmap_kenter_pa().

Also, when entering the mappings, enter with an access_type of
VM_PROT_READ | VM_PROT_WRITE.  We do this for a couple of reasons:

	(1) On systems that have H/W mod/ref attributes, the hardware
	    may not be able to track mod/ref done by a bus master.

	(2) On systems that have to do mod/ref emulation, this prevents
	    a mod/ref page fault from potentially happening while in an
	    interrupt context, which can be problematic.

This latter change is fairly important if we ever want to be able to
transfer DMA-safe memory pages to anonymous memory objects; we will need
to know that the pages are modified, or else data could be lost!

Note that while the pages are unowned (i.e. "just DMA-safe memory pages"),
they won't consume any swap resources, as the mappings are wired, and
the pages aren't on the active or inactive queues.
1999-05-25 23:14:03 +00:00
thorpej
f197609d93 Add some DIAGNOSTIC checks for inconsistent use of pmap_enter/pmap_kremove. 1999-05-25 20:33:33 +00:00
thorpej
986c3eca39 Fix some major locking protocol issues related to pmap_kremove() having
to deal with PG_PVLIST mappings; it no longer has to.  Add some DIAGNOSTIC
checks for inconsistent use of pmap_enter/pmap_kremove.
1999-05-25 20:32:29 +00:00
thorpej
0ff8d3ac1a Define a new kernel object type, "intrsafe", which are used for objects
which can be used in an interrupt context.  Use pmap_kenter*() and
pmap_kremove() only for mappings owned by these objects.

Fixes some locking protocol issues related to MP support, and eliminates
all of the pmap_enter vs. pmap_kremove inconsistencies.
1999-05-25 20:30:08 +00:00
nisimura
fec53c08d6 - Use dev_name2blk[] array prepared by config(8) instead of handcrafting
local data.
1999-05-25 09:32:27 +00:00
nisimura
058f5a1517 - Continue to import a development branch.
- Minor formatting fix.
1999-05-25 07:37:08 +00:00
nisimura
014ba724c0 - Rework spl(9) implementation. Use _spl*() processor mask manipulating
routines now reside in locore.S.  No functional difference is expected.
- Replace abused splx() abuse with _splset() to change MIPS processor
interrupt mask bit.  'mips/trap.c' side will be fixed soon.
1999-05-25 04:17:57 +00:00
thorpej
789c9e7c48 Add a comment explaining why using pmap_kenter_pa() is safe here. 1999-05-25 01:34:13 +00:00
tron
bb5689beb3 Only attempt to remove symbol table from DDB's lists of symbol tables
if we really loaded one.
1999-05-25 00:16:08 +00:00
thorpej
85f8d1343c Macro'ize the test for "object is a kernel object". 1999-05-25 00:09:00 +00:00
thorpej
9b731fd45c Remove a comment in uvm_pager_dropcluster() about PMAP_NEW and mod/ref
attributes for the page; it no longer applies, since we don't use
pmap_kenter_pgs() anymore.
1999-05-24 23:36:23 +00:00
thorpej
7becac6b9a Don't use pmap_kenter_pgs() for entering pager_map mappings. The pages
are still owned by the object which is paging, and so the test for a kernel
object in uvm_unmap_remove() will cause pmap_remove() to be used instead
of pmap_kremove().

This was a MAJOR source of pmap_remove() vs pmap_kremove() inconsistency
(which caused the busted kernel pmap statistics, and a cause of much
locking hair on MP systems).
1999-05-24 23:30:44 +00:00
tron
a602deb000 Silently ignore attributes modifications on directories. Fixes
PR kern/7630 by Markus Kurek.
1999-05-24 23:01:13 +00:00
thorpej
cba22525ce Fix some broken packet length checks. Really (no, I mean really) works now
after the ether_input() changes -- tested on my Quadra 650.
1999-05-24 21:53:42 +00:00
ragge
7fb0d17b38 First step towards MI Unibus/Q22 bus code. 1999-05-24 20:12:57 +00:00
tron
770a66b9a8 Fix kernel builds if ppp interface but no bpf filters are configured.
Patch supplied by Takahiro Kambe in PR kern/7639, also fixes PR kern/7632
by Bjoern Labitzke.
1999-05-24 20:12:10 +00:00
thorpej
5dec34efed The kernel pmap can be accessed (and locked!) while in an interrupt
context, so we must block interrupts which may cause memory allocation
before asserting the kernel pmap's lock.  Put this all in PMAP_LOCK()
and PMAP_UNLOCK() macros to make it easier.
1999-05-24 20:11:58 +00:00
ragge
ad1db202f7 bus.h'ify more of the vax code. 1999-05-24 20:10:30 +00:00
thorpej
6eb9ee7cd8 - Change uvm_{lock,unlock}_fpageq() to return/take the previous interrupt
level directly, instead of making the caller wrap the calls in
  splimp()/splx().
- Add a comment documenting that interrupts that cause memory allocation
  must be blocked while the free page queue is locked.

Since interrupts must be blocked while this lock is asserted, tying them
together like this helps to prevent mistakes.
1999-05-24 19:10:57 +00:00
thorpej
e8beb9bbe8 Make this compile again. 1999-05-24 18:40:48 +00:00
christos
61d84403a8 Regen 1999-05-24 13:05:40 +00:00
christos
cf715aec57 Fix PR/7634 properly, by adding the card to pcmciadevs 1999-05-24 13:05:12 +00:00
augustss
8fb4b44439 SMC 8022 PCMCIA ethercard entry for if_ne_pcmcia.c
From Zdenek Salvet <salvet@ics.muni.cz> in PR 7634.
1999-05-24 10:17:49 +00:00
thorpej
8c2d5c6fd3 Let the caller decide what to do if pmap_physpage_alloc() fails. 1999-05-24 01:35:54 +00:00
mrg
1bd01d4677 pull struct strbuf + defines into iommureg.h. properly merge previous commit. 1999-05-24 00:25:31 +00:00
ragge
0354feab8e Make this file compile again. 1999-05-23 23:06:24 +00:00
ragge
373e7cc828 Rewrite the "emulate page reference bits" code to avoid a bunch of
pv_lists traversal and unneccessary page faults.
1999-05-23 23:03:44 +00:00
ragge
539f825799 Better and more understandable way to find out CPU type. 1999-05-23 22:56:53 +00:00
thorpej
c1eb28c237 Make the list of all pmaps LRU-ordered, and update a comment regarding
locking.
1999-05-23 22:37:02 +00:00
ragge
6c98e1bae7 Routine to figure out which system type is booted. 1999-05-23 22:00:43 +00:00
ragge
f1fc4934a3 Use common routines to identify cpu type.
Set up a SCB to be able to handle clock interrupts in the boot program.
Now timer countdown should work on all types of vaxen.
1999-05-23 21:58:19 +00:00
veego
e21201e114 Regen. 1999-05-23 21:28:03 +00:00
veego
a674692065 Add several entries. 1999-05-23 21:26:54 +00:00
ad
ccc7e59e1f Add new sysctl (net.inet.tcp.log_refused) that when set, causes refused TCP
connections to be logged.
1999-05-23 20:33:50 +00:00
ad
bdf1938edd For completeness sake, allow this to compile with no loopback interfaces
configured.
1999-05-23 20:21:51 +00:00
ad
080560c8c6 - Setting initial position of cursor is up to caller.
- Set cursor position properly for SPARC. From Juergen Hannken-Illjes.
1999-05-23 17:59:39 +00:00
thorpej
2102d5a17e Save ourselves some work in some pv list traversal functions; keep a pointer
to the PTE that maps the page in the pv_entry so that we don't have to
compute it from the pmap/va.
1999-05-23 17:49:07 +00:00
thorpej
5d48eed96a Implement pv_entry stealing for the case when a pool page cannot be
allocated for one.
1999-05-23 16:54:43 +00:00
augustss
eca0bbe20e Update doc URL. 1999-05-23 16:07:04 +00:00
mrg
09619f1942 KNF nit. 1999-05-23 11:41:39 +00:00
mrg
b2934b386d UVM is not an option these days. 1999-05-23 11:08:01 +00:00
mrg
ae1a84a61f place iommu definitions in iommureg.h 1999-05-23 07:24:02 +00:00
mrg
f1f95c374b implement madvice() for MADV_{NORMAL,RANDOM,SEQUENTIAL}, others are not yet done. 1999-05-23 06:27:13 +00:00
eeh
193cc31772 Separate out the generic console handling from zs.c 1999-05-23 02:46:35 +00:00
eeh
92ad9c4080 Start putting in hooks for non-zs console devices. 1999-05-23 02:45:19 +00:00
christos
544c14bcf6 KNF! 1999-05-23 00:48:46 +00:00
eeh
f1066c97ad If the zs has not yet attached use the PROM for console input. 1999-05-22 20:34:56 +00:00
eeh
60b89ebf96 Well, looks like the MI allocsys() broke the dvmamap, so instead of using a
single map move it to the bus controller driver so each bus can handle its own
IOMMU without conflicts.
1999-05-22 20:33:55 +00:00
eeh
bb0f8ef559 Fix OF_stdin() to return "stdin" not "stdout" so we really can get console input. 1999-05-22 20:30:54 +00:00