Commit Graph

28942 Commits

Author SHA1 Message Date
Jake Burkholder
4d5e57d87d 1. Implement ascopyto() and ascopyfrom() for copying to an alternate address
space from kernel space and from an alternate address space to kernel
   space.
2. Remove the unused and unprototyped physcopy() and physzero() and replace
   with the more versatile ascopy() and aszero(), inspired by the above.
   These can be used to copy and zero physical pages of memory without mapping
   them into kernel space first.
3. Use magic numbers for the offsets in the jmpbuf structure like other
   platforms.
4. Use SET.

Submitted by: 	tmm (1, 4)
2001-11-18 02:47:26 +00:00
Jake Burkholder
117037c4bd 1. Fix a bug where the offsets of the alignment and mmu fault recorvery code
in the window trap vectors were mixed up.  All this did is cause unnecesary
   traps and look wierd in traces.  Superfluous traps happen a lot in normal
   operation, so we are rather good at recovering from them.
2. Store the arguments for a ktr trace in the right place.
3. Use a generic trap vector for breakpoints.  It should not be special.
4. Save the frame pointer in the trap frame for kernel traps if DDB is compiled
   in, otherwsie we don't save the out registers for kernel traps and stack
   traces can't go through nested traps.
5. Apply the same fix to the return from kernel mode trap code as for user
   mode traps.  Ensure that the window we're returning to is the same one
   that we restore to by fiddling the cwp in the saved tstate.  This requires
   that we transfer the values loaded from the trap frame into alternate
   globals before restore-ing, but doing so is not very expensive and not
   worth worrying about.  Not changing the saved cwp can result in the register
   values magically changing on return from traps if we happen to have slept
   and the windows don't work out exactly the same.  Fix the trace just before
   the retry to account for different register usage.
6. Use a SET macro for loading address constants rather than a variation of
   set and setx.  set only works for 32 bit constants, while setx works for
   64 bit constants as well, but produces bloated code when unnecessary.
   Gas always generates the canonical 2 register, 6 instruction form, even
   when it could be optimized; set uses 1 register and 2 instructions.  At
   the moment we assume that the kernel binary is below 4GB so set is
   always sufficient, but the macro allows it to be configured.  Note that
   this has nothing to do with 32 vs. 64 bit address space, it only applies
   to addresses of symbols which are known at compile/link time.

Submitted by:	tmm (6)
2001-11-18 02:33:37 +00:00
Matthew Dillon
39c95b8377 Fix missing holdsock()->fgetsock()
Submitted by:	Hisashi Hiramoto <hiramoto@phys.chs.nihon-u.ac.jp>
2001-11-17 18:43:13 +00:00
Matt Jacob
3cf64d0fbb Be very generous with timeouts for synchronize cache. We may wait a very long
time in the cases where it really sends the drive out to lunch, but it also
allows us to catch very wierd edge cases of strange drives that might take
a very long time (emulated disk drives over a network, e.g.).
2001-11-17 18:26:00 +00:00
Ian Dowse
ff9fc44d6e The Infortrend IFT-3102 multihost U2 SCSI to U2 SCSI controller
doesn't support the synchronise cache command.

PR:		kern/21752
Submitted by:	Nick R. Colakovic <nickc@corp.firstindustrial.com>
MFC after:	1 week
2001-11-17 17:43:06 +00:00
Ian Dowse
d5abb1e452 Add quirk for Fujitsu M2513A MO drives. These drives hang at various
operations due to the synchronize cache command.

PR:		kern/21674
Submitted by:	W.Scholten <whs@xs4all.nl>
MFC after:	1 week
2001-11-17 14:46:22 +00:00
Yoshihiro Takahashi
608f31f640 MFi386: revisions from 1.26 to 1.30. 2001-11-17 13:58:04 +00:00
Yoshihiro Takahashi
b9c5c179c3 MFi386: revision 1.12 2001-11-17 13:57:32 +00:00
Yoshihiro Takahashi
84909fb9f2 MFi386: revision 1.326. 2001-11-17 13:48:31 +00:00
Yoshihiro Takahashi
e581e0b879 MFi386: revision 1.160 2001-11-17 13:44:33 +00:00
Yoshihiro Takahashi
b69802ca41 MFi386: revision 1.483 2001-11-17 13:16:51 +00:00
Matthew Dillon
b1e4abd246 Give struct socket structures a ref counting interface similar to
vnodes.  This will hopefully serve as a base from which we can
expand the MP code.  We currently do not attempt to obtain any
mutex or SX locks, but the door is open to add them when we nail
down exactly how that part of it is going to work.
2001-11-17 03:07:11 +00:00
Peter Wemm
720c992fe1 Fix the non-KSTACK_GUARD case.. It has been broken since the KSE
commit.  ptek was not been initialized.
2001-11-17 01:56:04 +00:00
Peter Wemm
6729cb8800 Start bringing i386/pmap.c into line with cleanups that were done to
alpha pmap.  In particular -
- pd_entry_t and pt_entry_t are now u_int32_t instead of a pointer.
  This is to enable cleaner PAE and x86-64 support down the track sor
  that we can change the pd_entry_t/pt_entry_t types to 64 bit entities.
