Commit Graph

11986 Commits

Author SHA1 Message Date
mckusick
44e40659a6 Do not need (or want) to take a reference on an NFS file that
is being deleted due to an forcible unmount. The problem is
that vgone calls vclean() which then calls calls nfs_inactive()
with VXLOCK set on the vnode. Nfs_inactive() was calling vget()
to get a reference on the vnode, which in turn hung on VXLOCK.
Nfs_inactive() now checks v_usecount to make sure that the vnode
is not coming from vclean() before it does a vget().
1998-09-29 23:15:25 +00:00
mckusick
a037faba69 The code checks each fragment mark to see if it's valid; if the fragment
is less than NFS_MINPACKET or greater than NFS_MAXPACKET in size, it
barfs and, I think, drops the connection.

However, there's no guarantee that in a multi-fragment RPC, all the
fragments will be at least as large as NFS_MINPACKET.

In fact, with the version of "tclnfs" we have here, which supports NFS
over TCP, at least when built under SunOS 4.1.3 (i.e., with 4.1.3's
user-mode ONC RPC library), I can *repeatably* cause "tclnfs" to send a
request with more than one fragment, one of which is only 8 bytes long.
I just do a 3877-byte write to a file, at an offset of 0.

The check that "slp->ns_reclen" is greater than or equal to
NFS_MINPACKET serves no useful purpose - if the NFS server code can't
handle packets < NFS_MINPACKET bytes, it can't handle them over *any*
protocol, so the check has to be done above the RPC-over-TCP layer - and
should be removed.
Obtained from: Fix from Guy Harris, forwarded by Rick Macklem.
1998-09-29 22:33:05 +00:00
ken
124f5232aa In the bootverbose case, print out error messages for all errors that will
not be retried again, even if the SF_NO_PRINT flag is set.

Reviewed by:	gibbs
1998-09-29 22:11:30 +00:00
ache
12670395dc vm86_datacall: always use workaround since temp. malloced buffer or stack
area can be passed (and mapped to page1!) as vesa.c does. Use contigmalloc
now to get proper alignment. Bump max buffer size to PAGE_SIZE
1998-09-29 22:06:33 +00:00
mckusick
96a4dc4d6d Mark directory buffers that have no valid data with B_INVAL
so that they are not put in the cache.
1998-09-29 22:01:10 +00:00
mckusick
7774c57b8b When adding data to a buffer, we need to clear the B_NEEDCOMMIT flag
which says that the data is on server but not committed.
1998-09-29 21:46:54 +00:00
ache
2ad6aded6a Restore v1.3 - page align workaround moved to vm86_datacall now 1998-09-29 20:38:54 +00:00
ache
635b2fe435 Move workaround about page aligned data buffer directly to vm86_datacall,
it is impossible to use this func otherwise, i.e. all vesa calls are
potentially broken. Max arg size limited to 1024 for now, bump it, if needed.
1998-09-29 20:36:31 +00:00
rvb
ee04be1c0c Fixes for lkm:
1. use VFS_LKM vs ACTUALLY_LKM_NOT_KERNEL
2. don't pass -DCODA to lkm build
1998-09-29 20:19:45 +00:00
jlemon
974521ccba Don't erase curproc when making a vm86() call. The previous behavior
was a pessimization that broke schedcpu(). (It caused the process to
be remrq()'d).
Reviewed by:	Tor Egge
1998-09-29 18:01:18 +00:00
abial
121218d024 Make #define NO_SWAPPING a normal kernel config option.
Reviewed by:	jkh
1998-09-29 17:33:59 +00:00
abial
347d8b5710 Make #define NO_SWAPPING a normal kernel config option.
Warn unsuspecting users against current DEVFS pitfalls.

Reviewed by:	jkh
1998-09-29 17:33:45 +00:00
abial
68f6143093 Add sysctl 'machdep.msgbuf_clear'. Setting it to anything causes the
kernel message buffer to be cleared. It comes handy in situations when
the only logging facility you have is the msgbuf.

Reviewed by:	jkh
1998-09-29 11:20:16 +00:00
bde
02489e6f7f Fixed printf format errors. u_long is not necessarily suitable for casting
pointers to, and %d is not suitable for printing uint32_t's.
1998-09-29 09:18:08 +00:00
bde
b2e75d324e FIxed printf format errors (an new one that is only detected on systems
with pointers smaller than u_longs, and 2 possibly-truncating casts in
the same printf).
1998-09-29 09:14:52 +00:00
peter
fc873fcda4 The bootinfo struct was getting clobbered or not passed through correctly.
Presumably VTOP doesn't work for static objects.
The easiest way to get it working was to reserve some space after the
environment strings and copy the bootinfo struct there.
Also, set RB_BOOTINFO, it's needed.

I got the code to load and run an unmolested kernel OK for the first time
with this system a few minutes ago - at last!.  I did have to stop it
looking at the floppy though as BTX was trapping a mode 14 fault when
it look for /boot/boot.conf when no disk was in the drive. (I'm booting
from a scsi disk (bios disk 0x80)).

Now to teach it about ELF and modules :-)
1998-09-29 09:11:49 +00:00
bde
dc111a9a45 Don't pretend to support ix86's with 16-bit ints by using longs just
to ensure 32-bit variables.  Doing so broke ix86's with 64-bit longs.
1998-09-29 09:06:00 +00:00
bde
fd94b4c920 Fixed initialization of new inodes. ext2fs doesn't clear inodes when
they are deleted, so inodes must be cleared when they are reused, but
we didn't clear the indirect blocks.  This caused serious filesystem
corruption.
1998-09-29 08:07:32 +00:00
imp
2eaefdb866 Several minor cleanups, inspired by bug reports and the old driver:
o Unlock mailbox interface if we have a new card.  Before only newer cards
  (B or newer) that had the BIOS disabled would probe.  Cards with the
  BIOS enabled would fail to probe in the mailbox initialization code.
