Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. =================================================================== RCS file: /ftp/cvs/cvsroot/src/sys/kern/kern_event.c,v rcsdiff: /ftp/cvs/cvsroot/src/sys/kern/kern_event.c,v: warning: Unknown phrases like `commitid ...;' are present. retrieving revision 1.75.6.1 retrieving revision 1.76 diff -u -p -r1.75.6.1 -r1.76 --- src/sys/kern/kern_event.c 2012/11/24 21:40:07 1.75.6.1 +++ src/sys/kern/kern_event.c 2012/06/02 15:54:02 1.76 @@ -1,4 +1,4 @@ -/* $NetBSD: kern_event.c,v 1.75.6.1 2012/11/24 21:40:07 jdc Exp $ */ +/* $NetBSD: kern_event.c,v 1.76 2012/06/02 15:54:02 martin Exp $ */ /*- * Copyright (c) 2008, 2009 The NetBSD Foundation, Inc. @@ -58,7 +58,7 @@ */ #include -__KERNEL_RCSID(0, "$NetBSD: kern_event.c,v 1.75.6.1 2012/11/24 21:40:07 jdc Exp $"); +__KERNEL_RCSID(0, "$NetBSD: kern_event.c,v 1.76 2012/06/02 15:54:02 martin Exp $"); #include #include @@ -961,7 +961,6 @@ kqueue_register(struct kqueue *kq, struc kn = newkn; newkn = NULL; kn->kn_obj = fp; - kn->kn_id = kev->ident; kn->kn_kq = kq; kn->kn_fop = kfilter->filtops; kn->kn_kfilter = kfilter; @@ -1003,10 +1002,6 @@ kqueue_register(struct kqueue *kq, struc error = (*kfilter->filtops->f_attach)(kn); KERNEL_UNLOCK_ONE(NULL); /* XXXSMP */ if (error != 0) { -#ifdef DIAGNOSTIC - printf("%s: event not supported for file type" - " %d\n", __func__, fp ? fp->f_type : -1); -#endif /* knote_detach() drops fdp->fd_lock */ knote_detach(kn, fdp, false); goto done; @@ -1022,13 +1017,6 @@ kqueue_register(struct kqueue *kq, struc kn->kn_sdata = kev->data; kn->kn_kevent.udata = kev->udata; } - /* - * We can get here if we are trying to attach - * an event to a file descriptor that does not - * support events, and the attach routine is - * broken and does not return an error. - */ - KASSERT(kn->kn_fop->f_event != NULL); KERNEL_LOCK(1, NULL); /* XXXSMP */ rv = (*kn->kn_fop->f_event)(kn, 0); KERNEL_UNLOCK_ONE(NULL); /* XXXSMP */ @@ -1433,8 +1421,6 @@ kqueue_close(file_t *fp) int i; kq = fp->f_data; - fp->f_data = NULL; - fp->f_type = 0; fdp = curlwp->l_fd; mutex_enter(&fdp->fd_lock); @@ -1455,6 +1441,7 @@ kqueue_close(file_t *fp) cv_destroy(&kq->kq_cv); seldestroy(&kq->kq_sel); kmem_free(kq, sizeof(*kq)); + fp->f_data = NULL; return (0); } @@ -1467,7 +1454,6 @@ static int kqueue_kqfilter(file_t *fp, struct knote *kn) { struct kqueue *kq; - filedesc_t *fdp; kq = ((file_t *)kn->kn_obj)->f_data; @@ -1477,7 +1463,6 @@ kqueue_kqfilter(file_t *fp, struct knote return 1; kn->kn_fop = &kqread_filtops; - fdp = curlwp->l_fd; mutex_enter(&kq->kq_lock); SLIST_INSERT_HEAD(&kq->kq_sel.sel_klist, kn, kn_selnext); mutex_exit(&kq->kq_lock);