Get rid of bus_{disable,enable}_intr(), it wasn't generic enough for
authorMatthew Dillon <dillon@dragonflybsd.org>
Tue, 24 May 2005 20:59:05 +0000 (20:59 +0000)
committerMatthew Dillon <dillon@dragonflybsd.org>
Tue, 24 May 2005 20:59:05 +0000 (20:59 +0000)
commite9cb6d995373cab0661e6e4f3f2cd2c8b6459c11
tree5288c4b4ee2de009adb2b1c57efe83b030e9b719
parent4c6f5f4c4766fe45fe5d858715df15e24c6a3ac7
Get rid of bus_{disable,enable}_intr(), it wasn't generic enough for
our needs.

Implement some generic atomic.h functions to aid in the implementation of
a low level mutex.

Implement a generic low level sleep-mutex serializer, kern/lwkt_serialize.c.
The serializer is designed to be a replacement for SPL calls but may also
be used for other very low level work (e.g. lockmgr interlocks).

Add a serializer argument to BUS_SETUP_INTR().  When non-NULL, the interrupt
handler will no longer be protected by an SPL so e.g. spl*() will no
longer protect against that device's interrupts.

The IF queueing and dequeueing mechanisms may no longer depend on outside
SPL state because network driver interrupt handlers are no longer required to
enter splnet().  Use critical sections for the moment.  The IFQ and
IFF_OACTIVE interactions are not yet MP safe.
213 files changed:
sys/bus/firewire/fwohci_pci.c
sys/bus/iicbus/i386/pcf.c
sys/bus/isa/i386/isa.c
sys/bus/isa/i386/isa_compat.c
sys/bus/isa/isa_common.h
sys/bus/pccard/pccard.c
sys/bus/pci/pci_compat.c
sys/bus/ppbus/ppbconf.c
sys/bus/usb/ehci_pci.c
sys/bus/usb/ohci_pci.c
sys/bus/usb/uhci_pci.c
sys/conf/files
sys/contrib/dev/oltr/if_oltr.c
sys/cpu/i386/include/atomic.h
sys/dev/acpica/Osd/OsdInterrupt.c
sys/dev/acpica5/Osd/OsdInterrupt.c
sys/dev/crypto/hifn/hifn7751.c
sys/dev/crypto/ubsec/ubsec.c
sys/dev/disk/advansys/adv_eisa.c
sys/dev/disk/advansys/adv_isa.c
sys/dev/disk/advansys/adv_pci.c
sys/dev/disk/advansys/adwcam.c
sys/dev/disk/aha/aha_isa.c
sys/dev/disk/aha/aha_mca.c
sys/dev/disk/ahb/ahb.c
sys/dev/disk/aic/aic_cbus.c
sys/dev/disk/aic/aic_isa.c
sys/dev/disk/aic/aic_pccard.c
sys/dev/disk/aic7xxx/aic79xx_osm.c
sys/dev/disk/aic7xxx/aic7xxx_osm.c
sys/dev/disk/amd/amd.c
sys/dev/disk/ata/ata-all.c
sys/dev/disk/ata/ata-pci.c
sys/dev/disk/buslogic/bt.c
sys/dev/disk/ct/ct_isa.c
sys/dev/disk/fd/fd.c
sys/dev/disk/isp/isp_pci.c
sys/dev/disk/mpt/mpt_pci.c
sys/dev/disk/ncr/ncr.c
sys/dev/disk/ncv/ncr53c500_pccard.c
sys/dev/disk/nsp/nsp_pccard.c
sys/dev/disk/stg/tmc18c30_isa.c
sys/dev/disk/stg/tmc18c30_pccard.c
sys/dev/disk/sym/sym_hipd.c
sys/dev/disk/trm/trm.c
sys/dev/drm/drm_dma.h
sys/dev/misc/atkbd/atkbd_isa.c
sys/dev/misc/lpt/lpt.c
sys/dev/misc/mse/mse.c
sys/dev/misc/musycc/musycc.c
sys/dev/misc/ppc/ppc.c
sys/dev/misc/ppi/ppi.c
sys/dev/misc/pps/pps.c
sys/dev/misc/psm/psm.c
sys/dev/misc/puc/puc.c
sys/dev/netif/an/if_an_isa.c
sys/dev/netif/an/if_an_pccard.c
sys/dev/netif/an/if_an_pci.c
sys/dev/netif/ar/if_ar.c
sys/dev/netif/awi/if_awi_pccard.c
sys/dev/netif/bfe/if_bfe.c
sys/dev/netif/bge/if_bge.c
sys/dev/netif/cm/if_cm_isa.c
sys/dev/netif/cs/if_cs_isa.c
sys/dev/netif/cs/if_cs_pccard.c
sys/dev/netif/dc/if_dc.c
sys/dev/netif/de/if_de.c
sys/dev/netif/ed/if_ed_cbus.c
sys/dev/netif/ed/if_ed_isa.c
sys/dev/netif/ed/if_ed_pccard.c
sys/dev/netif/ed/if_ed_pci.c
sys/dev/netif/em/if_em.c
sys/dev/netif/em/if_em.h
sys/dev/netif/ep/if_ep_eisa.c
sys/dev/netif/ep/if_ep_isa.c
sys/dev/netif/ep/if_ep_mca.c
sys/dev/netif/ep/if_ep_pccard.c
sys/dev/netif/ex/if_ex_isa.c
sys/dev/netif/ex/if_ex_pccard.c
sys/dev/netif/fe/if_fe.c
sys/dev/netif/fea/if_fea.c
sys/dev/netif/fxp/if_fxp.c
sys/dev/netif/gx/if_gx.c
sys/dev/netif/ipw/if_ipw.c
sys/dev/netif/iwi/if_iwi.c
sys/dev/netif/lge/if_lge.c
sys/dev/netif/lnc/if_lnc_isa.c
sys/dev/netif/lnc/if_lnc_pci.c
sys/dev/netif/mn/if_mn.c
sys/dev/netif/my/if_my.c
sys/dev/netif/ndis/if_ndis.c
sys/dev/netif/nge/if_nge.c
sys/dev/netif/nv/if_nv.c
sys/dev/netif/owi/if_owi.c
sys/dev/netif/pcn/if_pcn.c
sys/dev/netif/plip/if_plip.c
sys/dev/netif/ray/if_ray.c
sys/dev/netif/re/if_re.c
sys/dev/netif/rl/if_rl.c
sys/dev/netif/sbni/if_sbni_isa.c
sys/dev/netif/sbni/if_sbni_pci.c
sys/dev/netif/sbsh/if_sbsh.c
sys/dev/netif/sf/if_sf.c
sys/dev/netif/sis/if_sis.c
sys/dev/netif/sk/if_sk.c
sys/dev/netif/sn/if_sn.c
sys/dev/netif/snc/if_snc_cbus.c
sys/dev/netif/snc/if_snc_pccard.c
sys/dev/netif/sr/if_sr.c
sys/dev/netif/ste/if_ste.c
sys/dev/netif/ti/if_ti.c
sys/dev/netif/tl/if_tl.c
sys/dev/netif/tx/if_tx.c
sys/dev/netif/txp/if_txp.c
sys/dev/netif/vr/if_vr.c
sys/dev/netif/vx/if_vx_eisa.c
sys/dev/netif/vx/if_vx_pci.c
sys/dev/netif/wb/if_wb.c
sys/dev/netif/wi/if_wi.c
sys/dev/netif/xe/if_xe.c
sys/dev/netif/xl/if_xl.c
sys/dev/pccard/cardbus/cardbus.c
sys/dev/pccard/pccbb/pccbb.c
sys/dev/powermng/i386/intpm/intpm.c
sys/dev/powermng/i386/viapm/viapm.c
sys/dev/powermng/ichsmb/ichsmb_pci.c
sys/dev/raid/aac/aac_pci.c
sys/dev/raid/amr/amr_pci.c
sys/dev/raid/asr/asr.c
sys/dev/raid/ciss/ciss.c
sys/dev/raid/dpt/dpt_eisa.c
sys/dev/raid/dpt/dpt_pci.c
sys/dev/raid/ida/ida_eisa.c
sys/dev/raid/ida/ida_pci.c
sys/dev/raid/iir/iir_pci.c
sys/dev/raid/ips/ips_pci.c
sys/dev/raid/mlx/mlx.c
sys/dev/raid/mly/mly_pci.c
sys/dev/raid/pst/pst-iop.c
sys/dev/raid/twa/twa_freebsd.c
sys/dev/raid/twe/twe_freebsd.c
sys/dev/serial/digi/digi_pci.c
sys/dev/serial/si/si_eisa.c
sys/dev/serial/si/si_isa.c
sys/dev/serial/si/si_pci.c
sys/dev/serial/sio/sio.c
sys/dev/sound/isa/ad1816.c
sys/dev/sound/isa/ess.c
sys/dev/sound/isa/gusc.c
sys/dev/sound/isa/mss.c
sys/dev/sound/isa/sb16.c
sys/dev/sound/isa/sb8.c
sys/dev/sound/isa/sbc.c
sys/dev/sound/pci/als4000.c
sys/dev/sound/pci/aureal.c
sys/dev/sound/pci/cmi.c
sys/dev/sound/pci/cs4281.c
sys/dev/sound/pci/csa.c
sys/dev/sound/pci/csapcm.c
sys/dev/sound/pci/ds1.c
sys/dev/sound/pci/emu10k1.c
sys/dev/sound/pci/es137x.c
sys/dev/sound/pci/fm801.c
sys/dev/sound/pci/ich.c
sys/dev/sound/pci/maestro.c
sys/dev/sound/pci/maestro3.c
sys/dev/sound/pci/neomagic.c
sys/dev/sound/pci/solo.c
sys/dev/sound/pci/t4dwave.c
sys/dev/sound/pci/via8233.c
sys/dev/sound/pci/via82c686.c
sys/dev/sound/pci/vibes.c
sys/dev/sound/pcm/sound.c
sys/dev/sound/pcm/sound.h
sys/dev/video/bktr/bktr_os.c
sys/dev/video/tga/tga_pci.c
sys/i386/i386/nexus.c
sys/i386/include/atomic.h
sys/i386/isa/clock.c
sys/i386/isa/intr_machdep.c
sys/i386/isa/intr_machdep.h
sys/i386/isa/npx.c
sys/kern/bus_if.m
sys/kern/subr_bus.c
sys/net/altq/altq_cbq.c
sys/net/altq/altq_hfsc.c
sys/net/altq/altq_priq.c
sys/net/altq/altq_subr.c
sys/net/i4b/capi/iavc/iavc_isa.c
sys/net/i4b/capi/iavc/iavc_pci.c
sys/net/i4b/layer1/ifpi/i4b_ifpi_pci.c
sys/net/i4b/layer1/ifpi2/i4b_ifpi2_pci.c
sys/net/i4b/layer1/ifpnp/i4b_ifpnp_avm.c
sys/net/i4b/layer1/ihfc/i4b_ihfc_pnp.c
sys/net/i4b/layer1/isic/i4b_avm_a1.c
sys/net/i4b/layer1/isic/i4b_elsa_pcc16.c
sys/net/i4b/layer1/isic/i4b_elsa_qs1p.c
sys/net/i4b/layer1/isic/i4b_isic_pnp.c
sys/net/i4b/layer1/isic/i4b_itk_ix1.c
sys/net/i4b/layer1/isic/i4b_tel_s016.c
sys/net/i4b/layer1/isic/i4b_tel_s0163.c
sys/net/i4b/layer1/isic/i4b_tel_s08.c
sys/net/i4b/layer1/isic/i4b_usr_sti.c
sys/net/i4b/layer1/itjc/i4b_itjc_pci.c
sys/net/i4b/layer1/iwic/i4b_iwic_pci.c
sys/net/if.c
sys/platform/pc32/i386/nexus.c
sys/platform/pc32/isa/clock.c
sys/platform/pc32/isa/intr_machdep.c
sys/platform/pc32/isa/intr_machdep.h
sys/platform/pc32/isa/npx.c
sys/sys/bus.h
sys/sys/serialize.h [new file with mode: 0644]