<feed xmlns='http://www.w3.org/2005/Atom'>
<title>linux-toradex.git/kernel/resource.c, branch v2.6.34-rc3</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>resources: add interfaces that return conflict information</title>
<updated>2010-03-23T20:33:50+00:00</updated>
<author>
<name>Bjorn Helgaas</name>
<email>bjorn.helgaas@hp.com</email>
</author>
<published>2010-03-12T00:01:09+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=66f1207bce10fd80ee8ce99b67d617644612f05e'/>
<id>66f1207bce10fd80ee8ce99b67d617644612f05e</id>
<content type='text'>
request_resource() and insert_resource() only return success or failure,
which no information about what existing resource conflicted with the
proposed new reservation.  This patch adds request_resource_conflict()
and insert_resource_conflict(), which return the conflicting resource.

Callers may use this for better error messages or to adjust the new
resource and retry the request.

Signed-off-by: Bjorn Helgaas &lt;bjorn.helgaas@hp.com&gt;
Signed-off-by: Jesse Barnes &lt;jbarnes@virtuousgeek.org&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
request_resource() and insert_resource() only return success or failure,
which no information about what existing resource conflicted with the
proposed new reservation.  This patch adds request_resource_conflict()
and insert_resource_conflict(), which return the conflicting resource.

Callers may use this for better error messages or to adjust the new
resource and retry the request.

Signed-off-by: Bjorn Helgaas &lt;bjorn.helgaas@hp.com&gt;
Signed-off-by: Jesse Barnes &lt;jbarnes@virtuousgeek.org&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>Merge branch 'x86-mm-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip</title>
<updated>2010-03-03T17:11:02+00:00</updated>
<author>
<name>Linus Torvalds</name>
<email>torvalds@linux-foundation.org</email>
</author>
<published>2010-03-03T17:11:02+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=2a32f2db132264c356aea30a8270d3e68d96c509'/>
<id>2a32f2db132264c356aea30a8270d3e68d96c509</id>
<content type='text'>
* 'x86-mm-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:
  resource: Fix broken indentation
  resource: Fix generic page_is_ram() for partial RAM pages
  x86, paravirt: Remove kmap_atomic_pte paravirt op.
  x86, vmi: Disable highmem PTE allocation even when CONFIG_HIGHPTE=y
  x86, xen: Disable highmem PTE allocation even when CONFIG_HIGHPTE=y
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* 'x86-mm-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:
  resource: Fix broken indentation
  resource: Fix generic page_is_ram() for partial RAM pages
  x86, paravirt: Remove kmap_atomic_pte paravirt op.
  x86, vmi: Disable highmem PTE allocation even when CONFIG_HIGHPTE=y
  x86, xen: Disable highmem PTE allocation even when CONFIG_HIGHPTE=y
</pre>
</div>
</content>
</entry>
<entry>
<title>resource: Fix broken indentation</title>
<updated>2010-03-02T19:21:09+00:00</updated>
<author>
<name>H. Peter Anvin</name>
<email>hpa@zytor.com</email>
</author>
<published>2010-03-02T19:21:09+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=f41496607e03ab99f263b8e26689ad0fc853007f'/>
<id>f41496607e03ab99f263b8e26689ad0fc853007f</id>
<content type='text'>
Fix broken indentation in patch
37b99dd5372cff42f83210c280f314f10f99138e.

Reported-by: Linus Torvalds &lt;torvalds@linux-foundation.org&gt;
Cc: Wu Fengguang &lt;fengguang.wu@intel.com&gt;
LKML-Reference: &lt;20100301135551.GA9998@localhost&gt;
Signed-off-by: H. Peter Anvin &lt;hpa@zytor.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Fix broken indentation in patch
37b99dd5372cff42f83210c280f314f10f99138e.

