Page MenuHomeFreeBSD

powerpc/dma: Fix accounting and loading large segments
Needs ReviewPublic

Authored by jhibbits on Mon, Aug 3, 9:28 PM.
Tags
None
Referenced Files
F167115361: D58627.diff
Wed, Aug 19, 5:32 AM
Unknown Object (File)
Tue, Aug 18, 6:27 AM
Unknown Object (File)
Sun, Aug 16, 7:32 PM
Unknown Object (File)
Sun, Aug 16, 3:59 PM
Unknown Object (File)
Sat, Aug 15, 7:49 PM
Unknown Object (File)
Fri, Aug 14, 8:54 PM
Unknown Object (File)
Fri, Aug 14, 8:03 PM
Unknown Object (File)
Thu, Aug 13, 8:38 PM
Subscribers

Details

Reviewers
adrian
Group Reviewers
PowerPC
Summary

When the first page of a segment fits alignment, the second likely does
not, so the DMA infrastructure (must_bounce()) thinks it needs to bounce
the pages. Fix this by passing the previous end (address of byte
following the previous segment) as a third argument to must_bounce(), so
that the alignment check is done against the start of a new segment if
and only if necessary, instead of the current page.

Diff Detail

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

Event Timeline

booted on ppc64be pseries9 VM, works fine so far. I assume ppc64le pseries9 VM will work the same.

Will test the powermac G5 next. I assume you did p8/p9 testing already? :-)