<feed xmlns='http://www.w3.org/2005/Atom'>
<title>kernel.git/arch/arm64/mm, 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-04-12T10:42:04Z</updated>
<entry>
<title>arm64: mm: unaligned access by user-land should be received as SIGBUS</title>
<updated>2017-04-12T10:42:04Z</updated>
<author>
<name>Victor Kamensky</name>
</author>
<published>2017-04-04T05:51:01Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=b48b63d5f583f4e66f5efce4951679065b066c8a'/>
<id>urn:sha1:b48b63d5f583f4e66f5efce4951679065b066c8a</id>
<content type='text'>
commit 09a6adf53d42ca3088fa3fb41f40b768efc711ed upstream.

After 52d7523 (arm64: mm: allow the kernel to handle alignment faults on
user accesses) commit user-land accesses that produce unaligned exceptions
like in case of aarch32 ldm/stm/ldrd/strd instructions operating on
unaligned memory received by user-land as SIGSEGV. It is wrong, it should
be reported as SIGBUS as it was before 52d7523 commit.

Changed do_bad_area function to take signal and code parameters out of esr
value using fault_info table, so in case of do_alignment_fault fault
user-land will receive SIGBUS. Wrapped access to fault_info table into
esr_to_fault_info function.

Fixes: 52d7523 (arm64: mm: allow the kernel to handle alignment faults on user accesses)
Signed-off-by: Victor Kamensky &lt;kamensky@cisco.com&gt;
Signed-off-by: Will Deacon &lt;will.deacon@arm.com&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;

</content>
</entry>
<entry>
<title>Revert "arm64: mm: set the contiguous bit for kernel mappings where appropriate"</title>
<updated>2017-03-12T05:44:15Z</updated>
<author>
<name>Mark Rutland</name>
</author>
<published>2017-02-23T16:22:55Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=615b1dc4f6155a4f44a9addeb7f2f85ea5a187ec'/>
<id>urn:sha1:615b1dc4f6155a4f44a9addeb7f2f85ea5a187ec</id>
<content type='text'>
commit d81bbe6d882461dec4b71dbe2aa85565fcca4187 upstream.

This reverts commit 0bfc445dec9dd8130d22c9f4476eed7598524129.

When we change the permissions of regions mapped using contiguous
entries, the architecture requires us to follow a Break-Before-Make
strategy, breaking *all* associated entries before we can change any of
the following properties from the entries:

 - presence of the contiguous bit
 - output address
 - attributes
 - permissiones

Failure to do so can result in a number of problems (e.g. TLB conflict
aborts and/or erroneous results from TLB lookups).

See ARM DDI 0487A.k_iss10775, "Misprogramming of the Contiguous bit",
page D4-1762.

We do not take this into account when altering the permissions of kernel
segments in mark_rodata_ro(), where we change the permissions of live
contiguous entires one-by-one, leaving them transiently inconsistent.
This has been observed to result in failures on some fast model
configurations.

Unfortunately, we cannot follow Break-Before-Make here as we'd have to
unmap kernel text and data used to perform the sequence.

For the timebeing, revert commit 0bfc445dec9dd813 so as to avoid issues
resulting from this misuse of the contiguous bit.

Signed-off-by: Mark Rutland &lt;mark.rutland@arm.com&gt;
Acked-by: Ard Biesheuvel &lt;ard.biesheuvel@linaro.org&gt;
Reported-by: Jean-Philippe Brucker &lt;jean-philippe.brucker@arm.com&gt;
Cc: Ard Biesheuvel &lt;ard.biesheuvel@linaro.org&gt;
Cc: Catalin Marinas &lt;catalin.marinas@arm.com&gt;
Cc: Will Deacon &lt;Will.Deacon@arm.com&gt;
Signed-off-by: Will Deacon &lt;will.deacon@arm.com&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;

</content>
</entry>
<entry>
<title>arm64: dma-mapping: Fix dma_mapping_error() when bypassing SWIOTLB</title>
<updated>2017-03-12T05:44:15Z</updated>
<author>
<name>Robin Murphy</name>
</author>
<published>2017-01-25T18:31:31Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=c5d1e9cc2879daf30ce6efe740cafad1304b017a'/>
<id>urn:sha1:c5d1e9cc2879daf30ce6efe740cafad1304b017a</id>
<content type='text'>
commit adbe7e26f4257f72817495b9bce114284060b0d7 upstream.

When bypassing SWIOTLB on small-memory systems, we need to avoid calling
into swiotlb_dma_mapping_error() in exactly the same way as we avoid
swiotlb_dma_supported(), because the former also relies on SWIOTLB state
being initialised.

Under the assumptions for which we skip SWIOTLB, dma_map_{single,page}()
will only ever return the DMA-offset-adjusted physical address of the
page passed in, thus we can report success unconditionally.

