<feed xmlns='http://www.w3.org/2005/Atom'>
<title>linux-toradex.git/arch/x86/kernel/aperture_64.c, branch v3.10.26</title>
<subtitle>Linux kernel for Apalis and Colibri modules</subtitle>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/'/>
<entry>
<title>x86/mm/gart: Drop unnecessary check</title>
<updated>2013-04-16T08:54:40+00:00</updated>
<author>
<name>Wang YanQing</name>
<email>udknight@gmail.com</email>
</author>
<published>2013-04-16T01:37:34+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=26bfc540f6f2dcbd93d0b9ed8f37830419ded7e8'/>
<id>26bfc540f6f2dcbd93d0b9ed8f37830419ded7e8</id>
<content type='text'>
The memblock_find_in_range() return value addr is guaranteed
to be within "addr + aper_size" and not beyond GART_MAX_ADDR.

Signed-off-by: Wang YanQing &lt;udknight@gmail.com&gt;
Cc: yinghai@kernel.org
Link: http://lkml.kernel.org/r/20130416013734.GA14641@udknight
Signed-off-by: Ingo Molnar &lt;mingo@kernel.org&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The memblock_find_in_range() return value addr is guaranteed
to be within "addr + aper_size" and not beyond GART_MAX_ADDR.

Signed-off-by: Wang YanQing &lt;udknight@gmail.com&gt;
Cc: yinghai@kernel.org
Link: http://lkml.kernel.org/r/20130416013734.GA14641@udknight
Signed-off-by: Ingo Molnar &lt;mingo@kernel.org&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>x86/gart: Fix kmemleak warning</title>
<updated>2012-06-06T09:58:38+00:00</updated>
<author>
<name>Xiaotian Feng</name>
<email>xtfeng@gmail.com</email>
</author>
<published>2012-06-05T19:00:31+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=aff5a62d52ff03956ff6992b9fe4b561fd855804'/>
<id>aff5a62d52ff03956ff6992b9fe4b561fd855804</id>
<content type='text'>
aperture_64.c now is using memblock, the previous
kmemleak_ignore() for alloc_bootmem() should be removed then.

Otherwise, with kmemleak enabled, kernel will throw warnings
like:

[    0.000000] kmemleak: Trying to color unknown object at 0xffff8800c4000000 as Black
[    0.000000] Pid: 0, comm: swapper/0 Not tainted 3.5.0-rc1-next-20120605+ #130
[    0.000000] Call Trace:
[    0.000000]  [&lt;ffffffff811b27e6&gt;] paint_ptr+0x66/0xc0
[    0.000000]  [&lt;ffffffff816b90fb&gt;] kmemleak_ignore+0x2b/0x60
[    0.000000]  [&lt;ffffffff81ef7bc0&gt;] kmemleak_init+0x217/0x2c1
[    0.000000]  [&lt;ffffffff81ed2b97&gt;] start_kernel+0x32d/0x3eb
[    0.000000]  [&lt;ffffffff81ed25e4&gt;] ? repair_env_string+0x5a/0x5a
[    0.000000]  [&lt;ffffffff81ed2356&gt;] x86_64_start_reservations+0x131/0x135
[    0.000000]  [&lt;ffffffff81ed2120&gt;] ? early_idt_handlers+0x120/0x120
[    0.000000]  [&lt;ffffffff81ed245c&gt;] x86_64_start_kernel+0x102/0x111
[    0.000000] kmemleak: Early log backtrace:
[    0.000000]    [&lt;ffffffff816b911b&gt;] kmemleak_ignore+0x4b/0x60
[    0.000000]    [&lt;ffffffff81ee6a38&gt;] gart_iommu_hole_init+0x3e7/0x547
[    0.000000]    [&lt;ffffffff81edb20b&gt;] pci_iommu_alloc+0x44/0x6f
[    0.000000]    [&lt;ffffffff81ee81ad&gt;] mem_init+0x19/0xec
[    0.000000]    [&lt;ffffffff81ed2a54&gt;] start_kernel+0x1ea/0x3eb
[    0.000000]    [&lt;ffffffff81ed2356&gt;] x86_64_start_reservations+0x131/0x135
[    0.000000]    [&lt;ffffffff81ed245c&gt;] x86_64_start_kernel+0x102/0x111
[    0.000000]    [&lt;ffffffffffffffff&gt;] 0xffffffffffffffff

