Commit Graph

68070 Commits

Author SHA1 Message Date
petrov
b1f1e5e073 Add stub for cpu_boot_secondary_processors. 2003-11-15 05:24:03 +00:00
petrov
e6b350b339 Generic SMP configuration. 2003-11-15 04:03:00 +00:00
thorpej
001102c808 Regen: fsync_range(2) system call. 2003-11-15 01:20:48 +00:00
thorpej
857f24339f Kernel portion of the fsync_range(2) system call. Written by Bill
Studenmund, and contributed by Wasabi Systems, Inc.
2003-11-15 01:19:38 +00:00
jmcneill
1708376e44 Don't set VR_EECSR_LOAD before reading the MAC address on the VT6102 either. 2003-11-14 22:33:29 +00:00
briggs
dfa839f16b Make sure that L_SA_PAGEFAULT gets cleared from l_flag if pmap_fault_fixup
returns non-zero and we want to shortcut out.  This avoids a bogus pagefault
condition being detected in sa_switch().
Many thanks to Christian Limpach for finding this, obviating my band-aid
patch to kern_sa.c (posted on tech-kern).
2003-11-14 21:22:08 +00:00
scw
4eeb1be7e4 Check alignment of the fault PC before de-referencing it.
Give the process a Illegal Instruction fault if the PC is misaligned.
2003-11-14 19:03:17 +00:00
scw
a590a31135 - In data_abort_handler(), move the fault pc alignment check to before
the call to data_abort_fixup() as the fixup routines also try to
   de-reference the fault pc.

 - If a fault came from kernel mode, and the fault address looks to be in
   the kernel's address space, and pcb_onfault is *set*, check the
   instruction which caused the fault. If it's LDR{B,}T or STR{B,}T
   then one of the copy in/out routines is trying to read/write a
   kernel address with the wrong privilege. If that address is actually
   mapped, we could end up in an infinite loop because we failed to
   notice that it's really a 'user mode' access. Yay for "crashme".
   I suspect this also fixes PR port-arm/23052.

   Note: This *could* be fixed by adding sanity checks to copyin et al,
   but that would add extra overhead to the non-error path...

 - Fix a couple of __predict_false cases.
2003-11-14 19:00:03 +00:00
christos
b7fd779233 We really don't want frame.h... 2003-11-14 17:44:05 +00:00
scw
571f89c4ad Slight re-org of the alignment/ast exit macro to better mimic the
original behaviour WRT cpsr/I32_bit handling.
2003-11-14 16:57:28 +00:00
tsutsui
b2fe3a3641 - define LIBSA_USE_MEMCPY and LIBSA_USE_MEMSET
- set WARNS?=1
2003-11-14 16:53:37 +00:00
tsutsui
212f884f43 Misc cleanup:
- KNF
- WARNSfy
- remove __P()
- remove register declarations
- const'ify some variables
- make some local functions/variables static
- bcopy -> memcpy
- bcmp -> memcmp
- bzero -> memset
- space/TAB fix
etc.
2003-11-14 16:52:40 +00:00
itojun
4b26585bd4 s/in_ifaddr/in_ifaddrhead/. not really tested 2003-11-14 15:04:48 +00:00
tsutsui
306f405de0 Use "" rather than '\0' for null string. 2003-11-14 13:08:45 +00:00
lukem
91441af9b4 Revert previous; it is not the correct solution to the problem of
the host tool build in usr.sbin/installboot.
2003-11-14 12:07:42 +00:00
tsutsui
6a20c93bb1 Revert part of previous NULL -> '\0' changes, where actually NULL is required. 2003-11-14 11:39:49 +00:00
dsl
438ae29810 Remove the .if !target(dependall) so that 'make dependall' works (again)
for the kernel.
2003-11-14 08:33:36 +00:00
dsl
ea669558c6 Only include machine/disklabel.h if MAXPARTITIONS is undefined.
With care should allow sys/disklabel.h to be used in MI/host code.
2003-11-14 08:03:16 +00:00
jonathan
ae4accd0de Use ip_randomid(), dependent on either __NetBSD__ preprocessor
token or FreeBSD RANDOM_IP_ID config option.
2003-11-14 07:15:28 +00:00
jonathan
a03a5696d5 include <sys/mbuf.h> before FAST_IPSEC-dependent headers. 2003-11-14 07:13:25 +00:00
uwe
b12f3576c6 Use assembler version of bswap64. 2003-11-14 00:39:17 +00:00
uwe
be72e49c47 bswap64 written in assembler. 2003-11-14 00:38:17 +00:00
scw
bb0221494d Since data_abort_handler() may have to decode the instruction at tf->tf_pc
to determine if a fault is read or write, make sure tf->tf_pc is 32-bit
aligned before dereferencing it.

