[BACK]Return to kern_event.c CVS log [TXT][DIR] Up to [cvs.NetBSD.org] / src / sys / kern

Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.

Diff for /src/sys/kern/kern_event.c between version 1.82.2.4 and 1.82.2.5

version 1.82.2.4, 2016/04/22 15:44:16 version 1.82.2.5, 2016/10/05 20:56:02
Line 141  extern const struct filterops sig_filtop
Line 141  extern const struct filterops sig_filtop
  * These should be listed in the numeric order of the EVFILT_* defines.   * These should be listed in the numeric order of the EVFILT_* defines.
  * If filtops is NULL, the filter isn't implemented in NetBSD.   * If filtops is NULL, the filter isn't implemented in NetBSD.
  * End of list is when name is NULL.   * End of list is when name is NULL.
  *   *
  * Note that 'refcnt' is meaningless for built-in filters.   * Note that 'refcnt' is meaningless for built-in filters.
  */   */
 struct kfilter {  struct kfilter {
Line 935  kqueue_register(struct kqueue *kq, struc
Line 935  kqueue_register(struct kqueue *kq, struc
         /* search if knote already exists */          /* search if knote already exists */
         if (kfilter->filtops->f_isfd) {          if (kfilter->filtops->f_isfd) {
                 /* monitoring a file descriptor */                  /* monitoring a file descriptor */
                 fd = kev->ident;                  /* validate descriptor */
                 if ((fp = fd_getfile(fd)) == NULL) {                  if (kev->ident > INT_MAX
                       || (fp = fd_getfile(fd = kev->ident)) == NULL) {
                         rw_exit(&kqueue_filter_lock);                          rw_exit(&kqueue_filter_lock);
                         kmem_free(newkn, sizeof(*newkn));                          kmem_free(newkn, sizeof(*newkn));
                         return EBADF;                          return EBADF;
Line 1179  kqueue_scan(file_t *fp, size_t maxevents
Line 1180  kqueue_scan(file_t *fp, size_t maxevents
         } else {          } else {
                 /* no timeout, wait forever */                  /* no timeout, wait forever */
                 timeout = 0;                  timeout = 0;
         }          }
   
         memset(&morker, 0, sizeof(morker));          memset(&morker, 0, sizeof(morker));
         marker = &morker;          marker = &morker;
Line 1598  again:
Line 1599  again:
         mutex_spin_exit(&kq->kq_lock);          mutex_spin_exit(&kq->kq_lock);
   
         mutex_exit(&fdp->fd_lock);          mutex_exit(&fdp->fd_lock);
         if (kn->kn_fop->f_isfd)          if (kn->kn_fop->f_isfd)
                 fd_putfile(kn->kn_id);                  fd_putfile(kn->kn_id);
         atomic_dec_uint(&kn->kn_kfilter->refcnt);          atomic_dec_uint(&kn->kn_kfilter->refcnt);
         kmem_free(kn, sizeof(*kn));          kmem_free(kn, sizeof(*kn));

Legend:
Removed from v.1.82.2.4  
changed lines
  Added in v.1.82.2.5

CVSweb <webmaster@jp.NetBSD.org>