Reported-by: Linus Torvalds &lt;torvalds@linux-foundation.org&gt;
Cc: Wu Fengguang &lt;fengguang.wu@intel.com&gt;
LKML-Reference: &lt;20100301135551.GA9998@localhost&gt;
Signed-off-by: H. Peter Anvin &lt;hpa@zytor.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>resource: Fix generic page_is_ram() for partial RAM pages</title>
<updated>2010-03-01T18:18:32+00:00</updated>
<author>
<name>Wu Fengguang</name>
<email>fengguang.wu@intel.com</email>
</author>
<published>2010-03-01T13:55:51+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=37b99dd5372cff42f83210c280f314f10f99138e'/>
<id>37b99dd5372cff42f83210c280f314f10f99138e</id>
<content type='text'>
The System RAM walk shall skip partial RAM pages and avoid calling
func() on them. So that page_is_ram() return 0 for a partial RAM page.

In particular, it shall not call func() with len=0.
This fixes a boot time bug reported by Sachin and root caused by Thomas:

&gt; &gt;&gt;&gt; WARNING: at arch/x86/mm/ioremap.c:111 __ioremap_caller+0x169/0x2f1()
&gt; &gt;&gt;&gt; Hardware name: BladeCenter LS21 -[79716AA]-
&gt; &gt;&gt;&gt; Modules linked in:
&gt; &gt;&gt;&gt; Pid: 0, comm: swapper Not tainted 2.6.33-git6-autotest #1
&gt; &gt;&gt;&gt; Call Trace:
&gt; &gt;&gt;&gt; [&lt;ffffffff81047cff&gt;] ? __ioremap_caller+0x169/0x2f1
&gt; &gt;&gt;&gt; [&lt;ffffffff81063b7d&gt;] warn_slowpath_common+0x77/0xa4
&gt; &gt;&gt;&gt; [&lt;ffffffff81063bb9&gt;] warn_slowpath_null+0xf/0x11
&gt; &gt;&gt;&gt; [&lt;ffffffff81047cff&gt;] __ioremap_caller+0x169/0x2f1
&gt; &gt;&gt;&gt; [&lt;ffffffff813747a3&gt;] ? acpi_os_map_memory+0x12/0x1b
&gt; &gt;&gt;&gt; [&lt;ffffffff81047f10&gt;] ioremap_nocache+0x12/0x14
&gt; &gt;&gt;&gt; [&lt;ffffffff813747a3&gt;] acpi_os_map_memory+0x12/0x1b
&gt; &gt;&gt;&gt; [&lt;ffffffff81282fa0&gt;] acpi_tb_verify_table+0x29/0x5b
&gt; &gt;&gt;&gt; [&lt;ffffffff812827f0&gt;] acpi_load_tables+0x39/0x15a
&gt; &gt;&gt;&gt; [&lt;ffffffff8191c8f8&gt;] acpi_early_init+0x60/0xf5
&gt; &gt;&gt;&gt; [&lt;ffffffff818f2cad&gt;] start_kernel+0x397/0x3a7
&gt; &gt;&gt;&gt; [&lt;ffffffff818f2295&gt;] x86_64_start_reservations+0xa5/0xa9
&gt; &gt;&gt;&gt; [&lt;ffffffff818f237a&gt;] x86_64_start_kernel+0xe1/0xe8
&gt; &gt;&gt;&gt; ---[ end trace 4eaa2a86a8e2da22 ]---
&gt; &gt;&gt;&gt; ioremap reserve_memtype failed -22

The return code is -EINVAL, so it failed in the is_ram check, which is
not too surprising

&gt; BIOS-provided physical RAM map:
&gt;  BIOS-e820: 0000000000000000 - 000000000009c000 (usable)
&gt;  BIOS-e820: 000000000009c000 - 00000000000a0000 (reserved)
&gt;  BIOS-e820: 00000000000e0000 - 0000000000100000 (reserved)
&gt;  BIOS-e820: 0000000000100000 - 00000000cffa3900 (usable)
&gt;  BIOS-e820: 00000000cffa3900 - 00000000cffa7400 (ACPI data)

The ACPI data is not starting on a page boundary and neither does the
usable RAM area end on a page boundary. Very useful !

&gt; ACPI: DSDT 00000000cffa3900 036CE (v01 IBM    SERLEWIS 00001000 INTL 20060912)

ACPI is trying to map DSDT at cffa3900, which results in a check
vs. cffa3000 which is the relevant page boundary. The generic is_ram
check correctly identifies that as RAM because it's in the usable
resource area. The old e820 based is_ram check does not take
overlapping resource areas into account. That's why it works.

