diff mbox

crypto: ccp: Fix DMA operations when IOMMU is enabled

Message ID 20170127212845.27618.32169.stgit@taos (mailing list archive)
State Accepted
Delegated to: Herbert Xu
Headers show

Commit Message

Gary R Hook Jan. 27, 2017, 9:28 p.m. UTC
An I/O page fault occurs when the IOMMU is enabled on a
system that supports the v5 CCP.  DMA operations use a
Request ID value that does not match what is expected by
the IOMMU, resulting in the I/O page fault.  Setting the
Request ID value to 0 corrects this issue.

Signed-off-by: Gary R Hook <gary.hook@amd.com>
---
 drivers/crypto/ccp/ccp-dev-v5.c |    2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)


--
To unsubscribe from this list: send the line "unsubscribe linux-crypto" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Comments

Gary R Hook Feb. 2, 2017, 5:14 p.m. UTC | #1
On 01/27/2017 03:28 PM, Gary R Hook wrote:
> An I/O page fault occurs when the IOMMU is enabled on a
> system that supports the v5 CCP.  DMA operations use a
> Request ID value that does not match what is expected by
> the IOMMU, resulting in the I/O page fault.  Setting the
> Request ID value to 0 corrects this issue.

Herbert,

Hoping to get some 4.10 love on this patch, plus one other. Do we see
a possibility at this late date?

>
> Signed-off-by: Gary R Hook <gary.hook@amd.com>
> ---
>  drivers/crypto/ccp/ccp-dev-v5.c |    2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/drivers/crypto/ccp/ccp-dev-v5.c b/drivers/crypto/ccp/ccp-dev-v5.c
> index e2ce819..612898b 100644
> --- a/drivers/crypto/ccp/ccp-dev-v5.c
> +++ b/drivers/crypto/ccp/ccp-dev-v5.c
> @@ -959,7 +959,7 @@ static irqreturn_t ccp5_irq_handler(int irq, void *data)
>  static void ccp5_config(struct ccp_device *ccp)
>  {
>  	/* Public side */
> -	iowrite32(0x00001249, ccp->io_regs + CMD5_REQID_CONFIG_OFFSET);
> +	iowrite32(0x0, ccp->io_regs + CMD5_REQID_CONFIG_OFFSET);
>  }
>
>  static void ccp5other_config(struct ccp_device *ccp)
>
> --
> To unsubscribe from this list: send the line "unsubscribe linux-crypto" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
>
Herbert Xu Feb. 3, 2017, 10:21 a.m. UTC | #2
On Fri, Jan 27, 2017 at 03:28:45PM -0600, Gary R Hook wrote:
> An I/O page fault occurs when the IOMMU is enabled on a
> system that supports the v5 CCP.  DMA operations use a
> Request ID value that does not match what is expected by
> the IOMMU, resulting in the I/O page fault.  Setting the
> Request ID value to 0 corrects this issue.
> 
> Signed-off-by: Gary R Hook <gary.hook@amd.com>

Patch applied.  Thanks.
diff mbox

Patch

diff --git a/drivers/crypto/ccp/ccp-dev-v5.c b/drivers/crypto/ccp/ccp-dev-v5.c
index e2ce819..612898b 100644
--- a/drivers/crypto/ccp/ccp-dev-v5.c
+++ b/drivers/crypto/ccp/ccp-dev-v5.c
@@ -959,7 +959,7 @@  static irqreturn_t ccp5_irq_handler(int irq, void *data)
 static void ccp5_config(struct ccp_device *ccp)
 {
 	/* Public side */
-	iowrite32(0x00001249, ccp->io_regs + CMD5_REQID_CONFIG_OFFSET);
+	iowrite32(0x0, ccp->io_regs + CMD5_REQID_CONFIG_OFFSET);
 }
 
 static void ccp5other_config(struct ccp_device *ccp)