History log of /src/sys/kern/sys_socket.c |
Revision | | Date | Author | Comments |
1.84 |
| 06-Dec-2024 |
riastradh | sys/kern/sys_socket.c, uipc_*.c: Sprinkle SET_ERROR dtrace probes.
PR kern/58378: Kernel error code origination lacks dtrace probes
|
1.83 |
| 06-Dec-2024 |
riastradh | sys/kern/sys_socket.c, uipc_*.c: Nix trailing whitespace.
No functional change intended.
|
1.82 |
| 06-Dec-2024 |
riastradh | sys/kern/sys_socket.c, uipc_*.c: Sort includes.
No functional change intended.
|
1.81 |
| 22-Apr-2023 |
riastradh | branches: 1.81.6; file(9): New fo_posix_fadvise operation.
XXX kernel revbump -- changes struct fileops API and ABI
|
1.80 |
| 22-Apr-2023 |
riastradh | file(9): New fo_fpathconf operation.
XXX kernel revbump -- struct fileops API and ABI change
|
1.79 |
| 17-Nov-2020 |
chs | When SS_RESTARTSYS was added, it was accidentally given the same value as the existing SS_ASYNC. SS_ASYNC was already vestigial at that point, having been superceded by SB_ASYNC, however the SS_ASYNC flag is still set and cleared, unlessly because it is never checked. Fix this conflict by removing SS_ASYNC and its vestigial uses.
|
1.78 |
| 04-Dec-2018 |
maya | branches: 1.78.12; soo_fcntl is identical to fnullop_fcntl, use the latter
ok kamil mrg
|
1.77 |
| 01-Aug-2018 |
rjs | Add ioctl(2) handler for kernel part of sctp_peeloff().
|
1.76 |
| 30-Nov-2017 |
christos | branches: 1.76.2; 1.76.4; add fo_name so we can identify the fileops in a simple way.
|
1.75 |
| 22-Nov-2017 |
ozaki-r | Hold KERNEL_LOCK on if_ioctl selectively based on IFEF_MPSAFE
If IFEF_MPSAFE is set, hold the lock and otherwise don't hold.
This change requires additions of KERNEL_LOCK to subsequence functions from if_ioctl such as ifmedia_ioctl and ifioctl_common to protect non-MP-safe components.
Proposed on tech-kern@ and tech-net@
|
1.74 |
| 07-Jul-2016 |
msaitoh | branches: 1.74.10; KNF. Remove extra spaces. No functional change.
|
1.73 |
| 05-Sep-2014 |
matt | branches: 1.73.2; Try not to use f_data, use f_{vnode,socket,pipe,mqueue,kqueue,ksem} to get a correctly typed pointer.
|
1.72 |
| 06-Jul-2014 |
rtr | * split PRU_SENSE functionality out of xxx_usrreq() switches and place into separate xxx_stat(struct socket *, struct stat *) functions. * replace calls using pr_generic with req == PRU_SENSE with pr_stat().
further change will follow that cleans up the pattern used to extract the pcb and test for its presence.
reviewed by rmind
|
1.71 |
| 01-Jul-2014 |
rtr | fix parameter types in pr_ioctl, called xx_control() functions and remove abuse of pointer to struct mbuf type.
param2 changed to u_long type and uses parameter name 'cmd' (ioctl command) param3 changed to void * type and uses parameter name 'data' param4 changed to struct ifnet * and uses parameter name 'ifp' param5 has been removed (formerly struct lwp *) and uses of 'l' have been replaced with curlwp from curproc(9).
callers have had (now unnecessary) casts to struct mbuf * removed, called code has had (now unnecessary) casts to u_long, void * and struct ifnet * respectively removed.
reviewed by rmind@
|
1.70 |
| 23-Jun-2014 |
rtr | where appropriate rename xxx_ioctl() struct mbuf * parameters from `control' to `ifp' after split from xxx_usrreq().
sys_socket.c fix wrapping of arguments to be consistent with other function calls in the file after replacing pr_usrreq() call with pr_ioctl() which required one less argument.
link_proto.c fix indentation of parameters in link_ioctl() prototype to be consistent with the rest of the file.
discussed with rmind@
|
1.69 |
| 22-Jun-2014 |
rtr | * split PRU_CONTROL functionality out of xxx_userreq() switches and place into separate xxx_ioctl() functions. * place KASSERT(req != PRU_CONTROL) inside xxx_userreq() as it is now inappropriate for req = PRU_CONTROL in xxx_userreq(). * replace calls to pr_generic() with req = PRU_CONTROL with pr_ioctl(). * remove & fixup references to PRU_CONTROL xxx_userreq() function comments. * fix various comments references for xxx_userreq() that mentioned PRU_CONTROL as xxx_userreq() no longer handles the request.
a further change will follow to fix parameter and naming inconsistencies retained from original code.
Reviewed by rmind@
|
1.68 |
| 18-May-2014 |
rmind | Add struct pr_usrreqs with a pr_generic function and prepare for the dismantling of pr_usrreq in the protocols; no functional change intended. PRU_ATTACH/PRU_DETACH changes will follow soon.
Bump for struct protosw. Welcome to 6.99.62!
|
1.67 |
| 26-Apr-2014 |
pooka | Decouple sockets linkage from interface code by making ifioctl() a pointer.
|
1.66 |
| 26-Apr-2014 |
pooka | It's been > 20years since rtioctl() did something. Let's just remove that special way of returning EOPNOTSUPP.
|
1.65 |
| 20-Dec-2011 |
christos | branches: 1.65.6; 1.65.10; 1.65.20; - Eliminate so_nbio and turn it into a bit SS_NBIO in so_state. - Introduce MSG_NBIO so that we can turn non blocking i/o on a per call basis - Use MSG_NBIO to fix the XXX: multi-threaded issues on the fifo sockets. - Don't set SO_CANTRCVMORE, if we were interrupted (perhaps do it for all errors?).
|
1.64 |
| 30-Jun-2011 |
dyoung | branches: 1.64.2; 1.64.6; Don't cast a pointer void * before passing to memset(), that's not necessary. Use NULL instead of (type *)0. This patch produces no change in the generated assembly.
|
1.63 |
| 20-Dec-2009 |
dsl | If a multithreaded app closes an fd while another thread is blocked in read/write/accept, then the expectation is that the blocked thread will exit and the close complete. Since only one fd is affected, but many fd can refer to the same file, the close code can only request the fs code unblock with ERESTART. Fixed for pipes and sockets, ERESTART will only be generated after such a close - so there should be no change for other programs. Also rename fo_abort() to fo_restart() (this used to be fo_drain()). Fixes PR/26567
|
1.62 |
| 09-Dec-2009 |
dsl | Rename fo_drain() to fo_abort(), 'drain' is used to mean 'wait for output do drain' in many places, whereas fo_drain() was called in order to force blocking read()/write() etc calls to return to userspace so that a close() call from a different thread can complete. In the sockets code comment out the broken code in the inner function, it was being called from compat code.
|
1.61 |
| 08-Apr-2009 |
ad | soo_ioctl:
- cosmetic change after merge of socket locking patch. - add a comment.
|
1.60 |
| 08-Apr-2009 |
ad | Patch out soo_drain until I fix it to work correctly.
|
1.59 |
| 04-Apr-2009 |
ad | Add fileops::fo_drain(), to be called from fd_close() when there is more than one active reference to a file descriptor. It should dislodge threads sleeping while holding a reference to the descriptor. Implemented only for sockets but should be extended to pipes, fifos, etc.
Fixes the case of a multithreaded process doing something like the following, which would have hung until the process got a signal.
thr0 accept(fd, ...) thr1 close(fd)
|
1.58 |
| 29-Apr-2008 |
ad | branches: 1.58.8; 1.58.10; 1.58.14; kern/38502 ifconfig wi0 hangs
Don't acquire the socket lock for PRU_CONTROL.
|
1.57 |
| 28-Apr-2008 |
martin | Remove clause 3 and 4 from TNF licenses
|
1.56 |
| 24-Apr-2008 |
ad | branches: 1.56.2; Merge the socket locking patch:
- Socket layer becomes MP safe. - Unix protocols become MP safe. - Allows protocol processing interrupts to safely block on locks. - Fixes a number of race conditions.
With much feedback from matt@ and plunky@.
|
1.55 |
| 21-Mar-2008 |
ad | branches: 1.55.2; Catch up with descriptor handling changes. See kern_descrip.c revision 1.173 for details.
|
1.54 |
| 20-Mar-2008 |
ad | - Extract the guts of soo_poll() into sopoll(), which takes a struct socket *. This is for netsmb which wants to poll sockets directly. - When polling a socket, first check for pending I/O without acquring any locks. If no I/O seems to be pending, acquire locks/spl and check again doing selrecord() if necessary.
|
1.53 |
| 27-Feb-2008 |
matt | make socketops const
|
1.52 |
| 06-Feb-2008 |
ad | branches: 1.52.2; 1.52.6; Don't lock the socket to set/clear FNONBLOCK. Just set it atomically.
|
1.51 |
| 09-Jul-2007 |
ad | branches: 1.51.8; 1.51.14; Merge some of the less invasive changes from the vmlocking branch:
- kthread, callout, devsw API changes - select()/poll() improvements - miscellaneous MT safety improvements
|
1.50 |
| 04-Mar-2007 |
christos | branches: 1.50.2; 1.50.4; Kill caddr_t; there will be some MI fallout, but it will be fixed shortly.
|
1.49 |
| 01-Nov-2006 |
yamt | branches: 1.49.4; remove some __unused from function parameters.
|
1.48 |
| 12-Oct-2006 |
christos | - sprinkle __unused on function decls. - fix a couple of unused bugs - no more -Wno-unused for i386
|
1.47 |
| 14-May-2006 |
elad | branches: 1.47.10; integrate kauth.
|
1.46 |
| 01-Mar-2006 |
yamt | branches: 1.46.2; 1.46.4; 1.46.6; merge yamt-uio_vmspace branch.
- use vmspace rather than proc or lwp where appropriate. the latter is more natural to specify an address space. (and less likely to be abused for random purposes.) - fix a swdmover race.
|
1.45 |
| 11-Dec-2005 |
christos | branches: 1.45.2; 1.45.4; 1.45.6; merge ktrace-lwp.
|
1.44 |
| 07-Dec-2005 |
thorpej | Use ANSI function decls.
|
1.43 |
| 26-Feb-2005 |
perry | branches: 1.43.4; nuke trailing whitespace
|
1.42 |
| 06-Nov-2004 |
christos | branches: 1.42.4; 1.42.6; I guess compiling code before committing is a lost art!
|
1.41 |
| 06-Nov-2004 |
wrstuden | Add support for FIONWRITE and FIONSPACE ioctls. FIONWRITE reports the number of bytes in the send queue, and FIONSPACE reports the number of free bytes in the send queue. These ioctls permit applications to monitor file descriptor transmission dynamics.
In examining prior art, FIONWRITE exists with the semantics given here. FIONSPACE is provided so that programs may easily determine how much space is left in the send queue; they do not need to know the send queue size.
The fact that a write may block even if there is enough space in the send queue for it is noted in the documentation.
FIONWRITE functionality may be used to implement TIOCOUTQ for Linux emulation - Linux extended this ioctl to sockets, even though they are not ttys.
|
1.40 |
| 22-May-2004 |
jonathan | Eliminate several uses of `curproc' from the socket-layer code and from NFS.
Add a new explicit `struct proc *p' argument to socreate(), sosend(). Use that argument instead of curproc. Follow-on changes to pass that argument to socreate(), sosend(), and (*so->so_send)() calls. These changes reviewed and independently recoded by Matt Thomas.
Changes to soreceive() and (*dom->dom_exernalize() from Matt Thomas: pass soreceive()'s struct uio* uio->uio_procp to unp_externalize(). Eliminate curproc from unp_externalize. Also, now soreceive() uses its uio->uio_procp value, pass that same value downward to ((pr->pru_usrreq)() calls for consistency, instead of (struct proc * )0.
Similar changes in sys/nfs to eliminate (most) uses of curproc, either via the req-> r_procp field of a struct nfsreq *req argument, or by passing down new explicit struct proc * arguments.
Reviewed by: Matt Thomas, posted to tech-kern. NB: The (*pr->pru_usrreq)() change should be tested on more (all!) protocols.
|
1.39 |
| 21-Sep-2003 |
jdolecek | cleanup & uniform descriptor owner handling: * introduce fsetown(), fgetown(), fownsignal() - this sets/retrieves/signals the owner of descriptor, according to appropriate sematics of TIOCSPGRP/FIOSETOWN/SIOCSPGRP/TIOCGPGRP/FIOGETOWN/SIOCGPGRP ioctl; use these routines instead of custom code where appropriate * make every place handling TIOCSPGRP/TIOCGPGRP handle also FIOSETOWN/FIOGETOWN properly, and remove the translation of FIO[SG]OWN to TIOC[SG]PGRP in sys_ioctl() & sys_fcntl() * also remove the socket-specific hack in sys_ioctl()/sys_fcntl() and pass the ioctls down to soo_ioctl() as any other ioctl
change discussed on tech-kern@
|
1.38 |
| 07-Aug-2003 |
agc | Move UCB-licensed code from 4-clause to 3-clause licence.
Patches provided by Joel Baker in PR 22364, verified by myself.
|
1.37 |
| 29-Jun-2003 |
fvdl | branches: 1.37.2; Back out the lwp/ktrace changes. They contained a lot of colateral damage, and need to be examined and discussed more.
|
1.36 |
| 28-Jun-2003 |
darrenr | Pass lwp pointers throughtout the kernel, as required, so that the lwpid can be inserted into ktrace records. The general change has been to replace "struct proc *" with "struct lwp *" in various function prototypes, pass the lwp through and use l_proc to get the process pointer when needed.
Bump the kernel rev up to 1.6V
|
1.35 |
| 21-Mar-2003 |
dsl | Change 'data' argument to fo_ioctl and fo_fcntl from 'caddr_t' to 'void *'. Avoids a lot of casting and removes the need for some line breaks. Removed a load of (caddr_t) casts from calls to copyin/copyout as well. (approved by christos - he has a plan to remove caddr_t...)
|
1.34 |
| 06-Jan-2003 |
wiz | writable, not writeable.
|
1.33 |
| 23-Oct-2002 |
jdolecek | merge kqueue branch into -current
kqueue provides a stateful and efficient event notification framework currently supported events include socket, file, directory, fifo, pipe, tty and device changes, and monitoring of processes and signals
kqueue is supported by all writable filesystems in NetBSD tree (with exception of Coda) and all device drivers supporting poll(2)
based on work done by Jonathan Lemon for FreeBSD initial NetBSD port done by Luke Mewburn and Jason Thorpe
|
1.32 |
| 12-Nov-2001 |
lukem | add RCSIDs
|
1.31 |
| 16-Jun-2001 |
manu | branches: 1.31.2; 1.31.6; Use SB_ASYNC in struct sockbuf sb_flags field instead of SS_ASYNC in struct socket so_state field to decide if we need to send asynchronous notifications. This makes possible to request notification on write but not on read, and vice versa.
This is used in Linux emulation code, because when async I/O is requested, Linux does not send SIGIO to write end of sockets, and it never send any SIGIO to any end of pipes. Il Linux emulation code, we then set SB_ASYNC only on the read end of sockets, and on no end for pipes.
|
1.30 |
| 19-May-2001 |
manu | Backed out a previous commit that was incomplete and hence broke several emulation package build
|
1.29 |
| 19-May-2001 |
manu | Moved e_flags outsied of ifdef __HAVE_MINIMAL_EMUL in struct emul and removed an ifdef that was taking care of this problem
|
1.28 |
| 07-May-2001 |
manu | Changed EMUL_BSD_ASYNCIO_PIPE to EMUL_NO_BSD_ASYNCIO_PIPE, so that the native emulation (NetBSD) does not have a flag.
|
1.27 |
| 07-May-2001 |
enami | Make this file *just* compiles again when __HAVE_MINIMAL_EMUL is defined.
|
1.26 |
| 07-May-2001 |
enami | Fix broken indentation introduced by previous commit.
|
1.25 |
| 06-May-2001 |
manu | implement the recently introduced EMUL_BSD_ASYNCIO_PIPE emulation package flag.
EMUL_BSD_ASYNCIO_PIPE notes that the emulated binaries expect the original BSD pipe behavior for asynchronous I/O, which is to fire SIGIO on read() and write(). OSes without this flag do not expect any SIGIO to be fired on read() and write() for pipes, even when async I/O was requested. As far as we know, the OSes that need EMUL_BSD_ASYNCIO_PIPE are NetBSD, OSF/1 and Darwin.
|
1.24 |
| 09-Apr-2001 |
jdolecek | Change the first arg to fileops fo_stat routine to struct file *, adjust callers and appropriate routines to cope. This makes fo_stat more consistent with rest of fileops routines and also makes the fo_stat match FreeBSD as an added bonus. Discussed with Luke Mewburn on tech-kern@.
|
1.23 |
| 07-Apr-2001 |
jdolecek | Add new 'stat' fileop and call the stat function via f_ops rather than directly. For compat syscalls, also add necessary FILE_USE()/FILE_UNUSE(). Now that soo_stat() gets a proc arg, pass it on to usrreq function.
|
1.22 |
| 30-Mar-2000 |
augustss | branches: 1.22.6; Get rid of register declarations.
|
1.21 |
| 03-Aug-1999 |
wrstuden | branches: 1.21.2; Add support for fcntl(2) to generate VOP_FCNTL calls. Any fcntl call with F_FSCTL set and F_SETFL calls generate calls to a new fileop fo_fcntl. Add genfs_fcntl() and soo_fcntl() which return 0 for F_SETFL and EOPNOTSUPP otherwise. Have all leaf filesystems use genfs_fcntl().
Reviewed by: thorpej Tested by: wrstuden
|
1.20 |
| 04-Aug-1998 |
perry | Abolition of bcopy, ovbcopy, bcmp, and bzero, phase one. bcopy(x, y, z) -> memcpy(y, x, z) ovbcopy(x, y, z) -> memmove(y, x, z) bcmp(x, y, z) -> memcmp(x, y, z) bzero(x, y) -> memset(x, 0, y)
|
1.19 |
| 31-Jul-1998 |
perry | fix sizeofs so they comply with the KNF style guide. yes, it is pedantic.
|
1.18 |
| 30-Jun-1998 |
thorpej | branches: 1.18.2; Add two additional arguments to the fileops read and write calls, a pointer to the offset to use, and a flags word. Define a flag that specifies whether or not to update the offset passed by reference.
|
1.17 |
| 25-Apr-1998 |
matt | Hook for 0-copy (or other optimized) sends and receives
|
1.16 |
| 01-Mar-1998 |
fvdl | Merge with Lite2 + local changes
|
1.15 |
| 07-Sep-1996 |
mycroft | Implement poll(2).
|
1.14 |
| 22-May-1996 |
mycroft | Pass a proc pointer down to the usrreq and pcbbind functions for PRU_ATTACH, PRU_BIND and PRU_CONTROL. The usrreq interface really needs to be split up, but this will have to wait. Remove SS_PRIV completely.
|
1.13 |
| 12-Aug-1995 |
mycroft | branches: 1.13.6; splnet --> splsoftnet
|
1.12 |
| 30-Oct-1994 |
cgd | be more careful with types, also pull in headers where necessary.
|
1.11 |
| 29-Jun-1994 |
cgd | New RCS ID's, take two. they're more aesthecially pleasant, and use 'NetBSD'
|
1.10 |
| 13-May-1994 |
mycroft | Update to 4.4-Lite networking code, with a few local changes.
|
1.9 |
| 11-May-1994 |
mycroft | Minor changes.
|
1.8 |
| 11-May-1994 |
mycroft | Minor changes.
|
1.7 |
| 25-Apr-1994 |
mycroft | Set the file type correctly for stat().
|
1.6 |
| 25-Apr-1994 |
mycroft | Remove sbselqueue().
|
1.5 |
| 18-Dec-1993 |
mycroft | Canonicalize all #includes.
|
1.4 |
| 27-Jun-1993 |
andrew | branches: 1.4.4; ANSIfications - removed all implicit function return types and argument definitions. Ensured that all files include "systm.h" to gain access to general prototypes. Casts where necessary.
|
1.3 |
| 22-May-1993 |
cgd | add include of select.h if necessary for protos, or delete if extraneous
|
1.2 |
| 18-May-1993 |
cgd | make kernel select interface be one-stop shopping & clean it all up.
|
1.1 |
| 21-Mar-1993 |
cgd | branches: 1.1.1; Initial revision
|
1.1.1.3 |
| 01-Mar-1998 |
fvdl | Import 4.4BSD-Lite2
|
1.1.1.2 |
| 01-Mar-1998 |
fvdl | Import 4.4BSD-Lite for reference
|
1.1.1.1 |
| 21-Mar-1993 |
cgd | initial import of 386bsd-0.1 sources
|
1.4.4.2 |
| 14-Nov-1993 |
mycroft | Canonicalize all #includes.
|
1.4.4.1 |
| 24-Sep-1993 |
mycroft | Make all files using spl*() #include cpu.h. Changes from trunk. init_main.c: New method of pseudo-device of initialization. kern_clock.c: hardclock() and softclock() now take a pointer to a clockframe. softclock() only does callouts. kern_synch.c: Remove spurious declaration of endtsleep(). Adjust uses of averunnable for new struct loadav. subr_prf.c: Allow printf() formats in panic(). tty.c: averunnable changes. vfs_subr.c: va_size and va_bytes are now quads.
|
1.13.6.1 |
| 11-Dec-1996 |
mycroft | From trunk: Eliminate SS_PRIV; instead, pass down a proc pointer to the usrreq methods that need it.
|
1.18.2.1 |
| 08-Aug-1998 |
eeh | Revert cdevsw mmap routines to return int.
|
1.21.2.2 |
| 21-Apr-2001 |
bouyer | Sync with HEAD
|
1.21.2.1 |
| 20-Nov-2000 |
bouyer | Update thorpej_scsipi to -current as of a month ago
|
1.22.6.5 |
| 07-Jan-2003 |
thorpej | Sync with HEAD.
|
1.22.6.4 |
| 11-Nov-2002 |
nathanw | Catch up to -current
|
1.22.6.3 |
| 14-Nov-2001 |
nathanw | Catch up to -current.
|
1.22.6.2 |
| 21-Jun-2001 |
nathanw | Catch up to -current.
|
1.22.6.1 |
| 09-Apr-2001 |
nathanw | Catch up with -current.
|
1.31.6.1 |
| 12-Nov-2001 |
thorpej | Sync the thorpej-mips-cache branch with -current.
|
1.31.2.2 |
| 10-Jan-2002 |
thorpej | Sync kqueue branch with -current.
|
1.31.2.1 |
| 10-Jul-2001 |
lukem | add soo_kqfilter method
|
1.37.2.7 |
| 11-Dec-2005 |
christos | Sync with head.
|
1.37.2.6 |
| 04-Mar-2005 |
skrll | Sync with HEAD.
Hi Perry!
|
1.37.2.5 |
| 14-Nov-2004 |
skrll | Sync with HEAD.
|
1.37.2.4 |
| 21-Sep-2004 |
skrll | Fix the sync with head I botched.
|
1.37.2.3 |
| 18-Sep-2004 |
skrll | Sync with HEAD.
|
1.37.2.2 |
| 03-Aug-2004 |
skrll | Sync with HEAD
|
1.37.2.1 |
| 02-Jul-2003 |
darrenr | Apply the aborted ktrace-lwp changes to a specific branch. This is just for others to review, I'm concerned that patch fuziness may have resulted in some errant code being generated but I'll look at that later by comparing the diff from the base to the branch with the file I attempt to apply to it. This will, at the very least, put the changes in a better context for others to review them and attempt to tinker with removing passing of 'struct lwp' through the kernel.
|
1.42.6.1 |
| 19-Mar-2005 |
yamt | sync with head. xen and whitespace. xen part is not finished.
|
1.42.4.1 |
| 29-Apr-2005 |
kent | sync with -current
|
1.43.4.5 |
| 24-Mar-2008 |
yamt | sync with head.
|
1.43.4.4 |
| 17-Mar-2008 |
yamt | sync with head.
|
1.43.4.3 |
| 11-Feb-2008 |
yamt | sync with head.
|
1.43.4.2 |
| 03-Sep-2007 |
yamt | sync with head.
|
1.43.4.1 |
| 21-Jun-2006 |
yamt | sync with head.
|
1.45.6.2 |
| 01-Jun-2006 |
kardel | Sync with head.
|
1.45.6.1 |
| 22-Apr-2006 |
simonb | Sync with head.
|
1.45.4.1 |
| 09-Sep-2006 |
rpaulo | sync with head
|
1.45.2.1 |
| 31-Dec-2005 |
yamt | uio_segflg/uio_lwp -> uio_vmspace.
|
1.46.6.1 |
| 24-May-2006 |
tron | Merge 2006-05-24 NetBSD-current into the "peter-altq" branch.
|
1.46.4.2 |
| 06-May-2006 |
christos | - Move kauth_cred_t declaration to <sys/types.h> - Cleanup struct ucred; forward declarations that are unused. - Don't include <sys/kauth.h> in any header, but include it in the c files that need it.
Approved by core.
|
1.46.4.1 |
| 08-Mar-2006 |
elad | Adapt to kernel authorization KPI.
|
1.46.2.1 |
| 24-May-2006 |
yamt | sync with head.
|
1.47.10.2 |
| 10-Dec-2006 |
yamt | sync with head.
|
1.47.10.1 |
| 22-Oct-2006 |
yamt | sync with head
|
1.49.4.1 |
| 12-Mar-2007 |
rmind | Sync with HEAD.
|
1.50.4.1 |
| 11-Jul-2007 |
mjf | Sync with head.
|
1.50.2.1 |
| 21-Mar-2007 |
ad | Acquire the kernel lock in the VOP_* wrappers and the socket ops.
|
1.51.14.1 |
| 18-Feb-2008 |
mjf | Sync with HEAD.
|
1.51.8.1 |
| 23-Mar-2008 |
matt | sync with HEAD
|
1.52.6.2 |
| 02-Jun-2008 |
mjf | Sync with HEAD.
|
1.52.6.1 |
| 03-Apr-2008 |
mjf | Sync with HEAD.
|
1.52.2.1 |
| 24-Mar-2008 |
keiichi | sync with head.
|
1.55.2.1 |
| 18-May-2008 |
yamt | sync with head.
|
1.56.2.3 |
| 11-Mar-2010 |
yamt | sync with head
|
1.56.2.2 |
| 04-May-2009 |
yamt | sync with head.
|
1.56.2.1 |
| 16-May-2008 |
yamt | sync with head.
|
1.58.14.1 |
| 13-May-2009 |
jym | Sync with HEAD.
Commit is split, to avoid a "too many arguments" protocol error.
|
1.58.10.2 |
| 08-Apr-2009 |
snj | Pull up following revision(s) (requested by ad in ticket #681): sys/kern/sys_socket.c: revision 1.60 Patch out soo_drain until I fix it to work correctly.
|
1.58.10.1 |
| 04-Apr-2009 |
snj | Pull up following revision(s) (requested by ad in ticket #661): sys/arch/xen/xen/xenevt.c: revision 1.32 sys/compat/svr4/svr4_net.c: revision 1.56 sys/compat/svr4_32/svr4_32_net.c: revision 1.19 sys/dev/dmover/dmover_io.c: revision 1.32 sys/dev/putter/putter.c: revision 1.21 sys/kern/kern_descrip.c: revision 1.190 sys/kern/kern_drvctl.c: revision 1.23 sys/kern/kern_event.c: revision 1.64 sys/kern/sys_mqueue.c: revision 1.14 sys/kern/sys_pipe.c: revision 1.109 sys/kern/sys_socket.c: revision 1.59 sys/kern/uipc_syscalls.c: revision 1.136 sys/kern/vfs_vnops.c: revision 1.164 sys/kern/uipc_socket.c: revision 1.188 sys/net/bpf.c: revision 1.144 sys/net/if_tap.c: revision 1.55 sys/opencrypto/cryptodev.c: revision 1.47 sys/sys/file.h: revision 1.67 sys/sys/param.h: patch sys/sys/socketvar.h: revision 1.119 Add fileops::fo_drain(), to be called from fd_close() when there is more than one active reference to a file descriptor. It should dislodge threads sleeping while holding a reference to the descriptor. Implemented only for sockets but should be extended to pipes, fifos, etc. Fixes the case of a multithreaded process doing something like the following, which would have hung until the process got a signal. thr0 accept(fd, ...) thr1 close(fd)
|
1.58.8.1 |
| 28-Apr-2009 |
skrll | Sync with HEAD.
|
1.64.6.1 |
| 18-Feb-2012 |
mrg | merge to -current.
|
1.64.2.2 |
| 22-May-2014 |
yamt | sync with head.
for a reference, the tree before this commit was tagged as yamt-pagecache-tag8.
this commit was splitted into small chunks to avoid a limitation of cvs. ("Protocol error: too many arguments")
|
1.64.2.1 |
| 17-Apr-2012 |
yamt | sync with head
|
1.65.20.1 |
| 10-Aug-2014 |
tls | Rebase.
|
1.65.10.2 |
| 18-May-2014 |
rmind | sync with head
|
1.65.10.1 |
| 28-Aug-2013 |
rmind | Checkpoint work in progress: - Initial split of the protocol user-request method into the following methods: pr_attach, pr_detach and pr_generic for old the pr_usrreq. - Adjust socreate(9) and sonewconn(9) to call pr_attach without the socket lock held (as a preparation for the locking scheme adjustment). - Adjust all pr_attach routines to assert that PCB is not set. - Sprinkle various comments, document some routines and their locking. - Remove M_PCB, replace with kmem(9). - Fix few bugs spotted on the way.
|
1.65.6.2 |
| 03-Dec-2017 |
jdolecek | update from HEAD
|
1.65.6.1 |
| 20-Aug-2014 |
tls | Rebase to HEAD as of a few days ago.
|
1.73.2.1 |
| 09-Jul-2016 |
skrll | Sync with HEAD
|
1.74.10.1 |
| 02-Jan-2018 |
snj | Pull up following revision(s) (requested by ozaki-r in ticket #456): sys/arch/arm/sunxi/sunxi_emac.c: 1.9 sys/dev/ic/dwc_gmac.c: 1.43-1.44 sys/dev/pci/if_iwm.c: 1.75 sys/dev/pci/if_wm.c: 1.543 sys/dev/pci/ixgbe/ixgbe.c: 1.112 sys/dev/pci/ixgbe/ixv.c: 1.74 sys/kern/sys_socket.c: 1.75 sys/net/agr/if_agr.c: 1.43 sys/net/bpf.c: 1.219 sys/net/if.c: 1.397, 1.399, 1.401-1.403, 1.406-1.410, 1.412-1.416 sys/net/if.h: 1.242-1.247, 1.250, 1.252-1.257 sys/net/if_bridge.c: 1.140 via patch, 1.142-1.146 sys/net/if_etherip.c: 1.40 sys/net/if_ethersubr.c: 1.243, 1.246 sys/net/if_faith.c: 1.57 sys/net/if_gif.c: 1.132 sys/net/if_l2tp.c: 1.15, 1.17 sys/net/if_loop.c: 1.98-1.101 sys/net/if_media.c: 1.35 sys/net/if_pppoe.c: 1.131-1.132 sys/net/if_spppsubr.c: 1.176-1.177 sys/net/if_tun.c: 1.142 sys/net/if_vlan.c: 1.107, 1.109, 1.114-1.121 sys/net/npf/npf_ifaddr.c: 1.3 sys/net/npf/npf_os.c: 1.8-1.9 sys/net/rtsock.c: 1.230 sys/netcan/if_canloop.c: 1.3-1.5 sys/netinet/if_arp.c: 1.255 sys/netinet/igmp.c: 1.65 sys/netinet/in.c: 1.210-1.211 sys/netinet/in_pcb.c: 1.180 sys/netinet/ip_carp.c: 1.92, 1.94 sys/netinet/ip_flow.c: 1.81 sys/netinet/ip_input.c: 1.362 sys/netinet/ip_mroute.c: 1.147 sys/netinet/ip_output.c: 1.283, 1.285, 1.287 sys/netinet6/frag6.c: 1.61 sys/netinet6/in6.c: 1.251, 1.255 sys/netinet6/in6_pcb.c: 1.162 sys/netinet6/ip6_flow.c: 1.35 sys/netinet6/ip6_input.c: 1.183 sys/netinet6/ip6_output.c: 1.196 sys/netinet6/mld6.c: 1.90 sys/netinet6/nd6.c: 1.239-1.240 sys/netinet6/nd6_nbr.c: 1.139 sys/netinet6/nd6_rtr.c: 1.136 sys/netipsec/ipsec_output.c: 1.65 sys/rump/net/lib/libnetinet/netinet_component.c: 1.9-1.10 kmem_intr_free kmem_intr_[z]alloced memory the underlying pools are the same but api-wise those should match Unify IFEF_*_MPSAFE into IFEF_MPSAFE There are already two flags for if_output and if_start, however, it seems such MPSAFE flags are eventually needed for all if_XXX operations. Having discrete flags for each operation is wasteful of if_extflags bits. So let's unify the flags into one: IFEF_MPSAFE. Fortunately IFEF_*_MPSAFE flags have never been included in any releases, so we can change them without breaking backward compatibility of the releases (though the kernel version of -current should be bumped). Note that if an interface have both MP-safe and non-MP-safe operations at a time, we have to set the IFEF_MPSAFE flag and let callees of non-MP-safe opeartions take the kernel lock. Proposed on tech-kern@ and tech-net@ Provide macros for softnet_lock and KERNEL_LOCK hiding NET_MPSAFE switch It reduces C&P codes such as "#ifndef NET_MPSAFE KERNEL_LOCK(1, NULL); ..." scattered all over the source code and makes it easy to identify remaining KERNEL_LOCK and/or softnet_lock that are held even if NET_MPSAFE. No functional change Hold KERNEL_LOCK on if_ioctl selectively based on IFEF_MPSAFE If IFEF_MPSAFE is set, hold the lock and otherwise don't hold. This change requires additions of KERNEL_LOCK to subsequence functions from if_ioctl such as ifmedia_ioctl and ifioctl_common to protect non-MP-safe components. Proposed on tech-kern@ and tech-net@ Ensure to hold if_ioctl_lock when calling if_flags_set Fix locking against myself on ifpromisc vlan_unconfig_locked could be called with holding if_ioctl_lock. Ensure to not turn on IFF_RUNNING of an interface until its initialization completes And ensure to turn off it before destruction as per IFF_RUNNING's description "resource allocated". (The description is a bit doubtful though, I believe the change is still proper.) Ensure to hold if_ioctl_lock on if_up and if_down One exception for if_down is if_detach; in the case the lock isn't needed because it's guaranteed that no other one can access ifp at that point. Make if_link_queue MP-safe if IFEF_MPSAFE if_link_queue is a queue to store events of link state changes, which is used to pass events from (typically) an interrupt handler to if_link_state_change softint. The queue was protected by KERNEL_LOCK so far, but if IFEF_MPSAFE is enabled, it becomes unsafe because (perhaps) an interrupt handler of an interface with IFEF_MPSAFE doesn't take KERNEL_LOCK. Protect it by a spin mutex. Additionally with this change KERNEL_LOCK of if_link_state_change softint is omitted if NET_MPSAFE is enabled. Note that the spin mutex is now ifp->if_snd.ifq_lock as well as the case of if_timer (see the comment). Use IFADDR_WRITER_FOREACH instead of IFADDR_READER_FOREACH At that point no other one modifies the list so IFADDR_READER_FOREACH is unnecessary. Use of IFADDR_READER_FOREACH is harmless in general though, if we try to detect contract violations of pserialize, using it violates the contract. So avoid using it makes life easy. Ensure to call if_addr_init with holding if_ioctl_lock Get rid of outdated comments Fix build of kernels without ether By throwing out if_enable_vlan_mtu and if_disable_vlan_mtu that created a unnecessary dependency from if.c to if_ethersubr.c. PR kern/52790 Rename IFNET_LOCK to IFNET_GLOBAL_LOCK IFNET_LOCK will be used in another lock, if_ioctl_lock (might be renamed then). Wrap if_ioctl_lock with IFNET_* macros (NFC) Also if_ioctl_lock perhaps needs to be renamed to something because it's now not just for ioctl... Reorder some destruction routines in if_detach - Destroy if_ioctl_lock at the end of the if_detach because it's used in various destruction routines - Move psref_target_destroy after pr_purgeif because we want to use psref in pr_purgeif (otherwise destruction procedures can be tricky) Ensure to call if_mcast_op with holding IFNET_LOCK Note that CARP doesn't deal with IFNET_LOCK yet. Remove IFNET_GLOBAL_LOCK where it's unnecessary because IFNET_LOCK is held Describe which lock is used to protect each member variable of struct ifnet Requested by skrll@ Write a guideline for converting an interface to IFEF_MPSAFE Requested by skrll@ Note that IFNET_LOCK must not be held in softint Don't set IFEF_MPSAFE unless NET_MPSAFE at this point Because recent investigations show that interfaces with IFEF_MPSAFE need to follow additional restrictions to work with the flag safely. We should enable it on an interface by default only if the interface surely satisfies the restrictions, which are described in if.h. Note that enabling IFEF_MPSAFE solely gains a few benefit on performance because the network stack is still serialized by the big kernel locks by default.
|
1.76.4.1 |
| 10-Jun-2019 |
christos | Sync with HEAD
|
1.76.2.2 |
| 26-Dec-2018 |
pgoyette | Sync with HEAD, resolve a few conflicts
|
1.76.2.1 |
| 06-Sep-2018 |
pgoyette | Sync with HEAD
Resolve a couple of conflicts (result of the uimin/uimax changes)
|
1.78.12.1 |
| 14-Dec-2020 |
thorpej | Sync w/ HEAD.
|
1.81.6.1 |
| 02-Aug-2025 |
perseant | Sync with HEAD
|