From mboxrd@z Thu Jan 1 00:00:00 1970 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: base64 Subject: [1/6] driver core: Introduce device_iommu_mapped() function From: Joerg Roedel Message-Id: <20181211134343.10664-2-joro@8bytes.org> Date: Tue, 11 Dec 2018 14:43:38 +0100 To: iommu@lists.linux-foundation.org Cc: Russell Currey , Sam Bobroff , oohall@gmail.com, Benjamin Herrenschmidt , Paul Mackerras , Michael Ellerman , Lorenzo Pieralisi , Hanjun Guo , Sudeep Holla , Dan Williams , Vinod Koul , Joerg Roedel , jroedel@suse.de, Mathias Nyman , Greg Kroah-Hartman , linux-kernel@vger.kernel.org, linux-acpi@vger.kernel.org, dmaengine@vger.kernel.org, linux-usb@vger.kernel.org List-ID: RnJvbTogSm9lcmcgUm9lZGVsIDxqcm9lZGVsQHN1c2UuZGU+CgpTb21lIHBsYWNlcyBpbiB0aGUg a2VybmVsIGNoZWNrIHRoZSBpb21tdV9ncm91cCBwb2ludGVyIGluCidzdHJ1Y3QgZGV2aWNlJyBp biBvcmRlciB0byBmaW5kIG90IHdoZXRoZXIgYSBkZXZpY2UgaXMKbWFwcGVkIGJ5IGFuIElPTU1V LgoKVGhpcyBpcyBub3QgZ29vZCB3YXkgdG8gbWFrZSB0aGlzIGNoZWNrLCBhcyB0aGUgcG9pbnRl ciB3aWxsCmJlIG1vdmVkIHRvICdzdHJ1Y3QgZGV2X2lvbW11X2RhdGEnLiBUaGlzIHdheSB0byBt YWtlIHRoZQpjaGVjayBpcyBhbHNvIG5vdCB2ZXJ5IHJlYWRhYmxlLgoKSW50cm9kdWNlIGFuIGV4 cGxpY2l0IGZ1bmN0aW9uIHRvIHBlcmZvcm0gdGhpcyBjaGVjay4KCkNjOiBHcmVnIEtyb2FoLUhh cnRtYW4gPGdyZWdraEBsaW51eGZvdW5kYXRpb24ub3JnPgpBY2tlZC1ieTogR3JlZyBLcm9haC1I YXJ0bWFuIDxncmVna2hAbGludXhmb3VuZGF0aW9uLm9yZz4KQWNrZWQtYnk6IFJvYmluIE11cnBo eSA8cm9iaW4ubXVycGh5QGFybS5jb20+ClNpZ25lZC1vZmYtYnk6IEpvZXJnIFJvZWRlbCA8anJv ZWRlbEBzdXNlLmRlPgotLS0KIGluY2x1ZGUvbGludXgvZGV2aWNlLmggfCAxMCArKysrKysrKysr CiAxIGZpbGUgY2hhbmdlZCwgMTAgaW5zZXJ0aW9ucygrKQoKZGlmZiAtLWdpdCBhL2luY2x1ZGUv bGludXgvZGV2aWNlLmggYi9pbmNsdWRlL2xpbnV4L2RldmljZS5oCmluZGV4IDFiMjVjN2E0M2Y0 Yy4uNmNiNDY0MGI2MTYwIDEwMDY0NAotLS0gYS9pbmNsdWRlL2xpbnV4L2RldmljZS5oCisrKyBi L2luY2x1ZGUvbGludXgvZGV2aWNlLmgKQEAgLTEwNTgsNiArMTA1OCwxNiBAQCBzdGF0aWMgaW5s aW5lIHN0cnVjdCBkZXZpY2UgKmtvYmpfdG9fZGV2KHN0cnVjdCBrb2JqZWN0ICprb2JqKQogCXJl dHVybiBjb250YWluZXJfb2Yoa29iaiwgc3RydWN0IGRldmljZSwga29iaik7CiB9CiAKKy8qKgor ICogZGV2aWNlX2lvbW11X21hcHBlZCAtIFJldHVybnMgdHJ1ZSB3aGVuIHRoZSBkZXZpY2UgRE1B IGlzIHRyYW5zbGF0ZWQKKyAqCQkJIGJ5IGFuIElPTU1VCisgKiBAZGV2OiBEZXZpY2UgdG8gcGVy Zm9ybSB0aGUgY2hlY2sgb24KKyAqLworc3RhdGljIGlubGluZSBib29sIGRldmljZV9pb21tdV9t YXBwZWQoc3RydWN0IGRldmljZSAqZGV2KQoreworCXJldHVybiAoZGV2LT5pb21tdV9ncm91cCAh PSBOVUxMKTsKK30KKwogLyogR2V0IHRoZSB3YWtldXAgcm91dGluZXMsIHdoaWNoIGRlcGVuZCBv biBzdHJ1Y3QgZGV2aWNlICovCiAjaW5jbHVkZSA8bGludXgvcG1fd2FrZXVwLmg+CiAK From mboxrd@z Thu Jan 1 00:00:00 1970 From: Joerg Roedel Subject: [PATCH 1/6] driver core: Introduce device_iommu_mapped() function Date: Tue, 11 Dec 2018 14:43:38 +0100 Message-ID: <20181211134343.10664-2-joro@8bytes.org> References: <20181211134343.10664-1-joro@8bytes.org> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Return-path: In-Reply-To: <20181211134343.10664-1-joro-zLv9SwRftAIdnm+yROfE0A@public.gmane.org> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: iommu-bounces-cunTk1MwBs9QetFLy7KEm3xJsTq8ys+cHZ5vskTnxNA@public.gmane.org Errors-To: iommu-bounces-cunTk1MwBs9QetFLy7KEm3xJsTq8ys+cHZ5vskTnxNA@public.gmane.org To: iommu-cunTk1MwBs9QetFLy7KEm3xJsTq8ys+cHZ5vskTnxNA@public.gmane.org Cc: Mathias Nyman , Greg Kroah-Hartman , Sam Bobroff , Benjamin Herrenschmidt , Russell Currey , linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, Sudeep Holla , linux-acpi-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, Vinod Koul , jroedel-l3A5Bk7waGM@public.gmane.org, oohall-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org, Michael Ellerman , dmaengine-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, Paul Mackerras , Dan Williams , linux-usb-u79uwXL29TY76Z2rM5mHXA@public.gmane.org List-Id: linux-acpi@vger.kernel.org From: Joerg Roedel Some places in the kernel check the iommu_group pointer in 'struct device' in order to find ot whether a device is mapped by an IOMMU. This is not good way to make this check, as the pointer will be moved to 'struct dev_iommu_data'. This way to make the check is also not very readable. Introduce an explicit function to perform this check. Cc: Greg Kroah-Hartman Acked-by: Greg Kroah-Hartman Acked-by: Robin Murphy Signed-off-by: Joerg Roedel --- include/linux/device.h | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/include/linux/device.h b/include/linux/device.h index 1b25c7a43f4c..6cb4640b6160 100644 --- a/include/linux/device.h +++ b/include/linux/device.h @@ -1058,6 +1058,16 @@ static inline struct device *kobj_to_dev(struct kobject *kobj) return container_of(kobj, struct device, kobj); } +/** + * device_iommu_mapped - Returns true when the device DMA is translated + * by an IOMMU + * @dev: Device to perform the check on + */ +static inline bool device_iommu_mapped(struct device *dev) +{ + return (dev->iommu_group != NULL); +} + /* Get the wakeup routines, which depend on struct device */ #include -- 2.17.1 From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-8.9 required=3.0 tests=HEADER_FROM_DIFFERENT_DOMAINS, INCLUDES_PATCH,MAILING_LIST_MULTI,SIGNED_OFF_BY,SPF_PASS,URIBL_BLOCKED, USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 7C2A0C07E85 for ; Tue, 11 Dec 2018 13:44:30 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id 4A6D12054F for ; Tue, 11 Dec 2018 13:44:30 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 4A6D12054F Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=8bytes.org Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726700AbeLKNo3 (ORCPT ); Tue, 11 Dec 2018 08:44:29 -0500 Received: from 8bytes.org ([81.169.241.247]:53236 "EHLO theia.8bytes.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726203AbeLKNns (ORCPT ); Tue, 11 Dec 2018 08:43:48 -0500 Received: by theia.8bytes.org (Postfix, from userid 1000) id A68D33AF; Tue, 11 Dec 2018 14:43:46 +0100 (CET) From: Joerg Roedel To: iommu@lists.linux-foundation.org Cc: Russell Currey , Sam Bobroff , oohall@gmail.com, Benjamin Herrenschmidt , Paul Mackerras , Michael Ellerman , Lorenzo Pieralisi , Hanjun Guo , Sudeep Holla , Dan Williams , Vinod Koul , Joerg Roedel , jroedel@suse.de, Mathias Nyman , Greg Kroah-Hartman , linux-kernel@vger.kernel.org, linux-acpi@vger.kernel.org, dmaengine@vger.kernel.org, linux-usb@vger.kernel.org Subject: [PATCH 1/6] driver core: Introduce device_iommu_mapped() function Date: Tue, 11 Dec 2018 14:43:38 +0100 Message-Id: <20181211134343.10664-2-joro@8bytes.org> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20181211134343.10664-1-joro@8bytes.org> References: <20181211134343.10664-1-joro@8bytes.org> Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Joerg Roedel Some places in the kernel check the iommu_group pointer in 'struct device' in order to find ot whether a device is mapped by an IOMMU. This is not good way to make this check, as the pointer will be moved to 'struct dev_iommu_data'. This way to make the check is also not very readable. Introduce an explicit function to perform this check. Cc: Greg Kroah-Hartman Acked-by: Greg Kroah-Hartman Acked-by: Robin Murphy Signed-off-by: Joerg Roedel --- include/linux/device.h | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/include/linux/device.h b/include/linux/device.h index 1b25c7a43f4c..6cb4640b6160 100644 --- a/include/linux/device.h +++ b/include/linux/device.h @@ -1058,6 +1058,16 @@ static inline struct device *kobj_to_dev(struct kobject *kobj) return container_of(kobj, struct device, kobj); } +/** + * device_iommu_mapped - Returns true when the device DMA is translated + * by an IOMMU + * @dev: Device to perform the check on + */ +static inline bool device_iommu_mapped(struct device *dev) +{ + return (dev->iommu_group != NULL); +} + /* Get the wakeup routines, which depend on struct device */ #include -- 2.17.1