CC: Sachin Sant &lt;sachinp@in.ibm.com&gt;
CC: Thomas Gleixner &lt;tglx@linutronix.de&gt;
CC: KAMEZAWA Hiroyuki &lt;kamezawa.hiroyu@jp.fujitsu.com&gt;
Signed-off-by: Wu Fengguang &lt;fengguang.wu@intel.com&gt;
LKML-Reference: &lt;20100301135551.GA9998@localhost&gt;
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 System RAM walk shall skip partial RAM pages and avoid calling
func() on them. So that page_is_ram() return 0 for a partial RAM page.

In particular, it shall not call func() with len=0.
This fixes a boot time bug reported by Sachin and root caused by Thomas:

&gt; &gt;&gt;&gt; WARNING: at arch/x86/mm/ioremap.c:111 __ioremap_caller+0x169/0x2f1()
&gt; &gt;&gt;&gt; Hardware name: BladeCenter LS21 -[79716AA]-
&gt; &gt;&gt;&gt; Modules linked in:
&gt; &gt;&gt;&gt; Pid: 0, comm: swapper Not tainted 2.6.33-git6-autotest #1
&gt; &gt;&gt;&gt; Call Trace:
&gt; &gt;&gt;&gt; [&lt;ffffffff81047cff&gt;] ? __ioremap_caller+0x169/0x2f1
&gt; &gt;&gt;&gt; [&lt;ffffffff81063b7d&gt;] warn_slowpath_common+0x77/0xa4
&gt; &gt;&gt;&gt; [&lt;ffffffff81063bb9&gt;] warn_slowpath_null+0xf/0x11
&gt; &gt;&gt;&gt; [&lt;ffffffff81047cff&gt;] __ioremap_caller+0x169/0x2f1
&gt; &gt;&gt;&gt; [&lt;ffffffff813747a3&gt;] ? acpi_os_map_memory+0x12/0x1b
&gt; &gt;&gt;&gt; [&lt;ffffffff81047f10&gt;] ioremap_nocache+0x12/0x14
&gt; &gt;&gt;&gt; [&lt;ffffffff813747a3&gt;] acpi_os_map_memory+0x12/0x1b
&gt; &gt;&gt;&gt; [&lt;ffffffff81282fa0&gt;] acpi_tb_verify_table+0x29/0x5b
&gt; &gt;&gt;&gt; [&lt;ffffffff812827f0&gt;] acpi_load_tables+0x39/0x15a
&gt; &gt;&gt;&gt; [&lt;ffffffff8191c8f8&gt;] acpi_early_init+0x60/0xf5
&gt; &gt;&gt;&gt; [&lt;ffffffff818f2cad&gt;] start_kernel+0x397/0x3a7
&gt; &gt;&gt;&gt; [&lt;ffffffff818f2295&gt;] x86_64_start_reservations+0xa5/0xa9
&gt; &gt;&gt;&gt; [&lt;ffffffff818f237a&gt;] x86_64_start_kernel+0xe1/0xe8
&gt; &gt;&gt;&gt; ---[ end trace 4eaa2a86a8e2da22 ]---
&gt; &gt;&gt;&gt; ioremap reserve_memtype failed -22

The return code is -EINVAL, so it failed in the is_ram check, which is
not too surprising

&gt; BIOS-provided physical RAM map:
&gt;  BIOS-e820: 0000000000000000 - 000000000009c000 (usable)
&gt;  BIOS-e820: 000000000009c000 - 00000000000a0000 (reserved)
&gt;  BIOS-e820: 00000000000e0000 - 0000000000100000 (reserved)
&gt;  BIOS-e820: 0000000000100000 - 00000000cffa3900 (usable)
&gt;  BIOS-e820: 00000000cffa3900 - 00000000cffa7400 (ACPI data)

The ACPI data is not starting on a page boundary and neither does the
usable RAM area end on a page boundary. Very useful !

&gt; ACPI: DSDT 00000000cffa3900 036CE (v01 IBM    SERLEWIS 00001000 INTL 20060912)

