<feed xmlns='http://www.w3.org/2005/Atom'>
<title>kernel.git/arch/ia64/kernel/efi.c, branch linux-2.6.19.y</title>
<subtitle>Hosts the 0x221E linux distro kernel.
</subtitle>
<id>https://git.0xinfinity.dev/distro/kernel.git/atom?h=linux-2.6.19.y</id>
<link rel='self' href='https://git.0xinfinity.dev/distro/kernel.git/atom?h=linux-2.6.19.y'/>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/'/>
<updated>2006-08-02T23:03:44Z</updated>
<entry>
<title>[IA64] sparse cleanups</title>
<updated>2006-08-02T23:03:44Z</updated>
<author>
<name>Keith Owens</name>
</author>
<published>2006-07-17T05:41:59Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=e037cda559547e6353c5a792802963572d0b750e'/>
<id>urn:sha1:e037cda559547e6353c5a792802963572d0b750e</id>
<content type='text'>
Fix some sparse warnings on ia64.  Large constants that should be long
instead of int.  Use NULL instead of 0.  Add some missing __iomem
casts.  Replace a non-C99 structure assignment.

Signed-off-by: Keith Owens &lt;kaos@sgi.com&gt;
Signed-off-by: Tony Luck &lt;tony.luck@intel.com&gt;
</content>
</entry>
<entry>
<title>[PATCH] make valid_mmap_phys_addr_range() take a pfn</title>
<updated>2006-07-10T20:24:25Z</updated>
<author>
<name>Lennert Buytenhek</name>
</author>
<published>2006-07-10T11:45:27Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=06c67befeeb16f2995c11b0e04a348103ddbfab1'/>
<id>urn:sha1:06c67befeeb16f2995c11b0e04a348103ddbfab1</id>
<content type='text'>
Newer ARMs have a 40 bit physical address space, but mapping physical
memory above 4G needs a special page table format which we (currently?) do
not use for userspace mappings, so what happens instead is that mapping an
address &gt;= 4G will happily discard the upper bits and wrap.

There is a valid_mmap_phys_addr_range() arch hook where we could check for
&gt;= 4G addresses and deny the mapping, but this hook takes an unsigned long
address:

	static inline int valid_mmap_phys_addr_range(unsigned long addr, size_t size);

