Commit Graph

100546 Commits

Author SHA1 Message Date
Robert Watson
bdae44a844 Lock down global variables in if_gre:
- Add gre_mtx to protect global softc list.
- Hold gre_mtx over various list operations (insert, delete).
- Centralize if_gre interface teardown in gre_destroy(), and call this
  from modevent unload and gre_clone_destroy().
- Export gre_mtx to ip_gre.c, which walks the gre list to look up gre
  interfaces during encapsulation.  Add a wonking comment on how we need
  some sort of drain/reference count mechanism to keep gre references
  alive while in use and simultaneous destroy.

This commit does not lockdown softc data, which follows in a future
commit.
2004-03-22 16:04:43 +00:00
David E. O'Brien
7676d865bd Use ' rather than ".
Submitted by:	ru
2004-03-22 15:45:17 +00:00
Robert Watson
17d5cb2d12 Lock down global variables in if_gif:
- Add gif_mtx, which protects globals.
- Hold gif_mtx around manipulation of gif_softc_list.
- Abstract gif destruction code into gif_destroy(), which tears down
  a softc after it's been removed from the global list by either module
  unload or clone destroy.
- Lock gif_called, even though we know gif_called is broken with reentrant
  network processing.
- Document an event ordering problem in gif_set_tunnel() that will need
  to be fixed.

gif_softc fields not locked down in this commit.
2004-03-22 15:43:14 +00:00
Andrey A. Chernov
9a1248b4cc Forced commit note to explain why NO_POSIX_COMPAT was removed with upgrade.
NO_POSIX_COMPAT was added in 1996 as attempt to resolve POSIX regex
functions conflict for fixit floppy (they are both in libc and libgnuregex)
The way it done (simple excluding POSIX functions from compile) breaks
legitimate case when, say, some program from ports calls both POSIX
and GNU regex functions (it will call POSIX ones from libc and fails,
because header <regex.h> is from GNU).

Now our fixit floppy (and other crunched floppies, as I check) not
use libgnuregex, so the hack can be removed.
2004-03-22 14:44:00 +00:00
Robert Watson
523ebc4efe Move "called", a static function variable used to detect recursive
processing with gif interfaces, to a global variable named "gif_called".
Add an annotation that this approach will not work with a reentrant
network stack, and that we should instead use packet tags to detect
excessive recursive processing.
2004-03-22 14:24:26 +00:00
Yoshihiro Takahashi
77890ec33d MFi386: revision 1.480. 2004-03-22 13:37:11 +00:00
David Malone
bcd4c5746a On startup, warn if inetd's config file doesn't exist. This isn't
exactly the same as patch from the PR, which also exited if the
config file was missing. I didn't use Jeff's patch because I was
worried that some people might start inetd, create the config file
and then HUP inetd.

PR:		60806
Submitted by:	Jeff Ito <jeffi@rcn.com>
MFC after:	2 weeks
2004-03-22 12:01:23 +00:00
Tim J. Robbins
2fa2fea101 Use fseeko() to properly support large files. 2004-03-22 11:15:03 +00:00
Paul Saab
2eada6bc8e Remove some netbsd debug code that crept into rev 1.116 2004-03-22 10:17:40 +00:00
Tim J. Robbins
23e7704b30 Use errc(). 2004-03-22 09:33:10 +00:00
Alan Cox
1c5043680e Add an implementation of uiomove_fromphys() to sparc64. This
implementation could be characterized as a hybrid of the amd64 and i386
implementations.  Specifically, the direct virtual-to-physical mapping is
used if possible and sf_buf_alloc() is used if the direct map cannot.
2004-03-22 08:08:25 +00:00
Tim Kientzle
999103b3db Just use autoconf-compatible feature macros; don't try to be clever. 2004-03-22 05:17:23 +00:00
Greg Lehey
b0487aaa20 Add an observation by Dijkstra software engineering. 2004-03-22 05:02:01 +00:00
Robert Watson
3280e5dc69 Rename 'ddpcb' variable to 'ddpcb_list' to better distinguish it from
'struct ddpcb'.
2004-03-22 04:54:36 +00:00
Robert Watson
4ddd6a81e0 Rename 'at_ifaddr' list to 'at_ifaddr_list' so that the variable is
more easily mechanically distinguished from 'struct at_ifaddr'.
2004-03-22 04:50:36 +00:00
Robert Watson
f2aa178725 Compare pointers with NULL rather than 0, or treating them as boolans in
if statements.