o Increase the number of ccbs and sg to 17 from 16 to support 64k I/O
  on a non page aligned boundary.  Ideas for dynamic determination of this
  value welcomed, as more of these are better.
o Took credit for this driver, even though I derived it from Justin's code.
  Made sure that Justin's copyright from bt.c was preserved, along with
  his name, since the error handling code is nearly identical.  Add my
  own, identical copyright.  Point people to aha_isa.c.

Cards tested: 1542C and 1542CF.  The B and CP might work now as well,
but logistical problems precluded me from testing them this evening
(if you have jumper settings for the B card, please send me private
mail).
1998-09-29 06:50:21 +00:00
ache
374c9167d6 cosmetique - remove unneded static in previous commit 1998-09-29 04:11:35 +00:00
ache
f4ce5ac9a2 workaround painful vm86_datacall requirement that segment+offset
must be withing the same PAGE frame
1998-09-29 04:09:39 +00:00
ache
c7a892bf97 Fix destructive cursor shape after text mode switch.
This is only for standard modes, I don't check vesa modes yet.
1998-09-29 02:00:57 +00:00
rvb
32f1573bbe John Dyson approved of this solution; make vnode_pager_input_old set m->valid 1998-09-28 23:58:10 +00:00
ache
e232864ddf fix handling more than one cards
Submitted by: "Sergey V.Dorokhov" <svd@kbtelecom.nalnet.ru>
1998-09-28 23:27:57 +00:00
peter
501805c399 Only bcopy the correct amount of data from the buffer in case it is ever
in an overrun situation.
1998-09-28 22:04:54 +00:00
peter
bc25156633 Use the variable with the path in it for the error message. 1998-09-28 22:03:01 +00:00
peter
51b3ea754e Reactivate the a.out kernel loader code. 1998-09-28 22:01:20 +00:00
peter
6f52c26500 Missing return value that was kinda important. 1998-09-28 21:59:21 +00:00
peter
21ca5b8d5a Argh, I don't believe how much time I wasted looking for this...
Bytes of extended memory = (extkb * 1024), not (extkb + 1024)
1998-09-28 21:39:11 +00:00
rvb
c2e5b5e9f0 Cleanup and fix THE bug 1998-09-28 20:52:58 +00:00
peter
d3c472a717 The comconsole mode is accessed as 'comconsole' not 'com'. 1998-09-28 20:17:05 +00:00
peter
652e75ae6c MBR magic is 0x55aa not 0xffaa. 1998-09-28 20:08:34 +00:00
peter
a9ac15c833 Precedence bug (?) causing probe problems. 1998-09-28 20:07:39 +00:00
peter
c7cd80895a Fix (?) EISA interrupt configuration based on observation of what we've
seen in practice.  The MPspec is ambiguous and/or contradicts itself.
We now look at the ELCR to determine the trigger mode (edge/level) of an
interrupt tagged as "conforming" in the mptable.  EISA interrupts appear
to be presented to the APIC as active high in all cases (they are level
inverted) that we've seen, so use this for the 'conforming' level case.