And drivers/char/mem.c:mmap_mem() calls it like this:

	static int mmap_mem(struct file * file, struct vm_area_struct * vma)
	{
		size_t size = vma-&gt;vm_end - vma-&gt;vm_start;

		if (!valid_mmap_phys_addr_range(vma-&gt;vm_pgoff &lt;&lt; PAGE_SHIFT, size))

So that's not much help either.

This patch makes the hook take a pfn instead of a phys address.

Signed-off-by: Lennert Buytenhek &lt;buytenh@wantstofly.org&gt;
Cc: Bjorn Helgaas &lt;bjorn.helgaas@hp.com&gt;
Cc: "Luck, Tony" &lt;tony.luck@intel.com&gt;
Cc: Russell King &lt;rmk@arm.linux.org.uk&gt;
Signed-off-by: Andrew Morton &lt;akpm@osdl.org&gt;
Signed-off-by: Linus Torvalds &lt;torvalds@osdl.org&gt;
</content>
</entry>
<entry>
<title>Remove obsolete #include &lt;linux/config.h&gt;</title>
<updated>2006-06-30T17:25:36Z</updated>
<author>
<name>Jörn Engel</name>
</author>
<published>2006-06-30T17:25:36Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=6ab3d5624e172c553004ecc862bfeac16d9d68b7'/>
<id>urn:sha1:6ab3d5624e172c553004ecc862bfeac16d9d68b7</id>
<content type='text'>
Signed-off-by: Jörn Engel &lt;joern@wohnheim.fh-wedel.de&gt;
Signed-off-by: Adrian Bunk &lt;bunk@stusta.de&gt;
</content>
</entry>
<entry>
<title>[IA64] rework memory attribute aliasing</title>
<updated>2006-05-08T23:32:05Z</updated>
<author>
<name>Bjorn Helgaas</name>
</author>
<published>2006-05-05T23:19:50Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=32e62c636a728cb39c0b3bd191286f2ca65d4028'/>
<id>urn:sha1:32e62c636a728cb39c0b3bd191286f2ca65d4028</id>
<content type='text'>
This closes a couple holes in our attribute aliasing avoidance scheme:

  - The current kernel fails mmaps of some /dev/mem MMIO regions because
    they don't appear in the EFI memory map.  This keeps X from working
    on the Intel Tiger box.

  - The current kernel allows UC mmap of the 0-1MB region of
    /sys/.../legacy_mem even when the chipset doesn't support UC
    access.  This causes an MCA when starting X on HP rx7620 and rx8620
    boxes in the default configuration.

There's more detail in the Documentation/ia64/aliasing.txt file this
adds, but the general idea is that if a region might be covered by
a granule-sized kernel identity mapping, any access via /dev/mem or
mmap must use the same attribute as the identity mapping.

Otherwise, we fall back to using an attribute that is supported
according to the EFI memory map, or to using UC if the EFI memory
map doesn't mention the region.

Signed-off-by: Bjorn Helgaas &lt;bjorn.helgaas@hp.com&gt;
Signed-off-by: Tony Luck &lt;tony.luck@intel.com&gt;
</content>
</entry>
<entry>
<title>[PATCH] EFI: keep physical table addresses in efi structure</title>
<updated>2006-03-26T16:56:54Z</updated>
<author>
<name>Bjorn Helgaas</name>
</author>
<published>2006-03-26T09:37:08Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=b2c99e3c70d77fb194df5aa1642030080d28ea48'/>
<id>urn:sha1:b2c99e3c70d77fb194df5aa1642030080d28ea48</id>
<content type='text'>
Almost all users of the table addresses from the EFI system table want
physical addresses.  So rather than doing the pa-&gt;va-&gt;pa conversion, just keep
physical addresses in struct efi.

This fixes a DMI bug: the efi structure contained the physical SMBIOS address
on x86 but the virtual address on ia64, so dmi_scan_machine() used ioremap()
on a virtual address on ia64.

This is essentially the same as an earlier patch by Matt Tolentino:
	http://marc.theaimsgroup.com/?l=linux-kernel&amp;m=112130292316281&amp;w=2
except that this changes all table addresses, not just ACPI addresses.

Matt's original patch was backed out because it caused MCAs on HP sx1000
systems.  That problem is resolved by the ioremap() attribute checking added
for ia64.

Signed-off-by: Bjorn Helgaas &lt;bjorn.helgaas@hp.com&gt;
Cc: Matt Domsch &lt;Matt_Domsch@dell.com&gt;
Cc: "Tolentino, Matthew E" &lt;matthew.e.tolentino@intel.com&gt;
Cc: "Brown, Len" &lt;len.brown@intel.com&gt;
Cc: Andi Kleen &lt;ak@muc.de&gt;
Acked-by: "Luck, Tony" &lt;tony.luck@intel.com&gt;
Signed-off-by: Andrew Morton &lt;akpm@osdl.org&gt;
Signed-off-by: Linus Torvalds &lt;torvalds@osdl.org&gt;
</content>
</entry>
<entry>
<title>[PATCH] EFI, /dev/mem: simplify efi_mem_attribute_range()</title>
<updated>2006-03-26T16:56:54Z</updated>
<author>
<name>Bjorn Helgaas</name>
</author>
<published>2006-03-26T09:37:05Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=136939a2b5aa4302281215745ccd567e1df2e8d4'/>
<id>urn:sha1:136939a2b5aa4302281215745ccd567e1df2e8d4</id>
<content type='text'>
Pass the size, not a pointer to the size, to efi_mem_attribute_range().

This function validates memory regions for the /dev/mem read/write/mmap paths.
The pointer allows arches to reduce the size of the range, but I think that's
unnecessary complexity.  Simplifying it will let me use
efi_mem_attribute_range() to improve the ia64 ioremap() implementation.

Signed-off-by: Bjorn Helgaas &lt;bjorn.helgaas@hp.com&gt;
Cc: Matt Domsch &lt;Matt_Domsch@dell.com&gt;
Cc: "Tolentino, Matthew E" &lt;matthew.e.tolentino@intel.com&gt;
Cc: "Brown, Len" &lt;len.brown@intel.com&gt;
Cc: Andi Kleen &lt;ak@muc.de&gt;
Acked-by: "Luck, Tony" &lt;tony.luck@intel.com&gt;
Signed-off-by: Andrew Morton &lt;akpm@osdl.org&gt;
Signed-off-by: Linus Torvalds &lt;torvalds@osdl.org&gt;
</content>
</entry>
<entry>
<title>[IA64] Fix wrong use of memparse in efi.c</title>
<updated>2006-02-07T22:13:09Z</updated>
<author>
<name>Zou Nan hai</name>
</author>
<published>2006-02-07T03:35:46Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=9d78f43d1fd3e028bfd37510ce847d0896f71f78'/>
<id>urn:sha1:9d78f43d1fd3e028bfd37510ce847d0896f71f78</id>
<content type='text'>
The check of (end != cp) after memparse in efi.c looks wrong to me.
The result is that we can't use mem= and max_addr= kernel parameter at
the same time.

The following patch removed the check just like other arches do.

Signed-off-by: Zou Nan hai &lt;nanhai.zou@intel.com&gt;
Signed-off-by: Tony Luck &lt;tony.luck@intel.com&gt;
</content>
</entry>
<entry>
<title>[IA64] Fix a possible buffer overflow in efi.c</title>
<updated>2006-02-07T18:59:37Z</updated>
<author>
<name>Zou Nan hai</name>
</author>
<published>2006-02-07T03:25:55Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=ecdd5dabd33d67066d476467e447cdcadab90550'/>
<id>urn:sha1:ecdd5dabd33d67066d476467e447cdcadab90550</id>
<content type='text'>
Make sure to save space for the trailing '\0'.

Signed-off-by: Zou Nan hai &lt;nanhai.zou@intel.com&gt;
Signed-off-by: Tony Luck &lt;tony.luck@intel.com&gt;
</content>
</entry>
<entry>
<title>[PATCH] /dev/mem: validate mmap requests</title>
<updated>2006-01-09T04:14:02Z</updated>
<author>
<name>Bjorn Helgaas</name>
</author>
<published>2006-01-08T09:04:13Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=80851ef2a5a404e6054211ca96ecd5ac4b06d297'/>
<id>urn:sha1:80851ef2a5a404e6054211ca96ecd5ac4b06d297</id>
<content type='text'>
Add a hook so architectures can validate /dev/mem mmap requests.

This is analogous to validation we already perform in the read/write
paths.

The identity mapping scheme used on ia64 requires that each 16MB or
64MB granule be accessed with exactly one attribute (write-back or
uncacheable).  This avoids "attribute aliasing", which can cause a
machine check.

Sample problem scenario:
  - Machine supports VGA, so it has uncacheable (UC) MMIO at 640K-768K
  - efi_memmap_init() discards any write-back (WB) memory in the first granule
  - Application (e.g., "hwinfo") mmaps /dev/mem, offset 0
  - hwinfo receives UC mapping (the default, since memmap says "no WB here")
  - Machine check abort (on chipsets that don't support UC access to WB
    memory, e.g., sx1000)

In the scenario above, the only choices are
  - Use WB for hwinfo mmap.  Can't do this because it causes attribute
    aliasing with the UC mapping for the VGA MMIO space.
  - Use UC for hwinfo mmap.  Can't do this because the chipset may not
    support UC for that region.
  - Disallow the hwinfo mmap with -EINVAL.  That's what this patch does.

Signed-off-by: Bjorn Helgaas &lt;bjorn.helgaas@hp.com&gt;
Cc: Hugh Dickins &lt;hugh@veritas.com&gt;
Cc: "Luck, Tony" &lt;tony.luck@intel.com&gt;
Signed-off-by: Andrew Morton &lt;akpm@osdl.org&gt;
Signed-off-by: Linus Torvalds &lt;torvalds@osdl.org&gt;
</content>
</entry>
<entry>
<title>[IA64] Replace kcalloc(1, with kzalloc.</title>
<updated>2005-11-10T19:28:20Z</updated>
<author>
<name>Panagiotis Issaris</name>
</author>
<published>2005-11-09T01:08:42Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=baf47fb66020e5c3fe2386680fa2d79d1f8e0052'/>
<id>urn:sha1:baf47fb66020e5c3fe2386680fa2d79d1f8e0052</id>
<content type='text'>
Conversion from kcalloc(1, to kzalloc.

Signed-off-by: Panagiotis Issaris &lt;takis@issaris.org&gt;
Signed-off-by: Tony Luck &lt;tony.luck@intel.com&gt;
</content>
</entry>
</feed>
