dragonfly.git
16 years agotimeout/untimeout ==> callout_*
Joerg Sonnenberger [Thu, 16 Sep 2004 22:12:07 +0000 (22:12 +0000)]
timeout/untimeout ==> callout_*

Use splsoftclock protection here to avoid a race as suggestion by Matt.
This seems superflous though and it could be better to just use atomic
inc/dec on proc_waiting.

16 years agotimeout/untimeout ==> callout_*
Joerg Sonnenberger [Thu, 16 Sep 2004 21:55:03 +0000 (21:55 +0000)]
timeout/untimeout ==> callout_*

16 years agoDon't include the PCI parts until the our system has involved to support
Joerg Sonnenberger [Thu, 16 Sep 2004 20:50:00 +0000 (20:50 +0000)]
Don't include the PCI parts until the our system has involved to support
this.

16 years agoAdd comment markers to avoid the same stupid mistake as I made.
Jeroen Ruigrok/asmodai [Thu, 16 Sep 2004 16:29:39 +0000 (16:29 +0000)]
Add comment markers to avoid the same stupid mistake as I made.

16 years agotimeout/untimeout ==> callout_*
Joerg Sonnenberger [Thu, 16 Sep 2004 15:15:51 +0000 (15:15 +0000)]
timeout/untimeout ==> callout_*

16 years agoRemove unused defines
Joerg Sonnenberger [Thu, 16 Sep 2004 14:56:32 +0000 (14:56 +0000)]
Remove unused defines

16 years agoDon't include arpa/inet.h, which needs certain struct to be defined.
Joerg Sonnenberger [Thu, 16 Sep 2004 13:40:23 +0000 (13:40 +0000)]
Don't include arpa/inet.h, which needs certain struct to be defined.
Just include machine/endian.h and define the prototypes here too.

16 years agotimeout/untimeout ==> callout_*
Matthew Dillon [Thu, 16 Sep 2004 05:01:17 +0000 (05:01 +0000)]
timeout/untimeout ==> callout_*

16 years agotimeout/untimeout ==> callout_*
Matthew Dillon [Thu, 16 Sep 2004 04:49:32 +0000 (04:49 +0000)]
timeout/untimeout ==> callout_*

16 years agotimeout/untimeout ==> callout_*
Matthew Dillon [Thu, 16 Sep 2004 04:45:49 +0000 (04:45 +0000)]
timeout/untimeout ==> callout_*

16 years agotimeout/untimeout ==> callout_*
Matthew Dillon [Thu, 16 Sep 2004 04:39:31 +0000 (04:39 +0000)]
timeout/untimeout ==> callout_*

