Page MenuHomeFreeBSD

LinuxKPI: Add dma_length field to struct scatterlist
Needs ReviewPublic

Authored by wulf on Sun, Sep 13, 9:01 AM.

Details

Reviewers
bz
emaste
Group Reviewers
linuxkpi
Summary

On Linux dma_length field of struct scatterlist is present on the
arches where DMA mapping code is able to coalesce adjacent segments
of physical address space. It contains total length of coalesced
segments while length field contains non-coalesced length of each
segment. On other arches dma_length is aliased to length field with
sg_dma_len macro. As FreeBSD does not merge scatterlist segments it
do not have dma_length field. It is appered that at least i915kms
driver depends on existence of dma_length field.

Add the field and disable it by default. To enable add to Makefile

.if ${MACHINE_CPUARCH} == "i386" || ${MACHINE_CPUARCH} == "amd64" || \\

${MACHINE_CPUARCH} == "aarch64" || ${MACHINE_CPUARCH} == "powerpc"

CFLAGS+= -DCONFIG_NEED_SG_DMA_LENGTH
.endif

Reported by: Ryan Fahy
GHI: https://github.com/freebsd/drm-kmod/issues/315

Diff Detail

Repository
rG FreeBSD src repository
Lint
Lint Skipped
Unit
Tests Skipped
Build Status
Buildable 76820
Build 73703: arc lint + arc unit