Commit Graph

36635 Commits

Author SHA1 Message Date
Marcel Moolenaar
ddc6d86ca3 Better handle sparse physical memory: Don't use the address range
as a measure for available memory to scale the VHPT. Instead, use
the previously determined Maxmem.

Approved by: re (carte blanc)
2002-11-29 20:10:21 +00:00
Kirk McKusick
fa5d33e242 Check to make sure that the fs_sblockloc field was properly updated
before using it to write the superblock. This is to guard against
accidentally trashing the disklabel if the superblock format missed
being upgraded by the new kernel.

Reported by:	Sam Leffler <sam@errno.com>
Sponsored by:   DARPA & NAI Labs.
Approved by:	Murray Stokely <murray@FreeBSD.org>
2002-11-29 19:20:15 +00:00
Yaroslav Tykhiy
b7c8a7976f Release the reference to the peripheral if returning a error.
That reference is to be held only if daopen() has been successful
and until daclose() releases it.  daclose() won't be called if
daopen() has failed, though.

Approved by:	re, njl
MFC after:	1 week
2002-11-29 15:40:10 +00:00
Mike Barcroft
af084166b5 Fix the standards case by referring to __fds_bits instead of fds_bits
in FD_*() macros.

Submitted by:	Marc Recht <marc@informatik.uni-bremen.de>
Approved by:	re
2002-11-28 15:34:32 +00:00
Mike Barcroft
dda9f92465 Remove the <sys/types.h> prerequisite for <ucontext.h> by including
<sys/_types.h> in <sys/signal.h>.

Approved by:	re
2002-11-28 15:32:49 +00:00
Alan Cox
fdff30d256 Use pmap_remove_all() instead of pmap_remove() before freeing the page
in vm_pgmoveco(); the page may have more than one mapping.  Hold the page
queues lock when calling pmap_remove_all().

Approved by:	re (blanket)
2002-11-28 08:44:26 +00:00
Alan Cox
e80b7b691e Lock page field accesses in mincore().
Approved by:	re (blanket)
2002-11-28 08:01:39 +00:00
Robert Watson
69e979c3c4 Reclaim major number 182 which I allocated for mdsio. It was decided
that this should become a line discipline for sio rather than a
separate driver.
2002-11-28 04:29:52 +00:00
Scott Long
29dcbe8760 Revisit the printf format fixes for alpha. intmax_t doesn't exist in
RELENG_4, so cast to u_long in order to stay compatible.

Approved by: re	(blanket)
2002-11-28 04:09:29 +00:00
Marcel Moolenaar
aef78848af Remove a left-over virtual mapping of uncached I/O port space.
Previous kernels unwantingly depended on this mapping, but as
of version 1.123 of src/sys/ia64/ia64/machdep.c this dependency
has been removed. Consequently, one has to update the kernel
before updating the loader. The documented/recommended upgrade
will suffice in this case.

Due to a visible (from the kernels point of view) change in
behaviour, bump the loader version number from 0.3 to 1.0.

Approved by: re (carte blanc)
2002-11-28 03:25:51 +00:00
Noriaki Mitsunaga
e8c1847f37 Uncomment out the lines of {ncv,ncr53c500,tmc18c30}_pccard.c .
They now support NEWCARD and compiles with GENERIC kernel.

Approved by:	re
2002-11-28 01:17:48 +00:00
Noriaki Mitsunaga
3e4be4cbf1 o Changes to support NEWCARD.
o Add needed headers.
        o Add stg_products[] product data and stg_match() function.
        o Change stg_pccard_method[] to support both OLDCARD and NEWCARD.

Approved by:	re
2002-11-28 01:15:01 +00:00
Noriaki Mitsunaga
4a42958a2b o Changes to support NEWCARD.
o Add needed headers.
        o Add ncv_products[] product data and ncv_match() function.
        o Change ncv_pccard_method[] to support both OLDCARD and NEWCARD.

Suggestion for REX-5572 matching part by imp.

Approved by:	re
2002-11-28 01:13:58 +00:00
Noriaki Mitsunaga
922019c24b o Changes to support NEWCARD.
o Add needed headers.
	o Add nsp_producs[] product data and nsp_match() function.
	o Change nsp_pccard_method[] to support both OLDCARD and NEWCARD.
	o Add warning to fall back to PIO mode when it cannot use SMIT mode.
	  This is needed because memories are not allocated with NEWCARD now.

Submitted by:	takawata
Approved by:	re
2002-11-28 01:09:29 +00:00
Noriaki Mitsunaga
a11d8d7097 regen to 1.38
Reviewed by:	imp
Approved by:	re
2002-11-28 01:00:40 +00:00
Noriaki Mitsunaga
3c3dc1cf2e o Add PC-Cards' ID or CIS strings which are supported by ncv, nsp,
or stg driver. They are,

Macnica mPS110, PANASONIC(KME) KXLC004, Qlogic Fast SCSI,
Workbit Ultra Ninja-16, (ID based)

Future Domain SCSI2GO, IBM SCSI PCMCIA card, I-O DATA CBSC16,
Macnica mPS100, Newmedia BASICS-SCSI, RATOC REX-5536, RATOC REX-5536AM,
RATOC REX-5536M, RATOC REX5572, Workbit NinjaSCSI-3
(CIS based)

  Note: We need vendor IDs WORKBIT2 and IODATA3 which is -1, since some
        cards does not have IDs in the CIS and fails to be probed without
	this fake vendor IDs.

o Change the strings of RATOC REX_R280 from REX-R280 to REX-R280/REX-9530.
  This reminds us that REX-R280 and REX-R9530 have same ID (same product).

