lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-ID: <20141028152444.79bd9fe9@canb.auug.org.au>
Date:	Tue, 28 Oct 2014 15:24:44 +1100
From:	Stephen Rothwell <sfr@...b.auug.org.au>
To:	Andrew Morton <akpm@...ux-foundation.org>,
	Marek Szyprowski <m.szyprowski@...sung.com>,
	Kyungmin Park <kyungmin.park@...sung.com>
Cc:	linux-next@...r.kernel.org, linux-kernel@...r.kernel.org,
	Laurent Pinchart <laurent.pinchart+renesas@...asonboard.com>,
	Thierry Reding <treding@...dia.com>
Subject: linux-next: manual merge of the akpm-current tree with the
 dma-mapping tree

Hi Andrew,

Today's linux-next merge of the akpm-current tree got a conflict in
mm/cma.c between commit 16195ddd4ebc ("mm: cma: Ensure that
reservations never cross the low/high mem boundary") from the
dma-mapping tree and commit 2a70e5a78672 ("mm/cma: ake kmemleak ignore
CMA regions") from the akpm-current tree.

I fixed it up (I think - see below) and can carry the fix as necessary
(no action is required).

-- 
Cheers,
Stephen Rothwell                    sfr@...b.auug.org.au

diff --cc mm/cma.c
index fde706e1284f,471fcfef043b..000000000000
--- a/mm/cma.c
+++ b/mm/cma.c
@@@ -278,30 -274,20 +278,35 @@@ int __init cma_declare_contiguous(phys_
  			goto err;
  		}
  	} else {
 -		phys_addr_t addr = memblock_alloc_range(size, alignment, base,
 -							limit);
 +		phys_addr_t addr = 0;
 +
 +		/*
 +		 * All pages in the reserved area must come from the same zone.
 +		 * If the requested region crosses the low/high memory boundary,
 +		 * try allocating from high memory first and fall back to low
 +		 * memory in case of failure.
 +		 */
 +		if (base < highmem_start && limit > highmem_start) {
 +			addr = memblock_alloc_range(size, alignment,
 +						    highmem_start, limit);
 +			limit = highmem_start;
 +		}
 +
  		if (!addr) {
 -			ret = -ENOMEM;
 -			goto err;
 -		} else {
 -			/*
 -			 * kmemleak scans/reads tracked objects for pointers to
 -			 * other objects but this address isn't mapped and
 -			 * accessible
 -			 */
 -			kmemleak_ignore(phys_to_virt(addr));
 -			base = addr;
 +			addr = memblock_alloc_range(size, alignment, base,
 +						    limit);
 +			if (!addr) {
 +				ret = -ENOMEM;
 +				goto err;
 +			}
  		}
- 
++		/*
++		 * kmemleak scans/reads tracked objects for pointers to
++		 * other objects but this address isn't mapped and
++		 * accessible
++		 */
++		kmemleak_ignore(phys_to_virt(addr));
 +		base = addr;
  	}
  
  	ret = cma_init_reserved_mem(base, size, order_per_bit, res_cma);

Content of type "application/pgp-signature" skipped

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