xen/arm: correctly handle DMA mapping of compound pages
authorIan Campbell <ian.campbell@citrix.com>
Mon, 8 Feb 2016 16:02:06 +0000 (16:02 +0000)
committerStefano Stabellini <stefano.stabellini@eu.citrix.com>
Mon, 8 Feb 2016 17:19:27 +0000 (17:19 +0000)
commit52ba0746b3b44c86aee121babf3b2fd9b8f84090
treee33eb11695e609b7c2de9a754f8b6ea95a089d19
parentc9e2f531be000af652927ee0af3a0f24f8e9e046
xen/arm: correctly handle DMA mapping of compound pages

Currently xen_dma_map_page concludes that DMA to anything other than
the head page of a compound page must be foreign, since the PFN of the
page is that of the head.

Fix the check to instead consider the whole of a compound page to be
local if the PFN of the head passes the 1:1 check.

We can never see a compound page which is a mixture of foreign and
local sub-pages.

The comment already correctly described the intention, but fixup the
spelling and some grammar.

This fixes the various SSH protocol errors which we have been seeing
on the cubietrucks in our automated test infrastructure.

This has been broken since commit 3567258d281b ("xen/arm: use
hypercall to flush caches in map_page"), which was in v3.19-rc1.

NB arch/arm64/.../xen/page-coherent.h also includes this file.

Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
Reviewed-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
Cc: xen-devel@lists.xenproject.org
Cc: linux-arm-kernel@lists.infradead.org
Cc: stable@vger.kernel.org # v3.19+
arch/arm/include/asm/xen/page-coherent.h