Otherwise, deliver an illegal instruction signal to the process. We don't
support execution of Thumb code at this time.
2003-11-14 00:21:30 +00:00
uwe
8fdd163272 Eliminate bzero. 2003-11-13 23:55:20 +00:00
fvdl
6cdccae32c Remove leftover debugging printf. 2003-11-13 23:00:54 +00:00
scw
c86e508708 On Rhine III, don't set VR_EECSR_LOAD before reading the MAC address.
This reloads the entire EEPROM, not just the MAC address, which can
cause problems for the host PCI bus under certain circumstances. The
chip already loads the EEPROM at powerup/reset anyway.

XXX: This probably applies to the other Rhine variants too, but I don't
have a data sheet to confirm this behaviour.
2003-11-13 22:29:09 +00:00
bouyer
9494bbf9c9 If we detected an old drive on a channel, clear (ATA|ATAPI) for both
drives on the channel.
2003-11-13 22:18:10 +00:00
simonb
d707aa947b Be consistent with "#define<tab>" in previous change. 2003-11-13 20:14:27 +00:00
tsutsui
302df7965a Backout part of rev 1.4 which caused uninitialized pointer dereference.
(How does it works!?)
2003-11-13 15:53:31 +00:00
tsutsui
d859f28a2d Use 32bit daddr_t for now so that uboot.lif works again.
XXX The real fix is adding prototype declarations for all functions.
2003-11-13 15:50:46 +00:00
christos
6dfe125b9c we could have lpt at puc. 2003-11-13 14:39:38 +00:00
sekiya
466d2c1848 libsa's iso9660 routines don't handle rockridge. Alter installation kernel
fixup routines accordingly -- we'll use "ip2x" and "ip3x" for install kernel
names rather than "netbsd-INSTALL32_IPxy".
2003-11-13 14:31:54 +00:00
tsutsui
9b10e90d9a Don't use htobe32() for int16_t values. 2003-11-13 14:07:01 +00:00
tsutsui
a0795dd18e Use int16_t and int32_t rather than short and int. 2003-11-13 14:06:22 +00:00
manu
b5139de154 Enforce good santity checks with Mach messages sizes:
1) make sure Mach servers will not work on data beyond the end of the
   request message buffer.
2) make sure that on copying out the reply message buffer, we will not
   leak kernel data located after the buffer.
3) make sure that the server will not overwrite memory beyond the end
   of the reply message buffer. That check is the responsability of the
   server, there is just a DIAGNOSTIC test to check everything is in
   good shape. All currently implemented servers in NetBSD have been
   modified to check for this condition

While we are here, build the mach services table (formerly in mach_namemap.c)
and the services prototypes automatically from mach_services.master, just
as this is done for system calls.