Signed-off-by: Xiaotian Feng &lt;dannyfeng@tencent.com&gt;
Cc: Xiaotian Feng &lt;xtfeng@gmail.com&gt;
Cc: Tejun Heo &lt;tj@kernel.org&gt;
Link: http://lkml.kernel.org/r/1338922831-2847-1-git-send-email-xtfeng@gmail.com
Signed-off-by: Ingo Molnar &lt;mingo@kernel.org&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
aperture_64.c now is using memblock, the previous
kmemleak_ignore() for alloc_bootmem() should be removed then.

Otherwise, with kmemleak enabled, kernel will throw warnings
like:

[    0.000000] kmemleak: Trying to color unknown object at 0xffff8800c4000000 as Black
[    0.000000] Pid: 0, comm: swapper/0 Not tainted 3.5.0-rc1-next-20120605+ #130
[    0.000000] Call Trace:
[    0.000000]  [&lt;ffffffff811b27e6&gt;] paint_ptr+0x66/0xc0
[    0.000000]  [&lt;ffffffff816b90fb&gt;] kmemleak_ignore+0x2b/0x60
[    0.000000]  [&lt;ffffffff81ef7bc0&gt;] kmemleak_init+0x217/0x2c1
[    0.000000]  [&lt;ffffffff81ed2b97&gt;] start_kernel+0x32d/0x3eb
[    0.000000]  [&lt;ffffffff81ed25e4&gt;] ? repair_env_string+0x5a/0x5a
[    0.000000]  [&lt;ffffffff81ed2356&gt;] x86_64_start_reservations+0x131/0x135
[    0.000000]  [&lt;ffffffff81ed2120&gt;] ? early_idt_handlers+0x120/0x120
[    0.000000]  [&lt;ffffffff81ed245c&gt;] x86_64_start_kernel+0x102/0x111
[    0.000000] kmemleak: Early log backtrace:
[    0.000000]    [&lt;ffffffff816b911b&gt;] kmemleak_ignore+0x4b/0x60
[    0.000000]    [&lt;ffffffff81ee6a38&gt;] gart_iommu_hole_init+0x3e7/0x547
[    0.000000]    [&lt;ffffffff81edb20b&gt;] pci_iommu_alloc+0x44/0x6f
[    0.000000]    [&lt;ffffffff81ee81ad&gt;] mem_init+0x19/0xec
[    0.000000]    [&lt;ffffffff81ed2a54&gt;] start_kernel+0x1ea/0x3eb
[    0.000000]    [&lt;ffffffff81ed2356&gt;] x86_64_start_reservations+0x131/0x135
[    0.000000]    [&lt;ffffffff81ed245c&gt;] x86_64_start_kernel+0x102/0x111
[    0.000000]    [&lt;ffffffffffffffff&gt;] 0xffffffffffffffff

Signed-off-by: Xiaotian Feng &lt;dannyfeng@tencent.com&gt;
Cc: Xiaotian Feng &lt;xtfeng@gmail.com&gt;
Cc: Tejun Heo &lt;tj@kernel.org&gt;
Link: http://lkml.kernel.org/r/1338922831-2847-1-git-send-email-xtfeng@gmail.com
Signed-off-by: Ingo Molnar &lt;mingo@kernel.org&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>memblock, x86: Replace memblock_x86_reserve/free_range() with generic ones</title>
<updated>2011-07-14T18:47:53+00:00</updated>
<author>
<name>Tejun Heo</name>
<email>tj@kernel.org</email>
</author>
<published>2011-07-12T09:16:06+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=24aa07882b672fff2da2f5c955759f0bd13d32d5'/>
<id>24aa07882b672fff2da2f5c955759f0bd13d32d5</id>
<content type='text'>
Other than sanity check and debug message, the x86 specific version of
memblock reserve/free functions are simple wrappers around the generic
versions - memblock_reserve/free().

This patch adds debug messages with caller identification to the
generic versions and replaces x86 specific ones and kills them.
arch/x86/include/asm/memblock.h and arch/x86/mm/memblock.c are empty
after this change and removed.