- Terminate "unsigned *ptep, pte" with extreme prejudice and use the
  correct pt_entry_t/pd_entry_t types.
- Various other cosmetic changes to match cleanups elsewhere.
- This eliminates a boatload of casts.
- use VM_MAXUSER_ADDRESS in place of UPT_MIN_ADDRESS in a couple of places
  where we're testing user address space limits.  Assuming the page tables
  start directly after the end of user space is not a safe assumption.
There is still more to go.
2001-11-17 01:38:32 +00:00
Peter Wemm
50fa1aaaa7 Forward declare struct ifnet - this fixes a warning in tdfx_pci.c 2001-11-17 01:22:07 +00:00
Peter Wemm
1cf2b66500 Fix printf warnings (int/long)
#if 0 around unused ifname_bsd_to_linux() function
2001-11-17 01:20:02 +00:00
Peter Wemm
170a2c575c Fix warning in debug printf. This is a long on alpha, and int on i386,
but printed with %ld always.
2001-11-17 01:16:10 +00:00
Peter Wemm
bc5f905080 Missing KSE s/curproc/curthread/ 2001-11-17 01:09:53 +00:00
Ian Dowse
55a13f7dd0 Return EOPNOTSUPP for unknown module events.
PR:		kern/18473
Submitted by:	"Jeroen C. van Gelderen" <gelderen@systemics.com>
2001-11-17 00:46:08 +00:00
Peter Wemm
1b27b1ad08 Fix some warnings on 64 bit platforms. 2001-11-17 00:42:02 +00:00
Jonathan Lemon
4584bbf555 When laying out objects in a ZONE_INTERRUPT zone, allow them to cross
a page boundary, since we've already allocated all our contiguous kva
space up front.  This eliminates some memory wastage, and allows us to
actually reach the # of objects were specified in the zinit() call.

Reviewed by: peter, dillon
2001-11-17 00:40:48 +00:00
Peter Wemm
857ff6155b utime/stime.tv_sec are elapsed times, not relative to 1970. We can
safely print them as longs.  Even if ^T overflows after a process
has accumulated 68 years of user or system time, it is no big deal.
2001-11-17 00:26:57 +00:00
Peter Wemm
aa89942676 You cannot cast a time_t to quad_t and printf it with %lld. quad_t is
64 bits, not long long.
2001-11-16 23:53:48 +00:00
Ian Dowse
7b9716bad2 Fix a number of misspellings of "dependency" and "dependencies" in
comments and function names.

PR:		kern/8589
Submitted by:	Rajesh Vaidheeswarran <rv@fore.com>
2001-11-16 21:08:40 +00:00
Ian Dowse
c55c345375 Handle the IBCS2 FIONREAD ioctl. I have only tested that this
compiles, but the patch looks reasonable.