Reviewed by:	imp
Approved by:	re
Obtained from:	/etc/defaults/pccard.conf,
		List of CIS tupples by Toshihiko ARAI and PAO project:
			http://www.linkclub.or.jp/~clover/cis/
Change suggestion by:	HASEGAWA Tomoki <thasegawa@mta.biglobe.ne.jp>
			for I-O DATA CBSC16 entry
2002-11-28 00:57:47 +00:00
John Baldwin
a303783836 Enable UFS2 support in boot1. Just as with sparc64 the same boot1 works
great with both UFS1 and UFS2 filesystems.

Approved by:	re
2002-11-27 20:13:15 +00:00
Alan Cox
85e0124324 Hold the page queues lock when performing pmap_clear_modify().
Approved by:	re (blanket)
2002-11-27 19:51:48 +00:00
Mitsuru IWASAKI
21b5fd3cfd Resolve conflicts arising from the ACPI CA 20021118 import. 2002-11-27 18:09:20 +00:00
Mitsuru IWASAKI
360aac4e22 This commit was generated by cvs2svn to compensate for changes in r107325,
which included commits to RCS files with non-trunk default branches.
2002-11-27 18:07:48 +00:00
Mitsuru IWASAKI
716b1ee2b9 Vendor import of the Intel ACPI CA 20021118 drop.
Approved by:	re
2002-11-27 18:07:48 +00:00
Warner Losh
3a28284461 Need more parens here.
Approved by: re (blanket)
2002-11-27 17:30:41 +00:00
Robert Drehmel
f85a961930 Do not set a variable (vp->p_pollinfo) to NULL if we know
it already has that value.

Approved by:	re
2002-11-27 16:45:54 +00:00
David E. O'Brien
6380ce4de1 Fix for non-GCC compilers.
Approved by:	re (jhb)
2002-11-27 16:28:18 +00:00
Maxim Konovalov
8819f45b51 Small SO_RCVTIMEO and SO_SNDTIMEO values are mistakenly taken to be zero.
PR:		kern/32827
Submitted by:	Hartmut Brandt <brandt@fokus.gmd.de>
Approved by:	re (jhb)
MFC after:	2 weeks
2002-11-27 13:34:04 +00:00
Mitsuru IWASAKI
3fd2b0260e Disable debug output from acpi_pci_link.
There were no serious problem reports on this in spite of my concern.

To get debug output from acpi_pci_link, just enable bootverbose flag
in usual manner (boot -v).

Approved by:	re
2002-11-27 09:32:24 +00:00
Alan Cox
3a199de3d9 Hold the page queues lock while performing pmap_page_protect().
Approved by:	re (blanket)
2002-11-27 08:03:24 +00:00
Scott Long
7fc23fe669 Minor updates to the aicasm:
aicasm_gram.y:
	Use a direct move from allzeros to emulate a
	mvi of 0.

aicasm_insformat.h:
	sync $Id$

aicasm_symbol.c:
	Minor header change.

Approved by:	re (blanket)
2002-11-27 07:06:43 +00:00
Warner Losh
e7b01d0727 Xircom cards store the MAC address in the CIS, so get it from the new
pci_get_ether accesor, which gets it from the CIS for cardbus cards
(and from other pci-like buses via whatever mechanism is used there).

Submitted by: sam
Approved by: re (blanket)
2002-11-27 07:04:10 +00:00
Warner Losh
fbe9cff112 Implement PCI_IVAR_ETHADDR. Cardbus has the MAC addr in the CIS,
sometimes, so return it when requested and it does.  Also a little
more infrastructure for a few other things.

Submitted by: sam
Approved by: re (blanket for NEWCARD)
2002-11-27 06:56:29 +00:00
Warner Losh
ba5fc4eed2 Add a new cardbus specific ivar: PCI_IVAR_ETHADDR. Some pci-like
buses support querying the MAC address in a standard-for-that-bus way.
The base pci bus returns NULL for this IVAR always.

Submitted by: sam
Approved by: re (blanket for NEWCARD)
2002-11-27 06:41:28 +00:00
Warner Losh
53662117cc MFp4:
Fix a bug with the 3.3V code for the ricoh bridges.  I got the bit
detect backwards.  Also, we can only detect 3.3V cards when the GPI
interrupt is disabled.  So when it is enabled assume 5.0V card.