Of note, the system I'm using has 2 PCI cards in it, and the PCI cards
interrupts (5 and 9) appear in the ELCR register as level sensitive and the
mptable lists 5 and 9 as coming from the EISA bus.  The PCI interrupts
are active-high by the time they reach the APIC even though they are
electrically active low at the slot.

We should still work should somebody implement this on motherboards
differently in the future as long as the mptable is clear about the
trigger/polarity.

Current should work on Holm Tiffe's machine now.

Based on code from: Tor.Egge@fast.no
1998-09-28 13:47:23 +00:00
peter
49a373f7fc Back out rev 1.6 (temporarily at least). <machine/asmacros.h> is used
here for getting the #defines for the removal of the leading '_' in symbols
in the assembler code.  We could probably #include <machine/asnames.h>
instead, but everything else seems to use asmacros.h directly as well.
Once we convert symbols, this becomes irrelevant.
1998-09-28 12:20:46 +00:00
kato
bf756cdf20 Sync with sys/i386/i386/userconfig.c revision 1.110. 1998-09-28 08:26:10 +00:00
kato
7a03fa5884 Sync with sys/i386/i386/machdep.c revision 1.310. 1998-09-28 08:25:29 +00:00
kato
f82938c038 Sync with sys/i386/conf/options.i386 revision 1.89. 1998-09-28 08:23:26 +00:00
kato
e442a205fb Sync with sys/i386/conf/SMP-GENERIC revision 1.16. 1998-09-28 08:20:55 +00:00
grog
90ae3eab9d Include vinum in SUBDIR 1998-09-28 05:38:52 +00:00
grog
bc08182a5d Correct calculation of revive blocksize
Submitted by: Chris Csanady
1998-09-28 04:24:10 +00:00
grog
4afb4efa2f Get include paths right 1998-09-28 04:21:20 +00:00
jlemon
ca535e3107 Use defines APM_BIOS and SYSTEM_BIOS instead of hardcoding 0x53 and 0x15. 1998-09-28 03:41:12 +00:00
tegge
e708a51bd0 Initialize pcb_mpnest to 1 in the child process in cpu_fork(). This should
fix the 50% idle problem that the ELF /sbin/init triggered.  The problem
appeared when the last context switch before a fork() call was due to
the kernel faulting in user pages via normal page faults (e.g. copyin).
Reviewed by:	Peter Wemm <peter@netplex.com.au>
1998-09-28 03:34:39 +00:00
tegge
1b80829d9c Use correct virtual address when configuring the per CPU idle page directory
for a vm86 call under SMP.
1998-09-28 03:26:22 +00:00
dg
dc15100c5d Be more selctive about when we clear p->valid.
Submitted by:	John Dyson <toor@dyson.iquest.net>
1998-09-28 02:40:11 +00:00
jkoshy
2769304fd0 strings' -> strings -aout -n 3'
Pointer out by:	Ben Smithurst <ben@scientia.demon.co.uk> and
		<des@freebsd.org>
1998-09-27 11:47:24 +00:00
dfr
9437402528 Update SimOS scsi driver to use CAM. 1998-09-26 14:49:26 +00:00
dfr
fb8743cea1 Don't try to attach an isa bus if there isn't one. 1998-09-26 14:48:19 +00:00
dfr
ae218f4364 Merge changes from i386/isa/sio.c up to revision 1.215. 1998-09-26 14:47:16 +00:00