PR:		i386/5784
Submitted by:	Remy NONNENMACHER <remy@synx.com>
2001-11-16 20:32:32 +00:00
Poul-Henning Kamp
24d5c95471 Back out the previous fix to the leading zero problem, I hadn't
noticed it in there already.  That should teach me to check exit
code from cvsup.
2001-11-16 17:07:47 +00:00
Poul-Henning Kamp
10786074c5 Reject leading zeros in dev_stdclone().
PR:		32019
Submitted by:	fenner
2001-11-16 17:05:07 +00:00
Warner Losh
247e08d681 Regenerate with 1.19 of pccarddevs 2001-11-16 06:59:27 +00:00
Warner Losh
9022e7256a Merge in most (hopefully all) of the devices that OpenBSD has that
NetBSD/FreeBSD doesn't have listed.
2001-11-16 06:58:47 +00:00
Peter Wemm
0891c82c32 Cosmetic tweak to eliminate some diffs 2001-11-16 02:44:55 +00:00
Peter Wemm
ee0e75a4e0 Merge another missing part of i386/pmap.c rev 1.220. Dont blindly clear
the PG_BUSY flag without using the code that wakes up something else that
may be sleeping on it.
2001-11-16 02:41:31 +00:00
Peter Wemm
ab29f8765d Oops, I accidently merged a whitespace error from the original commit.
(whitespace at end of line in rev 1.264 pmap.c).  Fix them all.
2001-11-16 02:31:20 +00:00
Peter Wemm
303f52d500 Merge rev 1.264 from i386/pmap.c (tegge via alfred):
Protect against an infinite loop when prefaulting pages.  This can
happen when the vm system maps past the end of an object or tries
to map a zero length object, the pmap layer misses the fact that
offsets wrap into negative numbers and we get stuck.
2001-11-16 02:28:33 +00:00
Peter Wemm
88b5258822 Merge rev 1.202 from i386/pmap.c (back in 1998 by John Dyson):
Make flushing dirty pages work correctly on filesystems that
unexpectedly do not complete writes even with sync I/O requests.
This should help the behavior of mmaped files when using
softupdates (and perhaps in other circumstances also.)
2001-11-16 02:25:29 +00:00
Peter Wemm
79eb7b284f Merge rev 1.293 of i386/pmap.c - skip PG_UNMANAGED in pmap_collect() 2001-11-16 02:20:40 +00:00
Peter Wemm
8ad881324c Converge/fix some debug code (#if 0'ed on alpha, but whatever)
- use NPTEPG/NPDEPG instead of magic 1024 (important for PAE)
- use pt_entry_t instead of unsigned (important for PAE)
- use vm_offset_t instead of unsigned for va's (important for x86-64)
2001-11-16 02:17:18 +00:00
Peter Wemm
704be0159c Converge with i386/pmap.c - dont refer to curproc, use curthread. 2001-11-16 02:06:06 +00:00
Josef Karthauser
9ea6d9ef6a Switch warnings and strict back on again in a way that's compatible
with -stable as well as -current.

Reviewed by:	imp
2001-11-16 02:02:42 +00:00
Peter Wemm
4cd0f1ee99 Merge part of i386/pmap.c rev 1.220 that got missed in alpha/pmap.c
rev 1.10
2001-11-16 02:02:21 +00:00
Peter Wemm
024c3fd9d5 As part of a general cleanup and reconvergence of related pmap code,
start tidying up some loose ends.  The DEBUG_VA stuff has long since
passed its use-by date.  It wasn't used on ia64 but got cut/pasted there.
2001-11-16 01:56:34 +00:00
Peter Wemm
f281e9efbe Fix a leftover client comment, long line fix. 2001-11-15 23:49:02 +00:00
Bill Fenner
b519852a02 Do not allow leading zeros on device names in dev_stdclone().
PR:		kern/32019
Reviewed by:	phk
2001-11-15 23:27:46 +00:00
Maxim Sobolev
3f1a8e9371 Allow bit 21 of EFLAGS register (PSL_ID) be changed in the use-mode without
ill effects. This should fix problems threaded programs are having with
auto-detecting CPU type.

Reported by:	Joe Clarke <marcus@marcuscom.com>
Tested by:	Joe Clarke <marcus@marcuscom.com>
Reviewed by:	jhb
MFC after:	1 week
2001-11-15 23:01:29 +00:00
John Baldwin
21a7a9aeb6 Use MTX_QUIET for the lock operations during clock interrupts so their logs
don't drown out more useful log messages.
2001-11-15 19:54:48 +00:00
John Baldwin
f4076cc158 Add a couple of returns to making recovering from a failed witness_assert()
more sane in the RESTARTABLE_PANICS case.
2001-11-15 19:46:36 +00:00
Robert Watson
101823b1a1 'error' is now unused, since its only purpose was to catch the
results of suser_td().
2001-11-15 19:42:08 +00:00
Jeroen Ruigrok van der Werven
a9032e75b2 Document the atkbd flags of 0x03 and be explicit to mention this might
fit some dockingstation keyboard probing.

PR:		23681
Submitted by:	yokota [PR issued by:
				Claude Lefrancois <lmcclef@lmc.ericsson.se>]
2001-11-15 19:42:07 +00:00
Robert Watson
474f15b863 Temporarily disable unloading, as it appears to be broken (read: causes
panics)
2001-11-15 19:41:14 +00:00
Robert Watson
ca7779ceca o Rely on /dev/snp* permissions, rather than using suser() in snpopen()
to prevent inappropriate use of the snoop device.  This means that,
  with appropriate chmod'ing, arbitrary users may make use of the snoop
  device.
2001-11-15 19:28:49 +00:00
John Baldwin
ba48b69a13 Remove definition of witness and comment stating that this file implements
witness.  Witness moved off to subr_witness.c a while ago.
2001-11-15 19:08:55 +00:00