Obtained from: NetBSD (takemura-san from patches by ngc@ff.iij4u.or.jp)
Approved by: re (blanket)
2002-11-27 06:04:49 +00:00
Tim J. Robbins
fef82663b8 o Initialise each mbuf's m_len to 0 in m_getm(); mb_put_mem() depends
on this.
o Update the `cur' pointer in the cluster loop in m_getm() to avoid
  incorrect truncation and leaked mbufs.

Reviewed by:	bmilekic
Approved by:	re
2002-11-27 04:26:00 +00:00
Warner Losh
647501a046 Make the rman_{get,set}_* macros into real functions. The macros
create an ABI that encodes offsets and sizes of structures into client
drivers.  The functions isolate the ABI from changes to the resource
structure.  Since these are used very rarely (once at startup), the
speed penalty will be down in the noise.

Also, add r_rid to the structure so that clients can save the 'rid' of
the resource in the struct resource, plus accessor functions.  Future
additions to newbus will make use of this to present a simplified
interface for resource specification.

Approved by: re (jhb)
Reviewed by: jhb, jake
2002-11-27 03:55:22 +00:00
Kirk McKusick
ada981b228 Create a new 32-bit fs_flags word in the superblock. Add code to move
the old 8-bit fs_old_flags to the new location the first time that the
filesystem is mounted by a new kernel. One of the unused flags in
fs_old_flags is used to indicate that the flags have been moved.
Leave the fs_old_flags word intact so that it will work properly if
used on an old kernel.

Change the fs_sblockloc superblock location field to be in units
of bytes instead of in units of filesystem fragments. The old units
did not work properly when the fragment size exceeeded the superblock
size (8192). Update old fs_sblockloc values at the same time that
the flags are moved.

Suggested by:	BOUWSMA Barry <freebsd-misuser@netscum.dyndns.dk>
Sponsored by:   DARPA & NAI Labs.
2002-11-27 02:18:58 +00:00
Tim J. Robbins
bd32b70236 Fix a fatal typo introduced in revision 1.13 that caused the mbuf chains to
be created incorrectly for requests larger than NB_SORECEIVE_CHUNK bytes.

Approved by:	re
2002-11-26 23:53:28 +00:00
Julian Elischer
f2ec255a33 fixes for this driver:
1) "ubt" driver did not work when system is booted with the device attached
2) missing "break;" in ubt_rcvmsg() function;

Submitted by: Maksim Yevmenkin <Maksim.Yevmenkin@cw.com>
Approved by: re (jhb)
2002-11-26 18:30:45 +00:00
Cameron Grant
00acb1337e (hopefully) fix build breakage some people are seeing
Approved by:	re
2002-11-26 18:16:27 +00:00
Bill Fenner
8b5f8b061a Don't hold acct_mtx over limcopy(), since it's unnecessary and
limcopy() can sleep.

Approved by:	re
2002-11-26 18:04:12 +00:00
Sam Leffler
c8f43965d6 correct function names in KASSERT's for 2 m_tag routines
Submitted by:	rwatson
Approved by:	re
2002-11-26 17:59:16 +00:00
Robert Watson
fe5f892d58 Unhook LOMAC kernel module since the functionality is now provided by
the smaller, cleaner, less bit-rotted mac_lomac module.

Approved by:	re
Obtained from:	TrustedBSD Project
Sponsored by:	DARPA, Network Associates Laboratories
2002-11-26 17:53:27 +00:00
Robert Watson
7496ed81c3 Correct two warnings by staticizing a function and removing an unused
function.

Approved by:	re
Obtained from:	TrustedBSD Project
Sponsored by:	DARPA, Network Associates Laboratories
2002-11-26 17:38:25 +00:00
Robert Watson
5773cccf19 Hook up the mac_lomac module build.
Approved by:	re
Obtained from:	TrustedBSD Project
Sponsored by:	DARPA, Network Associates Laboratories
2002-11-26 17:35:44 +00:00
Robert Watson
c47257370f Hook up kernel options and build information for mac_lomac.
Approved by:	re
Obtained from:	TrustedBSD Project
Sponsored by:	DARPA, Network Associates Laboratories
2002-11-26 17:32:39 +00:00
Robert Drehmel
d1989db545 To avoid sleeping with all sorts of resources acquired (the reported
problem was a locked directory vnode), do not give the process a chance
to sleep in state "stopevent" (depends on the S_EXEC bit being set in
p_stops) until most resources have been released again.

Approved by:	re
2002-11-26 17:30:55 +00:00
Robert Watson
db2661ce96 Import an implementation of LOMAC (Low-Watermark Mandatory Access
Control) as a MAC Framework policy module.  Unlike the existing
src/sys/security/lomac implementation, this one has its fingers out
of the kernel lock order and doesn't make use of flags in existing
kernel structures.  This greatly reduces the quantity of replicated
code with src/sys/kern, simplifies the implementation (3000 vs 8500
lines), and correctes a number of known stability problems with
the existing LOMAC implementation, which will be removed.  A bit
more hooking up to do here.

Approved by:	re
Obtained from:	TrustedBSD Project
Sponsored by:	DARPA, Network Associates Laboratories
2002-11-26 17:26:06 +00:00
John Baldwin
04f4a16448 If the file descriptors passed into do_dup() are negative, return EBADF
instead of panicing.  Also, perform some of the simpler sanity checks on
the fds before acquiring the filedesc lock.

Approved by:	re
Reported by:	Dan Nelson <dan@emsphone.com> and others
2002-11-26 17:22:15 +00:00
Robert Watson
4d10c0ce5f Un-staticize mac_cred_mmapped_drop_perms() so that it may be used
by policy modules making use of downgrades in the MAC AST event.  This
is required by the mac_lomac port of LOMAC to the MAC Framework.

Approved by:	re
Obtained from:	TrustedBSD Project
Sponsored by:	DARPA, Network Associates Laboratories
2002-11-26 17:11:57 +00:00
Yaroslav Tykhiy
df86a3fec1 Eliminate references to defunct kernel tunables.
Approved by:	re
PR:		bin/43343
2002-11-26 13:55:50 +00:00
Alan Cox
85e03a7e1e Acquire and release the page queues lock around calls to pmap_protect()
because it updates flags within the vm page.

Approved by:	re (blanket)
2002-11-25 22:00:31 +00:00
John Baldwin
8745ec57d0 - Assume a bus number of zero if evaluating _BBN fails, not if it succeeds.
This was effectively rendering _BBN useless.
- Cleanup handling of the busok variable a bit.

Submitted by:	marcel (1)
Approved by:	re (rwatson)
2002-11-25 21:55:04 +00:00
John Baldwin
1bbf246462 Fix a couple of bugs in host_pcib_get_busno():
- If a PCI device is not present, then a 32-bit read_config() is going to
  return 0xffffffff not 0xffff.
- For the 82454NX chipset, the MIOC that we read the bus numbers of the
  various host-PCI bridges from is at function (slot) 0x10 not 0x0.

Approved by:	re (rwatson)
2002-11-25 21:53:14 +00:00
Luigi Rizzo
1efbdcd10f Fix IFF_ALLMULTI handling.
Reviewed by: pdeuskar (maintainer)
Approved by: re
2002-11-25 20:00:13 +00:00
Luigi Rizzo
d535facffe Add polling support to the "em" driver.
Reviewed by: pdeuskar (maintainer)
Approved by: re
2002-11-25 19:56:16 +00:00
Nate Lawson
37dce299a6 Remove unnecessary includes and add sys/{lock,mutex}.h
Submitted by:	bde
Approved by:	re (previously)
2002-11-25 19:28:05 +00:00
Luigi Rizzo
5d6dfbbb5e Fix handling of IFF_ALLMULTI. The same bug in various forms affects
the following drivers:

    dc mn sf sk ste ti tl xl an bge em gem gx ie lge sr aue cue kue wi xe

Approved by: re
2002-11-25 19:28:01 +00:00
Cameron Grant
67beb5a5c8 various fixes to eliminate locking warnings
Approved by:	re
Reviewed by:	orion
2002-11-25 17:17:43 +00:00
Cameron Grant
68f4e7f1d3 various fixes to eliminate locking warnings
Approved by:	re
Reviewed by:	orion
2002-11-25 17:07:33 +00:00
Cameron Grant
0586ff0d84 if the list of supported formats is empty, fail the attach instead of
panicing later.  this is a band-aid pending further investigation.

MFC After:	7 days
Approved by:	re
2002-11-25 17:03:39 +00:00
Mike Silbersack
c7c3f58e12 Import some relevant changes from Via's if_fet driver:
1.  Detect the revision of the Rhine chip we're using.
2.  Use the force reset command on revisions which support
    it whenever the normal reset command fails.

This should solve a wide range of "my vr0 locks up with reset
failed messages" problems.  (Although the root causes should
be eventually tracked down.)

Tested by:	grenville armitage <garmitage@swin.edu.au>
Obtained from:	Via's if_fet driver
MFC after:	3 days
Approved by:	re
2002-11-25 05:15:27 +00:00
Scott Long
bde9cfc2b0 Fix make_dev() to use 0644 instead of 0x644 for default permissions
Spotted by: 	kris
Approved by:	re
2002-11-25 04:55:09 +00:00
Scott Long
cec762959b Fix printf format problems that were stopping LINT on alpha
Submitted by:	jmallett, many others
Approved by:	re
2002-11-25 04:53:12 +00:00
Alan Cox
ffb309581f Assert that the page queues lock is held in pmap_remove_pages().
Approved by:	re (blanket)
2002-11-25 04:45:03 +00:00
Alan Cox
2d21129db2 Acquire and release the page queues lock around pmap_remove_pages() because
it updates several of vm_page's fields.
2002-11-25 04:37:44 +00:00
Alan Cox
560d1fbc99 Add page queues locking to vunmapbuf(); reduce differences with respect
to the sparc64 implementation.  (Note: With modest effort on the alpha and
ia64 this function could migrate to the MI part of the kernel.)

Approved by:	re (blanket)
2002-11-24 21:37:02 +00:00
Alan Cox
8f2ea21450 Add page queues locking to vunmapbuf().
Approved by:	re (blanket)
2002-11-24 21:13:34 +00:00
Marcel Moolenaar
53efb27fc5 MFp4:
Add function map_port_space() to map the memory mapped I/O port
range as uncacheable virtual memory and call it prior to probing
for a console. This removes the dependency on the loader to have
done this for us. Note that this change does not include doing
the same for APs.

Approved by: re (blanket)
2002-11-24 20:15:08 +00:00
Marcel Moolenaar
26cd294128 Fix comparison that caused a 1-off bug. This appeared harmless for
the kernel itself, but SAL on Itanium2 machines spontaneously
rebooted the machine.

Approved by: re (blanket)
Submitted by: Arun Sharma <adsharma@unix-os.sc.intel.com>
2002-11-24 20:07:23 +00:00
Marcel Moolenaar
521cef5ba6 Add ITANIUM2 as a global option. 2002-11-24 19:50:15 +00:00
Marcel Moolenaar
689f36d7f9 MFp4:
o  Show the contents of the AP wakeup descriptor when dumping SAL
   information.
o  Increase S/N ratio when listing the itr and dtr. Only show valid
   mappings and give the total number of TRs.

Approved by: re (blanket)
2002-11-24 19:45:05 +00:00
Alan Cox
13dc71ed40 Extend the scope of the page queues/fields locking in vm_freeze_copyopts()
to cover pmap_remove_all().

Approved by:	re
2002-11-24 06:13:38 +00:00
Mitsuru IWASAKI
87b45ed576 Add `if (!cold)' checkings for functions which is called via SYSINIT.
Loading acpi.ko with kldload is disallowed, however some
functions were executed unexpectedly.

