svn commit: r291193 - in head/sys: arm/arm arm64/arm64 mips/mips powerpc/powerpc x86/x86
Svatopluk Kraus
skra at FreeBSD.org
Mon Nov 23 11:19:02 UTC 2015
Author: skra
Date: Mon Nov 23 11:19:00 2015
New Revision: 291193
URL: https://svnweb.freebsd.org/changeset/base/291193
Log:
Revert r291142.
The not quite consistent logic for bounce pages allocation is utilizited
by re(4) interface which can hang now.
Approved by: kib (mentor)
Modified:
head/sys/arm/arm/busdma_machdep-v6.c
head/sys/arm/arm/busdma_machdep.c
head/sys/arm64/arm64/busdma_bounce.c
head/sys/mips/mips/busdma_machdep.c
head/sys/powerpc/powerpc/busdma_machdep.c
head/sys/x86/x86/busdma_bounce.c
Modified: head/sys/arm/arm/busdma_machdep-v6.c
==============================================================================
--- head/sys/arm/arm/busdma_machdep-v6.c Mon Nov 23 11:01:10 2015 (r291192)
+++ head/sys/arm/arm/busdma_machdep-v6.c Mon Nov 23 11:19:00 2015 (r291193)
@@ -654,8 +654,8 @@ allocate_bz_and_pages(bus_dma_tag_t dmat
maxpages = MAX_BPAGES;
else
maxpages = 2 * bz->map_count;
- if ((dmat->flags & BUS_DMA_MIN_ALLOC_COMP) == 0 &&
- bz->map_count > 0 && bz->total_bpages < maxpages) {
+ if ((dmat->flags & BUS_DMA_MIN_ALLOC_COMP) == 0 ||
+ (bz->map_count > 0 && bz->total_bpages < maxpages)) {
int pages;
pages = atop(roundup2(dmat->maxsize, PAGE_SIZE)) + 1;
Modified: head/sys/arm/arm/busdma_machdep.c
==============================================================================
--- head/sys/arm/arm/busdma_machdep.c Mon Nov 23 11:01:10 2015 (r291192)
+++ head/sys/arm/arm/busdma_machdep.c Mon Nov 23 11:19:00 2015 (r291193)
@@ -569,8 +569,8 @@ allocate_bz_and_pages(bus_dma_tag_t dmat
* basis up to a sane limit.
*/
maxpages = MAX_BPAGES;
- if ((dmat->flags & BUS_DMA_MIN_ALLOC_COMP) == 0 &&
- bz->map_count > 0 && bz->total_bpages < maxpages) {
+ if ((dmat->flags & BUS_DMA_MIN_ALLOC_COMP) == 0
+ || (bz->map_count > 0 && bz->total_bpages < maxpages)) {
int pages;
pages = MAX(atop(dmat->maxsize), 1);
Modified: head/sys/arm64/arm64/busdma_bounce.c
==============================================================================
--- head/sys/arm64/arm64/busdma_bounce.c Mon Nov 23 11:01:10 2015 (r291192)
+++ head/sys/arm64/arm64/busdma_bounce.c Mon Nov 23 11:19:00 2015 (r291193)
@@ -304,8 +304,8 @@ bounce_bus_dmamap_create(bus_dma_tag_t d
else
maxpages = MIN(MAX_BPAGES, Maxmem -
atop(dmat->common.lowaddr));
- if ((dmat->bounce_flags & BUS_DMA_MIN_ALLOC_COMP) == 0 &&
- bz->map_count > 0 && bz->total_bpages < maxpages) {
+ if ((dmat->bounce_flags & BUS_DMA_MIN_ALLOC_COMP) == 0 ||
+ (bz->map_count > 0 && bz->total_bpages < maxpages)) {
pages = MAX(atop(dmat->common.maxsize), 1);
pages = MIN(maxpages - bz->total_bpages, pages);
pages = MAX(pages, 1);
Modified: head/sys/mips/mips/busdma_machdep.c
==============================================================================
--- head/sys/mips/mips/busdma_machdep.c Mon Nov 23 11:01:10 2015 (r291192)
+++ head/sys/mips/mips/busdma_machdep.c Mon Nov 23 11:19:00 2015 (r291193)
@@ -560,8 +560,8 @@ bus_dmamap_create(bus_dma_tag_t dmat, in
* basis up to a sane limit.
*/
maxpages = MAX_BPAGES;
- if ((dmat->flags & BUS_DMA_MIN_ALLOC_COMP) == 0 &&
- bz->map_count > 0 && bz->total_bpages < maxpages) {
+ if ((dmat->flags & BUS_DMA_MIN_ALLOC_COMP) == 0
+ || (bz->map_count > 0 && bz->total_bpages < maxpages)) {
int pages;
pages = MAX(atop(dmat->maxsize), 1);
Modified: head/sys/powerpc/powerpc/busdma_machdep.c
==============================================================================
--- head/sys/powerpc/powerpc/busdma_machdep.c Mon Nov 23 11:01:10 2015 (r291192)
+++ head/sys/powerpc/powerpc/busdma_machdep.c Mon Nov 23 11:19:00 2015 (r291193)
@@ -423,8 +423,8 @@ bus_dmamap_create(bus_dma_tag_t dmat, in
maxpages = MAX_BPAGES;
else
maxpages = MIN(MAX_BPAGES, Maxmem -atop(dmat->lowaddr));
- if ((dmat->flags & BUS_DMA_MIN_ALLOC_COMP) == 0 &&
- bz->map_count > 0 && bz->total_bpages < maxpages) {
+ if ((dmat->flags & BUS_DMA_MIN_ALLOC_COMP) == 0
+ || (bz->map_count > 0 && bz->total_bpages < maxpages)) {
int pages;
pages = MAX(atop(dmat->maxsize), 1);
Modified: head/sys/x86/x86/busdma_bounce.c
==============================================================================
--- head/sys/x86/x86/busdma_bounce.c Mon Nov 23 11:01:10 2015 (r291192)
+++ head/sys/x86/x86/busdma_bounce.c Mon Nov 23 11:19:00 2015 (r291193)
@@ -308,8 +308,8 @@ bounce_bus_dmamap_create(bus_dma_tag_t d
else
maxpages = MIN(MAX_BPAGES, Maxmem -
atop(dmat->common.lowaddr));
- if ((dmat->bounce_flags & BUS_DMA_MIN_ALLOC_COMP) == 0 &&
- bz->map_count > 0 && bz->total_bpages < maxpages) {
+ if ((dmat->bounce_flags & BUS_DMA_MIN_ALLOC_COMP) == 0 ||
+ (bz->map_count > 0 && bz->total_bpages < maxpages)) {
pages = MAX(atop(dmat->common.maxsize), 1);
pages = MIN(maxpages - bz->total_bpages, pages);
pages = MAX(pages, 1);
More information about the svn-src-head
mailing list