diff options
Diffstat (limited to 'sys/netgraph')
-rw-r--r-- | sys/netgraph/ng_ether.c | 3 | ||||
-rw-r--r-- | sys/netgraph/ng_ksocket.c | 22 | ||||
-rw-r--r-- | sys/netgraph/ng_mppc.c | 3 | ||||
-rw-r--r-- | sys/netgraph/ng_parse.c | 12 | ||||
-rw-r--r-- | sys/netgraph/ng_socket.c | 24 | ||||
-rw-r--r-- | sys/netgraph/ng_tee.c | 6 | ||||
-rw-r--r-- | sys/netgraph/ng_tty.c | 8 |
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; |