Approved by:	re
2002-11-24 02:27:07 +00:00
Nate Lawson
677152abc6 Whitespace cleanup that was missed by quirks commit 1.114 2002-11-23 23:25:56 +00:00
Warner Losh
e961d904ac Remove a comple of bogus debug printfs that snuck in during some
debugging I was doing 3 months ago :-(.

Noticed by: scottl
Aproved by: the re blanket (different than the security blanket).
2002-11-23 23:09:45 +00:00
Nate Lawson
c3bf92aa58 Allow acd(4) and cd(4) to support old behavior for CDRIOC*SPEED ioctls.
If the value from the user is less than 177, assume it is a multiple of
a single speed CDROM and convert to KB/sec.

No complaints from:	sos
Reviewed by:	ken
Approved by:	re
MFC after:	1 day
2002-11-23 22:51:50 +00:00
Nate Lawson
a35e039f69 Update quirks, adding PR references and fixing a capitalization mismatch.
PR:		kern/45494
Approved by:	re
2002-11-23 22:39:42 +00:00
Alan Cox
178949e021 Hold the page queues/flags lock when calling vm_page_set_validclean().
Approved by:	re
2002-11-23 19:10:31 +00:00
Alan Cox
ba0208b945 Assert that the page queues lock rather than Giant is held in
vm_pageout_page_free().

Approved by:	re
2002-11-23 08:08:54 +00:00
Alan Cox
4817d8e5e6 - Assert that the page queues lock is held in pmap_remove_all().
- Fix a diagnostic message and comment in pmap_remove_all().
 - Eliminate excessive white space from pmap_remove_all().

Approved by:	re
2002-11-23 04:48:13 +00:00
Alan Cox
e8a27959f6 Add page queue and flag locking in vnode_pager_setsize().
Approved by:	re
2002-11-23 03:58:35 +00:00
Maxime Henrion
b19d9defef Under certain circumstances, we were calling kmem_free() from
i386 cpu_thread_exit().  This resulted in a panic with WITNESS
since we need to hold Giant to call kmem_free(), and we weren't
helding it anymore in cpu_thread_exit().  We now do this from a
new MD function, cpu_thread_dtor(), called by thread_dtor().

Approved by:	re@
Suggested by:	jhb
2002-11-22 23:57:02 +00:00
Nate Lawson
c38b150ae4 New SCSI target emulator code
This code allows a user program to enable target mode on a SIM and
then emulate any number of devices (disks, tape drives, etc.)  All
decisions about device behavior (UA, CA, inquiry response) are left
to the usermode program and the kernel driver is merely a conduit
for CCBs.  This enables multiple concurrent target emulators, each
using its own backing store and IO model.

Also included is a user program that emulates a disk (RBC) using a
file as a backing store.  This provides functionality similar to
md(4) at the CAM layer.

Code has been tested on ahc(4) and should also work on isp(4) (and
other SIMs that gain target mode support).  It is a complete rewrite
of /sys/cam/scsi_target* and /usr/share/examples/scsi_target.

Design, comments from:	gibbs
Supported by:		Cryptography Research
Approved by:		re
2002-11-22 22:55:51 +00:00
Daniel C. Sobral
af0f3b71a5 The new "all sound drivers" driver name is snd_driver. Loader.conf didn't
knew about it, though. Now it does.

MFC after:	2 weeks
2002-11-22 18:39:30 +00:00
John Baldwin
9debb53220 According to the ACPI spec, the bus number of the child PCI bus of a host
to PCI bridge can be read be evaluating the _BBN method of the host to PCI
device.  Unfortunately, there appear to be some lazy/ignorant/moronic/
whatever BIOS writers that return 0 for _BBN for all host to PCI bridges in
the system.  On a system with a single host to PCI bridge this is not a
problem as the child bus of that single bridge will be bus 0 anyway.
However, on systems with multiple host to PCI bridges and l/i/m/w BIOS
writers this is a major problem resulting in all but the first host to
PCI bridge failing to attach.  So, this adds a workaround.

If the _BBN of a host to PCI bridge is zero and pcib0 already exists
and is not us, the we use _ADR to look up our PCI function and slot
(we currently assume we are on bus 0) and use that to call
host_pcib_get_busno() to try and extract our bus number from config
registers on the host to PCI bridge device.  If that fails, then we make
an evil assumption that ACPI's _SB_ namespace lays out the host to PCI
bridges in ascending order and use our pcib unit number as our bus
number.

Approved by:	re
2002-11-22 18:11:13 +00:00
John Baldwin
b173edafc7 Add a function host_pcib_get_bnsno() that attempts to determine the bus
number of the child bus of a host to PCI bridge by reading from proprietary
configuration registers in the host to PCI bridge devices.

Approved by:	re
2002-11-22 17:50:47 +00:00
John Baldwin
ebff7660a3 *sigh*. It seems that in the ACPICA code, Intel defines its own APIC_IO
macro for use when parsing MADT tables, thus we always tried to set the
interrupt model to APIC.  This proved to be harmful on UP machines with
IO APIC's (or for UP kernels on SMP machines) since the wrong interrupt
routing information would be returned.

Pointy hat to:	jhb
Approved by:	re (rwatson)
2002-11-21 20:55:22 +00:00
Eric Moore
ca4722f57e Added support for DELL Perc4/DI.
Reviewed by: ps
Approved by: jhb
MFC after: 5 days
2002-11-21 16:06:10 +00:00
Scott Long
147e2e207e Hook the RAIDFrame module up to the build
Approved by:	re
2002-11-21 14:52:20 +00:00
Jeff Roberson
79acfc497b - Add the new sched_pctcpu() function to the sched_* api.
- Provide a routine in sched_4bsd to add this functionality.
 - Use sched_pctcpu() in kern_proc, which is the one place outside of
   sched_4bsd where the old pctcpu value was accessed directly.

Approved by:	re
2002-11-21 09:30:55 +00:00
Jeff Roberson
855a310fcb - Add an event that is triggered when the system is low on memory. This is
intended to be used by significant memory consumers so that they may drain
   some of their caches.

Inspired by:	phk
Approved by:	re
Tested on:	x86, alpha
2002-11-21 09:17:56 +00:00
Jeff Roberson
06439a04a1 - Move scheduler specific macros and defines out of proc.h
Approved by:	re
2002-11-21 09:14:13 +00:00
Jeff Roberson
148302c9c9 - Move FSCALE back to kern_sync. This is not scheduler specific.
- Create a new callout for lbolt and move it out of schedcpu().  This is not
   scheduler specific either.

Approved by:	re
2002-11-21 08:57:08 +00:00
Warner Losh
668537ba95 Fix make buildkernel.
These makefiles work when building in the sys/modules directory, but
not with the objdir stuff that buildkernel uses.  This is because they
used -I../../../blah rather than -I${.CURDIR}/../../../blah.

# I didn't fix the abuse of CFLAGS to specify -g since I wanted the
# barest minimal change since we're in a code freeze.

Approved by: make buildkernel...
Hat for armchair anarchists: core member fixing src tree damage
2002-11-21 07:21:45 +00:00
Jeff Roberson
de028f5a4a - Implement a mechanism for allowing schedulers to place scheduler dependant
data in the scheduler independant structures (proc, ksegrp, kse, thread).
 - Implement unused stubs for this mechanism in sched_4bsd.

Approved by:	re
Reviewed by:	luigi, trb
Tested on:	x86, alpha
2002-11-21 01:22:38 +00:00
Julian Elischer
075c3f0781 Make the bluetooth modules
Approved by:	re
2002-11-21 00:40:11 +00:00
Julian Elischer
878ed22696 The second try a committing the bluetooth code
Has been seen to work on several cards and communicating with
several mobile phones to use them as modems etc.

We are still talking with 3com to try get them to allow us to include
the firmware for their pccard in the driver but the driver is here..
In the mean time
it can be downloaded from the 3com website and loaded using the utility
bt3cfw(8) (supplied) (instructions in the man page)

Not yet linked to the build

Submitted by:	Maksim Yevmenkin <myevmenk@exodus.net>
Approved by:	re
2002-11-20 23:01:59 +00:00
Poul-Henning Kamp
534de7e11d Remember to update the providers idea of its size when we reconfigure
a slice child.

Approved by:	re
2002-11-20 20:12:52 +00:00
Luigi Rizzo
97850a5dd9 Move fw_one_pass from ip_fw2.c to ip_input.c so that neither
bridge.c nor if_ethersubr.c depend on IPFIREWALL.
Restore the use of fw_one_pass in if_ethersubr.c

ipfw.8 will be updated with a separate commit.

Approved by: re
2002-11-20 19:07:27 +00:00
Luigi Rizzo
032dcc7680 Back out some style changes. They are not urgent,
I will put them back in after 5.0 is out.

Requested by: sam
Approved by: re
2002-11-20 19:00:54 +00:00
Luigi Rizzo
b375c9ec2c Back out the ip_fragment() code -- it is not urgent to have it in now,
I will put it back in in a better form after 5.0 is out.

Requested by: sam, rwatson, luigi (on second thought)
Approved by: re
2002-11-20 18:56:25 +00:00
Poul-Henning Kamp
82e5a9a354 Do not call the dumpconf method unless there is one.
Compare pointers with NULL.

Partially submitted by:	Christian Carstensen <cc@gate5.de>
Approved by:	re
2002-11-20 18:10:42 +00:00
Robert Watson
2555374c4f Introduce p_label, extensible security label storage for the MAC framework
in struct proc.  While the process label is actually stored in the
struct ucred pointed to by p_ucred, there is a need for transient
storage that may be used when asynchronous (deferred) updates need to
be performed on the "real" label for locking reasons.  Unlike other
label storage, this label has no locking semantics, relying on policies
to provide their own protection for the label contents, meaning that
a policy leaf mutex may be used, avoiding lock order issues.  This
permits policies that act based on historical process behavior (such
as audit policies, the MAC Framework port of LOMAC, etc) can update
process properties even when many existing locks are held without
violating the lock order.  No currently committed policies implement use
of this label storage.

Approved by:	re
Obtained from:	TrustedBSD Project
Sponsored by:	DARPA, Network Associates Laboratories
2002-11-20 15:41:25 +00:00
Alfred Perlstein
818407fe06 reapply 1.26 through 1.28.
Approved by: re
2002-11-20 15:21:06 +00:00
John Baldwin
69da428022 Fix compile in the case of SMP defined but DDB not defined.
Approved by:	re (implicit, DP2 doesn't build w/o this)
2002-11-20 14:09:33 +00:00
Alfred Perlstein
7affe44ee3 forgot about 5.x freeze, backout 1.26 through 1.28 pending re@ appoval. 2002-11-20 10:53:06 +00:00
Alfred Perlstein
0b2724b10f remove useless casts, unused macros and cleanup a line wrap. 2002-11-20 10:13:04 +00:00
Alfred Perlstein
9822015014 comment and untwist error return logic 2002-11-20 10:06:51 +00:00
Alfred Perlstein
32cb464571 Remove an outdated comment complaining about exporting struct ucred
to userspace, I fixed it a while ago.
2002-11-20 10:00:04 +00:00
Kirk McKusick
f5235f70a4 The target for the maximum number of dependencies has been cut
in half because of reports that under heavy load the kernel could
exhaust its memory pool. The limit is now (desiredvnodes * 4)
rather than (desiredvnodes * 8), so it will still scale with
larger systems, just not as quickly.

Sponsored by:   DARPA & NAI Labs.
2002-11-20 05:16:11 +00:00
Kirk McKusick
3374bb5ad6 If an error occurs while writing a buffer, then the data will
not have hit the disk and the dependencies cannot be unrolled.
In this case, the system will mark the buffer as dirty again so
that the write can be retried in the future. When the write
succeeds or the system gives up on the buffer and marks it as
invalid (B_INVAL), the dependencies will be cleared.

Sponsored by:   DARPA & NAI Labs.
2002-11-20 05:14:16 +00:00
Robert Watson
a3df768b04 Merge kld access control checks from the MAC tree: these access control
checks permit policy modules to augment the system policy for permitting
kld operations.  This permits policies to limit access to kld operations
based on credential (and other) properties, as well as to perform checks
on the kld being loaded (integrity, etc).

Approved by:	re
Obtained from:	TrustedBSD Project
Sponsored by:	DARPA, Network Associates Laboratories
2002-11-19 22:12:42 +00:00
Mike Silbersack
df285b3d1d Add a sysctl to control the generation of source quench packets,
and set it to 0 by default.

Partially obtained from:	NetBSD
Suggested by:	David Gilbert
MFC after:	5 days
2002-11-19 17:06:06 +00:00
Sam Leffler
e5562bee60 correct function declarations of stubs used for building w/o device bpf 2002-11-19 02:50:46 +00:00
Robert Watson
293d2d2261 We leaked a process lock reference in the event an RFTHREAD process
leader wasn't exiting during a fork; instead, do remember to release
the lock avoiding lock order reversals and recursion panic.

Reported by:	"Joel M. Baldwin" <qumqats@outel.org>
2002-11-18 14:23:21 +00:00
David Xu
bfd8325073 Make sure only update wall clock at upcall time, slightly reformat
code in kse_relase().
2002-11-18 12:28:15 +00:00
Jeff Roberson
74c924b553 - Wakeup the correct address when a zone is no longer full.
Spotted by:	jake
2002-11-18 08:27:14 +00:00
Jake Burkholder
a121cb6a7f Create the ofwcons device at SI_SUB_CONFIGURE instead of SI_SUB_DRIVERS,
after configure() has run.  Only create the device if ofwcons is the
highest priority console.  Make a dev alias with the same name as the
firmware output-device property.
2002-11-18 06:19:12 +00:00
Juli Mallett
5f07565bcb Move SHOW_BUSYBUFS and PANIC_REBOOT_WAIT_TIME into the MI options file, since
MI code uses them, and every platform provides them (except x86_64 whose
options file was lacking one).

Reviewed by:	bde, rwatson
2002-11-18 06:17:07 +00:00
Jake Burkholder
e2815d20d9 Setup a default tty mode even if the device is not the console. Don't
reset the chip on open if we're not the console.

This fixes running a getty on ttya or ttyb if console input and output
devices are screen.
2002-11-18 05:56:43 +00:00
Alan Cox
a12cc0e489 Remove vm_page_protect(). Instead, use pmap_page_protect() directly. 2002-11-18 04:05:22 +00:00
Jake Burkholder
4ce7e0f43a Remove some unnecessary code. Make the device description nicer. Add a
delay in the right place to flush output before switching consoles.
2002-11-18 04:02:42 +00:00
Jake Burkholder
42f850516c Run configure at SI_SUB_THIRD instead of SI_SUB_ANY like other
architectures.
2002-11-18 03:28:23 +00:00
Alfred Perlstein
ec63e12a03 During shutdown explain what the numbers following the 'syncing
disks' message mean, specifically, 'buffers remaining...'.
2002-11-18 02:41:03 +00:00
David Xu
8798d4f9c8 1. Support versioning and wall clock in kse mailbox,
also add rusage time in thread mailbox.
2. Minor change for thread limit code in thread_user_enter(),
   fix typo in kse_release() last I committed.

Reviewed by: deischen, mini
2002-11-18 01:59:31 +00:00
Alan Cox
49115f9070 MFi386 r1.369
- Clear the PG_WRITEABLE flag in pmap_changebit() if write access is
   being removed.  Return immediately if write access is being removed and
   PG_WRITEABLE is already clear.

Note: For efficiency, pmap_changebit() should be replaced by a function
similar to sparc64's pmap_clear_write().
2002-11-18 01:36:09 +00:00
Julian Elischer
904f1b77cc include smp.h.
it is required by some code that was commented out until david's
last commit.
2002-11-17 23:26:42 +00:00
Alan Cox
779df20df2 MFi386 r1.369
- Clear the PG_WRITEABLE flag in pmap_page_protect() if write access is
   being removed.  Return immediately if write access is being removed and
   PG_WRITEABLE is already clear.
2002-11-17 21:48:42 +00:00
Luigi Rizzo
6c6cc282a7 Replace m_copy() with m_copypacket() where applicable.
Replace 0 with NULL where appropriate.
Fix indentation and function headers.
2002-11-17 18:14:04 +00:00
Luigi Rizzo
a9897b2662 Fix function headers, remove 'register' from variable declarations. 2002-11-17 18:13:02 +00:00
Luigi Rizzo
9b77fbf0a2 Fix function headers and remove 'register' variable declarations. 2002-11-17 17:04:19 +00:00
Luigi Rizzo
3e372e140c Move the ip_fragment code from ip_output() to a separate function,
so that it can be reused elsewhere (there is a number of places
where it can be useful). This also trims some 200 lines from
the body of ip_output(), which helps readability a bit.

(This change was discussed a few weeks ago on the mailing lists,
Julian agreed, silence from others. It is not a functional change,
so i expect it to be ok to commit it now but i am happy to back it
out if there are objections).

While at it, fix some function headers and replace m_copy() with
m_copypacket() where applicable.

MFC after: 1 week
2002-11-17 16:30:44 +00:00
Mike Barcroft
65cf1bf2f0 1. Hide the internals of struct fd_set in standard namespaces.
2. Avoid referencing bcopy() and bzero(), since they may not be in
   scope.

Request by:     bde (1)
Submitted by:   wollman (2)
Reviewed by:	archie, bde
PR:		43270
2002-11-17 16:22:18 +00:00
Luigi Rizzo
20fab86349 Minor documentation changes and indentation fix.
Replace m_copy() with m_copypacket() where applicable.

While at it, fix some function headers and remove 'register' from
variable declarations.
2002-11-17 16:13:08 +00:00
Luigi Rizzo
4e8fe3210d Cleanup some of the comments, and reformat long lines.
Replace m_copy() with m_copypacket() where applicable.

Replace "if (a.s_addr ...)" with "if (a.s_addr != INADDR_ANY ...)"
to make it clear what the code means.

While at it, fix some function headers and remove 'register' from
variable declarations.

MFC after: 3 days
2002-11-17 16:02:17 +00:00
Jake Burkholder
810c82e6c2 - Add support for ALT_BREAK_TO_DEBUGGER; this is the only reliable way to
trigger a breakpoint with this chip.
- Fiddle the right bits in the cn input and output routines to disable port
  interrupts and enable visibility of the masked interrupt status bits.
- Register a shutdown final event handler to put the chip back in the mode
  that the prom expects.
2002-11-17 16:00:51 +00:00
Josef Karthauser
11f314d4cb Apply some fixups in the driver_t's.
Submitted by:	akiyama
MFC after:	3 days
2002-11-17 14:22:37 +00:00
Josef Karthauser
97764f126a Use a sysctl for controlling the debugging output.
Submitted by:	akiyama
2002-11-17 14:08:48 +00:00
Yoshihiro Takahashi
8a529159ad Save a slice name on the disk and print it at g_pc98_dumpconf(). 2002-11-17 13:56:37 +00:00
Josef Karthauser
263de9cd60 Fix a typo in a console message.
Submitted by:	akiyama
MFC after:	3 days
2002-11-17 13:33:55 +00:00
David Xu
fdc5ecd24f 1.Add sysctls to control KSE resource allocation.
kern.threads.max_threads_per_proc
  kern.threads.max_groups_per_proc
2.Temporary disable borrower thread stash itself as
  owner thread's spare thread in thread_exit(). there
  is a race between owner thread and borrow thread:
  an owner thread may allocate a spare thread as this:
	if (td->td_standin == NULL)
		td->standin = thread_alloc();
  but thread_alloc() can block the thread, then a borrower
  thread would possible stash it self as owner's spare
  thread in thread_exit(), after owner is resumed, result
  is a thread leak in kernel, double check in owner can
  avoid the race, but it may be ugly and not worth to do.
2002-11-17 11:47:03 +00:00
David Xu
db9b0729fc Rework last exiting thread in kse_release(), wait a signal and then
schedule an upcall and call thread_exit().
2002-11-17 10:12:00 +00:00
Jeff Roberson
a9a088823e - Release the imgp vnode prior to freeing exec_map resources to avoid
deadlock.
2002-11-17 09:33:00 +00:00
Warner Losh
c04a433aa9 DETACH_FORCE was removed recently. Remove it here, even though this
isn't supported.
2002-11-17 04:52:37 +00:00
Alfred Perlstein
f51c1e897d Rework the sysconf(3) interaction with aio:
sysconf.c:
  Use 'break' rather than 'goto yesno' in sysconf.c so that we report a '0'
  return value from the kernel sysctl.

vfs_aio.c:
  Make aio reset its configuration parameters to -1 after unloading
  instead of 0.

posix4_mib.c:
  Initialize the aio configuration parameters to -1
  to indicate that it is not loaded.
  Add a facility (p31b_iscfg()) to determine if a posix4 facility has been
  initialized to avoid having to re-order the SYSINITs.
  Use p31b_iscfg() to determine if aio has had a chance to run yet which
  is likely if it is compiled into the kernel and avoid spamming its
  values.
  Introduce a macro P31B_VALID() instead of doing the same comparison over
  and over.

posix4.h:
  Prototype p31b_iscfg().
2002-11-17 04:15:34 +00:00
Yoshihiro Takahashi
9df5c871ce MFi386: revision 1.550. 2002-11-17 02:57:06 +00:00
Yoshihiro Takahashi
0730e65baa Merged from sys/isa/fd.c revision 1.242. 2002-11-17 02:39:55 +00:00
Jake Burkholder
7446769caf MFi386 r1.369. Clear the PG_WRITEABLE flag in pmap_clear_write; return
immediately if its already clear.

Suggested by:	alc
2002-11-17 01:17:07 +00:00
Daniel Eischen
84b427ce23 Regenerate after adding syscalls. 2002-11-16 23:48:14 +00:00
Jeff Roberson
f3da1873bc - Don't forget the flags value when using boot pages.
Reported by:	grehan
2002-11-16 20:57:41 +00:00
Daniel Eischen
a4b04278f0 Add *context() syscalls to ia64 32-bit compatability table as requested
in kern/syscalls.master.
2002-11-16 15:15:17 +00:00