<feed xmlns='http://www.w3.org/2005/Atom'>
<title>kernel.git/arch/powerpc/include/asm/page.h, branch linux-4.10.y</title>
<subtitle>Hosts the 0x221E linux distro kernel.
</subtitle>
<id>https://git.0xinfinity.dev/distro/kernel.git/atom?h=linux-4.10.y</id>
<link rel='self' href='https://git.0xinfinity.dev/distro/kernel.git/atom?h=linux-4.10.y'/>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/'/>
<updated>2017-01-18T00:58:50Z</updated>
<entry>
<title>powerpc/mm: Fix little-endian 4K hugetlb</title>
<updated>2017-01-18T00:58:50Z</updated>
<author>
<name>Aneesh Kumar K.V</name>
</author>
<published>2016-12-14T04:37:53Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=20717e1ff52672e31f9399c45d88936bbbc7e175'/>
<id>urn:sha1:20717e1ff52672e31f9399c45d88936bbbc7e175</id>
<content type='text'>
When we switched to big endian page table, we never updated the hugepd
format such that it can work for both big endian and little endian
config. This patch series update hugepd format such that it is looked at
as __be64 value in big endian page table config.

This patch also switch hugepd_t.pd from signed long to unsigned long.
I did update the FSL hugepd_ok check to check for the top bit instead
of checking &gt; 0.

Fixes: 5dc1ef858c12 ("powerpc/mm: Use big endian Linux page tables for book3s 64")
Cc: stable@vger.kernel.org # v4.7+
Signed-off-by: Aneesh Kumar K.V &lt;aneesh.kumar@linux.vnet.ibm.com&gt;
Signed-off-by: Michael Ellerman &lt;mpe@ellerman.id.au&gt;
</content>
</entry>
<entry>
<title>powerpc/32: Remove RELOCATABLE_PPC32</title>
<updated>2016-07-19T10:17:07Z</updated>
<author>
<name>Kevin Hao</name>
</author>
<published>2016-07-13T01:14:40Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=27d1149667352772240655b65372a4294f992ea7'/>
<id>urn:sha1:27d1149667352772240655b65372a4294f992ea7</id>
<content type='text'>
It is seldom used in the kernel code and can be easily replaced by
either RELOCATABLE or PPC32. So there is no reason to keep a separate
kernel option for this.

Signed-off-by: Kevin Hao &lt;haokexin@gmail.com&gt;
Signed-off-by: Michael Ellerman &lt;mpe@ellerman.id.au&gt;
</content>
</entry>
<entry>
<title>powerpc/mm: Make 4K and 64K use pte_t for pgtable_t</title>
<updated>2016-05-11T11:53:51Z</updated>
<author>
<name>Aneesh Kumar K.V</name>
</author>
<published>2016-04-29T13:26:18Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=934828edfadc43be07e53429ce501741bedf4a5e'/>
<id>urn:sha1:934828edfadc43be07e53429ce501741bedf4a5e</id>
<content type='text'>
This patch switches 4K Linux page size config to use pte_t * type
instead of struct page * for pgtable_t. This simplifies the code a lot
and helps in consolidating both 64K and 4K page allocator routines. The
changes should not have any impact, because we already store physical
address in the upper level page table tree and that implies we already
do struct page * to physical address conversion.

One change to note here is we move the pgtable_page_dtor() call for
nohash to pte_fragment_free_mm(). The nohash related change is due to
the related changes in pgtable_64.c.

Signed-off-by: Aneesh Kumar K.V &lt;aneesh.kumar@linux.vnet.ibm.com&gt;
Signed-off-by: Michael Ellerman &lt;mpe@ellerman.id.au&gt;
</content>
</entry>
<entry>
<title>powerpc/mm: Use big endian Linux page tables for book3s 64</title>
<updated>2016-05-01T08:32:18Z</updated>
<author>
<name>Aneesh Kumar K.V</name>
</author>
<published>2016-04-29T13:25:28Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=5dc1ef858c12f865e3676727e03519bece4ce6c1'/>
<id>urn:sha1:5dc1ef858c12f865e3676727e03519bece4ce6c1</id>
<content type='text'>
Traditionally Power server machines have used the Hashed Page Table MMU
mode. In this mode Linux manages its own tree of nested page tables,
aka. "the Linux page tables", which are not used by the hardware
directly, and software loads translations into the hash page table for
use by the hardware.

Power ISA 3.0 defines a new MMU mode, known as Radix Tree Translation,
where the hardware can directly operate on the Linux page tables.
However the hardware requires that the page tables be in big endian
format.

To accommodate this, switch the pgtable types to __be64 and add
appropriate endian conversions.

Because we will be supporting a single kernel binary that boots using
either radix or hash mode, we always store the Linux page tables big
endian, even in hash mode where they are not actually used by the
hardware.

Signed-off-by: Aneesh Kumar K.V &lt;aneesh.kumar@linux.vnet.ibm.com&gt;
[mpe: Fix sparse errors, flesh out change log]
Signed-off-by: Michael Ellerman &lt;mpe@ellerman.id.au&gt;
</content>
</entry>
<entry>
<title>powerpc/mm: Split pgtable types to separate header</title>
<updated>2016-03-03T05:47:01Z</updated>
<author>
<name>Aneesh Kumar K.V</name>
</author>
<published>2016-03-01T04:15:11Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=2bf59916ef033edb9f8e968ee27e486ccb8ba1ce'/>
<id>urn:sha1:2bf59916ef033edb9f8e968ee27e486ccb8ba1ce</id>
<content type='text'>
We move the page table accessors into a separate header. We will
later add a big endian variant of the table which is needed for radix.
No functionality change only code movement.