Fixes: b67a8b29df7e ("arm64: mm: only initialize swiotlb when necessary")
CC: Jisheng Zhang &lt;jszhang@marvell.com&gt;
Reported-by: Aaro Koskinen &lt;aaro.koskinen@iki.fi&gt;
Signed-off-by: Robin Murphy &lt;robin.murphy@arm.com&gt;
Signed-off-by: Will Deacon &lt;will.deacon@arm.com&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;

</content>
</entry>
<entry>
<title>arm64: Fix swiotlb fallback allocation</title>
<updated>2017-01-17T11:48:11Z</updated>
<author>
<name>Alexander Graf</name>
</author>
<published>2017-01-16T11:46:33Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=524dabe1c68e0bca25ce7b108099e5d89472a101'/>
<id>urn:sha1:524dabe1c68e0bca25ce7b108099e5d89472a101</id>
<content type='text'>
Commit b67a8b29df introduced logic to skip swiotlb allocation when all memory
is DMA accessible anyway.

While this is a great idea, __dma_alloc still calls swiotlb code unconditionally
to allocate memory when there is no CMA memory available. The swiotlb code is
called to ensure that we at least try get_free_pages().

Without initialization, swiotlb allocation code tries to access io_tlb_list
which is NULL. That results in a stack trace like this:

  Unable to handle kernel NULL pointer dereference at virtual address 00000000
  [...]
  [&lt;ffff00000845b908&gt;] swiotlb_tbl_map_single+0xd0/0x2b0
  [&lt;ffff00000845be94&gt;] swiotlb_alloc_coherent+0x10c/0x198
  [&lt;ffff000008099dc0&gt;] __dma_alloc+0x68/0x1a8
  [&lt;ffff000000a1b410&gt;] drm_gem_cma_create+0x98/0x108 [drm]
  [&lt;ffff000000abcaac&gt;] drm_fbdev_cma_create_with_funcs+0xbc/0x368 [drm_kms_helper]
  [&lt;ffff000000abcd84&gt;] drm_fbdev_cma_create+0x2c/0x40 [drm_kms_helper]
  [&lt;ffff000000abc040&gt;] drm_fb_helper_initial_config+0x238/0x410 [drm_kms_helper]
  [&lt;ffff000000abce88&gt;] drm_fbdev_cma_init_with_funcs+0x98/0x160 [drm_kms_helper]
  [&lt;ffff000000abcf90&gt;] drm_fbdev_cma_init+0x40/0x58 [drm_kms_helper]
  [&lt;ffff000000b47980&gt;] vc4_kms_load+0x90/0xf0 [vc4]
  [&lt;ffff000000b46a94&gt;] vc4_drm_bind+0xec/0x168 [vc4]
  [...]

Thankfully swiotlb code just learned how to not do allocations with the FORCE_NO
option. This patch configures the swiotlb code to use that if we decide not to
initialize the swiotlb framework.

Fixes: b67a8b29df ("arm64: mm: only initialize swiotlb when necessary")
Signed-off-by: Alexander Graf &lt;agraf@suse.de&gt;
CC: Jisheng Zhang &lt;jszhang@marvell.com&gt;
CC: Geert Uytterhoeven &lt;geert+renesas@glider.be&gt;
CC: Konrad Rzeszutek Wilk &lt;konrad.wilk@oracle.com&gt;
Signed-off-by: Catalin Marinas &lt;catalin.marinas@arm.com&gt;
</content>
</entry>
<entry>
<title>arm64: hugetlb: fix the wrong return value for huge_ptep_set_access_flags</title>
<updated>2017-01-11T10:26:40Z</updated>
<author>
<name>Huang Shijie</name>
</author>
<published>2017-01-11T06:02:00Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=69d012345a1a32d3f03957f14d972efccc106a98'/>
<id>urn:sha1:69d012345a1a32d3f03957f14d972efccc106a98</id>
<content type='text'>
In current code, the @changed always returns the last one's status for
the huge page with the contiguous bit set. This is really not what we
want. Even one of the PTEs is changed, we should tell it to the caller.

This patch fixes this issue.

Fixes: 66b3923a1a0f ("arm64: hugetlb: add support for PTE contiguous bit")
Cc: &lt;stable@vger.kernel.org&gt; # 4.5.x-
Signed-off-by: Huang Shijie &lt;shijie.huang@arm.com&gt;
Signed-off-by: Catalin Marinas &lt;catalin.marinas@arm.com&gt;
</content>
</entry>
<entry>
<title>Merge tag 'arm64-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux</title>
<updated>2017-01-06T23:18:58Z</updated>
<author>
<name>Linus Torvalds</name>
</author>
<published>2017-01-06T23:18:58Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=b1ee51702e12a99d35d7c11d1d2b5cd324001ee2'/>
<id>urn:sha1:b1ee51702e12a99d35d7c11d1d2b5cd324001ee2</id>
<content type='text'>
Pull arm64 fixes from Catalin Marinas:

 - re-introduce the arm64 get_current() optimisation

 - KERN_CONT fallout fix in show_pte()