The next step would be to fold the message formats in the mach_services.master
file, but this tends to be difficult, as some messages are quite long and
complex.
2003-11-13 13:40:39 +00:00
sekiya
c93054ffbf typo in include directive. 2003-11-13 12:53:05 +00:00
sekiya
959569cd0c bootloader targets have changed, which confused the install rules. 2003-11-13 12:42:18 +00:00
yamt
5ee0718f8f plug memory leak on error. 2003-11-13 11:59:46 +00:00
dsl
55302b835d Add hp300 LIF definitions 2003-11-13 08:17:12 +00:00
sekiya
40c0a4c30b loadfile truth check should be >=0, not >= 1. 2003-11-13 08:06:25 +00:00
sekiya
1ba2b99e3e More bootloader changes:
* if loading from cdrom, assume we're performing an install and
	  fix up bootpath/kernel to load the proper install kernel.
	* maximum filename length in volume header is eight characters.
	  Change boot.elf to ip2xboot, boot.ip32 to ip3xboot, and boot
	  to aoutboot (which matches kernel naming scheme as well).
2003-11-13 08:01:17 +00:00
chs
e07f0b9362 eliminate uvm_useracc() in favor of checking the return value of
copyin() or copyout().

uvm_useracc() tells us whether the mapping permissions allow access to
the desired part of an address space, and many callers assume that
this is the same as knowing whether an attempt to access that part of
the address space will succeed.  however, access to user space can
fail for reasons other than insufficient permission, most notably that
paging in any non-resident data can fail due to i/o errors.  most of
the callers of uvm_useracc() make the above incorrect assumption.  the
rest are all misguided optimizations, which optimize for the case
where an operation will fail.  we'd rather optimize for operations
succeeding, in which case we should just attempt the access and handle
failures due to insufficient permissions the same way we handle i/o
errors.  since there appear to be no good uses of uvm_useracc(), we'll
just remove it.
2003-11-13 03:09:28 +00:00
sekiya
2818624aab Include proper GENERIC32 templates (mechanical edit). 2003-11-13 02:59:37 +00:00
chs
709a3b4e52 two changes in improve scalability:
(1) split the single list of pages allocated to a pool into three lists:
     completely full, partially full, and completely empty.
     there is no longer any need to traverse any list looking for a
     certain type of page.

 (2) replace the 8-element hash table for out-of-page page headers
     with a splay tree.

these two changes (together with the recent enhancements to the wait code)
give us linear scaling for a fork+exit microbenchmark.
2003-11-13 02:44:01 +00:00
sekiya
28bee58d65 Rationalize config file scheme. Discussed at length with rafal@, pooka@, soren@. 2003-11-13 02:31:46 +00:00
jonathan
fa24e6f3f8 Add m_tag_delete_nonpesrsistent(), for deleting all packet tags on
mbuf chains which are recycled (e.g., ICMP reflection, loopback
interface).  A consensus was reached that such recycled packets should
behave (more-or-less) the same way if a new chain had been allocated
and the contents copied to that chain.

Some packet tags may in future be marked as "persistent" (e.g., for
mandatory access controls) and should persist across such deletion.
NetBSD as yet hos no persistent tags, so m_tag_delete_nonpersistent()
just deletes all tags. This should not be relied upon.
2003-11-13 01:48:12 +00:00
christos
a0e314dfe4 add noop wrapper functions for i386 2003-11-13 01:44:36 +00:00
cl
e2c29624f5 Prevent sa_newcachelwp() from creating new LWPs when the process is exiting.
This should fix PR 23418 which was also reported by Thomas Klausner and
Ian Fry (who also provided core dumps for analysis - thanks!).

Also g/c sa_yieldcall since it's now safe to put LWPs back into the cache.
Also return stacks in failure case.
2003-11-12 21:27:46 +00:00
dsl
0342c9586a - Count number of zombies and stopped children and requeue them at the top
of the sibling list so that find_stopped_child can be optimised to avoid
  traversing the entire sibling list - helps when a process has a lot of
  children.
- Modify locking in pfind() and pgfind() to that the caller can rely on the
  result being valid, allow caller to request that zombies be findable.
- Rename pfind() to p_find() to ensure we break binary compatibility.
- Remove svr4_pfind since p_find willnow do the job.
- Modify some of the SMP locking of the proc lists - signals are still stuffed.

Welcome to 1.6ZF
2003-11-12 21:07:37 +00:00
dbj
d3bad238a2 XXX an impossible malloc failure check in set_statfs_info 2003-11-12 20:38:24 +00:00