summaryrefslogtreecommitdiffstats
path: root/sys/netgraph
diff options
context:
space:
mode:
Diffstat (limited to 'sys/netgraph')
-rw-r--r--sys/netgraph/ng_ether.c3
-rw-r--r--sys/netgraph/ng_ksocket.c22
-rw-r--r--sys/netgraph/ng_mppc.c3
-rw-r--r--sys/netgraph/ng_parse.c12
-rw-r--r--sys/netgraph/ng_socket.c24
-rw-r--r--sys/netgraph/ng_tee.c6
-rw-r--r--sys/netgraph/ng_tty.c8
7 files changed, 50 insertions, 28 deletions
diff --git a/sys/netgraph/ng_ether.c b/sys/netgraph/ng_ether.c
index 18faa65..69e1b35 100644
--- a/sys/netgraph/ng_ether.c
+++ b/sys/netgraph/ng_ether.c
@@ -609,6 +609,9 @@ ng_ether_rcvdata(hook_p hook, item_p item)
if (hook == priv->upper)
return ng_ether_rcv_upper(node, m, meta);
panic("%s: weird hook", __FUNCTION__);
+#ifdef RESTARTABLE_PANICS /* so we don;t get an error msg in LINT */
+ return NULL;
+#endif
}
/*
diff --git a/sys/netgraph/ng_ksocket.c b/sys/netgraph/ng_ksocket.c
index c29aa7d..b47fe2c 100644
--- a/sys/netgraph/ng_ksocket.c
+++ b/sys/netgraph/ng_ksocket.c
@@ -548,7 +548,7 @@ ng_ksocket_constructor(node_p node)
static int
ng_ksocket_newhook(node_p node, hook_p hook, const char *name0)
{
- struct proc *p = curproc ? curproc : &proc0; /* XXX broken */
+ struct thread *td = curthread ? curthread : thread0; /* XXX broken */
const priv_p priv = NG_NODE_PRIVATE(node);
char *s1, *s2, name[NG_HOOKLEN+1];
int family, type, protocol, error;
@@ -586,7 +586,7 @@ ng_ksocket_newhook(node_p node, hook_p hook, const char *name0)
return (EINVAL);
/* Create the socket */
- error = socreate(family, &priv->so, type, protocol, p);
+ error = socreate(family, &priv->so, type, protocol, td);
if (error != 0)
return (error);
@@ -656,7 +656,7 @@ ng_ksocket_connect(hook_p hook)
static int
ng_ksocket_rcvmsg(node_p node, item_p item, hook_p lasthook)
{
- struct proc *p = curproc ? curproc : &proc0; /* XXX broken */
+ struct thread *td = curthread ? curthread : thread0; /* XXX broken */
const priv_p priv = NG_NODE_PRIVATE(node);
struct socket *const so = priv->so;
struct ng_mesg *resp = NULL;
@@ -681,7 +681,7 @@ ng_ksocket_rcvmsg(node_p node, item_p item, hook_p lasthook)
ERROUT(ENXIO);
/* Bind */
- error = sobind(so, sa, p);
+ error = sobind(so, sa, td);
break;
}
case NGM_KSOCKET_LISTEN:
@@ -693,7 +693,7 @@ ng_ksocket_rcvmsg(node_p node, item_p item, hook_p lasthook)
ERROUT(ENXIO);
/* Listen */
- error = solisten(so, *((int32_t *)msg->data), p);
+ error = solisten(so, *((int32_t *)msg->data), td);
break;
}
@@ -744,7 +744,7 @@ ng_ksocket_rcvmsg(node_p node, item_p item, hook_p lasthook)
/* Do connect */
if ((so->so_state & SS_ISCONNECTING) != 0)
ERROUT(EALREADY);
- if ((error = soconnect(so, sa, p)) != 0) {
+ if ((error = soconnect(so, sa, td)) != 0) {
so->so_state &= ~SS_ISCONNECTING;
ERROUT(error);
}
@@ -821,7 +821,7 @@ ng_ksocket_rcvmsg(node_p node, item_p item, hook_p lasthook)
sopt.sopt_dir = SOPT_GET;
sopt.sopt_level = ksopt->level;
sopt.sopt_name = ksopt->name;
- sopt.sopt_p = NULL;
+ sopt.sopt_td = NULL;
sopt.sopt_valsize = NG_KSOCKET_MAX_OPTLEN;
ksopt = (struct ng_ksocket_sockopt *)resp->data;
sopt.sopt_val = ksopt->value;
@@ -855,7 +855,7 @@ ng_ksocket_rcvmsg(node_p node, item_p item, hook_p lasthook)
sopt.sopt_name = ksopt->name;
sopt.sopt_val = ksopt->value;
sopt.sopt_valsize = valsize;
- sopt.sopt_p = NULL;
+ sopt.sopt_td = NULL;
error = sosetopt(so, &sopt);
break;
}
@@ -881,7 +881,7 @@ done:
static int
ng_ksocket_rcvdata(hook_p hook, item_p item)
{
- struct proc *p = curproc ? curproc : &proc0; /* XXX broken */
+ struct thread *td = curthread ? curthread : thread0; /* XXX broken */
const node_p node = NG_HOOK_NODE(hook);
const priv_p priv = NG_NODE_PRIVATE(node);
struct socket *const so = priv->so;
@@ -890,7 +890,7 @@ ng_ksocket_rcvdata(hook_p hook, item_p item)
NGI_GET_M(item, m);
NG_FREE_ITEM(item);
- error = (*so->so_proto->pr_usrreqs->pru_sosend)(so, 0, 0, m, 0, 0, p);
+ error = (*so->so_proto->pr_usrreqs->pru_sosend)(so, 0, 0, m, 0, 0, td);
return (error);
}
@@ -1053,7 +1053,7 @@ ng_ksocket_incoming2(node_p node, hook_p hook, void *arg1, int waitflag)
}
/* Read and forward available mbuf's */
- auio.uio_procp = NULL;
+ auio.uio_td = NULL;
auio.uio_resid = 1000000000;
flags = MSG_DONTWAIT;
do {
diff --git a/sys/netgraph/ng_mppc.c b/sys/netgraph/ng_mppc.c
index e0bd485..a1d6ce8 100644
--- a/sys/netgraph/ng_mppc.c
+++ b/sys/netgraph/ng_mppc.c
@@ -388,6 +388,9 @@ ng_mppc_rcvdata(hook_p hook, item_p item)
/* Oops */
panic("%s: unknown hook", __FUNCTION__);
+#ifdef RESTARTABLE_PANICS
+ return (EINVAL);
+#endif
}
/*
diff --git a/sys/netgraph/ng_parse.c b/sys/netgraph/ng_parse.c
index 5daf600..fa29c6b 100644
--- a/sys/netgraph/ng_parse.c
+++ b/sys/netgraph/ng_parse.c
@@ -378,6 +378,9 @@ ng_int8_unparse(const struct ng_parse_type *type,
break;
default:
panic("%s: unknown type", __FUNCTION__);
+#ifdef RESTARTABLE_PANICS
+ return(0);
+#endif
}
NG_PARSE_APPEND(fmt, fval);
*off += sizeof(int8_t);
@@ -472,6 +475,9 @@ ng_int16_unparse(const struct ng_parse_type *type,
break;
default:
panic("%s: unknown type", __FUNCTION__);
+#ifdef RESTARTABLE_PANICS
+ return(0);
+#endif
}
NG_PARSE_APPEND(fmt, fval);
*off += sizeof(int16_t);
@@ -566,6 +572,9 @@ ng_int32_unparse(const struct ng_parse_type *type,
break;
default:
panic("%s: unknown type", __FUNCTION__);
+#ifdef RESTARTABLE_PANICS
+ return(0);
+#endif
}
NG_PARSE_APPEND(fmt, fval);
*off += sizeof(int32_t);
@@ -659,6 +668,9 @@ ng_int64_unparse(const struct ng_parse_type *type,
break;
default:
panic("%s: unknown type", __FUNCTION__);
+#ifdef RESTARTABLE_PANICS
+ return(0);
+#endif
}
NG_PARSE_APPEND(fmt, fval);
*off += sizeof(int64_t);
diff --git a/sys/netgraph/ng_socket.c b/sys/netgraph/ng_socket.c
index 09b8ab7..a7e7e20 100644
--- a/sys/netgraph/ng_socket.c
+++ b/sys/netgraph/ng_socket.c
@@ -117,7 +117,7 @@ static int ng_attach_data(struct socket *so);
static int ng_attach_cntl(struct socket *so);
static int ng_attach_common(struct socket *so, int type);
static void ng_detach_common(struct ngpcb *pcbp, int type);
-/*static int ng_internalize(struct mbuf *m, struct proc *p); */
+/*static int ng_internalize(struct mbuf *m, struct thread *p); */
static int ng_connect_data(struct sockaddr *nam, struct ngpcb *pcbp);
static int ng_bind(struct sockaddr *nam, struct ngpcb *pcbp);
@@ -162,11 +162,11 @@ LIST_HEAD(, ngpcb) ngsocklist;
***************************************************************/
static int
-ngc_attach(struct socket *so, int proto, struct proc *p)
+ngc_attach(struct socket *so, int proto, struct thread *td)
{
struct ngpcb *const pcbp = sotongpcb(so);
- if (suser(p))
+ if (suser_td(td))
return (EPERM);
if (pcbp != NULL)
return (EISCONN);
@@ -186,7 +186,7 @@ ngc_detach(struct socket *so)
static int
ngc_send(struct socket *so, int flags, struct mbuf *m, struct sockaddr *addr,
- struct mbuf *control, struct proc *p)
+ struct mbuf *control, struct thread *td)
{
struct ngpcb *const pcbp = sotongpcb(so);
struct sockaddr_ng *const sap = (struct sockaddr_ng *) addr;
@@ -200,7 +200,7 @@ ngc_send(struct socket *so, int flags, struct mbuf *m, struct sockaddr *addr,
goto release;
}
#ifdef NOTYET
- if (control && (error = ng_internalize(control, p))) {
+ if (control && (error = ng_internalize(control, td))) {
if (pcbp->sockdata == NULL) {
error = ENOTCONN;
goto release;
@@ -287,7 +287,7 @@ release:
}
static int
-ngc_bind(struct socket *so, struct sockaddr *nam, struct proc *p)
+ngc_bind(struct socket *so, struct sockaddr *nam, struct thread *td)
{
struct ngpcb *const pcbp = sotongpcb(so);
@@ -297,7 +297,7 @@ ngc_bind(struct socket *so, struct sockaddr *nam, struct proc *p)
}
static int
-ngc_connect(struct socket *so, struct sockaddr *nam, struct proc *p)
+ngc_connect(struct socket *so, struct sockaddr *nam, struct thread *td)
{
printf(" program tried to connect control socket to remote node\n ");
/*
@@ -312,7 +312,7 @@ printf(" program tried to connect control socket to remote node\n ");
***************************************************************/
static int
-ngd_attach(struct socket *so, int proto, struct proc *p)
+ngd_attach(struct socket *so, int proto, struct thread *td)
{
struct ngpcb *const pcbp = sotongpcb(so);
@@ -334,7 +334,7 @@ ngd_detach(struct socket *so)
static int
ngd_send(struct socket *so, int flags, struct mbuf *m, struct sockaddr *addr,
- struct mbuf *control, struct proc *p)
+ struct mbuf *control, struct thread *td)
{
struct ngpcb *const pcbp = sotongpcb(so);
struct sockaddr_ng *const sap = (struct sockaddr_ng *) addr;
@@ -402,7 +402,7 @@ release:
}
static int
-ngd_connect(struct socket *so, struct sockaddr *nam, struct proc *p)
+ngd_connect(struct socket *so, struct sockaddr *nam, struct thread *td)
{
struct ngpcb *const pcbp = sotongpcb(so);
@@ -567,9 +567,9 @@ ng_detach_common(struct ngpcb *pcbp, int which)
* which after all is the purpose of this whole system.
*/
static int
-ng_internalize(struct mbuf *control, struct proc *p)
+ng_internalize(struct mbuf *control, struct thread *td)
{
- struct filedesc *fdp = p->p_fd;
+ struct filedesc *fdp = td->td_proc->p_fd;
struct cmsghdr *cm = mtod(control, struct cmsghdr *);
struct file *fp;
struct vnode *vn;
diff --git a/sys/netgraph/ng_tee.c b/sys/netgraph/ng_tee.c
index e95c41f..7b47617 100644
--- a/sys/netgraph/ng_tee.c
+++ b/sys/netgraph/ng_tee.c
@@ -309,8 +309,12 @@ ngt_rcvdata(hook_p hook, item_p item)
} else if (hinfo == &sc->left2right) {
dup = NULL;
dest = &sc->left;
- } else
+ } else {
panic("%s: no hook!", __FUNCTION__);
+#ifdef RESTARTABLE_PANICS
+ return(EINVAL);
+#endif
+ }
/* Update stats on incoming hook */
hinfo->stats.inOctets += m->m_pkthdr.len;
diff --git a/sys/netgraph/ng_tty.c b/sys/netgraph/ng_tty.c
index 690892f..cb3c770 100644
--- a/sys/netgraph/ng_tty.c
+++ b/sys/netgraph/ng_tty.c
@@ -120,7 +120,7 @@ static int ngt_close(struct tty *tp, int flag);
static int ngt_read(struct tty *tp, struct uio *uio, int flag);
static int ngt_write(struct tty *tp, struct uio *uio, int flag);
static int ngt_tioctl(struct tty *tp,
- u_long cmd, caddr_t data, int flag, struct proc *);
+ u_long cmd, caddr_t data, int flag, struct thread *);
static int ngt_input(int c, struct tty *tp);
static int ngt_start(struct tty *tp);
@@ -184,13 +184,13 @@ static int ngt_ldisc;
static int
ngt_open(dev_t dev, struct tty *tp)
{
- struct proc *const p = curproc; /* XXX */
+ struct thread *const td = curthread; /* XXX */
char name[sizeof(NG_TTY_NODE_TYPE) + 8];
sc_p sc;
int s, error;
/* Super-user only */
- if ((error = suser(p)))
+ if ((error = suser_td(td)))
return (error);
s = splnet();
(void) spltty(); /* XXX is this necessary? */
@@ -304,7 +304,7 @@ ngt_write(struct tty *tp, struct uio *uio, int flag)
* We implement the NGIOCGINFO ioctl() defined in ng_message.h.
*/
static int
-ngt_tioctl(struct tty *tp, u_long cmd, caddr_t data, int flag, struct proc *p)
+ngt_tioctl(struct tty *tp, u_long cmd, caddr_t data, int flag, struct thread *td)
{
const sc_p sc = (sc_p) tp->t_sc;
int s, error = 0;
OpenPOWER on IntegriCloud