Signed-off-by: Tejun Heo &lt;tj@kernel.org&gt;
Link: http://lkml.kernel.org/r/1310462166-31469-14-git-send-email-tj@kernel.org
Cc: Yinghai Lu &lt;yinghai@kernel.org&gt;
Cc: Benjamin Herrenschmidt &lt;benh@kernel.crashing.org&gt;
Cc: Thomas Gleixner &lt;tglx@linutronix.de&gt;
Cc: Ingo Molnar &lt;mingo@redhat.com&gt;
Cc: "H. Peter Anvin" &lt;hpa@zytor.com&gt;
Signed-off-by: H. Peter Anvin &lt;hpa@linux.intel.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Other than sanity check and debug message, the x86 specific version of
memblock reserve/free functions are simple wrappers around the generic
versions - memblock_reserve/free().

This patch adds debug messages with caller identification to the
generic versions and replaces x86 specific ones and kills them.
arch/x86/include/asm/memblock.h and arch/x86/mm/memblock.c are empty
after this change and removed.

Signed-off-by: Tejun Heo &lt;tj@kernel.org&gt;
Link: http://lkml.kernel.org/r/1310462166-31469-14-git-send-email-tj@kernel.org
Cc: Yinghai Lu &lt;yinghai@kernel.org&gt;
Cc: Benjamin Herrenschmidt &lt;benh@kernel.crashing.org&gt;
Cc: Thomas Gleixner &lt;tglx@linutronix.de&gt;
Cc: Ingo Molnar &lt;mingo@redhat.com&gt;
Cc: "H. Peter Anvin" &lt;hpa@zytor.com&gt;
Signed-off-by: H. Peter Anvin &lt;hpa@linux.intel.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>memblock: Kill MEMBLOCK_ERROR</title>
<updated>2011-07-13T23:36:01+00:00</updated>
<author>
<name>Tejun Heo</name>
<email>tj@kernel.org</email>
</author>
<published>2011-07-12T07:58:09+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=1f5026a7e21e409c2b9dd54f6dfb9446511fb7c5'/>
<id>1f5026a7e21e409c2b9dd54f6dfb9446511fb7c5</id>
<content type='text'>
25818f0f28 (memblock: Make MEMBLOCK_ERROR be 0) thankfully made
MEMBLOCK_ERROR 0 and there already are codes which expect error return
to be 0.  There's no point in keeping MEMBLOCK_ERROR around.  End its
misery.

Signed-off-by: Tejun Heo &lt;tj@kernel.org&gt;
Link: http://lkml.kernel.org/r/1310457490-3356-6-git-send-email-tj@kernel.org
Cc: Yinghai Lu &lt;yinghai@kernel.org&gt;
Cc: Benjamin Herrenschmidt &lt;benh@kernel.crashing.org&gt;
Signed-off-by: H. Peter Anvin &lt;hpa@linux.intel.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
25818f0f28 (memblock: Make MEMBLOCK_ERROR be 0) thankfully made
MEMBLOCK_ERROR 0 and there already are codes which expect error return
to be 0.  There's no point in keeping MEMBLOCK_ERROR around.  End its
misery.

Signed-off-by: Tejun Heo &lt;tj@kernel.org&gt;
Link: http://lkml.kernel.org/r/1310457490-3356-6-git-send-email-tj@kernel.org
Cc: Yinghai Lu &lt;yinghai@kernel.org&gt;
Cc: Benjamin Herrenschmidt &lt;benh@kernel.crashing.org&gt;
Signed-off-by: H. Peter Anvin &lt;hpa@linux.intel.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>x86, gart: Don't enforce GART aperture lower-bound by alignment</title>
<updated>2011-04-18T17:31:38+00:00</updated>
<author>
<name>Joerg Roedel</name>
<email>joerg.roedel@amd.com</email>
</author>
<published>2011-04-18T13:45:43+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=c387aa3a1a910ce00b86f3a85082d24f144db256'/>
<id>c387aa3a1a910ce00b86f3a85082d24f144db256</id>
<content type='text'>
This patch changes the allocation of the GART aperture to
enforce only natural alignment instead of aligning it on
512MB. This big alignment was used to force the GART
aperture to be over 512MB. This is enforced by using 512MB
as the lower-bound address in the allocation range.

[ hpa: The actual number 512 MiB needs to be revisited, too. ]