Reviewed-by: Paul Mackerras &lt;paulus@samba.org&gt;
Signed-off-by: Aneesh Kumar K.V &lt;aneesh.kumar@linux.vnet.ibm.com&gt;
Signed-off-by: Michael Ellerman &lt;mpe@ellerman.id.au&gt;
</content>
</entry>
<entry>
<title>powerpc/mm/book3s-64: Use physical addresses in upper page table tree levels</title>
<updated>2016-02-29T09:34:34Z</updated>
<author>
<name>Paul Mackerras</name>
</author>
<published>2016-02-23T02:36:17Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=c61a8843124e353f4ba27c073133868da00e0335'/>
<id>urn:sha1:c61a8843124e353f4ba27c073133868da00e0335</id>
<content type='text'>
This changes the Linux page tables to store physical addresses
rather than kernel virtual addresses in the upper levels of the
tree (pgd, pud and pmd) for 64-bit Book 3S machines.

This also changes the hugepd pointers used to implement hugepages
when the base page size is 4k to store physical addresses rather than
virtual addresses (again just for 64-bit Book3S machines).

This frees up some high order bits, and will be needed with
PowerISA v3.0 machines which read the page table tree in hardware
in radix mode.

Signed-off-by: Paul Mackerras &lt;paulus@samba.org&gt;
Signed-off-by: Michael Ellerman &lt;mpe@ellerman.id.au&gt;
</content>
</entry>
<entry>
<title>powerpc/mm: Move hugetlb related headers</title>
<updated>2015-12-14T04:19:13Z</updated>
<author>
<name>Aneesh Kumar K.V</name>
</author>
<published>2015-12-01T03:36:52Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=26a344aea48c99cfd80d292a470a480e1c2bd5d9'/>
<id>urn:sha1:26a344aea48c99cfd80d292a470a480e1c2bd5d9</id>
<content type='text'>
W.r.t hugetlb, we support two format for pmd. With book3s_64 and
64K linux page size, we can have pte at the pmd level. Hence we
don't need to support hugepd there. For everything else hugepd
is supported and pmd_huge is (0).

Acked-by: Scott Wood &lt;scottwood@freescale.com&gt;
Signed-off-by: Aneesh Kumar K.V &lt;aneesh.kumar@linux.vnet.ibm.com&gt;
Signed-off-by: Michael Ellerman &lt;mpe@ellerman.id.au&gt;
</content>
</entry>
<entry>
<title>powerpc/mm: Don't use pmd_val, pud_val and pgd_val as lvalue</title>
<updated>2015-12-14T04:19:07Z</updated>
<author>
<name>Aneesh Kumar K.V</name>
</author>
<published>2015-12-01T03:36:35Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=f281b5d50c87ecca108dcbf8f791bd8923fde3de'/>
<id>urn:sha1:f281b5d50c87ecca108dcbf8f791bd8923fde3de</id>
<content type='text'>
We convert them static inline function here as we did with pte_val in
the previous patch

Acked-by: Scott Wood &lt;scottwood@freescale.com&gt;
Signed-off-by: Aneesh Kumar K.V &lt;aneesh.kumar@linux.vnet.ibm.com&gt;
Signed-off-by: Michael Ellerman &lt;mpe@ellerman.id.au&gt;
</content>
</entry>
<entry>
<title>powerpc/mm: Don't use pte_val as lvalue</title>
<updated>2015-12-14T04:19:07Z</updated>
<author>
<name>Aneesh Kumar K.V</name>
</author>
<published>2015-12-01T03:36:34Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=10bd3808dfd067d6d6c941cc6e1b13be165f6a70'/>
<id>urn:sha1:10bd3808dfd067d6d6c941cc6e1b13be165f6a70</id>
<content type='text'>
We also convert few #define to static inline in this patch for better
type checking

Acked-by: Scott Wood &lt;scottwood@freescale.com&gt;
Signed-off-by: Aneesh Kumar K.V &lt;aneesh.kumar@linux.vnet.ibm.com&gt;
Signed-off-by: Michael Ellerman &lt;mpe@ellerman.id.au&gt;
</content>
</entry>
<entry>
<title>powerpc/booke: Only use VIRT_PHYS_OFFSET on booke32</title>
<updated>2015-10-27T23:13:29Z</updated>
<author>
<name>Scott Wood</name>
</author>
<published>2015-10-07T03:48:20Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=ffda09a9941c18d9f08d1176d55588d505f62912'/>
<id>urn:sha1:ffda09a9941c18d9f08d1176d55588d505f62912</id>
<content type='text'>
The way VIRT_PHYS_OFFSET is not correct on book3e-64, because
it does not account for CONFIG_RELOCATABLE other than via the
32-bit-only virt_phys_offset.

book3e-64 can (and if the comment about a GCC miscompilation is still
relevant, should) use the normal ppc64 __va/__pa.

At this point, only booke-32 will use VIRT_PHYS_OFFSET, so given the
issues with its calculation, restrict its definition to booke-32.

Signed-off-by: Scott Wood &lt;scottwood@freescale.com&gt;
</content>
</entry>
</feed>