16 years agoRemove a redundant bzero (which also specified the wrong length in anycase
Matthew Dillon [Thu, 16 Sep 2004 04:25:18 +0000 (04:25 +0000)]
Remove a redundant bzero (which also specified the wrong length in anycase
after the callout_handle->callout conversion).

16 years agotimeout/untimeout ==> callout_*
Matthew Dillon [Thu, 16 Sep 2004 03:54:37 +0000 (03:54 +0000)]
timeout/untimeout ==> callout_*

16 years agotimeout/untimeout ==> callout_*
Matthew Dillon [Thu, 16 Sep 2004 03:43:09 +0000 (03:43 +0000)]
timeout/untimeout ==> callout_*

16 years agotimeout/untimeout ==> callout_*, even though this is currently not used.
Joerg Sonnenberger [Wed, 15 Sep 2004 20:38:36 +0000 (20:38 +0000)]
timeout/untimeout ==> callout_*, even though this is currently not used.

16 years agoSplit DN_NEXT into a version with and without cast. For the left side usages,
Joerg Sonnenberger [Wed, 15 Sep 2004 20:30:09 +0000 (20:30 +0000)]
Split DN_NEXT into a version with and without cast. For the left side usages,
cast the pointers to (struct mbuf *) instead.

16 years agotimeout/untimeout ==> callout_*
Joerg Sonnenberger [Wed, 15 Sep 2004 20:23:22 +0000 (20:23 +0000)]
timeout/untimeout ==> callout_*

16 years agoMove the timer declaration a bit up. I don't know why GCC 3.4 works and
Joerg Sonnenberger [Wed, 15 Sep 2004 20:05:13 +0000 (20:05 +0000)]
Move the timer declaration a bit up. I don't know why GCC 3.4 works and
2.95 doesn't.

16 years ago- ISO C cleanup
Joerg Sonnenberger [Wed, 15 Sep 2004 19:58:05 +0000 (19:58 +0000)]
- ISO C cleanup
- make functions and globals static, remove ttymsg
- use clnt_pcreateerror when dealing with rpc
- use getopt for consistency
- remove useless void casts
- error check unlink and warn if final close failed
- make pointer conversions explicit
- WARNS=6 clean

Mostly-submitted-by: Liam J. Foy <liamfoy@sepulcrum.org>
16 years agotimeout/untimeout ==> callout_*
Joerg Sonnenberger [Wed, 15 Sep 2004 19:34:55 +0000 (19:34 +0000)]
timeout/untimeout ==> callout_*

16 years agoif_clone_event should take a struct if_clone *, not a struct ifnet *.
Joerg Sonnenberger [Wed, 15 Sep 2004 19:33:36 +0000 (19:33 +0000)]
if_clone_event should take a struct if_clone *, not a struct ifnet *.

16 years agotimeout/untimeout ==> callout_*
Joerg Sonnenberger [Wed, 15 Sep 2004 19:29:35 +0000 (19:29 +0000)]
timeout/untimeout ==> callout_*

16 years agoReplace the timeout based busy-loop with a DELAY(1000) based busy-loop.
Joerg Sonnenberger [Wed, 15 Sep 2004 17:58:18 +0000 (17:58 +0000)]
Replace the timeout based busy-loop with a DELAY(1000) based busy-loop.

16 years agotimeout/untimeout ==> callout_*
Joerg Sonnenberger [Wed, 15 Sep 2004 16:54:21 +0000 (16:54 +0000)]
timeout/untimeout ==> callout_*

16 years agotimeout/untimeout ==> callout_*
Joerg Sonnenberger [Wed, 15 Sep 2004 16:46:19 +0000 (16:46 +0000)]
timeout/untimeout ==> callout_*

16 years agoDon't use dev/acpia/* includes for the ACPI5 infrastructure.
Joerg Sonnenberger [Wed, 15 Sep 2004 16:33:09 +0000 (16:33 +0000)]
Don't use dev/acpia/* includes for the ACPI5 infrastructure.

Noticed-by: YONETANI Tomokazu <qhwt+dragonfly-bugs@les.ath.cx>
16 years agotimeout/untimeout ==> callout_*
Joerg Sonnenberger [Wed, 15 Sep 2004 16:25:12 +0000 (16:25 +0000)]
timeout/untimeout ==> callout_*

16 years agotimeout/untimeout ==> callout_*
Joerg Sonnenberger [Wed, 15 Sep 2004 16:11:52 +0000 (16:11 +0000)]
timeout/untimeout ==> callout_*

16 years agotimeout/untimeout ==> callout_*
Joerg Sonnenberger [Wed, 15 Sep 2004 16:02:41 +0000 (16:02 +0000)]
timeout/untimeout ==> callout_*

16 years agoRemove unused consumer of timeout
Joerg Sonnenberger [Wed, 15 Sep 2004 15:40:54 +0000 (15:40 +0000)]
Remove unused consumer of timeout

16 years agotimeout/untimeout ==> callout_*
Joerg Sonnenberger [Wed, 15 Sep 2004 15:32:00 +0000 (15:32 +0000)]
timeout/untimeout ==> callout_*

16 years agotimeout/untimeout ==> callout_*
Joerg Sonnenberger [Wed, 15 Sep 2004 15:22:02 +0000 (15:22 +0000)]
timeout/untimeout ==> callout_*

16 years agoThe prefered location of the byteorder functions is arpa/inet.h. This
Joerg Sonnenberger [Wed, 15 Sep 2004 15:04:31 +0000 (15:04 +0000)]
The prefered location of the byteorder functions is arpa/inet.h. This
are also provided from sys/param.h and netinet/in.h, for historic purpose
and standard compliance.

Change the prototypes to reflect the use of POSIX fixed types, GCC does
produce warnings otherwise.

16 years agoSUS3 specified that netinet/in.h provides ntohl and may provide all the
Joerg Sonnenberger [Wed, 15 Sep 2004 15:00:50 +0000 (15:00 +0000)]
SUS3 specified that netinet/in.h provides ntohl and may provide all the
interfaces from arpa/inet.h. Therefore include the later in the !_KERNEL
case, a lot of Linux program depend on this.

16 years agotimeout/untimeout ==> callout_*
Joerg Sonnenberger [Wed, 15 Sep 2004 14:31:22 +0000 (14:31 +0000)]
timeout/untimeout ==> callout_*

16 years agotimeout/untimeout ==> callout_*
Joerg Sonnenberger [Wed, 15 Sep 2004 14:24:33 +0000 (14:24 +0000)]
timeout/untimeout ==> callout_*

16 years agotimeout/untimeout ==> callout_*
Joerg Sonnenberger [Wed, 15 Sep 2004 13:54:42 +0000 (13:54 +0000)]
timeout/untimeout ==> callout_*

16 years ago'vidcontrol show' was broken by the better vesa support commit. Fix it.
Matthew Dillon [Wed, 15 Sep 2004 05:55:48 +0000 (05:55 +0000)]
'vidcontrol show' was broken by the better vesa support commit.  Fix it.

Submitted-by: "Deng XueFeng" <dsnofe@msn.com>
16 years agoDon't complain when a cdevsw with non-zero refs is being removed if it still
Matthew Dillon [Wed, 15 Sep 2004 03:21:03 +0000 (03:21 +0000)]
Don't complain when a cdevsw with non-zero refs is being removed if it still
has links to other mask/match sets.  Add misc comments to the code.

16 years agoFix cdevsw_remove() warnings related to the removal of mass media (e.g.
Matthew Dillon [Wed, 15 Sep 2004 02:56:35 +0000 (02:56 +0000)]
Fix cdevsw_remove() warnings related to the removal of mass media (e.g.
usb memory sticks).  disk_destroy() was not properly specifying the unit
number when destroying the cdevsw and raw device.

16 years agotimeout/untimeout ==> callout_*
Joerg Sonnenberger [Wed, 15 Sep 2004 01:51:55 +0000 (01:51 +0000)]
timeout/untimeout ==> callout_*

16 years agoImprove error reporting when the cdevsw code detects problems.
Matthew Dillon [Wed, 15 Sep 2004 01:48:09 +0000 (01:48 +0000)]
Improve error reporting when the cdevsw code detects problems.

16 years agoConvert timeout ==> callout_*.
Joerg Sonnenberger [Wed, 15 Sep 2004 01:39:10 +0000 (01:39 +0000)]
Convert timeout ==> callout_*.

Note that ACPI doesn't support detach / unloading, therefore no
callout_stop is used.

16 years agoWhen a umass storage device is unplugged there might be pending requests
Matthew Dillon [Wed, 15 Sep 2004 01:38:13 +0000 (01:38 +0000)]
When a umass storage device is unplugged there might be pending requests
which either fail or wind up in limbo.  The state machine will attempt to
issue a BBB RESET, but since this does not occur on our bulk or interrupt
pipes simply aborting the pipes is not sufficient to ensure that all of our
xfer requests have been idled.

We must also wait for any in-progress RESET's to complete, which is
accomplished by testing sc->transfer_state.  Otherwise we may wind up
freeing an active xfer request and blow up.

16 years agotimeout/untimeout ==> callout_*
Joerg Sonnenberger [Wed, 15 Sep 2004 01:32:07 +0000 (01:32 +0000)]
timeout/untimeout ==> callout_*

16 years agotimeout/untimeout ==> callout_*
Joerg Sonnenberger [Wed, 15 Sep 2004 01:24:48 +0000 (01:24 +0000)]
timeout/untimeout ==> callout_*

16 years agotimeout/untimeout ==> callout_*
Joerg Sonnenberger [Wed, 15 Sep 2004 01:19:13 +0000 (01:19 +0000)]
timeout/untimeout ==> callout_*

16 years agotimeout/untimeout ==> callout_*
Joerg Sonnenberger [Wed, 15 Sep 2004 01:12:08 +0000 (01:12 +0000)]
timeout/untimeout ==> callout_*

16 years agotimeout/untimeout ==> callout_*
Joerg Sonnenberger [Wed, 15 Sep 2004 01:04:59 +0000 (01:04 +0000)]
timeout/untimeout ==> callout_*

16 years agotimeout/untimeout ==> callout_*
Joerg Sonnenberger [Wed, 15 Sep 2004 00:55:37 +0000 (00:55 +0000)]
timeout/untimeout ==> callout_*

16 years agotimeout/untimeout ==> callout_*
Joerg Sonnenberger [Wed, 15 Sep 2004 00:49:46 +0000 (00:49 +0000)]
timeout/untimeout ==> callout_*

16 years agotimeout/untimeout ==> callout_*
Joerg Sonnenberger [Wed, 15 Sep 2004 00:46:00 +0000 (00:46 +0000)]
timeout/untimeout ==> callout_*

16 years agotimeout/untimeout ==> callout_*
Joerg Sonnenberger [Wed, 15 Sep 2004 00:41:53 +0000 (00:41 +0000)]
timeout/untimeout ==> callout_*

16 years agotimeout/untimeout ==> callout_*
Joerg Sonnenberger [Wed, 15 Sep 2004 00:36:09 +0000 (00:36 +0000)]
timeout/untimeout ==> callout_*

16 years agotimeout/untimeout ==> callout_*
Joerg Sonnenberger [Wed, 15 Sep 2004 00:24:30 +0000 (00:24 +0000)]
timeout/untimeout ==> callout_*

16 years agotimeout/untimeout ==> callout_*
Joerg Sonnenberger [Wed, 15 Sep 2004 00:21:09 +0000 (00:21 +0000)]
timeout/untimeout ==> callout_*

16 years agotimeout/untimeout ==> callout_*
Joerg Sonnenberger [Wed, 15 Sep 2004 00:10:14 +0000 (00:10 +0000)]
timeout/untimeout ==> callout_*

16 years agotimeout/untimeout ==> callout_*
Joerg Sonnenberger [Wed, 15 Sep 2004 00:06:16 +0000 (00:06 +0000)]
timeout/untimeout ==> callout_*

16 years agotimeout/untimeout ==> callout_*
Joerg Sonnenberger [Tue, 14 Sep 2004 23:57:00 +0000 (23:57 +0000)]
timeout/untimeout ==> callout_*

16 years agoRemove dead code which depends on timeout interface.
Joerg Sonnenberger [Tue, 14 Sep 2004 23:49:51 +0000 (23:49 +0000)]
Remove dead code which depends on timeout interface.

16 years agotimeout/untimeout ==> callout_*
Matthew Dillon [Tue, 14 Sep 2004 23:48:27 +0000 (23:48 +0000)]
timeout/untimeout ==> callout_*

16 years agotimeout/untimeout ==> callout_*
Matthew Dillon [Tue, 14 Sep 2004 23:29:44 +0000 (23:29 +0000)]
timeout/untimeout ==> callout_*

16 years agotimeout/untimeout ==> callout_*
Matthew Dillon [Tue, 14 Sep 2004 23:17:34 +0000 (23:17 +0000)]
timeout/untimeout ==> callout_*

16 years agotimeout/untimeout ==> callout_*
Joerg Sonnenberger [Tue, 14 Sep 2004 23:08:41 +0000 (23:08 +0000)]
timeout/untimeout ==> callout_*

16 years agotimeout/untimeout ==> callout_*
Joerg Sonnenberger [Tue, 14 Sep 2004 23:04:38 +0000 (23:04 +0000)]
timeout/untimeout ==> callout_*

16 years agotimeout/untimeout ==> callout_*
Joerg Sonnenberger [Tue, 14 Sep 2004 23:01:20 +0000 (23:01 +0000)]
timeout/untimeout ==> callout_*

16 years agotimeout/untimeout ==> callout_*
Joerg Sonnenberger [Tue, 14 Sep 2004 22:54:16 +0000 (22:54 +0000)]
timeout/untimeout ==> callout_*

16 years agoAdd axe(4).
Joerg Sonnenberger [Tue, 14 Sep 2004 22:48:15 +0000 (22:48 +0000)]
Add axe(4).

16 years agotimeout/untimeout ==> callout_*
Joerg Sonnenberger [Tue, 14 Sep 2004 22:44:46 +0000 (22:44 +0000)]
timeout/untimeout ==> callout_*

16 years agotimeout/untimeout ==> callout_*
Joerg Sonnenberger [Tue, 14 Sep 2004 22:35:28 +0000 (22:35 +0000)]
timeout/untimeout ==> callout_*

16 years agotimeout/untimeout ==> callout_*
Joerg Sonnenberger [Tue, 14 Sep 2004 22:31:01 +0000 (22:31 +0000)]
timeout/untimeout ==> callout_*

16 years agotimeout/untimeout ==> callout_*
Joerg Sonnenberger [Tue, 14 Sep 2004 22:21:43 +0000 (22:21 +0000)]
timeout/untimeout ==> callout_*

16 years agoConvert axe(4) to use splimp/splx instead of mutex calls, use the
Joerg Sonnenberger [Tue, 14 Sep 2004 22:09:50 +0000 (22:09 +0000)]
Convert axe(4) to use splimp/splx instead of mutex calls, use the
callout_* API instead of timeout/untimeout and general make it compilable.

16 years agotimeout/untimeout ==> callout_*
Joerg Sonnenberger [Tue, 14 Sep 2004 21:48:53 +0000 (21:48 +0000)]
timeout/untimeout ==> callout_*

16 years agotimeout/untimeout ==> callout_*
Joerg Sonnenberger [Tue, 14 Sep 2004 21:34:30 +0000 (21:34 +0000)]
timeout/untimeout ==> callout_*

16 years agotimeout/untimeout ==> callout_*
Joerg Sonnenberger [Tue, 14 Sep 2004 21:29:25 +0000 (21:29 +0000)]
timeout/untimeout ==> callout_*

16 years agoIP6A_SWAP is never set in our code base and this fragment doesn't even
Joerg Sonnenberger [Tue, 14 Sep 2004 21:00:01 +0000 (21:00 +0000)]
IP6A_SWAP is never set in our code base and this fragment doesn't even
exist on non-FreeBSD derived KAME stacks. Nuke it.

16 years ago- statify functions
Joerg Sonnenberger [Tue, 14 Sep 2004 18:36:40 +0000 (18:36 +0000)]
- statify functions
- test pointers explicitly for NULL
- use err for malloc as well
- use snprintf
- use herror when reporting errors from gethostbyname()
- use the coorect clnt_* error calls for those functions
- remove the redundant '?' from getopt
- correct some prototyps
- remove an unnessary cast from malloc
- mark this as WARNS=6 clean

Mostly-submitted-by: Liam J. Foy <liamfoy@sepulcrum.org>
16 years agoMake clnt_create take both host and proto as const char * arguments.
Joerg Sonnenberger [Tue, 14 Sep 2004 18:23:15 +0000 (18:23 +0000)]
Make clnt_create take both host and proto as const char * arguments.

16 years agoDon't append '\n\0' to the return value of clnt_sperror if the string was
Joerg Sonnenberger [Tue, 14 Sep 2004 17:52:25 +0000 (17:52 +0000)]
Don't append '\n\0' to the return value of clnt_sperror if the string was
already terminated at the place of the '\n'.

16 years agoRemove the unused PACKET_TAG definitions and document the structures used
Joerg Sonnenberger [Tue, 14 Sep 2004 15:49:54 +0000 (15:49 +0000)]
Remove the unused PACKET_TAG definitions and document the structures used
for the rest.

16 years agoAdd the 'M' status flag to indicate those proceses or threads which
Matthew Dillon [Tue, 14 Sep 2004 07:52:03 +0000 (07:52 +0000)]
Add the 'M' status flag to indicate those proceses or threads which
are NOT holding the MP lock (the Big Giant Lock).  Typically: user processes
running in userland, the idle threads, and certain other kernel threads
as we begin to unwind the MP lock from the system.  At some point in
the future to avoid clutter when the majority of threads are running
without Giant, we will change 'M' to 'G' where 'G' will indicate when the
MP lock is held.

16 years agoGive the MP fields in the thread structure useful names for UP builds so
Matthew Dillon [Tue, 14 Sep 2004 07:41:49 +0000 (07:41 +0000)]
Give the MP fields in the thread structure useful names for UP builds so
programs like 'ps' (where SMP is not defined during compilation) can pick
out the MP info.

16 years agoAdd support saving both user/group permission on symlinks(-p)
David Rhodus [Tue, 14 Sep 2004 00:42:21 +0000 (00:42 +0000)]
Add support saving both user/group permission on symlinks(-p)

Merged from fbsd.

16 years agoFix another incorrect usage of NSIG.
David Rhodus [Tue, 14 Sep 2004 00:35:16 +0000 (00:35 +0000)]
Fix another incorrect usage of NSIG.

16 years agoFix a problem with the NSIG check which could lead to an exploitable
David Rhodus [Tue, 14 Sep 2004 00:33:53 +0000 (00:33 +0000)]
Fix a problem with the NSIG check which could lead to an exploitable
condition.

Merged from fbsd.

16 years agoPrint link level address on vlan interfaces using ether_ntoa(), to make
David Rhodus [Tue, 14 Sep 2004 00:27:18 +0000 (00:27 +0000)]
Print link level address on vlan interfaces using ether_ntoa(), to make
output on bare ethernet and vlan interfaces the same.

Merged from fbsd.

16 years agoI guess I should bumb document date too.
David Rhodus [Tue, 14 Sep 2004 00:22:15 +0000 (00:22 +0000)]
I guess I should bumb document date too.

16 years agoFix printf example.
David Rhodus [Tue, 14 Sep 2004 00:20:26 +0000 (00:20 +0000)]
Fix printf example.

Merged from fbsd.

16 years agoFix typo.
David Rhodus [Tue, 14 Sep 2004 00:13:36 +0000 (00:13 +0000)]
Fix typo.

Noted by: Steve Mynott <steve.mynott@gmail.com>

16 years agodo not send icmp response if the original packet is encrypted.
David Rhodus [Tue, 14 Sep 2004 00:11:07 +0000 (00:11 +0000)]
do not send icmp response if the original packet is encrypted.

Obtained from: KAME
Merged from fbsd.

16 years agoBring in fix from gzip 1.3.3 to avoid crashes when processing certain
David Rhodus [Tue, 14 Sep 2004 00:03:32 +0000 (00:03 +0000)]
Bring in fix from gzip 1.3.3 to avoid crashes when processing certain
corrupt input files:

1999-06-25  Paul Eggert  <eggert@twinsun.com>

        * inflate.c (huft_build):
        Set n to length of v, to detect improper tables.
        Don't accidentally grow j past z.

Merged from fbsd.

16 years agoadd in support Frontier Labs NEX IA+ Digital Audio Player with USB CF
David Rhodus [Mon, 13 Sep 2004 23:59:16 +0000 (23:59 +0000)]
add in support Frontier Labs NEX IA+ Digital Audio Player with USB CF
card reader/writer

Merged from fbsd.

16 years agoAdd in support for the iRiver iFP MP3 player.
David Rhodus [Mon, 13 Sep 2004 23:57:41 +0000 (23:57 +0000)]
Add in support for the iRiver iFP MP3 player.

Merged from fbsd.

16 years agoyar 2004-08-28 12:49:58 UTC
David Rhodus [Mon, 13 Sep 2004 23:52:57 +0000 (23:52 +0000)]
yar         2004-08-28 12:49:58 UTC

 FreeBSD src repository

 Modified files:        (Branch: RELENG_4)
   libexec/ftpd         ftpd.c
 Log:
 MFC 1.156:
 Open a socket for a data transfer in active mode using euid
 of the current user, not root, to allow matching the user's
 FTP data traffic with an ipfw(8) rule.

16 years agoAvoid leaving an obsolete pointer while the interface is detaching
David Rhodus [Mon, 13 Sep 2004 23:45:57 +0000 (23:45 +0000)]
Avoid leaving an obsolete pointer while the interface is detaching
and the struct ifnet is being deleted.

Merged from fbsd pr: kern/52260

16 years agoChange the array of char to an array of struct pollfd to avoid an
David Rhodus [Mon, 13 Sep 2004 23:41:18 +0000 (23:41 +0000)]
Change the array of char to an array of struct pollfd to avoid an
address being migaligned.

Merged from fbsd pr: kern/85214

16 years agoANSIfication/cleanup, no functional changes.
Matthew Dillon [Mon, 13 Sep 2004 23:18:20 +0000 (23:18 +0000)]
ANSIfication/cleanup, no functional changes.

16 years agoAllow the syncache to run lock-free in parallel on multiple processors
Jeffrey Hsu [Mon, 13 Sep 2004 19:01:50 +0000 (19:01 +0000)]
Allow the syncache to run lock-free in parallel on multiple processors
by giving each cpu its own syncache hashtable and timer queues.

Joint work with: dillon
Testing provided by: drhodus (earlier version)

16 years agoClean up struct session hold/rele management. The tty half-closed support
Matthew Dillon [Mon, 13 Sep 2004 16:22:41 +0000 (16:22 +0000)]
Clean up struct session hold/rele management.  The tty half-closed support
(i.e. showing 'p0-' in the ps output for the tty instead of '??' after a
process has detached) had an issue where the tty would be left with a
reference to the freed session structure in certain situations because the
session structure's ref-counting code was not properly implementing the
release case.  Consolidate the disparate session ref-counting code into
real sess_hold() and sess_rele() functions and ensure that any tty reference
to the session is cleared before the session structure is free()'d.

NOTE: Joerg noticed a 0xdeadc1de (deadcode) panic related to this issue
which means that prior to this fix it was possible for the bug to cause
memory corruption in certain situations.

NOTE: Linux does not implement half-closed tty sessions like BSD.  Add code
to implement fully-closed tty sessions, and document the whole mess, but
leave it conditionalized-out for now.

Reported-by: Joerg Sonnenberger <joerg@britannica.bec.de>