* tag 'arm64-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux:
  arm64: restore get_current() optimisation
  arm64: mm: fix show_pte KERN_CONT fallout
</content>
</entry>
<entry>
<title>Merge branch 'stable/for-linus-4.10' of git://git.kernel.org/pub/scm/linux/kernel/git/konrad/swiotlb</title>
<updated>2017-01-06T18:53:21Z</updated>
<author>
<name>Linus Torvalds</name>
</author>
<published>2017-01-06T18:53:21Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=2fd8774c79a455a1f12f75208d96f2f0cc3728c9'/>
<id>urn:sha1:2fd8774c79a455a1f12f75208d96f2f0cc3728c9</id>
<content type='text'>
Pull swiotlb fixes from Konrad Rzeszutek Wilk:
 "This has one fix to make i915 work when using Xen SWIOTLB, and a
  feature from Geert to aid in debugging of devices that can't do DMA
  outside the 32-bit address space.

  The feature from Geert is on top of v4.10 merge window commit
  (specifically you pulling my previous branch), as his changes were
  dependent on the Documentation/ movement patches.

  I figured it would just easier than me trying than to cherry-pick the
  Documentation patches to satisfy git.

  The patches have been soaking since 12/20, albeit I updated the last
  patch due to linux-next catching an compiler error and adding an
  Tested-and-Reported-by tag"

* 'stable/for-linus-4.10' of git://git.kernel.org/pub/scm/linux/kernel/git/konrad/swiotlb:
  swiotlb: Export swiotlb_max_segment to users
  swiotlb: Add swiotlb=noforce debug option
  swiotlb: Convert swiotlb_force from int to enum
  x86, swiotlb: Simplify pci_swiotlb_detect_override()
</content>
</entry>
<entry>
<title>arm64: mm: fix show_pte KERN_CONT fallout</title>
<updated>2017-01-04T16:25:50Z</updated>
<author>
<name>Mark Rutland</name>
</author>
<published>2017-01-03T14:27:26Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=6ef4fb387d50fa8f3bffdffc868b57e981cdd709'/>
<id>urn:sha1:6ef4fb387d50fa8f3bffdffc868b57e981cdd709</id>
<content type='text'>
Recent changes made KERN_CONT mandatory for continued lines. In the
absence of KERN_CONT, a newline may be implicit inserted by the core
printk code.

In show_pte, we (erroneously) use printk without KERN_CONT for continued
prints, resulting in output being split across a number of lines, and
not matching the intended output, e.g.

[ff000000000000] *pgd=00000009f511b003
, *pud=00000009f4a80003
, *pmd=0000000000000000

Fix this by using pr_cont() for all the continuations.

Acked-by: Will Deacon &lt;will.deacon@arm.com&gt;
Signed-off-by: Mark Rutland &lt;mark.rutland@arm.com&gt;
Signed-off-by: Catalin Marinas &lt;catalin.marinas@arm.com&gt;
</content>
</entry>
<entry>
<title>arm64: don't pull uaccess.h into *.S</title>
<updated>2016-12-26T18:05:17Z</updated>
<author>
<name>Al Viro</name>
</author>
<published>2016-12-26T09:10:19Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=b4b8664d291ac1998e0f0bcdc96b6397f0fe68b3'/>
<id>urn:sha1:b4b8664d291ac1998e0f0bcdc96b6397f0fe68b3</id>
<content type='text'>
Split asm-only parts of arm64 uaccess.h into a new header and use that
from *.S.

Signed-off-by: Al Viro &lt;viro@zeniv.linux.org.uk&gt;
</content>
</entry>
<entry>
<title>Replace &lt;asm/uaccess.h&gt; with &lt;linux/uaccess.h&gt; globally</title>
<updated>2016-12-24T19:46:01Z</updated>
<author>
<name>Linus Torvalds</name>
</author>
<published>2016-12-24T19:46:01Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=7c0f6ba682b9c7632072ffbedf8d328c8f3c42ba'/>
<id>urn:sha1:7c0f6ba682b9c7632072ffbedf8d328c8f3c42ba</id>
<content type='text'>
This was entirely automated, using the script by Al:

  PATT='^[[:blank:]]*#[[:blank:]]*include[[:blank:]]*&lt;asm/uaccess.h&gt;'
  sed -i -e "s!$PATT!#include &lt;linux/uaccess.h&gt;!" \
        $(git grep -l "$PATT"|grep -v ^include/linux/uaccess.h)

to do the replacement at the end of the merge window.

Requested-by: Al Viro &lt;viro@zeniv.linux.org.uk&gt;
Signed-off-by: Linus Torvalds &lt;torvalds@linux-foundation.org&gt;
</content>
</entry>
</feed>