ACPI is trying to map DSDT at cffa3900, which results in a check
vs. cffa3000 which is the relevant page boundary. The generic is_ram
check correctly identifies that as RAM because it's in the usable
resource area. The old e820 based is_ram check does not take
overlapping resource areas into account. That's why it works.

CC: Sachin Sant &lt;sachinp@in.ibm.com&gt;
CC: Thomas Gleixner &lt;tglx@linutronix.de&gt;
CC: KAMEZAWA Hiroyuki &lt;kamezawa.hiroyu@jp.fujitsu.com&gt;
Signed-off-by: Wu Fengguang &lt;fengguang.wu@intel.com&gt;
LKML-Reference: &lt;20100301135551.GA9998@localhost&gt;
Signed-off-by: H. Peter Anvin &lt;hpa@zytor.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>Merge branch 'x86-mm-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip</title>
<updated>2010-02-28T18:38:45+00:00</updated>
<author>
<name>Linus Torvalds</name>
<email>torvalds@linux-foundation.org</email>
</author>
<published>2010-02-28T18:38:45+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=46bbffad54bd48bb809f2691c1970a79a588976b'/>
<id>46bbffad54bd48bb809f2691c1970a79a588976b</id>
<content type='text'>
* 'x86-mm-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:
  x86, mm: Unify kernel_physical_mapping_init() API
  x86, mm: Allow highmem user page tables to be disabled at boot time
  x86: Do not reserve brk for DMI if it's not going to be used
  x86: Convert tlbstate_lock to raw_spinlock
  x86: Use the generic page_is_ram()
  x86: Remove BIOS data range from e820
  Move page_is_ram() declaration to mm.h
  Generic page_is_ram: use __weak
  resources: introduce generic page_is_ram()
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* 'x86-mm-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:
  x86, mm: Unify kernel_physical_mapping_init() API
  x86, mm: Allow highmem user page tables to be disabled at boot time
  x86: Do not reserve brk for DMI if it's not going to be used
  x86: Convert tlbstate_lock to raw_spinlock
  x86: Use the generic page_is_ram()
  x86: Remove BIOS data range from e820
  Move page_is_ram() declaration to mm.h
  Generic page_is_ram: use __weak
  resources: introduce generic page_is_ram()
</pre>
</div>
</content>
</entry>
<entry>
<title>resource: add release_child_resources</title>
<updated>2010-02-23T00:17:00+00:00</updated>
<author>
<name>Yinghai Lu</name>
<email>yinghai@kernel.org</email>
</author>
<published>2009-12-22T23:02:22+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=5eeec0ec931a01e85b3701ce121b7d8a1800ec60'/>
<id>5eeec0ec931a01e85b3701ce121b7d8a1800ec60</id>
<content type='text'>
Useful for freeing a portion of the resource tree, e.g. when trying to
reallocate resources more efficiently.

Signed-off-by: Yinghai Lu &lt;yinghai@kernel.org&gt;
Acked-by: Linus Torvalds &lt;torvalds@linux-foundation.org&gt;
Signed-off-by: Jesse Barnes &lt;jbarnes@virtuousgeek.org&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Useful for freeing a portion of the resource tree, e.g. when trying to
reallocate resources more efficiently.

Signed-off-by: Yinghai Lu &lt;yinghai@kernel.org&gt;
Acked-by: Linus Torvalds &lt;torvalds@linux-foundation.org&gt;
Signed-off-by: Jesse Barnes &lt;jbarnes@virtuousgeek.org&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>resource/PCI: mark struct resource as const</title>
<updated>2010-02-23T00:16:57+00:00</updated>
<author>
<name>Dominik Brodowski</name>
<email>linux@dominikbrodowski.net</email>
</author>
<published>2010-01-01T16:40:50+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=3b7a17fcdae532d29dffab9d564a28be08960988'/>
<id>3b7a17fcdae532d29dffab9d564a28be08960988</id>
<content type='text'>
Now that we return the new resource start position, there is no
need to update "struct resource" inside the align function.
Therefore, mark the struct resource as const.

