From patchwork Thu Mar 26 12:43:06 2015 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Joerg Roedel X-Patchwork-Id: 455023 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 78561140079 for ; Thu, 26 Mar 2015 23:45:11 +1100 (AEDT) Authentication-Results: ozlabs.org; dkim=neutral reason="verification failed; unprotected key/testing" header.d=8bytes.org header.i=@8bytes.org header.b=No5Oop7E; dkim-adsp=none (unprotected policy); dkim-atps=neutral Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752768AbbCZMnu (ORCPT ); Thu, 26 Mar 2015 08:43:50 -0400 Received: from 8bytes.org ([81.169.241.247]:60594 "EHLO theia.8bytes.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752489AbbCZMno (ORCPT ); Thu, 26 Mar 2015 08:43:44 -0400 Received: by theia.8bytes.org (Postfix, from userid 1000) id 36F48374; Thu, 26 Mar 2015 13:43:42 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=8bytes.org; s=mail-1; t=1427373822; bh=yAqcNDeCP0Ns4r9bAQ84VaAz9URtTAuwGoUXEgrcBfA=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=No5Oop7EhGIpz13vToMK6n50Wg1RyP+2553UcPXCal7akZXR6Gz9G+EX1trsYPYiv VZSi4kUBTFG/7hrQuJTs6FWX4EPFrta1e3V/H1uFvYsYBi8PmYm0RWnefOhKjrL/XD OfmJDCdaXmsT6QkMiXDrvzS5iv6ppiQ0FNjM8zBpEikl+uDO/oY3NmN+q1+Du8HNRX 4+PKNtsuPNDEi4ueuJ3bfTKkXX0nm9X9GtP3XbyDFZVO8V9KLB1b3JdSEOFFAqGgQ+ PYOV7t75CmHf7To45K1iNbB6PKM/DF4swh1yZ7rr/Y+f1ianPjpC4yZy1EFMNMpDJG kS97KTborJjfw== From: Joerg Roedel To: iommu@lists.linux-foundation.org Cc: Will Deacon , Kukjin Kim , David Woodhouse , Heiko Stuebner , Hiroshi Doyu , Stephen Warren , Thierry Reding , Alexandre Courbot , Alex Williamson , Arnd Bergmann , Yingjoe Chen , linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-samsung-soc@vger.kernel.org, linux-rockchip@lists.infradead.org, linux-tegra@vger.kernel.org, Joerg Roedel , jroedel@suse.de Subject: [PATCH 03/16] iommu: Only allow iommu_map/unmap for paging domains Date: Thu, 26 Mar 2015 13:43:06 +0100 Message-Id: <1427373799-18662-4-git-send-email-joro@8bytes.org> X-Mailer: git-send-email 1.9.1 In-Reply-To: <1427373799-18662-1-git-send-email-joro@8bytes.org> References: <1427373799-18662-1-git-send-email-joro@8bytes.org> Sender: linux-tegra-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-tegra@vger.kernel.org From: Joerg Roedel Check for the new __IOMMU_DOMAIN_PAGING flag before calling into the iommu drivers ->map and ->unmap call-backs. Signed-off-by: Joerg Roedel --- drivers/iommu/iommu.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/drivers/iommu/iommu.c b/drivers/iommu/iommu.c index 4920605..656b949 100644 --- a/drivers/iommu/iommu.c +++ b/drivers/iommu/iommu.c @@ -1063,6 +1063,9 @@ int iommu_map(struct iommu_domain *domain, unsigned long iova, domain->ops->pgsize_bitmap == 0UL)) return -ENODEV; + if (unlikely(!(domain->type & __IOMMU_DOMAIN_PAGING))) + return -EINVAL; + /* find out the minimum page size supported */ min_pagesz = 1 << __ffs(domain->ops->pgsize_bitmap); @@ -1114,6 +1117,9 @@ size_t iommu_unmap(struct iommu_domain *domain, unsigned long iova, size_t size) domain->ops->pgsize_bitmap == 0UL)) return -ENODEV; + if (unlikely(!(domain->type & __IOMMU_DOMAIN_PAGING))) + return -EINVAL; + /* find out the minimum page size supported */ min_pagesz = 1 << __ffs(domain->ops->pgsize_bitmap);