Cc: Yinghai Lu &lt;yinghai@kernel.org&gt;
Signed-off-by: Joerg Roedel &lt;joerg.roedel@amd.com&gt;
Link: http://lkml.kernel.org/r/1303134346-5805-2-git-send-email-joerg.roedel@amd.com
Signed-off-by: H. Peter Anvin &lt;hpa@zytor.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This patch changes the allocation of the GART aperture to
enforce only natural alignment instead of aligning it on
512MB. This big alignment was used to force the GART
aperture to be over 512MB. This is enforced by using 512MB
as the lower-bound address in the allocation range.

[ hpa: The actual number 512 MiB needs to be revisited, too. ]

Cc: Yinghai Lu &lt;yinghai@kernel.org&gt;
Signed-off-by: Joerg Roedel &lt;joerg.roedel@amd.com&gt;
Link: http://lkml.kernel.org/r/1303134346-5805-2-git-send-email-joerg.roedel@amd.com
Signed-off-by: H. Peter Anvin &lt;hpa@zytor.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>x86, gart: Set DISTLBWALKPRB bit always</title>
<updated>2011-04-18T16:26:48+00:00</updated>
<author>
<name>Joerg Roedel</name>
<email>joerg.roedel@amd.com</email>
</author>
<published>2011-04-18T13:45:45+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=c34151a742d84ae65db2088ea30495063f697fbe'/>
<id>c34151a742d84ae65db2088ea30495063f697fbe</id>
<content type='text'>
The DISTLBWALKPRB bit must be set for the GART because the
gatt table is mapped UC. But the current code does not set
the bit at boot when the BIOS setup the aperture correctly.
Fix that by setting this bit when enabling the GART instead
of the other places.

Cc: &lt;stable@kernel.org&gt;
Cc: Borislav Petkov &lt;borislav.petkov@amd.com&gt;
Signed-off-by: Joerg Roedel &lt;joerg.roedel@amd.com&gt;
Link: http://lkml.kernel.org/r/1303134346-5805-4-git-send-email-joerg.roedel@amd.com
Signed-off-by: H. Peter Anvin &lt;hpa@zytor.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The DISTLBWALKPRB bit must be set for the GART because the
gatt table is mapped UC. But the current code does not set
the bit at boot when the BIOS setup the aperture correctly.
Fix that by setting this bit when enabling the GART instead
of the other places.

Cc: &lt;stable@kernel.org&gt;
Cc: Borislav Petkov &lt;borislav.petkov@amd.com&gt;
Signed-off-by: Joerg Roedel &lt;joerg.roedel@amd.com&gt;
Link: http://lkml.kernel.org/r/1303134346-5805-4-git-send-email-joerg.roedel@amd.com
Signed-off-by: H. Peter Anvin &lt;hpa@zytor.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>x86: Fix common misspellings</title>
<updated>2011-03-18T09:39:30+00:00</updated>
<author>
<name>Lucas De Marchi</name>
<email>lucas.de.marchi@gmail.com</email>
</author>
<published>2011-03-17T19:24:16+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=0d2eb44f631d9d0a826efa3156f157477fdaecf4'/>
<id>0d2eb44f631d9d0a826efa3156f157477fdaecf4</id>
<content type='text'>
They were generated by 'codespell' and then manually reviewed.

Signed-off-by: Lucas De Marchi &lt;lucas.demarchi@profusion.mobi&gt;
Cc: trivial@kernel.org
LKML-Reference: &lt;1300389856-1099-3-git-send-email-lucas.demarchi@profusion.mobi&gt;
Signed-off-by: Ingo Molnar &lt;mingo@elte.hu&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
They were generated by 'codespell' and then manually reviewed.

Signed-off-by: Lucas De Marchi &lt;lucas.demarchi@profusion.mobi&gt;
Cc: trivial@kernel.org
LKML-Reference: &lt;1300389856-1099-3-git-send-email-lucas.demarchi@profusion.mobi&gt;
Signed-off-by: Ingo Molnar &lt;mingo@elte.hu&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>Merge branch 'linus' into x86/bootmem</title>
<updated>2011-02-14T10:55:18+00:00</updated>
<author>
<name>Ingo Molnar</name>
<email>mingo@elte.hu</email>
</author>
<published>2011-02-14T10:55:18+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=d2137d5af4259f50c19addb8246a186c9ffac325'/>
<id>d2137d5af4259f50c19addb8246a186c9ffac325</id>
<content type='text'>
Conflicts:
	arch/x86/mm/numa_64.c

