sync with OpenBSD -current

This commit is contained in:
purplerain 2024-01-13 03:13:30 +00:00
parent b3ecf9fa9a
commit a51405ccff
Signed by: purplerain
GPG key ID: F42C07F07E2E35B7
9 changed files with 301 additions and 228 deletions

View file

@ -1,3 +1,8 @@
/* Public domain. */
#ifndef _LINUX_OF_DEVICE_H
#define _LINUX_OF_DEVICE_H
#include <linux/of.h>
#include <linux/of_platform.h>
@ -6,3 +11,5 @@ int __of_device_is_compatible(struct device_node *, const char *);
__of_device_is_compatible(__of_node(n), (c))
int of_dma_configure(struct device *, struct device_node *, int);
#endif

View file

@ -1,4 +1,4 @@
/* $OpenBSD: uipc_socket.c,v 1.313 2024/01/11 14:15:11 bluhm Exp $ */
/* $OpenBSD: uipc_socket.c,v 1.314 2024/01/12 10:48:03 bluhm Exp $ */
/* $NetBSD: uipc_socket.c,v 1.21 1996/02/04 02:17:52 christos Exp $ */
/*
@ -582,7 +582,7 @@ sosend(struct socket *so, struct mbuf *addr, struct uio *uio, struct mbuf *top,
#define snderr(errno) { error = errno; goto release; }
solock(so);
solock_shared(so);
restart:
if ((error = sblock(so, &so->so_snd, SBLOCKWAIT(flags))) != 0)
goto out;
@ -635,9 +635,9 @@ restart:
if (flags & MSG_EOR)
top->m_flags |= M_EOR;
} else {
sounlock(so);
sounlock_shared(so);
error = m_getuio(&top, atomic, space, uio);
solock(so);
solock_shared(so);
if (error)
goto release;
space -= top->m_pkthdr.len;
@ -665,7 +665,7 @@ release:
so->so_snd.sb_state &= ~SS_ISSENDING;
sbunlock(so, &so->so_snd);
out:
sounlock(so);
sounlock_shared(so);
m_freem(top);
m_freem(control);
return (error);

View file

@ -1,4 +1,4 @@
/* $OpenBSD: nfs_syscalls.c,v 1.119 2023/08/03 09:49:09 mvs Exp $ */
/* $OpenBSD: nfs_syscalls.c,v 1.120 2024/01/12 08:47:46 ratchov Exp $ */
/* $NetBSD: nfs_syscalls.c,v 1.19 1996/02/18 11:53:52 fvdl Exp $ */
/*
@ -331,14 +331,15 @@ loop:
slp = nfsd->nfsd_slp;
if (ISSET(slp->ns_flag, SLP_VALID)) {
if (ISSET(slp->ns_flag, SLP_DISCONN)) {
nfsrv_zapsock(slp);
} else if (ISSET(slp->ns_flag, SLP_NEEDQ)) {
if ((slp->ns_flag & (SLP_DISCONN | SLP_NEEDQ)) ==
SLP_NEEDQ) {
CLR(slp->ns_flag, SLP_NEEDQ);
nfs_sndlock(&slp->ns_solock, NULL);
nfsrv_rcv(slp->ns_so, (caddr_t)slp, M_WAIT);
nfs_sndunlock(&slp->ns_solock);
}
if (ISSET(slp->ns_flag, SLP_DISCONN))
nfsrv_zapsock(slp);
error = nfsrv_dorec(slp, nfsd, &nd);
SET(nfsd->nfsd_flag, NFSD_REQINPROG);