git: kernel - Make filters able to be marked MPSAFE

Samuel Greear sjg at crater.dragonflybsd.org
Tue Aug 3 10:52:13 PDT 2010


commit 4c91dbc92f2298fa9a4c90d45e468a667fc2d75f
Author: Samuel J. Greear <sjg at thesjg.com>
Date:   Tue Aug 3 15:11:21 2010 +0000

    kernel - Make filters able to be marked MPSAFE
    
    * Change struct filterops f_isfd field to f_flags, taking FILTEROP_ISFD and/or
      FILTEROP_MPSAFE.
    
    * Convert all existing filter definitions to use new flags.
    
    * Create filter_attach/detach/event wrapper functions for calling through the
      struct filterops vector that grab the MPLOCK as necessary.
    
    * kern_event() uses kq->kq_count to determine whether or not to sleep,
      kqueue_scan() removes events from the TAILQ and can possibly sleep, releasing
      the global kq token, before updating kq->kq_count.

Summary of changes:
 sys/bus/cam/scsi/scsi_target.c           |    4 +-
 sys/bus/firewire/fwdev.c                 |    4 +-
 sys/bus/usb/usb.c                        |    2 +-
 sys/dev/drm/drm_fops.c                   |    2 +-
 sys/dev/misc/cmx/cmx.c                   |    4 +-
 sys/dev/misc/hotplug/hotplug.c           |    2 +-
 sys/dev/misc/kbd/kbd.c                   |    2 +-
 sys/dev/misc/mse/mse.c                   |    2 +-
 sys/dev/misc/psm/psm.c                   |    2 +-
 sys/dev/misc/snp/snp.c                   |    4 +-
 sys/dev/misc/spic/spic.c                 |    2 +-
 sys/dev/misc/tw/tw.c                     |    4 +-
 sys/dev/raid/aac/aac.c                   |    2 +-
 sys/dev/raid/vinum/vinum.c               |    4 +-
 sys/dev/sound/pcm/dsp.c                  |    4 +-
 sys/dev/usbmisc/ugen/ugen.c              |    4 +-
 sys/dev/usbmisc/uhid/uhid.c              |    4 +-
 sys/dev/usbmisc/ums/ums.c                |    2 +-
 sys/dev/usbmisc/uscanner/uscanner.c      |    2 +-
 sys/dev/video/bktr/bktr_os.c             |    2 +-
 sys/dev/video/cxm/cxm.c                  |    2 +-
 sys/kern/kern_event.c                    |   98 ++++++++++++++++++++++++------
 sys/kern/kern_memio.c                    |    4 +-
 sys/kern/kern_sig.c                      |    2 +-
 sys/kern/kern_udev.c                     |    2 +-
 sys/kern/subr_bus.c                      |    2 +-
 sys/kern/subr_log.c                      |    2 +-
 sys/kern/sys_mqueue.c                    |    4 +-
 sys/kern/sys_pipe.c                      |    4 +-
 sys/kern/tty.c                           |    4 +-
 sys/kern/tty_pty.c                       |    4 +-
 sys/kern/tty_tty.c                       |    4 +-
 sys/kern/uipc_socket.c                   |    8 +-
 sys/net/bpf.c                            |    2 +-
 sys/net/i4b/driver/i4b_rbch.c            |    4 +-
 sys/net/i4b/driver/i4b_tel.c             |    4 +-
 sys/net/i4b/layer4/i4b_i4bdrv.c          |    4 +-
 sys/net/tap/if_tap.c                     |    4 +-
 sys/net/tun/if_tun.c                     |    4 +-
 sys/platform/pc32/acpica5/acpi_machdep.c |    2 +-
 sys/platform/pc32/apm/apm.c              |    4 +-
 sys/platform/pc32/isa/asc.c              |    2 +-
 sys/platform/pc64/acpica5/acpi_machdep.c |    2 +-
 sys/platform/pc64/apm/apm.c              |    4 +-
 sys/platform/pc64/isa/asc.c              |    2 +-
 sys/sys/event.h                          |    8 ++-
 sys/vfs/fifofs/fifo_vnops.c              |    4 +-
 sys/vfs/gnu/ext2fs/ext2_vnops.c          |    6 +-
 sys/vfs/hammer/hammer_vnops.c            |    6 +-
 sys/vfs/ufs/ufs_vnops.c                  |    6 +-
 50 files changed, 164 insertions(+), 102 deletions(-)

http://gitweb.dragonflybsd.org/dragonfly.git/commitdiff/4c91dbc92f2298fa9a4c90d45e468a667fc2d75f


-- 
DragonFly BSD source repository





More information about the Commits mailing list