Merge reason: fix the conflict, update to latest -rc and pick up this
              dependent fix from Yinghai:

  e6d2e2b2b1e1: memblock: don't adjust size in memblock_find_base()

Signed-off-by: Ingo Molnar &lt;mingo@elte.hu&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Conflicts:
	arch/x86/mm/numa_64.c

Merge reason: fix the conflict, update to latest -rc and pick up this
              dependent fix from Yinghai:

  e6d2e2b2b1e1: memblock: don't adjust size in memblock_find_base()

Signed-off-by: Ingo Molnar &lt;mingo@elte.hu&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>x86: Use PCI method for enabling AMD extended config space before MSR method</title>
<updated>2011-01-11T11:43:41+00:00</updated>
<author>
<name>Jan Beulich</name>
<email>JBeulich@novell.com</email>
</author>
<published>2011-01-10T16:20:23+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=24d9b70b8c679264756a6980e668b96b3f964826'/>
<id>24d9b70b8c679264756a6980e668b96b3f964826</id>
<content type='text'>
While both methods should work equivalently well for the native
case, the Xen Dom0 case can't reliably work with the MSR one,
since there's no guarantee that the virtual CPUs it has
available fully cover all necessary physical ones.

As per the suggestion of Robert Richter the patch only adds the
PCI method, but leaves the MSR one as a fallback to cover new
systems the PCI IDs of which may not have got added to the code
base yet.

The only change in v2 is the breaking out of the new CPI
initialization method into a separate function, as requested by
Ingo.

Signed-off-by: Jan Beulich &lt;jbeulich@novell.com&gt;
Acked-by: Robert Richter &lt;robert.richter@amd.com&gt;
Cc: Andreas Herrmann3 &lt;Andreas.Herrmann3@amd.com&gt;
Cc: Joerg Roedel &lt;joerg.roedel@amd.com&gt;
Cc: Jeremy Fitzhardinge &lt;jeremy@goop.org&gt;
LKML-Reference: &lt;4D2B3FD7020000780002B67D@vpn.id2.novell.com&gt;
Signed-off-by: Ingo Molnar &lt;mingo@elte.hu&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
While both methods should work equivalently well for the native
case, the Xen Dom0 case can't reliably work with the MSR one,
since there's no guarantee that the virtual CPUs it has
available fully cover all necessary physical ones.

As per the suggestion of Robert Richter the patch only adds the
PCI method, but leaves the MSR one as a fallback to cover new
systems the PCI IDs of which may not have got added to the code
base yet.

The only change in v2 is the breaking out of the new CPI
initialization method into a separate function, as requested by
Ingo.