at_rmx gets a $FreeBSD$ out of the deal also (this code appears to be
unused).
2004-03-22 03:57:01 +00:00
Matthew N. Dodd
fd5bc0548f MAC addresses are 8 bits in ARCNET. Adjust bcopy(). 2004-03-22 03:52:51 +00:00
Robert Watson
e0af0ab104 Also modify ddp_input.c with the following changes previously applied
to other files in netatalk:

  Log:
  Since I have my hands all over netatalk adding locking and restructuring
  it, cinch the file's style closer to style(9) with regard to parenthesis:

    s/( /(/g
    s/ )/)/g
    s/return(/return (/g
    s/return 0/return (0)/
    s/return 1/return (1)/
2004-03-22 03:48:31 +00:00
Robert Watson
b8e3da4a83 Since I have my hands all over netatalk adding locking and restructuring
it, cinch the file's style closer to style(9) with regard to parenthesis:

  s/( /(/g
  s/ )/)/g
  s/return(/return (/g
  s/return 0/return (0)/
  s/return 1/return (1)/
2004-03-22 03:24:10 +00:00
David E. O'Brien
2edbecc6db Remove WFORMAT, style.Makefile(5). 2004-03-22 03:17:36 +00:00
Julian Elischer
0598ef01ee Dont count bytes being sent to a disconnected hook.
MFC after:	3 days
2004-03-22 01:15:28 +00:00
David E. O'Brien
9055e6fd1b Share the i386 boot manual page. 2004-03-22 00:52:27 +00:00
Bill Paul
e34e2a168a The Intel 2200BG NDIS driver does an alloca() of about 5000 bytes
when it associates with a net. Because FreeBSD's kstack size is only
2 pages by default, this blows the stack and causes a double fault.

To deal with this, we now create all our kthreads with 8 stack pages.
Also, we now run all timer callouts in the ndis swi thread (since
they would otherwise run in the clock ithread, whose stack is too
small). It happens that the alloca() in this case was occuring within
the interrupt handler, which was already running in the ndis swi
thread, but I want to deal with the callouts too just to be extra
safe.

NOTE: this will only work if you update vm_machdep.c with the change
I just committed. If you don't include this fix, setting the number
of stack pages with kthread_create() has essentially no effect.
2004-03-22 00:41:41 +00:00
Bill Paul
6041f1a522 The kthread_create() API is supposed to allow you to create threads
with more than the normal amount of stack pages, however the stack
pointer always wound up being initialized using KSTACK_PAGES. It
should be using td->td_kstack_pages instead. This means that although
the vm subsystem would give you all the stack pages you asked for,
%esp would always be initialized as if you had just 2 pages, and
the rest would go to waste.

I wanted to use the 'give me more stack pages' feature of kthread_create()
because the Intel 2200BG NDIS driver does an alloca() of about 5000 bytes,
which wrecks the stack with the default 2 page size, and I was baffled
that no matter how much code I shoved into thread contexts with
allegedly larger stacks, the thing would still crash unless I changed
KSTACK_PAGES.

Note: this bug is present in _ALL_ arches at this point. Peter has
promised to merge this fix into all of them.
2004-03-22 00:28:38 +00:00
Alan Cox
00cfafd7db Add an implementation of uiomove_fromphys() for i386. This implementation
uses sf_buf_alloc() and sf_buf_free() to create and destroy the necessary
ephemeral mappings.
2004-03-21 20:28:36 +00:00
Bill Paul
67aa83405a Make if_ndis_pci.c and if_ndis_pccard.c use bus_alloc_resource() again
instead of bus_alloc_resource_any() to restore source compatibility
with 5.2-REL and 5.2.1-REL systems. bus_alloc_resource_any() doesn't
really do anything besides hide some of bus_alloc_resource()'s arguments
from us, and in my opinion this isn't worth breaking backwards
compatibility for people who want to use the NDISulator code on 5.2.x.
2004-03-21 19:56:41 +00:00
Daniel Harris
aba0edf2e1 Login classes are not "unused."
Reference login.conf(5).

PR:		62830
Submitted by:	Matthew D. Fuller <fullermd@over-yonder.net>
2004-03-21 19:36:16 +00:00
David E. O'Brien
276233b632 Quote NM in case you need to force it to something with args.
Submitted by:	jmallett
2004-03-21 19:06:54 +00:00
David E. O'Brien
b003da7938 Give a more reasonable CPU time to the threads which are using scheduler
activation (i.e., applications are using libpthread).  This is because
SCHED_ULE sometimes puts P_SA processes into ksq_next unnecessarily.
Which doesn't give fair amount of CPU time to processes which are
using scheduler-activation-based threads when other (semi-)CPU-intensive,
non-P_SA processes are running.

Further work will no doubt be done by jeffr at a later date.

Submitted by:	Taku YAMAMOTO <taku@cent.saitama-u.ac.jp>
Reviewed by:	rwatson, freebsd-current@
2004-03-21 18:53:29 +00:00
Matthew N. Dodd
2964fb6538 - Fix indentation lost by 'diff -b'.
- Un-wrap short line.
2004-03-21 18:51:26 +00:00
David E. O'Brien
e68f77a69e Fix $FreeBSD$.
Reported by:	Daniel O'Connor <doconnor@gsoft.com.au>
2004-03-21 18:16:49 +00:00
Matthew N. Dodd
3648c62188 - Correct variable name.
- Correct unnecessary use of htons().

Reported by:	many.
2004-03-21 17:27:41 +00:00
Hiroki Sato
24f0550d8a Update the supported hardware.
Approved by:	scottl
2004-03-21 15:25:20 +00:00
Pawel Jakub Dawidek
3184e92100 When symbolic link is pointed onto a mount point, it can't be moved
to a different file system.
Patch in PR was incorrect.

PR:		bin/64430
Submitted by:	Samuel Tardieu
MFC after:	3 days
2004-03-21 13:38:37 +00:00
Tim J. Robbins
8e6b7161d3 Document incorrect handling of multibyte characters. 2004-03-21 11:31:37 +00:00
Tim J. Robbins
b59ca66070 Document incorrect handling of multibyte characters. 2004-03-21 11:24:06 +00:00
Tim J. Robbins
f791df19bd Document incorrect handling of multibyte characters in filenames. 2004-03-21 11:16:24 +00:00
Tim J. Robbins
744e4bba0e Reduce redundancy in the description of the -u option. 2004-03-21 11:04:59 +00:00
Tim J. Robbins
f74d4353ce Document incorrect handling of multibyte characters when -t and -v options
are used.
2004-03-21 11:02:40 +00:00
Luigi Rizzo
616f4ca3a7 Fix various issues with the picobsd build script in -current:
+ declare some shell variables as 'local'
+ add a missing ';;' in a 'case' statement
+ centralize newfs options
+ properly override GID and UID when installing include files and libraries
+ add a missing '-r' in disklabel commands (maybe not necessary, but it
  does not harm and it was used in the RELENG_4 version)
+ no more require 'perl' when installing the secondary loader
+ use '-t rsa1' when invoking ssh-keygen
2004-03-21 10:46:13 +00:00
Julian Elischer
84eef27df4 Massively up the (artificial) limit on system scope threads
in a process from 50 to 500

Also up the number of process scope threads allowed to be in the kernel
at one time from 150 to 1500 (per process)
2004-03-21 09:22:38 +00:00
Colin Percival
a616808417 1. Use socklen_t instead of int
2. Compare socket(2) return code to -1, not <= 0.

Obtained from:	OpenBSD rev. 1.9
2004-03-21 08:14:39 +00:00
Matthew N. Dodd
64bf80ce1b Remove interface type specific code from arprequest(), and in_arpinput().
The AF_ARP case in the (*if_output)() routine will handle the interface type
specific bits.

Obtained from:	NetBSD
2004-03-21 06:36:05 +00:00
Matthew N. Dodd
8f2e60d91e Handle AF_ARP. 2004-03-21 06:34:34 +00:00
Marcel Moolenaar
fb1eeb8ede Compile the kernel with -O2 on ia64 by default. 2004-03-21 05:10:34 +00:00
Marcel Moolenaar
1950e64cb2 Add a reference to the ia64 options to gcc. While here, sort the list. 2004-03-21 04:57:24 +00:00
Dag-Erling Smørgrav
1afaec9ae4 Add a -v (verbose) option. 2004-03-21 04:56:06 +00:00
Dag-Erling Smørgrav
efc4d24dd6 Support C-style comments in profile. 2004-03-21 04:47:54 +00:00
Robert Watson
97cb84c481 Spell "(struct foo *)0" as "NULL". 2004-03-21 03:28:08 +00:00
Peter Wemm
c707fea10b More stack alignment fixes. Arrange so we call _rtld() in ld-elf.so.1
with the correct alignment.  This is important because this calls to
library static constructors are made from here.  The bug in the old crt*.s
files hid this because in this case, two wrongs do indeed make a right.
Also, call _rtld_bind() with the correct alignment, because it calls back
into the pthread library locking functions.  If things happen just
the wrong way, we get a SIG10 due to the broken stack alignment.
2004-03-21 01:43:39 +00:00