Cc: Bjorn Helgaas &lt;bjorn.helgaas@hp.com&gt;
Cc: Yinghai Lu &lt;yhlu.kernel@gmail.com&gt;
Signed-off-by: Dominik Brodowski &lt;linux@dominikbrodowski.net&gt;
Signed-off-by: Jesse Barnes &lt;jbarnes@virtuousgeek.org&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Now that we return the new resource start position, there is no
need to update "struct resource" inside the align function.
Therefore, mark the struct resource as const.

Cc: Bjorn Helgaas &lt;bjorn.helgaas@hp.com&gt;
Cc: Yinghai Lu &lt;yhlu.kernel@gmail.com&gt;
Signed-off-by: Dominik Brodowski &lt;linux@dominikbrodowski.net&gt;
Signed-off-by: Jesse Barnes &lt;jbarnes@virtuousgeek.org&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>resource/PCI: align functions now return start of resource</title>
<updated>2010-02-23T00:16:56+00:00</updated>
<author>
<name>Dominik Brodowski</name>
<email>linux@dominikbrodowski.net</email>
</author>
<published>2010-01-01T16:40:49+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=b26b2d494b659f988b4d75eb394dfa0ddac415c9'/>
<id>b26b2d494b659f988b4d75eb394dfa0ddac415c9</id>
<content type='text'>
As suggested by Linus, align functions should return the start
of a resource, not void. An update of "res-&gt;start" is no longer
necessary.

Cc: Bjorn Helgaas &lt;bjorn.helgaas@hp.com&gt;
Cc: Yinghai Lu &lt;yhlu.kernel@gmail.com&gt;
Signed-off-by: Dominik Brodowski &lt;linux@dominikbrodowski.net&gt;
Signed-off-by: Jesse Barnes &lt;jbarnes@virtuousgeek.org&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
As suggested by Linus, align functions should return the start
of a resource, not void. An update of "res-&gt;start" is no longer
necessary.

Cc: Bjorn Helgaas &lt;bjorn.helgaas@hp.com&gt;
Cc: Yinghai Lu &lt;yhlu.kernel@gmail.com&gt;
Signed-off-by: Dominik Brodowski &lt;linux@dominikbrodowski.net&gt;
Signed-off-by: Jesse Barnes &lt;jbarnes@virtuousgeek.org&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>Merge branch 'linus' into x86/mm</title>
<updated>2010-02-17T17:28:05+00:00</updated>
<author>
<name>Thomas Gleixner</name>
<email>tglx@linutronix.de</email>
</author>
<published>2010-02-17T17:27:37+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=b7e56edba4b02f2079042c326a8cd72a44635817'/>
<id>b7e56edba4b02f2079042c326a8cd72a44635817</id>
<content type='text'>
x86/mm is on 32-rc4 and missing the spinlock namespace changes which
are needed for further commits into this topic.

Signed-off-by: Thomas Gleixner &lt;tglx@linutronix.de&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
x86/mm is on 32-rc4 and missing the spinlock namespace changes which
are needed for further commits into this topic.

Signed-off-by: Thomas Gleixner &lt;tglx@linutronix.de&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>Generic page_is_ram: use __weak</title>
<updated>2010-02-02T00:58:17+00:00</updated>
<author>
<name>Andrew Morton</name>
<email>akpm@linux-foundation.org</email>
</author>
<published>2010-01-27T00:31:19+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=e52730071567ec5b6f57e21d6693b112e01e1d0e'/>
<id>e52730071567ec5b6f57e21d6693b112e01e1d0e</id>
<content type='text'>
Use __weak instead of __attribute__((weak)).

Cc: Wu Fengguang &lt;fengguang.wu@intel.com&gt;
Signed-off-by: Andrew Morton &lt;akpm@linux-foundation.org&gt;
Signed-off-by: H. Peter Anvin &lt;hpa@zytor.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Use __weak instead of __attribute__((weak)).

Cc: Wu Fengguang &lt;fengguang.wu@intel.com&gt;
Signed-off-by: Andrew Morton &lt;akpm@linux-foundation.org&gt;
Signed-off-by: H. Peter Anvin &lt;hpa@zytor.com&gt;
</pre>
</div>
</content>
</entry>
</feed>
