busdma - Remove filter functionality
authorMichael Neumann <mneumann@ntecs.de>
Sat, 9 Dec 2023 01:46:00 +0000 (02:46 +0100)
committerMichael Neumann <mneumann@ntecs.de>
Sun, 10 Dec 2023 04:18:39 +0000 (05:18 +0100)
commit030b0c8c4cf27c560ccec70410c8e21934ae677d
treece90d123f412005f10e7e2ef0b8b3f2591c49df7
parent21323cb11972133f8943b59b020d8c005628f269
busdma - Remove filter functionality

- Remove filtfunc and filtarg arguments from bus_dma_tag_create() and
  fix all callers. All callers use NULL today for both filterfunc and
  filterarg with one exception: if_jme.

- Remove filter functionality internally and parent tag tracking.
  Without filter functions, we do not need to keep track of tag
  ancestry.  All inheritance of the parent tag's parameters occurs when
  creating the new child tag.

- rename run_filter() to addr_needs_bounce().

- FreeBSD keeps the filtfunc and filtarg arguments but requires them to
  be NULL.

- Drop filterfunc usage from if_jme.

  In case of "JMC260 chip full mask revision 2", which has a hardware bug
  when it comes to DMA transfers crossing the 4 GB bounday, the parent
  buffer tag already limits DMA memory to 32bit address space. As such it
  should be safe to drop the filterfunc. The filterfunc was checking if
  the lower 32bits of the physical address used for DMA are all 0. In case
  of a 32bit address space, the only address where all lower 32-bits are
  all zero is 0 itself and I am here assuming that the physical address 0
  is not used for DMA transfers!