Signed-off-by: Jan Beulich &lt;jbeulich@novell.com&gt;
Acked-by: Robert Richter &lt;robert.richter@amd.com&gt;
Cc: Andreas Herrmann3 &lt;Andreas.Herrmann3@amd.com&gt;
Cc: Joerg Roedel &lt;joerg.roedel@amd.com&gt;
Cc: Jeremy Fitzhardinge &lt;jeremy@goop.org&gt;
LKML-Reference: &lt;4D2B3FD7020000780002B67D@vpn.id2.novell.com&gt;
Signed-off-by: Ingo Molnar &lt;mingo@elte.hu&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>x86-64, gart: Fix allocation with memblock</title>
<updated>2010-12-29T22:46:54+00:00</updated>
<author>
<name>Yinghai Lu</name>
<email>yinghai@kernel.org</email>
</author>
<published>2010-12-18T00:58:40+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=32e3f2b00c529477d26895c5428ed95bba537443'/>
<id>32e3f2b00c529477d26895c5428ed95bba537443</id>
<content type='text'>
When trying to change alloc_bootmem with memblock to go with real top-down
Found one old system:
[    0.000000] Node 0: aperture @ ac000000 size 64 MB
[    0.000000] Aperture pointing to e820 RAM. Ignoring.
[    0.000000] Your BIOS doesn't leave a aperture memory hole
[    0.000000] Please enable the IOMMU option in the BIOS setup
[    0.000000] This costs you 64 MB of RAM
[    0.000000]     memblock_x86_reserve_range: [0x2020000000-0x2023ffffff]       aperture64
[    0.000000] Cannot allocate aperture memory hole (ffff882020000000,65536K)
[    0.000000]        memblock_x86_free_range: [0x2020000000-0x2023ffffff]
[    0.000000] Kernel panic - not syncing: Not enough memory for aperture
[    0.000000] Pid: 0, comm: swapper Not tainted 2.6.37-rc5-tip-yh-06229-gb792dc2-dirty #331
[    0.000000] Call Trace:
[    0.000000]  [&lt;ffffffff81cf50fe&gt;] ? panic+0x91/0x1a3
[    0.000000]  [&lt;ffffffff827c66b2&gt;] ? gart_iommu_hole_init+0x3d7/0x4a3
[    0.000000]  [&lt;ffffffff81d026a9&gt;] ? _etext+0x0/0x3
[    0.000000]  [&lt;ffffffff827ba940&gt;] ? pci_iommu_alloc+0x47/0x71
[    0.000000]  [&lt;ffffffff827c820b&gt;] ? mem_init+0x19/0xec
[    0.000000]  [&lt;ffffffff827b3c40&gt;] ? start_kernel+0x20a/0x3e8
[    0.000000]  [&lt;ffffffff827b32cc&gt;] ? x86_64_start_reservations+0x9c/0xa0
[    0.000000]  [&lt;ffffffff827b33e4&gt;] ? x86_64_start_kernel+0x114/0x11b

it means __alloc_bootmem_nopanic() get too high for that aperture.

Use memblock_find_in_range() with limit directly.

Signed-off-by: Yinghai Lu &lt;yinghai@kernel.org&gt;
LKML-Reference: &lt;4D0C0740.90104@kernel.org&gt;
Signed-off-by: H. Peter Anvin &lt;hpa@linux.intel.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
When trying to change alloc_bootmem with memblock to go with real top-down
Found one old system:
[    0.000000] Node 0: aperture @ ac000000 size 64 MB
[    0.000000] Aperture pointing to e820 RAM. Ignoring.
[    0.000000] Your BIOS doesn't leave a aperture memory hole
[    0.000000] Please enable the IOMMU option in the BIOS setup
[    0.000000] This costs you 64 MB of RAM
[    0.000000]     memblock_x86_reserve_range: [0x2020000000-0x2023ffffff]       aperture64
[    0.000000] Cannot allocate aperture memory hole (ffff882020000000,65536K)
[    0.000000]        memblock_x86_free_range: [0x2020000000-0x2023ffffff]
[    0.000000] Kernel panic - not syncing: Not enough memory for aperture
[    0.000000] Pid: 0, comm: swapper Not tainted 2.6.37-rc5-tip-yh-06229-gb792dc2-dirty #331
[    0.000000] Call Trace:
[    0.000000]  [&lt;ffffffff81cf50fe&gt;] ? panic+0x91/0x1a3
[    0.000000]  [&lt;ffffffff827c66b2&gt;] ? gart_iommu_hole_init+0x3d7/0x4a3
[    0.000000]  [&lt;ffffffff81d026a9&gt;] ? _etext+0x0/0x3
[    0.000000]  [&lt;ffffffff827ba940&gt;] ? pci_iommu_alloc+0x47/0x71
[    0.000000]  [&lt;ffffffff827c820b&gt;] ? mem_init+0x19/0xec
[    0.000000]  [&lt;ffffffff827b3c40&gt;] ? start_kernel+0x20a/0x3e8
[    0.000000]  [&lt;ffffffff827b32cc&gt;] ? x86_64_start_reservations+0x9c/0xa0
[    0.000000]  [&lt;ffffffff827b33e4&gt;] ? x86_64_start_kernel+0x114/0x11b

it means __alloc_bootmem_nopanic() get too high for that aperture.

Use memblock_find_in_range() with limit directly.

Signed-off-by: Yinghai Lu &lt;yinghai@kernel.org&gt;
LKML-Reference: &lt;4D0C0740.90104@kernel.org&gt;
Signed-off-by: H. Peter Anvin &lt;hpa@linux.intel.com&gt;
</pre>
</div>
</content>
</entry>
</feed>