Mainly obtained from: FreeBSD (commits 7cb028de900907f41228b93b3933ff56)
131 files changed:
share/man/man9/bus_dma.9
sys/bus/firewire/fwdma.c
sys/bus/firewire/fwohci.c
sys/bus/firewire/fwohci_pci.c
sys/bus/u4b/usb_busdma.c
sys/dev/crypto/hifn/hifn7751.c
sys/dev/crypto/safe/safe.c
sys/dev/crypto/ubsec/ubsec.c
sys/dev/disk/advansys/adv_pci.c
sys/dev/disk/advansys/advansys.c
sys/dev/disk/advansys/adw_pci.c
sys/dev/disk/advansys/adwcam.c
sys/dev/disk/ahci/ahci_attach.c
sys/dev/disk/amd/amd.c
sys/dev/disk/buslogic/bt.c
sys/dev/disk/buslogic/bt_pci.c
sys/dev/disk/isp/isp_freebsd.h
sys/dev/disk/mpt/mpt.h
sys/dev/disk/nata/ata-dma.c
sys/dev/disk/nvme/nvme_attach.c
sys/dev/disk/sbp/sbp.c
sys/dev/disk/sdhci/sdhci.c
sys/dev/disk/sili/sili_attach.c
sys/dev/disk/sym/sym_hipd.c
sys/dev/disk/trm/trm.c
sys/dev/misc/dcons/dcons_crom.c
sys/dev/netif/ae/if_ae.c
sys/dev/netif/age/if_age.c
sys/dev/netif/alc/if_alc.c
sys/dev/netif/ale/if_ale.c
sys/dev/netif/ath/ath/if_ath_ahb.c
sys/dev/netif/ath/ath/if_ath_descdma.c
sys/dev/netif/ath/ath/if_ath_pci.c
sys/dev/netif/bce/if_bce.c
sys/dev/netif/bfe/if_bfe.c
sys/dev/netif/bge/if_bge.c
sys/dev/netif/bnx/if_bnx.c
sys/dev/netif/bwn/bwn/if_bwn.c
sys/dev/netif/de/if_de.c
sys/dev/netif/em/if_em.c
sys/dev/netif/emx/if_emx.c
sys/dev/netif/et/if_et.c
sys/dev/netif/igb/if_igb.c
sys/dev/netif/iwi/if_iwi.c
sys/dev/netif/iwm/if_iwm.c
sys/dev/netif/iwn/if_iwn.c
sys/dev/netif/ix/if_ix.c
sys/dev/netif/jme/if_jme.c
sys/dev/netif/lnc/if_lnc_pci.c
sys/dev/netif/msk/if_msk.c
sys/dev/netif/mxge/if_mxge.c
sys/dev/netif/nfe/if_nfe.c
sys/dev/netif/oce/oce_queue.c
sys/dev/netif/oce/oce_util.c
sys/dev/netif/ral/rt2560.c
sys/dev/netif/ral/rt2661.c
sys/dev/netif/ral/rt2860.c
sys/dev/netif/re/if_re.c
sys/dev/netif/re/re.c
sys/dev/netif/rl/if_rl.c
sys/dev/netif/sis/if_sis.c
sys/dev/netif/sk/if_sk.c
sys/dev/netif/stge/if_stge.c
sys/dev/netif/vge/if_vge.c
sys/dev/netif/wpi/if_wpi.c
sys/dev/netif/xl/if_xl.c
sys/dev/raid/aac/aac.c
sys/dev/raid/aac/aac_pci.c
sys/dev/raid/amr/amr_pci.c
sys/dev/raid/arcmsr/arcmsr.c
sys/dev/raid/asr/asr.c
sys/dev/raid/ciss/ciss.c
sys/dev/raid/dpt/dpt_pci.c
sys/dev/raid/dpt/dpt_scsi.c
sys/dev/raid/hpt27xx/hpt27xx_osm_bsd.c
sys/dev/raid/hptiop/hptiop.c
sys/dev/raid/hptmv/entry.c
sys/dev/raid/hptrr/hptrr_osm_bsd.c
sys/dev/raid/ida/ida.c
sys/dev/raid/ida/ida_pci.c
sys/dev/raid/iir/iir.c
sys/dev/raid/iir/iir_pci.c
sys/dev/raid/ips/ips.c
sys/dev/raid/ips/ips_commands.c
sys/dev/raid/ips/ips_ioctl.c
sys/dev/raid/ips/ips_pci.c
sys/dev/raid/mfi/mfi.c
sys/dev/raid/mfi/mfi_pci.c
sys/dev/raid/mlx/mlx.c
sys/dev/raid/mlx/mlx_pci.c
sys/dev/raid/mly/mly.c
sys/dev/raid/mpr/mpr.c
sys/dev/raid/mpr/mpr_pci.c
sys/dev/raid/mpr/mpr_user.c
sys/dev/raid/mps/mps.c
sys/dev/raid/mps/mps_pci.c
sys/dev/raid/mps/mps_user.c
sys/dev/raid/mrsas/mrsas.c
sys/dev/raid/mrsas/mrsas_ioctl.c
sys/dev/raid/twa/tw_osl_freebsd.c
sys/dev/raid/twe/twe_freebsd.c
sys/dev/raid/tws/tws.c
sys/dev/sound/pci/als4000.c
sys/dev/sound/pci/atiixp.c
sys/dev/sound/pci/aureal.c
sys/dev/sound/pci/cmi.c
sys/dev/sound/pci/cs4281.c
sys/dev/sound/pci/emu10k1.c
sys/dev/sound/pci/emu10kx.c
sys/dev/sound/pci/envy24.c
sys/dev/sound/pci/envy24ht.c
sys/dev/sound/pci/es137x.c
sys/dev/sound/pci/fm801.c
sys/dev/sound/pci/hda/hdac.c
sys/dev/sound/pci/hdspe.c
sys/dev/sound/pci/ich.c
sys/dev/sound/pci/maestro.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/video/cxm/cxm.c
sys/dev/virtual/amazon/ena/ena.c
sys/dev/virtual/vmware/pvscsi/pvscsi.c
sys/dev/virtual/vmware/vmxnet3/if_vmx.c
sys/kern/subr_busdma.c
sys/netproto/802_11/README.DRAGONFLY
sys/platform/pc64/x86_64/busdma_machdep.c
sys/platform/vkernel64/platform/busdma_machdep.c
sys/sys/bus_dma.h